I have a list of requirements I am looking to fill -- Can CiviCRM do these?

CiviCRM can do all the things you described above, with two caveats:

Some of the requests you're making around primary contact and one account managing multiple members work in CiviCRM with any CMS - but if your CMS isn't Drupal, you'll end up with some clunky public-facing data entry.  Stack Exchange is littered with people asking how to do forms like you're describing in WordPress and are largely disappointed.  If you're starting fresh, definitely use CiviCRM atop Drupal, and use Webform-CiviCRM integration to handle your public-facing forms.
Ditto the calendar - a WordPress or Joomla person can tell me if I'm wrong, but if you want a calendar in a calendar view (instead of, e.g., an events listing) I think you need Drupal.
Finally - you're right, this is definitely a complicated setup, no matter what CRM you choose!  I would dissuade most people new to CiviCRM from attempting something this complex on their first go-round.  Consider hiring someone, or be prepared for a challenge!

Fortunately, several of the items you're requesting (grouping into multiple groups, searching/contacting by groups, file uploads, processing membership dues, filtering for/contacting unpaid members) are all pretty out-of-the-box.  In fact, all of this is doable out-of-the-box (except the calendar, which requires a Drupal module), but the devil's in the details - specifically in the public-facing form details.


How to target a specific event registration form in an extension

Digging into the hook reference documentation at https://docs.civicrm.org/dev/en/master/hooks/hook_civicrm_buildForm/ I can see that the correct approach is

if ($form->_eventId == 1) {


How do I get csv file of Gmail contacts to import?

That cron is not running is not affecting the import process.

Ideas - in no particular order:

Perhaps your csv needs some formatting? Do you have columns for First Name; Last Name; Email adress and are they all in expect format? Email address should just be email address only (so separate columns):

Mary (in column 1)
Smith (in column 2)
Mary.Smith@example.com (in column 3)

I find that MS Excel does not always give me a correctly formatted importable CSV file... so I always use Open Office instead - just look and save
is the upload directory writable by the user the webserver runs as? Not sure where that lives in Wordpress; in Drupal it's files/civicrm/upload


Create contact report with last added contacts

You could go to Search/Custom Searches and then run 'Search by date added to CiviCRM' and make a smart group from that list.  Then use that group as a filter in the report.


Civirule - Action : force override status

I reckon you should be able to do that with CiviRules but I am not sure if the action already exists? If not, you can create your own actions, documentation: https://docs.civicrm.org/civirules/en/latest/create-your-own-action/


How do I hide or re-size the Event Calendar in a CiviCRM Dashboard?

OK, so I had installed the Event Calendar extension from osseed, but had not installed the required JQuery Update module for Drupal. When I did that, and re-enabled the Event Calendar extension, now Event Calendar does not appear at the bottom of my CiviCRM Dashboard when adding a Dashlet based on a Drupal View.

I still have the whitespace problem when adding a Dashlet based on a Drupal View, but I think that may be a setting to adjust in the Display settings for that View.


Two answers:  First, yes, changing the permission should be safe to do.  Note, however, that you'll have to repeat this process every time you upgrade.

Second - this isn't a normal restriction, so I'm guessing you're running CiviCRM on shared hosting.  The change you described removed the "group owner can write to this file" permission of cron.php.  You did NOT change who could read or execute the file - so this shouldn't have had an effect.


Make sure that the folder /var/www/vhosts/examplesite.com/httpdocs/wp-content/plugins/files/civicrm/ is writable to the webserver user.

The simplest solution is to set the permissions on that folder to be read/write for ALL users.

A better solution is to configure the permissions so that they are open to your user account and the webserver alone, but not other users on the same hosting server. How you approach this depends on the hosting environment and probably requires learning how to manage filesystem permissions.

See also:

Are there recommended directory ownership and permission settings for CiviCRM files?
CiviCRM does not have permission to write temp files on new server


Unable to filter contributions by date in Drupal with views and civicrm_entity

This is working in beta6 of CiviCRM entity...probably before, can't remember exactly when I fixed this.

Relevant D.O issue https://www.drupal.org/node/2570319


Building an extention in civicrm. i try fetch campaign base on contact nothing displays while i have records

I'd recommend looking into using the CiviCRM API as a more robust way to query CiviCRM data.

Using the CiviCRM API

Check out the API explorer
In your CiviCRM instance you can access the API Explorer. It includes tools to visually generate API queries which would deliver what you're doing there.
For the Drupal CiviCRM demo site at http://dmaster.demo.civicrm.org, the API explorer is at http://dmaster.demo.civicrm.org/civicrm/api/explorer. The CiviCRM demo sites permit you to log in and explore CiviCRM, though you've obviously got a local install (which may not be Drupal).
Using the API explorer, you can build a query which matches your code above in SQL, by selecting:

Entity = Campaign
Action = get
Parameter: Campaign created by, (contact)

The API explorer will show you sample code in PHP, Javascript, and for other interfaces.
API query to match the above
The equivalent PHP code for the above generated by the API explorer is,
$result = civicrm_api3('Campaign', 'get', array(
  'sequential' => 1,
  'created_id' => $contact_id,
));

The $result of this is in the CiviCRM API response format (documentation), which you will iterate through the values of.

CiviCRM API request format documentation
CiviCRM API response format documentation

Why use the API over SQL?

If you're not familiar with APIs, you might ask why you would use the API when you could access the core functions (e.g. the BAO files) or the data in the MySQL database directly?
The answer is that the community will ensure that the API will function as expected with every new release. Great effort is made to preserve backwards compatibility of the API for several versions of CiviCRM. If you decide to use other ways to collect data (like your own MySQL statements), you are left to your own devices. Changes in the schema and BAO arguments, etc. will cause you grief.

CiviCRM API docs - Why use the API?


Test Payments showing Incomplete Transaction (CiviCRM 5.8.2)

Since you are using paypal standard then I believe it requires to setup IPN call back url for CiviCRM to get response from Paypal and process the contribution status.

Here is the document how to configure IPN(Instant Payment Notification) at Paypal.

HTH

Pradeep


How do I create a token that automatically gets urls convert to trackable links?

The BAO responsible for trackable URLs is CRM_Mailing_BAO_TrackableURL link here.

Because the MailingJob is available in hook_civicrm_tokenValues you could do something like this:

// job details to get mailing_id
$job_id = civicrm_api3('MailingJob', 'getsingle', array(
        'id' => $job,
));
// get event_queue_id
$queue_id = civicrm_api3('MailingEventQueue', 'getsingle', array(
        'job_id' => $job,
        'contact_id' => $cid,
));

$url = 'https://example.com';
$trackableUrl = CRM_Mailing_BAO_TrackableURL::getTrackerURL($url, $job_id['mailing_id'], $queue_id['id']);

RE: "wyswyig button that pulled in auto-generated content"
HTML Buttons plugin for CKEditor does what you describe, I have a couple of dropdowns with buttons that insert complex HTML snippets, is what I use for composing newsletters.


Custom data fields not showing on event registration page

You will need to add it to whatever profile your using for the event registration page. You can check what profiles your using by going to the online registration tab of event configuration. Once you know which one then go to administration -> custom data and screens -> profiles and edit the fields for the particular profile.

The other thing you will need to make sure is that if your wanting anonymous users to submit the form they have access to the custom data. This can be done via 1. CiviCRM's permissions granting them access to all custom data or by adding in a rule into Civicrm's acl permissions that everyone can edit that custom data.

Seamus


When to use CiviCampaign vs Financial Types/Accounts

A few points:

The system creates a financial account automatically when you create a financial account, so there's not much extra effort. You will want to edit the financial account to put in the QuickBooks chart of account information.

The general advice regarding Chart of Accounts (in QuickBooks or similar software - it's actually an accounting best practice) is that you don't want to be removing them regularly. I'd suggest having a parent account for something like Donations - Staff Salaries, and then sub-accounts Donations - Staff Salaries - Joe, etc. While the subaccounts will remain, their amounts will be conveniently summarized in QuickBooks into the parent account. After creating the subaccounts  as Financial Types in CiviCRM, edit associated the Financial Account that was automatically created, then make sure to configure the fields as appropriate for QuickBooks. I believe if you export your Chart of Accounts from QuickBooks (for many versions of QB Desktop File > Utilities > Export > Lists of IIF files, select Chart of Accounts) then open it in a low-level text editor like Notepad you will be able to see the data you need to exactly match the account name and 'Account Type Code'. In particular, the subaccount will have a name with a colon in it separating the parent account name and this account's name. You need to enter that exactly correctly (cut and paste!) in order to have things work correctly when you import the .iif from CiviCRM into QB. Remember to backup QB before trying the import...it usually takes several finicky checks to get everything perfect and not creating duplicate accounts.
You can create a price set and associate different financial types with different select widget options pretty easily:

HTH


Is this scheduled cronjob setup correctly?

Yes, executing the standard cron job, which is the cron.php file as you have it, executes any and all jobs which are enabled on the  CiviCRM » Administer CiviCRM » Scheduled Jobs  page.


It might be that the css of your theme clashes with the css of civi (there is a style rule to avoid repeating that icon, that might be overwrited by one in your theme).

As a quick test, can you switch to the default drupal theme and see if it's still an issue?

If not, you will need to modify your theme to add a rule so the background image for the icons doesn't repeat. Not complicated, but likely specific to your theme, so hard to give you a generic advice without knowing the specifics


2019 UPDATE:  A year later, I had to revisit this problem space, and I improved on my old answer; ignore earlier discussion threads on this answer.
When deleting duplicated emails/phone/addresses within a contact, you're inherently losing data.  E.g. if a phone number is both "Main" and "Work", and you delete one, you have to choose which location type you're losing.
The following SQL statements handle three strategies I identified:

Keep the record marked as "primary".  Delete the rest.
Keep the oldest record.  Delete the rest.
Keep the newest record.  Delete the rest.

My preferred strategy is to keep the primary, delete the rest.  This does NOT catch duplicates where none of the dupes are primary, so I follow that with a "keep the newest record" statement to catch the stragglers.
Protip: To see what records will be deleted before deleting, change DELETE to SELECT.
Delete duplicate emails, keeping the primary:
-- Delete all emails from Civi that are in the "duplicated" subselect but aren't primary.
DELETE e.*
FROM civicrm_email e JOIN (
  -- Select all duplicated emails
  SELECT contact_id, email
  FROM civicrm_email
  GROUP BY contact_id, email
  HAVING COUNT(*) > 1
) AS f ON f.email = e.email
AND f.contact_id = e.contact_id
WHERE is_primary = 0

Delete duplicate emails, keeping the oldest:
Change MIN to MAX to keep the newest.
-- Compare civicrm_email to the outer subselect.  If your email/contact_id matches but you don't have the minimum email ID, delete.
DELETE civicrm_email.*
FROM civicrm_email
LEFT JOIN(
  -- Select the lowest email id for each value in the inner subselect
  SELECT MIN(id) keep_id
  FROM civicrm_email e
  JOIN (
    -- Get a list of unique email/contact_id combos
    SELECT contact_id, email
    FROM civicrm_email
    GROUP BY contact_id, email
  ) AS f ON f.email = e.email
  AND f.contact_id = e.contact_id
  GROUP BY e.email, e.contact_id) ids ON civicrm_email.id = ids.keep_id
  WHERE ids.keep_id IS NULL AND civicrm_email.contact_id IS NOT NULL

Delete duplicate phones, keeping the primary:
-- Delete all numbers from Civi that are in the "duplicated" subselect but aren't primary.
DELETE e.*
FROM civicrm_phone e JOIN (
  -- Select all duplicated phone numbers
  SELECT contact_id, phone
  FROM civicrm_phone
  GROUP BY contact_id, phone
  HAVING COUNT(*) > 1
) AS f ON f.phone = e.phone
AND f.contact_id = e.contact_id
WHERE is_primary = 0

Delete duplicate phones, keeping the oldest:
Change MIN to MAX to keep the newest.
SELECT civicrm_phone.*
FROM civicrm_phone
LEFT JOIN(
  SELECT MIN(id) keep_id
  FROM civicrm_phone e JOIN (
    SELECT contact_id, phone
    FROM civicrm_phone
    GROUP BY contact_id, phone
  ) AS f ON f.phone = e.phone
  AND f.contact_id = e.contact_id
  GROUP BY e.phone, e.contact_id
) ids ON civicrm_phone.id = ids.keep_id
WHERE ids.keep_id IS NULL AND civicrm_phone.contact_id IS NOT NULL

Delete duplicate addresses, keeping the primary:
-- Delete all addresses from Civi that are in the "duplicated" subselect but aren't primary.
DELETE e.*
FROM civicrm_address e JOIN (
  -- Select all duplicated addresses
  SELECT contact_id, street_address
  FROM civicrm_address
  GROUP BY contact_id, street_address
  HAVING COUNT(*) > 1
) AS f ON f.street_address = e.street_address
AND f.contact_id = e.contact_id
WHERE is_primary = 0

Delete duplicate addresses, keeping the oldest:
Change MIN to MAX to keep the newest.
DELETE civicrm_address.*
FROM civicrm_address
LEFT JOIN(
  SELECT MIN(id) keep_id
  FROM civicrm_address e
  JOIN (
    SELECT contact_id, street_address
    FROM civicrm_address
    GROUP BY contact_id, street_address
  ) AS f ON f.street_address = e.street_address
  AND f.contact_id = e.contact_id
  GROUP BY e.street_address, e.contact_id
) ids ON civicrm_address.id = ids.keep_id
WHERE ids.keep_id IS NULL
AND civicrm_address.contact_id IS NOT NULL
AND civicrm_address.street_address <> ''


Since you have the extension Access Control by Financial Type for Reports that means you have Access Control by Financial Type enabled. You have to set additional permissions when this is enabled.

You must grant the add and view permission for each financial type to
the anonymous user role for visitors to be able to access your contribution pages.

I submitted this PR to the docs as I had encountered this issue as well.


CiviCRM API explorer menu is not visibile on Wordpress

Try clearing your CiviCRM cache CiviCRM >> Administer >> System Settings >> Cleanup Caches and Update Paths.

Check if the Support menu is enabled in CiviCRM >> Administer >> Customize Data and Screens >> Navigation Menu

The api3 explorer link is

/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fapi3#explorer


Looking for contacts that are Pending (status by email) E-news Opt-in

Jon from Megaphone Tech created a custom report that that will allow you to filter by group status. Your system administrator would need to install it for you.


Getting contact address with membership on paypal standard

Sounds like you don't have any profiles enabled on the form. You can start with the basic name and address one CiviCRM comes with out of the box or create one of your own to collect the fields you're after.

You just click on the profiles tab when managing the contribution page to enable the one(s) you'd like members to complete when they register.

Here's more information about CiviCRM profiles: http://book.civicrm.org/user/current/organising-your-data/profiles/


Can I disable Notify Activity Assignees for some Activities and/or user levels and leave it on for other Activities/user levels?

The extension mentioned by Peter in the answer is now moved into core and can be used from 4.7.30 version. See https://issues.civicrm.org/jira/browse/CRM-21380

It introduces a new setting which blocks some activity types to send an email to the assignees.

To enable this, navigate to Administer -> Customize Data and Screens -> Display Preferences and select Notify Activity Assignees checkbox. It will then display a multi-select box to choose some activity type which you don't wish to send notifications for.


How do I load javascript only on pages with CiviCRM loaded on them?

I've wrapped it with try / catch
try {
  CRM.$(function ($) {
  )(CRM);
} catch (e) {}


There is a default criteria in (some of the reports) that can be checked for contributions only, or soft credits only.

But difficult to be more specific, unless you state your Civi-version, and the name of the report.


Membership -Turn Renewal Reminders Off (only for certain contacts)

Thank you A Davidson and Peter for your ideas. After doing some more digging (did not find this post before), I came across this post, explaining how to limit the recipients of a scheduled reminder to a defined group.

I think this option will work for us.


Added some custom fields but it'snot coming in advanced search

Welcome to CiviCRM Stack Exchange. Please make sure to select the option "is searchable" for evry custom field, otherwise they will not appear in searches.


I don't know much at all about Laravel, but from this:

  one conclusion I would draw from that is that Laravel is probably best to use as a front-end framework, which does not require complex data store functionality. It is perfectly suited to be a service layer with its integration to Iron.io and other popular SaaS providers (AWS, S3, sendgrid, etc.), Laravel provides a simple way to build and consume API’s THE GREAT PHP MVC FRAMEWORK SHOWDOWN OF 2016

I would suggest starting by creating a wrapper for CiviCRM's extensive API. Version 3 is quite mature, version 4 is a new initiative that will eliminate some of the cruft that has developed in v3 but isn't yet covering as much as v3. FWIW, CiviCRM 5.0 is going to more thoroughly integrate various parts of Symfony 2, and we're aspiring to support progressive decoupling / headless sites that are implemented using a browser based MVC like Angular.


conditional tax in financial payment page for membership

The easy - non-code - way to handle this is to create a Drupal node (page) with a select Province - and then based on Province selected popup a button with a link to a Contribution page that is configured with a Priceset that sells that Membership at that Province's General Sales Tax.

Edit: this is the only sustainable way to do this right now (see comment below).


Found the problem. Debugging was turned on.  Once I turned it off "New Mailing" worked.


Event Custom Fields not Looking Right with 4.6.27 Upgrade

Often JS errors after an upgrade are caused by needing to clear the browser cache. Give that a go and retry.

Another approach to resolving this is to try to create new equivalents of those fields once the upgrade has run, and see if they behave in the same way. This is distinct from what you did in your subsequent comment.

John


Wordpress Media Library not refreshing with new upload

Not quite a complete answer yet, but I had the same problem with SiteGround and it is to do with file permissions. See Adding images in CKEditor for what I changed.

Also see my recent question file permissions with hosted wordpress about the wider issue.


What Permission should I grant to allow some Contacts to sens SMS's

Edit All Contacts.

But this is not appropriate (too permissive) : I would prefer a specific, or merged with CiviMail permission.


Awaiting approval participant status message template

It is within the Events - Registration Confirmation and Receipt (on-line) template.


Searched the www directory for files containing 'editMessageDetails' (grep -inr "editmessagedetails" /var/www/) and compared the result for two different civi installations. Faulty installation had many files with this string in templates_c and the tmp directories. Cleared these & problem vanished.

This can be achieved by:

Clearing the cache via CiviCRM UI - docs in wiki
Executing same via CLI, eg cv api System.flush (or equivalent drush, wp-cli commands)
Manually removing the directories and files beneath templates_c (and tmp?) directories.


How to identify if the event is a repeat event?

The repeat entity is stored in civicrm_recurring_entity table so you might need to use the RecurringEntity api for this purpose. The following should result the repeating events for you -

$result = civicrm_api3('RecurringEntity', 'get', [
  'sequential' => 1,
  'entity_table' => "civicrm_event",
  'parent_id' => main_event_id,
]);

Similarly the api can also be used to find repeated activities.


This issue was a WP Plugin "WordPress HTTPS" was conflicting with Civi |Administer| Resource URLs and  Force Secure URLs(SSL) checked as Yes.

We deactivated the WP Plugin and all is ok!


There is this blog post describing it: https://civicrm.org/blog/josh/community-ambassadors-needed
I would go to https://chat.civicrm.org and in the Community channel post a message to Josh.


Activating CiviCRM in Wordpress returns a fatal error, this is on windows10, all works until activation

My assumption is that you are using PHP 7.4. Dat version does not support curly braces syntax. See this answer on stackexchange https://stackoverflow.com/questions/59158548/array-and-string-offset-access-syntax-with-curly-braces-is-deprecated . A downgrade to PHP 7.3 will help. That is also the highest supported version, see https://docs.civicrm.org/installation/en/latest/general/requirements/ .
Another option is to fix the issue and create a patch for it. A remark on the https://lab.civicrm.org/dev/core/-/issues/1496 will also help.


Jquery not affecting custom fields of an activity

In some CiviCRM pages/forms custom fields are loaded/reloaded via AJAX (you will notice that if you have a set of custom fields based on Activity type, the custom fields update/reload when changing the Activity type to show its correspondent set of custom field).

With that in mind you should trigger you script on .ajaxComplete(), something along those lines:

CRM.$( function( $ ) {
    $( document ).ajaxComplete( function( event, xhr, settings ) { // optional params if you need to differenciate between events/requests
        // do stuff
    }
} )


Reply-to e-mail address using CiviMail in 4.6.3 defaults to system default

This does indeed appear to be a bug in 4.6.3.  Upgrading to 4.6.4 will fix the problem.

Note that additional functionality in CiviMail can affect the from: address: Using VERP or the custom reply-to header.


maybe your Campaign name is still in Drupal Views cache.
Have You try clean Drupal View clear? Button for Clean cache is in: mysite.org/admin/structure/views/settings/advanced.

Which version of CiviCRM and Drupal do You have?


How is 'contact modified' defined as on CiviCRM reports?

Yes! The Contact modified date filter will work to filter contact that are modified in past 12 months


Removing "List-Unsubscribe" from civimail headers (for when getting seemingly random unsubscribes)

thanks to @pradpnayak for guidance :D

according to the docs for hook_civicrm_alterMailParams:

  You can add custom headers by appending to $params['headers']. Example:

$params['headers']['X-My-Header'] = 'my header value';

  The headers key may not exist in the $params array when passed into the > hook.

so this was the code in an extension to unset the existing 'List-Unsubscribe', and put in a NULL replacement into the headers:

/**
 * Implements hook_civicrm_alterMailParams().
 *
 * @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_config
 */
function custom_civicrm_alterMailParams(&$params, $context) {
  if ($context == 'flexmailer' || $context == 'civimail') {
    // remove existing header
    unset($params['List-Unsubscribe']);
    // replace via the 'headers' key
    $params['headers']['List-Unsubscribe'] = NULL;
  }
}


Is it possible to add contribution note when renewing membership in (one of) the next release?

I would advise you to avoid changing the core files (php or template). You should write an extension that adds the field (in the buildform hook) and save it whilst processing the form.

However, It might be better to use other ways to save that information. The financial type for instance where you can create several, based on the bank (assuming it's the client bank) or use the check number or source (both existing fields in the contribution) if it's an information about the member's bank.


CiviEvent - front end registration error page - permissions or something else

OK, found out what this was. There is a new check box in CiviContribute Components Settings 'Enable Access Control by Financial Type' In the users system this was checked. I don't know whether an administrator accidentally ticked that without knowing what it did or whether an update process ticked it.

Anyway, this being ticked with no civi ACL obviously locked everyone out of being able to access the financial types and therefore broke the front-end event registration process.

Un-check that field and save and the system is fine once again.

Hope this helps anyone else in this situation.

(PS - it looks like super users within Joomla are somehow treated differently which threw me initially the normal civi ACL checks obviously don;t apply to Super Users - hmm)


Abdalla, Welcome to CiviCRM SE. Yes, Member will get the receipt when a payment is processed from payment processor or bank transfer. CiviCRM sends the receipt to the user if the payment is complete. CCiviCRM also lets you generate invoice which includes tax details for the contribution(payment), this is not send automatically to user by CiviCRM.

HTH

Pradeep


Import Contribution - last step no longer goes to 'Summary / Error' report

How large is your import? It seems to happen on larger imports and this has occurred on and off in Civi for some time in my experience. Something is causing it to hang.

You can still get to the summary page by replacing Preview with Summary in the URL. That will show you any records that could not be imported, etc. You can also look at MySQL and check that the import is done if the temporary table (civicrm_import_job...) is no longer there. If the table is still there, search status = NEW to find records not imported.

Yes, this is a workaround but it will get you on your way for the time-being.


I know I asked this question quite some time ago, but I thought I'd share the solution we landed on.

We found and tested two solutions that worked well. The first was using Tags:

Allow users to manage their tags
Create tags for the groups members can opt-in/out of
Create smart groups based on the membership status and tags
Sync the Google Group to the smart group for the associated tag

The second approach was very similar, but instead of using tags, we used a set of custom fields as checkboxes for each of the groups. We settled on this approach, because it allowed us more control over what was shown to the user and freed up tags for other uses.


I would try clearing caches (click Cleanup Caches and Update Paths on the admin menu).  I would also check your Resource URL to make sure it's correct (click Resource URLs on the admin menu).

I would also try using one of the built-in themes (e.g. "twentynineteen") to rule out a badly-behaving theme.

Finally, I would try bringing up your browser's Developer Tools (press "F12"), heading to the Network tab, and reloading the page.  If you see any 404, 403, 500 errors - really, anything besides a 200 - please update your question with those details.  Also note that you'll want to do a hard refresh of the page in between the first two steps - that's Ctrl-Shift-R on Windows/Linux, and Cmd-Shift-R on a Mac.

UPDATE: Looking at the request URL in your screenshot, that looks pretty squirelly.  I very much doubt thaat's the correct URL.  That says to me that there's probably something wrong with your Resource URL.  Is it possible that you're using a symlink ("alias") in your file path?  If so, try to fix any paths defined either in Administer » System Settings » Directories or in civicrm.settings.php to use the equivalent non-symlinked path.


Does Veda Consulting's dedupe workflow extension work on 4.7? Or is it now in Core?

I think this pull request, that was merged into 4.7, contains at least some of these improvements. But not the functionality from the extension (as far as I know):

https://github.com/civicrm/civicrm-core/pull/6432

Check out the new functionality on the demo site, and see if it meets your expectations.

http://dmaster.demo.civicrm.org/


CiviCase dashboard shows cases for invisible contacts

You're correct that the case dashboard permission is a bit hardcoded to just "all" or "my" cases, e.g. https://github.com/civicrm/civicrm-core/blob/8036d43973a5d42b0722cc45cba3a9f88e9ce182/CRM/Case/BAO/Case.php#L695


Here's a link to the current docs for setup of CiviCRM / Clickatell.

In that there's an example that suggests api_key=XXX is the correct format. It gives this example (when using a specific 2-way config):

api_id=1234567
from=15558238168
mo=1

Those docs also give instructions to set up an API product and obtain the key (which it looks like you've done), and say "Be aware that your Clickatell API password may differ from your Clickatell account password." which may be the problem you're hitting?

If you're getting a meaningful "authorization failed" response back I'd be inclined to take that as it is given and verify those authorization details (username, API password and API key) are configured right.

Next steps might be to debug around this line to see if the parameters are being set correctly, or to seek out support from someone able to do so.


You could start with API Explorer v4:

Set the Entity to CustomGroup and Action to get.
In the Chain section, set Entity to CustomField and Action to get.  The next box should autopopulate to {where: [[custom_group_id, =, $id]]}

Basic example
From there, you can limit the fields returned both for the CustomGroup and the CustomFields and maybe sort them.  Once that shows what you want, remove the Limit so see all the data.
Example with selected fields
From there, you can copy/paste the generated code to a php file and do what you like with the output.


Unable to create label format for membership card

I ended up creating an extension for a professional organization to handle this - ingredients:

function membershipcards_civicrm_tokenValues [you must create the tokens e.g.  $value['membership.type'] and $value['membership.status'] - I have 'see Example from Lobo' in my NOTES: https://civicrm.org/node/480
Then I have a Task: class CRM_membershipcards_Task_IssueMembershipCards extends CRM_Contact_Form_Task {
So that you can Find -> Advanced Search Contacts -> select them and then in the -actions- you can pick: Print Membership Cards
Then in the postProcess for that -action- I swap out the tokens and I re-use much of core mailing label bits - this is everything I want on the card:

  $formatted = $row['addressee_display'] . "\n" .
  $row['contact.homestreetaddress'] . "\n"  . $row['contact.homecity'] .
  ' ' . $row['contact.homepostalcode'] . "\n" . "\n" . 'License #: ' .
  $row['external_identifier'] . "\n" . $row['membership.type'] . "\n" .
  $row['contact.activityskills'] . "\n" . 'Start Date: ' .
  $row['membership.startdate'];

Eventually that gets passed onto self::createLabel($rows, $fv['label_name']);

Then my own function createlabel has all my custom layout for this organization:
XY positioning of the details, font, logo (watermark) placement, authorized signature.

Hope this helps! You could just create the Tokens and then you might be able to get at them into a template - however if you really want control over layout/looks - you'll need your own createlabel.


Restrict contacts available to be assigned to an activity

The EntityRef field on the form can be given that restriction. Best way to do it is probably via a hook, e.g.

hook_civicrm_preProcess($formName, &$form) {
  if (is_a($form, 'CRM_Activity_Form_Activity')) {
    $form->_fields['assignee_contact_id']['attributes']['api']['params']['group'] = 1;
  }
}

(where "hook" is the name of your module and "1" is the id of the group)

Note use of is_a rather than the $formName so we also catch the case activity form.


Does ModSecurity and CiviCRM play well together?

I've often run into trouble with shared hosts' use of ModSecurity, but those that are willing to tweak the rules have always managed to make it work.  Expect to do some testing!


SQL Syntax Error - When starting civicrm with joomla

it seems php 7.2 is not compatible with 5.x.x
or i do not know how to do the configuration

i think downgrade the php would be the best solution
but i wonder if there is other answer, and how to do it....

updates:
-downgrade php does not help, same error appears
-downgrade mysql to 5.5 works!


User to view/change own membership as well as address details etc

Create a profile with all the information you want the user to edit. (I would not let a user change membership type, but as you wish.)
Create a new page on Wordpress - call it View Profile - or whatever you want.  Then embed the CiviCRM shortcode by clicking the insert civicrm content button, choose profile, choose the profile, choose view, and don't over ride.
Create a new page on Wordpress - call it Edit Profile - or whatever you want.  Then embed the CiviCRM shortcode by clicking the insert civicrm content button, choose profile, choose the profile, choose edit, and don't over ride.
Create links to those pages for users to access.

Optionally use the members plugin and restrict the content of those pages to only members or whatever configuration you want.


Can you save an advanced activity search?

The key functionality to do this was added in CiviCRM 4.7.25, with CRM-20630.

My understanding is that it's almost but not quite what you need.  This allows you to pass variables through in the Activity Search URL, but it won't generate the URL for you - you'll have to figure the URL out for your search.  A extension to auto-generate the URL seems like a worthy project though.

The feature doesn't seem to be documented yet, but you can see examples on Github.


How can I increase the amount an existing monthly sustainer is giving?

This won't work, because CiviCRM doesn't communicate with Authorize.Net regarding changes to recurring billing.  Only token-based payment processors (e.g. iATS) do.

While I can't answer specifically for Authorize.Net, in PayPal you can change the billing amount by no more than 20% every 6 months without entering new card info.  You do this from the PayPal UI.


"view contact" not updating when changes are made

Band-aid solution:

Found out that it was our web-browser's cache that was causing this problem, both in Chrome and Firefox. Chrome offers no way to turn caching off (except in development mode), so I installed a plugin to clear the cache anytime I need to confirm updated information.

I'm surprised others haven't posted about this problem since it must be fairly wide-spread


Discount entry field not displaying on membership signup

For the particular client that reported this, it turns out that the issue was caused by a change made to a membership type after the price set was already associated with the contribution page, but the error was only presented if one clicked on the Save button of Memberships tab of the contribution page configuration.

To confirm whether this is the case to you - navigate to the Memberships tab of your contribution page and click the Save button to see if you are presented with the following error message:

  The membership price set associated with this online contribution allows a user to select BOTH an auto-renew AND a non-auto-renew membership. This requires submitting multiple processor transactions, and is not supported for one or more of the payment processors enabled under the Amounts tab.

Meaning - when using a price set, you can either offer auto-renew for all memberships on a given page, or none of them, but you can't offer a mix. On the other-hand, if you use the built-in membership fees section, you can select which membership types you wish to have the option (or be required) to auto-renew (so long as your payment processor supports auto-renewal).

If you don't have a payment processor that is configured to allow for auto-renewal:

Navigate to Administer > CiviMember > Membership Types
Ensure that the Auto-renew Option for all membership types is to to "No auto-renew option"
Navigate back to the Memberships tab of the contribution page and click the Save button - the message should no longer appear
Click on the Contribution Links button at the top and select Test or Live - the discount box should now appear (assuming that the discount code is configured accordingly).

Hope this helps!


Convert Submitted CiviCrm Membership Form to PDF

CiviCRM sends a email with PDF attached to it. It has all the data that a membership form has. This email is send to member but you can add CC or BCC in contribution page settings under Thanking-you and receipting.

HTH

Pradeep


CiviMail error due to a word in the mailing - why?

I recently had a similar problem (with Moodle, not CiviCRM, on a shared host) giving errors when a particular word was in the content that was being submitted by the user. It turned out to be triggering a mod_security rule, resulting in a 403 error. Whitelisting that rule resolved the problem.

Edit (by Laryn): Here's the mod_security rule (#300016, "Generic SQL injection protection") that was triggered in this case:


You might try a CiviBuild in Docker. See https://github.com/michaelmcandrew/civicrm-buildkit-docker for the link and how to install it.


It appears to be working.
I went to this path on my site /civicrm/dataviz/contacts and it looks the same as it did on CiviCRM 4.4


Custom Search Include/Exclude error message

This error is displayed when you don't have any groups OR tags available on your site.

Check if you see any groups listed in civicrm/group?reset=1.
Similarly, check if you have at least one tag available in civicrm/tag?reset=1.

In your case, I think you don't have any tags created on your site. As a hacky workaround - you can create a dummy tag from Contacts -> New Tag menu in order to get rid of the error on the search screen.


Error during registration for multiple participants

The error is due to call to the protected function getRegistrationContactID() in CRM_Event_Form_Registration_AdditionalParticipant class for multiple event participants registration.

The issue got resolved in my installation (civicrm 4.7.19) after changing the access control of the function getRegistrationContactID() from protected to public.

The file location is civicrm-module/CRM/Event/Form/Registration.php


Any Known Incompatibilities with CiviVolunteer and Other Extensions?

The answer and patch at Error with CiviVolunteer after upgrading to PHP 7.1 did have the answer after all. Thanks, Jon, for causing me to take a second look at that!

On our WordPress installation, the file is located here:

/public_html/wp-content/uploads/civicrm/ext/org.civicrm.volunteer/CRM/Volunteer/Permission.php

The patch required changing two lines: the class declaration at the top of the file and the return value of the check function.

I still don't know what it was reporting an error on line zero, but all's well. And I hope that CiviVolunteer gets an update soon that applies the patch! Kudos to Tim Otten for creating the patch.


Only one registration per contact per event

You can also set up a Price Set option so one person can buy multiple tickets while only entering their own details once.


That error is almost always related to name vs label mismatches. Check your xml files for the <name> tag and the entries in the database in civicrm_option_value in the "name" column, e.g.

SELECT ov.name, ov.label FROM civicrm_option_value ov INNER JOIN civicrm_option_group og ON og.id = ov.option_group_id WHERE og.name='case_type'


Can I add phone number as a searchable field on Advanced search Page?

Sure thing. Just upgrade to version 4.4 or later and it will be there :)


Is it possible to add new target type in drupal content type?

So it looks like you are using the Entity Reference field.  The target types, are Drupal Entity types. You can definitely create your own custom entities.

The Drupal Examples module has an entity example:
https://api.drupal.org/api/examples/entity_example%21entity_example.module/group/entity_example/7.x-1.x

Although this doesn't leverage the additional tooling provided by the Entity API module...

If you are wanting to reference CiviCRM data from Drupal node, install the CiviCRM Entity module. CiviCRM Entity exposes CiviCRM API entities as Drupal entity types

With that enabled you can reference CiviCRM memberships, contacts etc...Or create new ones, using Inline Entity Form widget


The most likely causes for breakage with this change are:

Cron job is pointing to HTTP only

curl by default will not follow 302 redirects, while wget will. If you're using curl, it won't work automatically when pointed to the non-SSL URL (not without -L, anyway). The 302 redirect can make this less obvious, since everything else that points to http "just works".

(Your question says you've addressed that already, but I'm including this for others who face that issue.)

OS certificate chain does not recognise your new SSL cert

Another possibility is that curl or wget is rejecting the SSL certificate provided by your new URL. This can happen if the OS CA chain is outdated or misconfigured; it can also happen if your SSL installation is incomplete (and might not appear to be a problem if your browser includes CA components which your OS lacks).

Debugging further

I would:

Check if your OS has updates available to certificate authority certs (in Debian distros, package is ca-certificates).
Include in this question the output of the cron task you have configured.
Review (and include in this question) the webserver access logs for your cron task accessing CiviCRM.
Review your site's SSL against a service like Qualys SSLLabs and verify that the SSL configuration is good. (You don't need a perfect score - but this may make some issues visible.)

When doing so, make sure to anonymize the URL and sensitive data like API keys, as you've done in your initial .htaccess snippet.


HowTo: crmApi get rows with date between

Oh, I've found in my crm menu Support - Develper - API Explorer and there was a solution:

start_date: {'BETWEEN': ['2015-01-01', '2016-01-01']},


Figured it out finally. The Email Delivery was called by the user with different permissions that the one who was logged in. Adding Permission CiviCRM: access all custom data solved the problem.


Why do Smart Groups now give database errors?

To standardize Get.api and Search form underlying where clause(s), buildClause() fn expects value(s) to be in array(operator => array(values)) format [I call it "Operator as Key" - OK format :p ]. Earlier in prior version most of the Get.api aren't working because the buildClause() was designed according to Search formValues format [array(values)], so there is conflict in how the values got retrieved and eventually result into Fatal Error/Empty Value for get.Apis. Whereas in some worst-case scenario the get.Api was only working proper with '=' operator as the buildClause didn't got the flexibility to work with any other operator other then '='. But recent changes ( 4.6 onward ) in buildClause expects values atleast for n-nary operators IN/NOT IN in the desired OK format. On the otherhand recent changes has ALSO ensured that the Search Form formvalues processed first into OK format before passing it to build-Clause.

Now back to the bug mentioned here, here's my fix https://github.com/civicrm/civicrm-core/pull/6320. In addition buildClause will also support previous format but will through a e-notice to notify the wrong value format.


Volunteer Signup - Display quantity/quantity_needed


I do know there is a cron job (Disable expired relationships (Daily)) that inactivates relationships when the end date is in the past. That might be active in your environment, but you state that there are no end dates? Did you not have any in the past either? And is this scheduled job active on your installation?

Another cause might be the employer/employee relationship when you remove the employer from the contact summary?


How can I save Search results with preserving Views For Display Contacts (defined in Profile)?

A partial solution is listed here: Change the default fields (columns) in contact search results

  You can set this custom search profile with the reduced columns as a default for all contact search results (besides participants) in /civicrm/admin/setting/search?reset=1.

A major drawback is that I'd like to use different columns for different searches rather than the default profile for all searches.


Create a Group using a CSV of existing contacts with an ID

You can use the import contacts wizard with a file of the contact IDs that you want to add to a group - in the field mapping screen, just map to contact ID, and in the import verification screen you have the option of adding contacts to a new or existing group.

Hope this helps!
Tamar


D8 - can't view Contributions after upgrade to 5.28.x

I ran root@94ecc520c552:/var/www/drupal# composer update --with-dependencies  and it's happy now. I can see View Contribution. Not sure why - but all good again. Phew!
Detailed output copied below - nothing about brick / money -> but this did work:
root@94ecc520c552:/var/www/drupal# composer update --with-dependencies
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 7 updates, 0 removals
  - Updating civicrm/civicrm-core (5.28.2 => 5.28.3): Downloading (100%)
Download extra files for civicrm/civicrm-core
  - Installing civicrm/civicrm-core:angular (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:angular-bootstrap (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:angular-file-upload (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:angular-jquery-dialog-service (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:angular-mocks (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:angular-route (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:angular-sanitize (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:angular-ui-sortable (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:angular-ui-utils (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:angular-unsavedchanges (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:angular-xeditable (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:checklist-model (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:ckeditor (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:crossfilter-1.3.x (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:crossfilter2 (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:css-color-names (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:d3 (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:d3-3.5.x (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:datatables (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:dc-2.1.x (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:es6-promise (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:font-awesome (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:marked (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:google-code-prettify (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:jquery (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:jquery-ui (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:jquery-validation (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:jstree (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:lodash-compat (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:phantomjs-polyfill (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:select2 (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:js-yaml (5.28.3): Downloading (100%)
  - Installing civicrm/civicrm-core:smartmenus (5.28.3): Downloading (100%)
  - Updating civicrm/civicrm-drupal-8 (5.28.2 => 5.28.3): Loading from cache
  - Updating civicrm/civicrm-packages (5.28.2 => 5.28.3): Loading from cache
  - Updating drupal/smart_date (2.8.0 => 2.9.0): Downloading (100%)
  - Updating drupal/webform_civicrm (5.0.0-beta1 => 5.0.0-beta2): Downloading (100%)
  - Updating nikic/php-parser (v4.6.0 => v4.9.0): Downloading (100%)
  - Updating drush/drush (10.3.1 => 10.3.4): Downloading (100%)
Package container-interop/container-interop is abandoned, you should avoid using it. Use psr/container instead.
Writing lock file
Generating autoload files
  - CiviCRM asset map
33 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Scaffolding files for drupal/core:
  - Copy [web-root]/sites/default/default.settings.php from assets/scaffold/files/default.settings.php

Ran the database updates.
Oh and now I can see the View Contribution. Strange!
Not sure what that could have been?


I'm assuming that you have already imported all your members into Joomla and Civicrm.

It seems to me that you will need at least 2 new custom fields named say 'folder number' and 'instrument name' into which you will make manual entries, and a new dataset (perhaps called 'Membership Information'). The newly created custom fields would then need to be added to either a new or existing profile.

You would be advised to read the custom fields documentation at https://docs.civicrm.org/user/en/stable/organising-your-data/creating-custom-fields/ and profiles at https://docs.civicrm.org/user/en/stable/organising-your-data/profiles/

Hope this helps.


Is there a way to integrate CiviCRM with Magento?

this is possible to integrate, but you would need to develop an extension to do some of it.

eg you can create automatically a mailing and add the recipients, you can add users into a newsletter group....

to my knowledge, there isn't an out of the box ready to use extension that already does it, so you would need to develop it or hire someone to write the needed


Version 4.4.19 is the latest LTS version of CiviCRM.  The next LTS version will be 4.4.20.  V4.4.2 is an old version that came after 4.4.1 and before 4.4.3.

Not surprising CiviCRM is not happy with you trying to downgrade your site.

If you add a link to the question that referred to waitlist error I can have looked at that to see what versions it refers to.  It could be talking about the 4.6.X series.


CiviCRM does not maintain logins or credentials.  It instead opts to let the CMS (WordPress in your case) to manage it all.  CiviCRM can maintain the link between a user account on the CMS with a contact in CiviCRM though.

As Andrew West points out, you need to manage the password via WordPress.


Opt out by email -- return address doesnt exist

it means you haven't properly set up your bounce account - ie. beside not processing the opt-out, you do not process the bounces either -

check the documentation on how to set it up https://wiki.civicrm.org/confluence/display/CRMDOC/CiviMail+Installation#CiviMailInstallation-SettingUptheReturnChannel


Merge contacts deletes left hand user in Wordpress

I think the wording needs updating. What matters is the checkbox at the very bottom of that screen that takes the left user and moves it over to the right. If it's checked then the user account on the left now gets associated with the contact on the right.


CiviReport widgets show access denied on CiviCRM Dashboard

Check your civicrm.settings.php, and make sure that the CIVICRM_BASE_URL matches your site url.

My site was redirecting http://domain.com to http://www.domain.com, but civicrm.settings.php had the version without the www, which was screwing things up.


"Unsupported html-element" error when trying to create or edit a contact record after upgrading to 4.7.13

This is a known issue and applying following patch should fix this issue. https://github.com/civicrm/civicrm-core/pull/7770/files


You can do a shallow clone with cv (and a little stripping of the original ID).

cv api Contact.getsingle id=203 | sed -e 's#"id"#"foo"#g' | sed -e 's#"contact_id"#"bar"#g' | cv api Contact.create --in=json

For the rest, you'd really need to specify the outcomes. Should the spouse be a clone too, or the original? The event registrations are for a cloned event or the original? The employer and other relationships?

1980s movie hijinks will abound as you explore the philosophical implications of cloning, in a time before it was a hellish near-reality.

OK, it's sprint, here's some JS to clone a contact:

// Go find a contact
CRM.api3('Contact', 'get', {
  "sequential": 1,
  "id": 361
}).done(function(res_old) {
  // Grab contact out and remove their ID.
  var contact_params = res_old.values[0];
  // Remove existing ID so we create a new contact.
  delete contact_params.id;
  delete contact_params.contact_id;
  // Create our new contact.
  CRM.api3('Contact', 'create', contact_params);
});

And, to clone a contact and related contributions:

// Cloning a full contact + related contributions (+ ...)
CRM.api3('Contact', 'get', {
  "sequential": 1,
  "id": 361
}).done(function(res_old) {
  // Grab contact out and remove their ID.
  var contact_params = res_old.values[0];
  // Remove existing ID so we create a new contact.
  delete contact_params.id;
  delete contact_params.contact_id;
  // Create our new contact.
  CRM.api3('Contact', 'create', contact_params)
    .done(function (res_new) {
      // Now handle related entities, one by one.
      // Contributions only as an example below.
      CRM.api3('Contribution', 'get', {contact_id: res_old.id})
        .done(function(res_contrib) {
          for (var key in res_contrib.values) {
            var new_contrib = res_contrib.values[key];
            // Returned values need to be adjusted so we create a new contribution.
            // Remove link(s) with previous contribution.
            delete new_contrib.id;
            delete new_contrib.contribution_id;
            // Associate with the new contact.
            new_contrib.contact_id = res_new.id;
            // Contribution.create requires financial_type_id, not provided by
            // Contribution.get. That's a whole other topic. Random ID here.
            // You'd actually need to use api "return" to get all fields.
            new_contrib.financial_type_id = 1;
            CRM.api3('Contribution', 'create', new_contrib)
              .done(function (res_newcontrib) {
                // console.log(res_newcontrib, 'rnc');
              }); //
          }
        });
        // Repeat as above for other related entities you wish to clone.
    });
});

And so on to clone Contact with related Participant, Contribution & Relationship records ... Some thoughts on this:

Cloning a contact or other simple entity is straightforward here.
Cloning related entities got verbose fast!
It's kinda weird that you have to remove both contribution.contribution_id and contribution.id, both contact.id and contact.contact_id ...
It's also kinda weird that you can't pipe a contribution.get back into a contribution.create because contribution.get does not return the (required) financial_type_id field.
Sounds like to handle this last point, the current approach would require using return with the API to specify all the fields on an entity, including the required ones not returned by default.


There are many options/ways to go about doing this! One option would be to add Drupal Commerce module to your toolset. I use it for a number of projects - when I don't really have the need to track what users purchase in CiviCRM (e.g. school cafeteria order details (which child has which meal/drink every single day) and reservations for research institute with/without GPS rentals etc).

The integration you want depends on your needs (cliche...) - but the easiest - no code required one is to string together: Commerce, Commerce_[your_payment_processor], Webform, Commerce Webform, Webform CiviCRM, CiviCRM.

Commerce Webform will let you add Commerce Product Sku-s to your webform - and then these get pushed into the Commerce Cart for checkout; Once checked out -> Commerce Webform has a Rule that then goes back to the webform and mark skus->paid;

Webform CiviCRM will let you pull in info from a specific logged in Existing Contact - relationships etc.

Voila - here's a screenshot of a specific Order in a User's Orders tab:
Drink options are Drupal Commerce SKUs; Student info -> is pulled in from CiviCRM (relationship child of logged in existing Contact);

user/2/orders/32659


How to add Thai language to CiviCRM in WordPress?

Since it's below 20% they aren't included in the download. You can use the instructions in the Administrator Guide wiki to get the files into CiviCRM. There is also more information at https://lab.civicrm.org/dev/translation/wikis/home


Autoloader problem after upgrade to version 4.6.8

This error can occur when there is a clash with a Composer autoloader for another module, e.g. the Currency module.

A README has been added to currency 7.x-2.5 re this error, advising: 'try manually updating Currency's Composer dependencies by running the command "composer update" in Currency's root directory.' This worked for me. Vandalf isn't using Currency but maybe a similar issue with another module? Try searching for files called composer.json under your modules directory.


Is your CiviCRM in a subdomain of the main WordPress site? If so it looks like the problem I had a while back. See WYSIWYG editor not present with WordPress for the details and my work around.


Offline Contribution receipts does not contain custom fields information

I don't think the receipt template for off-line contributions includes the tokens/code to pull in the custom fields. You might want to compare your templates for each - https://www.domain.com/civicrm/admin/messageTemplates?reset=1 and select System Workflow Messages - and compare the two. Then you can attempt copying/pasting in code from the online template and test the email that goes out.


How enable eventcart extension in WordPress CiviCRM?

As of this writing event cart should be enabled but hidden, and currently still relies on the setting under Administer - CiviEvent - Component Settings to switch on and off features. You can verify if the extension is enabled by running this SQL: select is_active from civicrm_extension where name='eventcart';
If it's not, in civi go to Support - Developer - api explorer v3 and choose Entity=Extension, and Action=Enable, and for the key parameter put eventcart. Then click execute at the bottom. The upgrade should have done that though. There should be a record that it did that in ConfigAndLog.


I ended up going for a very hacky solution.

The buildForm hook runs twice when you are adding/editing an activity with custom fields. Once for the activity and once for the custom fields. So, during the activity run I am taking the contact ID from the form array and putting it into $_SESSION. Then on the custom fields run I retrieve it and use it to get the values from the API with which to populate them.

I had tried getting the contact ID from the URL as Sleewok suggested, but it is not in there!


How can I bulk update the contact employer based on the employee relationship?

You can do this directly in the database by running the following update query:
UPDATE civicrm_contact,
  (civicrm_relationship r
    LEFT JOIN civicrm_contact c ON c.id = r.contact_id_a)
  LEFT JOIN civicrm_contact c1 ON c1.id = r.contact_id_b
  SET c.employer_id = r.contact_id_b,
      c.organization_name = c1.organization_name
  WHERE r.relationship_type_id = 5
    AND c.contact_type = 'individual'
    AND c.employer_id IS NULL
    AND r.is_active = 1;

This will update the employer field for all individual contacts who have an active employee relationship and do not have an employer already set.


"Membership can not be used as a Result Column for profile searches" - why not?

Can't you go to Advanced Search & select the memberships you want - you can select which statuses you want, too - the results show status and date of membership if you select to Display Results As Membership - unless I don't understand your question.

Note: For v4.5 and below, Display Results As is in the top right of the Basic Criteria frame in an Advanced Search.

In 4.6 Display Results As is in the "Search Settings" grouping at the bottom of the Basic Criteria frame in an Advanced Search.


WordPress 5.5 'breaks' CiviCRM frontend pages without upgrade to 5.26+

Front end links working again after upgrade to 5.28.2.
Note that there was also an update needed to our Mailchimp webhook for linked groups. Simply done by saving the group settings.
Fingers crossed the Paypal payment IPN link is still good to go.


Discounts with Webform_CiviCRM and Event Registration

According to the wiki Webforms do not support CiviCRM price-sets or discount codes.  You could try creating an issue and asking what it would take to get CiviDiscount supported.


ERROR Upgrading to CiviCRM 4.7.28 - Warning: require_once(CRM/Core/ClassLoader.php):

Check if the file ClassLoader.php is on the file system. The location for Joomla is:

../administrator/components/com_civicrm/civicrm/CRM/Core/ClassLoader.php

Part of an upgrade procedure is to remove the old version and unpack the new version in the same place. If the unpacking fails the above error is shown.

Another reason for the same error can be the wrong value of $civicrm_root in the civicrm.settings.php file. More information in question Fails to open ClassLoader.php file .


You can manually check the warnings by calling the System.check API. There are a couple ways to do this:

Navigate to Help => Developer => API Explorer. Choose Entity=System and Action=check.
If you use Drupal's drush or WordPress's wp-cli, then you can run drush cvapi system.check or wp civicrm api system.check.

Using the API Explorer is probably a bit better in this case because it will run the check with you web server's PHP runtime. In some edge-cases, the web and CLI runtimes may be slightly different.


How to count event attendees with price sets and multiple bookings?

Install Eileen's:
https://civicrm.org/extensions/extended-reports

That will allow you to Filter for participants who have the 'Two Day Passes - 2' option.


Nothing happens on selection of “Actions” dropdown options

Can you try below patch on shoreditch extension to see if it fixes your problem?

diff --git a/js/main-menu.js b/js/main-menu.js
index c4bd2576..c87ba81d 100644
--- a/js/main-menu.js
+++ b/js/main-menu.js
@@ -63,9 +63,12 @@
    * @return {boolean}
    */
   function isQuickSearchOnGoing () {
-    var searchValue = $('#sort_name_navigation').val() || '';
-
-    return !!searchValue.trim();
+    if ($('#sort_name_navigation') && $('#sort_name_navigation').val()) {
+      return !!$('#sort_name_navigation').val().trim();
+    }
+    else {
+      return false;
+    }
   }

   /**

Cheers

Pradeep


Email greeting token not working with mosaico

Thanks to Parvez, for pointing this out.

As well as Mosaico we had the GDPR extension installed. Upgrading to latest version GDPR has fixed the issue!


Drupal login destination is ignored when members log in

I use the r4032login module. I find that it often fixes issues where users hit a login-in CiviCRM page, then redirects them correctly back.


Just navigate to

Administer -> system settings -> option Groups

This will give you a list of all the Languages - so just edit and save the name which you wanted to.

I guess this helps !!!


How to prevent selecting the wrong file format?

[Old question, but may still be relevant]

A quick but hacky option would be to comment out the IIF line in $optionTypes in CRM_Financial_Form_Export::buildQuickForm()

A better option would be create a setting and use that to set $optionTypes which would be a straightforward enhancement. Since a site probably wants the same type for every batch, a setting under CiviContribute Component Settings seems reasonable.


Problem with free memberships on contribution page (Resolved)

As posted under Jenni's comment. This problem was due to some customization in the contribution form. Once we put in a test for a zero balance and a conditional response everything is working again.


Cancelling 1 Participant when Registered Multiple Participants

Just cancel their whole Event Registration and register it again for 3 participant - by this way you can match with amount paid in -

Please take an Back of the DB before trying out anything or create a test system for testing the issue - if this didn't work please let me know


Membership Renewal Reminders not Sending for Upgraded Memberships

The "join date" is the "Member Since" date; it's a bit odd that there's no option to select "Membership Start Date" in Scheduled Reminders.  Perhaps someone else could explain what I'm missing.

You could work around this via CiviRules, or adding the Start Date to the Scheduled Reminders would be simple.  It's SO simple that I'm sure there's a case I'm not thinking of why that's not desirable...

Also - you can create a reminder on the "Member Renewal" activity type instead.


Is it possible to create nested multiselect custom field?

This is not possible via Custom Fields - this is possible via Tags.


What's the best way to code for extensions to work for multiple civicrm versions?

We have used the domain in some extensions, like so:

$civiVersion = CRM_Core_BAO_Domain::version();

if (version_compare($civiVersion, '4.5', '<')) {
  //in CiviCRM 4.4 the invoke function has 5 arguments maximum
  return $hook->invoke($numParams, $arg1, $arg2, $arg3, $arg4, $arg5, $fnSuffix);
} else {
  //in CiviCRM 4.5 and later the invoke function has 6 arguments
  return $hook->invoke($numParams, $arg1, $arg2, $arg3, $arg4, $arg5, CRM_Utils_Hook::$_nullObject, $fnSuffix);
}


Contact Import explode issue with matching contacts

Per comment above the fix was part of CiviCRM 4.7.23 and hence the solution is to upgrade to the latest version where it is fixed.

( I keep seeing issues bumped, presumably by a bot where it is a long-fixed bug & no longer relevant)


You almost certainly want to upgrade your version of CiviCRM at least to 4.6, due to security concerns.

If you're already forcing https for all Civi pages via WP (or via apache/.htaccess, or any other mechanism), then there's no point in setting it in CiviCRM.

The base url setting is likely hard-coded into your civicrm.settings.php file, you'll want to change it there.

In general, having a consistent version of your domain is a good thing, for lots of reasons (SEO and caching are the two main ones).


Active Event Type not appearing in CiviRules

This is a bug I spotted last week and submitted a fix for.  Some of the new conditions in CiviRules 2.9 (including this one) are limited to just the first 10 options.  If you know how to apply a patch, my fix is here.  If not, this will get fixed in CiviRules 2.10.


Upgrade froze at 4.7.8, Can't find valid value for qrid

The error message comes from refreshing the browser rather than the upgrade process.
The last entry before the error is:

Dec 21 12:20:56  [info] Running task: Upgrade mailing foreign key constraints

You can find the detail in CRM/Upgrade/Incremental/php/FourSeven.php
Adding foreign key constraints creates an index which can take a while on a big table.  How many rows (count(*)) do your civicrm_mailing_event_queue and civicrm_mailing_recipients tables have?

Once the upgrade has started, I don't know how dependent it is on the browser, so it would be worth checking the log later to see if you have any further messages from the upgrade.

If you need to start again, then I'd try this:

Restore your database and files back to your starting point at 4.3.8 (you did take full backups didn't you??)
Upgrade to 4.7.7
Check all is working as expected
Take new backups
Try upgrading to 4.7.8

If your mailing tables are large you'll need to be patient. If it fails, you can easily go back to 4.7.7 and then work out what to do next.


Shoreditch theme breaks CKeditor Link dialog box

I just tested with Shoreditch activated as CiviCRM custom css, with seven as admin theme and CK Editor worked just fine.

I also tried to replicate your setup, using Drupal 7, Shoreditch 0.1-alpha25, Civi 5.5.3, Garland as CiviCRM admin theme, and custom CSS URL as other instead of shoreditch and I was unable to replicate your issue.

It seems that you are not actually using shoreditch as your civicrm theme. What is listed as your theme when you look at Administer - System Settings - Resource URLs - Custom CSS URL? Do you typically use Garland as an Admin theme?  I found that the most compatible theme with shoreditch (when used as Custom CSS) is Seven, as I ran into trouble with other admin themes such as adminimal.


How do I use the API to access protected custom data in a hook?

I followed @xavier's answer, but I'm posting what I did in case it's useful to others.

See the code below. The '25' is a magic number for this Custom Field, and can be found using the CiviCRM API Explorer. The foreach loop finds the right result among those returned (even though I specify Custom Field '25' I get results for other fields).

function xxxxxx_civicrm_post( $op, $objectName, $id, &$params )
{
  if ($objectName == 'Participant') {
    switch ($op) {
      case 'create':
        $custom_values = civicrm_api3('CustomValue', 'get', array(
            'sequential' => 1,
            'entity_id' => $params->event_id,
            'entity_table' => 'civicrm_event',
            'id' => 25,
        ));

        $id = null;
        foreach ($custom_values['values'] as $custom_value) {
          if (isset($custom_value['latest'])
              && isset($custom_value['id'])
              && $custom_value['id'] = '25') {
            $id = (int) $custom_value['latest'];
            break;
          }
        }

        if ( ! isset($id) ) {
          break;
        }

        /* Use the $id */
        break;
    }
  }
}


Report of multiple different memberships per contact in one line

Please use the below SQL to list all the membership related to single membership in an single row - I guess this helps

select
GROUP_CONCAT(b.name)
from civicrm_membership a,civicrm_membership_type b where b.id = a.membership_type_id
and a.contact_id in (select contact_id from civicrm_membership GROUP BY contact_id having COUNT(*) > 1)


How can I export vcards for multiple contacts?

This option does not exist (as yet).I'm not aware of an extension to do this either. Your options include:

a. Write an extension that adds the above functionality

b. Use the api to export the data into a program that can generate multiple vcards and use that


Contacts not merged When creating Account on Event Page - DB Error: already exists

Maybe, you should check the profile settings, make sure you check the below input which updates the existing contact if profile finds a duplicate match -


"&id=N": N must be replaced with an integer. View your contribution page and look at the value of id in the URL.


username and password invalid on cronjob setup through anacron on server control panel

Welcome to SE!  The message is "Could not open input file" so the problem is finding the files it needs to run, not the username/password.  What is 'my_php_script' in the cron entry?  Does the cron entry literally include '[mysite]' or is that where you have redacted your site name?
There are several ways to run scheduled jobs but I suggest you use the 'cv' method if you can.  See the documentation for details.
Administrator credentials will work, or you can set up a dedicated user for cron.


Is it possible to use Windows & Cygwin to run Selenium tests or does Selenium require a VM?

Selenium testing can refer to a couple different situations:

A. If you focus on implementing custom sites for clients, then you might create a custom Selenium test-suite which encompasses the configurations/customizations/addons. Basically everything in the tool-chain is at your discretion. Use Selenium (or something else!). Use Civi tarballs (or zipballs or git!). Use Windows (or not!).
B. If you focus on developing changes for civicrm-core, then you're looking at the WebTest suite which is used for canonical QA of official releases. This comes with more rules/constraints, e.g. you need to install Civi from git.

In situation A, the testing methodology has little to do with Civi. Any tool or method for testing general webapps should work the same with Civi. So I'm assuming that you're interested in situation B -- the WebTest suite in civicrm-core.

The basic process of running the WebTest suite is the same on any platform:

Install Apache/MySQL/PHP/Composer/Java/Git/NodeJS/Bower/Drupal.
Install the desired version of Civi (from git).
Setup various config files for the test suite -- most notably civicrm.settings.local.php and CiviSeleniumSettings.php.

I've done #1 and #2 many ways on many platforms (OSX + Ubuntu + Debian + WinXP + Win7, in bare metal and VMs and containers), and I've done step #3 most places (albeit not Windows). Steps #1 and #2 on Windows are PITA -- mostly because they're not standardized (which makes them hard to document/automate/maintain).

Or to give it an upbeat spin: If you can get through step #1 and #2 to a produce a working git-based installation on Windows/Cygwin, then the Selenium bits in #3 will be easy by comparison.


Group - Added (by Email) - how do i prevent this?

Added (by Email) is normally added when a contact is added to the group using a subscription URL provided in any mail.

It is basically used to know how a contact was added to the group.  This information is stored in civicrm_subscription_history table(method column) in civicrm database.

If you want to simply remove Email method from your DB, you can do it by a simple SQL -

UPDATE civicrm_subscription_history SET method = 'Web' WHERE method = 'Email'

To avoid it in future, you can proceed in writing an extension and a post hook which updates civicrm_subscription_history after a group contact is created.


Add new smarty template to an existing page

I am assuming you want to add some stuff at the bottom of the activity page, correct?

First of all, you need to establish if you are adding to a civicrm page or form. You can do a little test with the hook buildForm (see https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_buildForm/) and check the formName or with the hook pageRun (see https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_pageRun/) and check the name of the page.

Once you have established which hook you need to use you can add the template with the CRM_Core_Region.


Schedule Reminder executed but no email sent out

A contact is added to the list of scheduled reminder recipients when they first meets the criteria you have specified and the reminders will be re-sent to that list on your repetition schedule.

If you ran your scheduled reminder for the first time when your membership end date is in 3 days then it won't be on the reminders email list.  Only memberships with end dates 2 weeks in advance will be added to the list.

You can confirm this is the case by adjusting the end date for your test record to 15 days away then wait for 1 day to see if the reminder is sent.

Also, although you haven't asked about this, are you sure you want to send 24 reminder emails to your members each day for 15 consecutive days?  That is what will happen with the settings you describe (assuming your cron runs at least hourly). It seems like a perfect way to annoy your members and get  blacklisted for spamming.

I also suggest you upgrade to 4.4.16 as there have been bug fixes and security updates since 4.4.6  .


How to locate household for event participant

Have you used the "relationship" section of the Advanced Search in conjunction with the "event" section to find the related households of participating individuals?


I would say that programs should either be:

A contact subtype.
A custom entity (defined by an extension).
Not stored in Civi, but in the CMS (assuming Drupal or Backdrop) - and use Entity Reference to connect it to Civi.

Memberships/Volunteers seem like we're stretching the paradigm a little thin.


I think the reminders portion of the memberships has migrated to "Scheduled Reminders" but I believe the status update portion remains in the "Scheduled Jobs" area.

Once you get to 4.7 that warning about reminders is gone:


How do I pass custom field values in CiviReport urls?

http://example.org/civicrm/report/instance/103?reset=1&force=1&custom_65_value=abc should do it.

Note that you can also pass an operator to define the type of filtering you want to do, In this case, for example, adding &custom_65_op=has means that the filter would be 'custom field 65 contains the string 'abc'.

Right clicking on the relevant field in the report and then choosing inspect will open up a window where you can find the appropriate values for different operations.


Can't complete install CiviCRM in Drupal 7

Firstly, you shouldn't post a link to an install screen directly. Please edit your post to remove the link.

Secondly, I saw the install page just fine. It has fields for your civicrm and drupal database settings. Do you mean that filling out this information and then clicking "install civicrm" took you to a blank screen?

If you can't see the screen with the fields that need to be filled in I would recommend clearing your browser's cache.

John


How to debug the API Action process_mailing?

Harshal,

Check the resource url is set properly. Navigate to CiviCRM >> Administer >> System Settings >> Resource URLS. Click on '?' to see if all the variables have correct values and are pointing to right directories. If not then you may need to update the civicrm.settings.php file for $civicrm_root variable until the you get th variables right in resource url.

HTH

Pradeep


Something is seriously wrong with CiviCRM - Replicating Contacts

You can change the email account associated with a WordPress (or other CMS) account by editing the "UFMatch".  If you're SQL-savvy, the correct table is civicrm_uf_match.  If you want to do it through the web browser, and you acknowledge that this is a tricksy maneuver, you can do this:

Go to Support menu > Developer > API Explorer.  "Support" menu might be called "Help" menu, it switched somewhere in 4.6.
Set "Entity" to "UFMatch", "Action" to "Get".  In "Parameters", Set "CiviCRM Contact ID" to your admin account's name.
Press "Execute".
In the "Results" area below the "Execute" button, note the value of "id".  There are two "id" values - you want the one INSIDE the "values" stanza.  See screenshot below.
Copy/paste the entire results somewhere safe in case something gets messed up!  Better yet, do this on a test copy of the database.

Now that you have the ID of the UFMatch record you want to change, go ahead and enter the new details:

Keep "Entity" as "UFMatch", change "Action" to "Create".  For "UFMatch ID", put in the ID you just found.
Press "Add Parameter" twice.
Set the "CMS ID" to the WordPress user ID of the account you want to link to.  Set the "CMS Unique Identifier" to the email address of the same WordPress account.
Press "Execute".


Webform CiviCRM - Update Recurring Payment Profile

I believe a new recurring profile is created leaving the old one intact. We had similar issue where people upgraded from and to auto-renew membership from online and they had 2 recurring in progress i.e payment was deducted twice unless we had to manually cancel the subscription in payment processor for the old one.


Blocking Double Click on Form Submit Button

I was able to disable double submission of the form by adding the following to the bottom of the form's TPL file:

{literal}
  <script type="text/javascript">
    // PREVENT DOUBLE SUBMISSION OF FORM
    CRM.$(function ($) {
      $(document).ready(function () {
        $('form').preventDoubleSubmission();  //block double submission of form
      });

      // jQuery plugin to prevent double submission of forms
      $.fn.preventDoubleSubmission = function () {
        CRM.$(this).on('submit', function (e) {
          var $form = $(this);

          if ($form.data('submitted') === true) {
            // Previously submitted - don't submit again
            console.log("Form Previously submitted - don't submit again");
            e.preventDefault();
          } else {
            // Mark it so that the next submit can be ignored
            console.log("Form NOT Previously submitted");
            $form.data('submitted', true);
          }
        });

        // Keep chainability
        return this;
      };
    });
  </script>
{/literal}


OK Solved

The URL should be

https://www.example.com/civicrm/?page=CiviCRM&q=civicrm%2Fmailgun%2Fdrop&reset=1

AND permalinks must be turned on.

Annoymous access is not required (it seems) for this extension


CiviRules - Configuring a rule to grant a point for each month that a contact has an active membership

Out of the box that is not possible with CiviRules. You need to write your own trigger which fires every month.

The good news is that the SQLTasks extension might do this: https://civicrm.org/extensions/sql-tasks-extension-configurable-recurring-tasks


As artfulrobot suggested, this is not implemented, but will be in V4.7


Need to be able to update a Custom Data but nothing else

You might want to consider using webform_civicrm module. I don't recall how up to date it is with drupal 6 but it should allow you to give your commentators a form which is restricted to just that role, and which has an autocomplete to find the contact and the desired custom field to enter their comment in.

it might even be better if you use the form to add the 'comment' as an Activity if there is the possibility of many 'commentators' adding comments.


I think Webform is behaving correctly. The memberships are being renewed and a single payment is being recorded - that accurately reflects what happened when the form was submitted (it was one payment by one person, not several).


Process Inbound Emails Failed: No mail protocol

At Administer > CiviMail > Mail Accounts (civicrm/admin/mailSettings) you want to see two accounts configured, one for Bounce processing and one for Activity processing

It's possible what you're describing is what happens when there is no account configured for activity processing. If so, the error message is a bit misleading, but I suspect that's what you're seeing. If not, continue :)

Both of these mail accounts require working credentials, see "checking credentials" below.

As well as the username / password correctly set, those mail accounts require a protocol - this is probably IMAP, and probably with SSL. (If your mail provider doesn't use SSL, that's bad IMO.)

Checking credentials

Check the mail logins you have work ASAP. You can see the saved password in the DB or by viewing source when editing the account.

I use fetchmail to verify this from the server, so I can check access works from the server in question as well. For a Gmail account bounce@example.org, this looks like:

fetchmail --ssl --check -u bounce@example.org -p imap imap.gmail.com

You can also check by adding a mail account to your desktop mail client, just remove it afterwards.


Turns out the problem was caused by the fact that there was no 'user 0' record in the Drupal database. Reinstating that, the problem was resolved.


How do I enter multiple payments for one pledge?

Click to expand the pledge payment schedule and then click edit on the expected installment set up for next year - you can change the date back to the current year.

Unless you are dealing with multi-year pledges, consider creating them with a single installment to occur every one day - in this way, the system will transfer the remaining balance as being due the following day as opposed to the following year.

Hope this helps,
Tamar


After moving site to localhost links no longer work with clean urls enabled

After commenting out the line "RewriteBase /" in the .htaccess file, clean urls worked as expected.


How to trigger creation of an Activity based on a Contribution being Completed - via CiviRules

You might try with the "contribution is changed" trigger, as you have already done Pete. Alternative is to create your own specific trigger which combines the two? Or find another field to act upon for the online contributions?


Where can I edit the content of this field that contains the checkboxes of the mailing lists?

It's hard for me to tell 100% for sure since I can't translate the text, but it looks like you're looking for custom fields.

Once you go in there, you should be able to find the field you're looking for.


Household is missing from Dedupe rule page

If you have access to your db you might need to check the table civicrm_dedupe_rule_group. If indeed you deleted the rows for Household, then you might be able to reinsert them there. I would suggest testing on a dev site if you have one.

These are the two rows I see

id  contact_type    threshold   used    name    title   is_reserved

3   Household   10  Supervised  HouseholdSupervised Name and Email  0

6   Household   10  Unsupervised    HouseholdUnsupervised   Name and Email  0


In mailing all recipients are not showing

Indeed, civicrm automatically excludes from the mailing recipients contacts that:

have opted out (do not contact me)
have bounced
have said they do not want to receive emails

(I might miss a criteria or two)

Check some of your "vanished" contacts, the contact summary page should make clear why she isn't included.

Bounce emails is a common issue. It might be that you had a technical problem once and that your mail server wasn't willing to deliver the emails (eg. because you have a quota on how many emails you can send per hour) and were incorrectly flagged as bounce.


How to modify the country list and their id?

You can obviously edit the data directly in the table. Extension https://github.com/CiviCooP/org.civicoop.general.api.country provides an API for Country, you could use that as well


It's certainly possible to use CiviCRM as you describe, and I administer a couple of instances that do exactly this.  I know it's possible with WordPress and with Drupal; not sure about Joomla or Backdrop.

However, in each case where I administer such a setup, either a) there's a need to share data, or b) the architecture decision wasn't my own.  In the case where I designed a CiviCRM multi-client architecture (about 25 instances) I opted to have 25 separate instances sharing a git repository (these days I would consider a Docker image instead).  If data sharing isn't necessary, and it's just a way to keep the code in sync, I don't think a multi-site approach is warranted.


Mailchimp CiviCRM Integration: "Sync Contacts" buttons don't show up on "Mailchimp Pull/Push Sync" screens

The reason why the buttons weren't appearing was because I hadn't linked the Groups in CiviCRM with Mailchimp through "Manage Groups" funcionality in CiviCRM.
Once I linked them, the buttons showed up.


Is there a way to customize the Contact Dashboard?

Laryn covers basic customization of the main dashboard (assuming that's the dashboard you're referring to).  You can also customize further:

If you're running Drupal, Views in Dashlets is a great way to get highly-customized dashlets with no coding.
If you ARE looking for coding suggestions, hook_civicrm_dashboard is the place to look.  Also check out hook_civicrm_dashboard_defaults to handle setting the default dashlets for your users.


Event participants registrations expires for participants that decide to pay later with cash

This is a configurable option in the event settings.  Go to Events menu » Manage Events, click Configure menu » Online Registration next to the event in question, and put a "0" in the "Pending participant expiration (hours)" box to disable this.  See screenshot:


How long is start date? 00h00mm00ss or a 24hour period?

After testing, here is how it works.

If we use again my example with twice the same event date 3rd of April:

Status 1: from membership date to start date
Status 2: from start date to end date.

Status 1 will change by the end of the 3rd of April which means start date from the previous status is "Master" and start date lasts 24 hours. Status 2 will appear on the 4th of April. And this is not related to cron Job.

So if you want to start Status 2 on the 3rd of April at 00h00'00", for example if an Insurance is running from this date or if the member has to be of legal age, then set the end event of Status 1 on start date and -1 Day.


Based on your comments, I believe I see the issue.

CiviMail requires bounce processing to be enabled to work properly.  The documentation might want to emphasize this point - but your error is actually mentioned in the VERP Support section.

VERP is a standard by which you send each email from a different "From" address - so when a server responds that the recipient address is no good, you know exactly which email triggered the problem.  CiviMail determines the VERP address in part by the bounce processing address.  With no bounce processing address, you get the "invalid sender address" either.  You can solve this by configuring a bounce processing address.

EDIT

logs:

Jul  6 11:24:11 srv1 postfix/pickup[15216]: B363D8F4B73: uid=10006 from=<b.2999.15367.c7a49eeef87f384f@>
Jul  6 11:24:11 srv1 postfix/cleanup[19523]: B363D8F4B73: message-id=<20180706092411.B363D8F4B73@shost.tld>
Jul  6 11:24:11 srv1 postfix/qmgr[15217]: B363D8F4B73: from=<b.2999.15367.c7a49eeef87f384f@>, size=89808, nrcpt=1 (queue active)
Jul  6 11:24:11 srv1 postfix/smtp[19542]: B363D8F4B73: to="<emailaddress>", relay=aspmx.l.google.com[2a00:1450:4013:c04::1b]:25, delay=0.09, delays=0.01/0/0.07/0.01, dsn=5.1.2, status=bounced (host aspmx.l.google.com[2a00:1450:4013:c04::1b] said: 553-5.1.2 The sender address <b.2999.15367.c7a49eeef87f384f@> is not a valid 553 5.1.2 RFC-5321 address. u42-v6si5509030edm.404 - gsmtp (in reply to MAIL FROM command))


New membership page as default Drupal register page

As far as I'm aware you can expose a profile on a Drupal user registration page, but not a contribution page. Assuming you will have at least some public-facing content that is not member-only, you can include within this some information about joining, with links to your contribution page.

As part of your profile settings, you can specify whether a user account is created. So, when a user submits the contribution form, they will provide a username and an email address, and a Drupal account will be created for them.

One thing to look out for - if your membership is paid, the Drupal account may well be created regardless of whether the payment is completed successfully or not.

Then you can use the CiviMember role sync module to give the new member a Drupal role with appropriate access permissions when they next log in.


My comment above notwithstanding, there is a possibility that this isn't a mail server issue.

If you recently upgraded to a newer version of PHP, you may have gone from a version that uses mcrypt to encrypt the outgoing mail password to one that doesn't.  To fix this, go to Administer menu » System Settings » Outbound Mail and re-enter your SMTP password and save.


Get "Unable to extract symbolic link" error message when trying to install civicrm 5.19.1 module in Drupal

UPDATE: This is now fixed in 5.31.

I see what you're saying. Thanks for reporting. I've never used that alternative before. I believe it's coming from this line where it excludes the docs folder so the symlink is no longer valid.
https://github.com/civicrm/civicrm-core/blob/5.19.1/distmaker/dists/common.sh#L166
I've made a ticket at https://lab.civicrm.org/dev/core/issues/1393


I think you're looking for Rebuild Smart Group schedule job enabled at civicrm/admin/job?reset=1?

Click on Edit and change the frequency to "Daily". Though, for exact time, you might need to write custom line in the cron file.


It should be possible in WordPress also. WP + Civi has the same capabilities as drupal and joomla.

Deny ACLs are not part of the UI. You can implement them via a hook. Check:

https://civicrm.org/blog/lobo/implementing-a-custom-acl-system-in-civicrm

(search for VIP contacts)


Case Type Filter bug in Case Summary Report? Multiple case types reported

It looks like the * was added as part of this:
https://github.com/civicrm/civicrm-core/pull/7135

I can't immediately see from that why it was added to the case report, but seems to be related to the "not one of" filter.

I'm thinking all the * should be +, except then it would miss cases that might have somehow been created without the char(1) separators (originally case type was potentially going to be multi-valued, and char(1) is historically how civi separates values in multi-valued fields).

If you change the * to + does it work for you?

You can check your database to see how the case types are actually stored with something like

select case_type_id from civicrm_case where left(case_type_id,1) <> char(1);

If anything is listed then that means the + will miss some cases because you have some case types stored without the cntrl character separators.


See https://www.civismtp.com/drupal/accountsetup#invalidproxy - for how to troubleshoot/debug.


Is it safe / wize to empty civicrm_log table

Nothing stopping you flushing it but you will lose transitional information and any log data unless you also have audit logging switched on. You could keep a backup of it in a separate database if you need to stop it becoming a problem.


Sending PDFs on event notifications and reciepts - disabling

Turns out that there is an additional setting on CiviContribute Component Settings that appears to override the Misc System Settings which only becomes apparent when you turn on tax/invoicing.
(/civicrm/admin/setting/preferences/contribute?reset=1)

"Automatically email invoice when user purchases online"

This is somewhat confusing.

Perhaps we should change the labels and descriptions such that it's more clear what these options mean.

Amend the setting on System->Misc page to reference the fact it might be overridden
Change the wording of Civicontribute settings so that it references that by "email invoice" it means attach a pdf (and will override what is set in 1).


It seems the problem is that you're using CiviReport rather than Advanced Search to perform your export.  If you use search and the Export search action, you'll get abbreviated state names.

Since you're exporting contributions, don't forget to set Display Results As to Contributions.  See screenshot:


Stripe plugin not finding js and css files on contribution page

After seeing this question Civi 5.9 not serving extension javascript in WP 5

I put an absolute path in the resource URL in Administer > System Settings > Resource URL

and the issue was fixed.


How to implement nested repeating fields?

Case seems like the good fit for the model, I'd suggest to keep it and create a civicrm extension that provides the UI you need. The integration with angular is fairly complete so loading/saving the activities from your UI should work fine.

If you want to dig into angular for civi, Tim session might help you getting started.


Create new report from template is not working (CiviCRM 4.6.5)

It appeared that this was caused by a theme that I applied to civicrm.
I reverted to the original bartik theme and the report creation worked.


What to do when upgrade to 4.6 failed, but rolling back breaks SMS?

Note that when reloading the database,  it is a lot safer and cleaner to load the database dump into a newly created database. If you reload into an existing database, newly created tables will still exist, which fools the upgrade scripts


Personalize workflow message "Contributions - Receipt (on-line)"

You can't just copy it to the on-line message.  You will need to start with the current on-line message and customise it in the same way that you did the off-line one.  Those are awkward templates to work with but if you just make small changes you should be ok.


@Sudesh After apply the patch, I used a token, because i needed a custom field in the image, maybe works for you(the answer don't fit in comment :S)

The cid require a mail format for example foo@ba.org

hook_civicrm_tokenValues( &$values, $cids, $job = null, $tokens = array(), $context = null ) {
...
 $values[$key]["xxx.app_signature"] = '<img alt="Embedded Image" src="cid:foo@ba.org" >' . '<tagimagetoken>' . $config->customFileUploadDir . $result_image["uri"] . '</tagimagetoken>';

And later replace the token with correct value in the mail hook

hook_civicrm_alterMailParams(&$params, $context) {
  $regex = "/<\s*tagimagetoken[^>]*>([^<]*)<\s*\/\s*tagimagetoken\s*>/";
  preg_match_all($regex, $params["html"], $output);
  if(isset($output[1][0])) {
    $params["html"] = preg_replace ( $regex , "" ,  $params["html"]);
    $params["attachments"][] =  array(
      'fullPath' => $output[1][0],
      'content_id' => "foo@ba.org",
      'c_type' => "image/png",
      'is_file' => TRUE,
      'is_image' => TRUE,
    );
  }
}

And in the email put the token


Loading a page browser says Waiting for another URL (not mine)

Use the Net tab within Firebug while loading the page.  It'll display all the page components that get loaded.  Something in your page (whether you put it there or not) is attempting to load something (an image, a script, who knows) from that domain.