How does one stop people who haven't paid (pending from pay later) from filling an event? We are running CiviCRM 4.5.3 on Joomla! 3.3.3.

As the question says, we want to know how to stop people who haven't paid (pending from pay later or incomplete transaction) from filling an event.

If, for example, an event is set for 16 registrants and 15 have booked and paid and 1 is still pending from pay later, then bookings close. No one can book online; it says the event is full.

We don't want that to happen. We want anyone who is pending from pay later or an incomplete transaction to NOT count towards the total registrants for the course.

In this way, what we want to do is enable someone to come along, book online and pay immediately, and take the place of anyone who hasn't paid yet.

This used to be how it worked in our old version of CiviCRM, so we know it's possible!

Under Administer/CiviEvent/Participant Status, Edit 'Pending Pay Later' and uncheck the 'Counted?' box.  The same can be be done for 'Pending From Incomplete Transaction', but by default it doesn't count.


Why is the receipient count in CiviMail less than the number in the group? No, I mean, specifically! I have a group of 18495 contacts but when I send them a civimail, it shows only 9560 recipients. I get that it's going to be less due to opt outs, etc., but how can I find out more specifically why?
It seems like others have asked this question as well:
https://lab.civicrm.org/dev/mail/-/issues/51

Here's a piece of sql that answers the question to some degree:
select count(distinct(gc.contact_id)), gc.status, e.on_hold, c.do_not_email, c.is_opt_out, c.is_deceased from civicrm_group_contact gc inner join civicrm_email e on gc.contact_id = e.contact_id inner join civicrm_contact c on gc.contact_id = c.id where group_id = the_group_id_you_care_about and e.is_primary = 1 group by status, on_hold, do_not_email, is_opt_out, is_deceased;

And here's what I got from it:
+--------------------------------+---------+---------+--------------+------------+-------------+
| count(distinct(gc.contact_id)) | status  | on_hold | do_not_email | is_opt_out | is_deceased |
+--------------------------------+---------+---------+--------------+------------+-------------+
|                          10374 | Added   |       0 |            0 |          0 |           0 |
|                           1085 | Added   |       0 |            0 |          1 |           0 |
|                              9 | Added   |       0 |            0 |          1 |           1 |
|                              2 | Added   |       0 |            1 |          0 |           0 |
|                              2 | Added   |       0 |            1 |          1 |           0 |
|                           3792 | Added   |       1 |            0 |          0 |           0 |
|                              1 | Added   |       1 |            0 |          1 |           0 |
|                              3 | Added   |       1 |            0 |          1 |           1 |
|                              1 | Added   |       2 |            0 |          0 |           0 |
|                              1 | Pending |       0 |            0 |          0 |           0 |
|                              2 | Pending |       1 |            0 |          0 |           0 |
|                           2546 | Removed |       0 |            0 |          0 |           0 |
|                            313 | Removed |       0 |            0 |          1 |           0 |
|                              2 | Removed |       0 |            1 |          0 |           0 |
|                              2 | Removed |       0 |            1 |          1 |           0 |
|                             67 | Removed |       1 |            0 |          0 |           0 |
|                              1 | Removed |       1 |            1 |          1 |           0 |
+--------------------------------+---------+---------+--------------+------------+-------------+

The pending and removed could be ignored, but it's also nice to see how many people removed themselves from your list.
Note this doesn't give a complete answer, there's still about 800 to go to get down to 9560 receipients, but in this case, it was due to 800 duplicate email addresses. I'd probably need to use a separate sql to show that, but patches welcomed.
Also seems like a civireport to do this might be nice.


Alter custom field view I have created a set of custom fields and I want to hide some data which have specific value, I have tried using
$smarty = CRM_Core_Smarty::singleton();
$smarty->assign('records', []);

to try and hide all the data but they are still showing.. can anyone help me?
thanks a lot

Accomplished it by filtering field data in CRM_Custom_Page_AJAX
in the function getMultiRecordFieldList(),
code goes like:
$data_arr = array('1','2','3');
$obj = new CRM_Profile_Page_MultipleRecordFieldsListing();
list($fields, $attributes) = $obj->browse();
foreach ($fields as $key => $value) {
  if($fields[$key][[custom_field_id]]['data'] && !in_array($fields[$key][[custom_field_id]]['data'], $data_array)){
    unset($fields[$key]);
  }
}


CiviCRM cron job not processing scheduled jobs CiviCRM 4.6.0

I have tried setting up the cron job to process the mailing scheduled job using both the php cli method and the URL with wget.

In the first case, I can get the cli.php to run from the command line and the mail queue is processed but when I try to run the same job from cron, it fails with an invalid username and/or password error. The username and password are exactly as specified when run from the command line (copied and pasted).

With the URL method, I cannot get the job to process the queue either from the command line or from the cron job. The mail remains in the queue.

The cron jobs are being set up in the CPanel.

Are you on drupal for the CMS? in that case, using the drush option is easier to set up than the cli.php in my experience (you don't have to give credentials, and in general, deals better with the authentication of the cron user)


Warning after installation: Invalid argument supplied for foreach() in CRM_Utils_Check_Component_Env anyone an idea what this warning is about? I get this warning straight after fresh installation.

Warning: Invalid argument supplied for foreach() in CRM_Utils_Check_Component_Env->checkVersion() (Zeile 522 von /www/myorg/sites/all/modules/civicrm/CRM/Utils/Check/Component/Env.php).

My Environment:

OS: OpenSUSE Leap 42.3
PHP Version: 5.5.14
CiviCRM Version: 5.7.0

Would be great if someone can support!

Regards,
Said

The code in question is checking whether CiviCRM has updates available that you haven't installed yet.  If you've reached line 522, that means that CiviCRM has that info - possibly from checking https://latest.civicrm.org/ but more likely because it saved the results in version-msgs-cache.json.  However, the error is suggesting the info isn't present.

This could be a weird file permission issue, or perhaps a malformed version-msgs-cache.json.  If you know you're running the latest version of CiviCRM, I'd ignore this and see if it clears up when the cache expires (72 hours).  If you're not running the latest version, please edit your question with a) the CiviCRM version you're running, b) the contents of version-msgs-cache.json, which should be in your CiviCRM uploads folder.


"Cron Not Running" system error after update to 4.7.1 The detail is:
"No cron runs have been recorded."

Just updated from 4.6.10. This has never been a problem with other updates. What do I have to do to fix this? We need cron to send mailings as I recall.

Edit: There are a lot of errors including "cron not running" on the civicrm wordpress demo site so it's not just me. I think something needs a tidy.
Another error on the demo site:
"Failed to make directory (extensionsDir) at "/srv/buildkit/build/wpmaster/wp-content/uploads/civicrm/ext/". Please update the settings or file permissions."

I noticed on all my sites that I upgraded, it also initially had an error that cron was not running.  But after the first automatic cron run triggered by my host cron job, this went away.


CIVI-SA-2015-010: VERSION INFORMATION DISCLOSURE The announcement of this security advisory (https://civicrm.org/advisory/civi-sa-2015-010-version-information-disclosure) does not provide a patch that can be applied, and examining the CiviCRM git repository of the new versions (4.4.20, 4.6.10) the change(s) made are not apparent.

Can anyone shed light on the changes made for this security advisory?

Fix for 4.6 is: https://github.com/civicrm/civicrm-core/pull/7101

Fix for 4.4 is: https://github.com/civicrm/civicrm-core/pull/7102


Where is the membership id? Hi I am testing updating memberships via the front-end 'import memberships'tool.
The [membership id] is required in order to do this. For the life of me I cannot find a way to get it out of Civi  (cannot go inot the db, need to stick to stick to the frontend interface for users).

It's not on screen, not available as a field on membership reports, not available to set up as a profile view...

We are on 4.6.12
Any tips appreciated.

Go to Membership > Find Memberships and perform a search.
Select All XX records
From the action menu select Export members
Choose Select fields for export and Continue

You can then choose to export the membership ID, membership type, membership start date (all of which are needed to update a membership) and contact ID or Display Name or whatever else you need to match the memberships in the database to your external list of memberships.


CiviCRM Status/Connection Show 404 Not Found Site running on PHP 7.2.18, FPM applicated server by nginx.

I have been having an issue with my Status & Connections page loading, i can't seem to figure it out.

My Error Logs show the following:

2019/05/21 11:11:11 [error] 16655#0: *8187 "/var/www/vhosts/test.co.uk/httpdocs/civicrm/a/index.html" is not found (2: No such file or directory), client: 69.323.48.14, server: test.co.uk, request: "GET /civicrm/a/ HTTP/2.0", host: "test.co.uk", referrer: "https://test.co.uk/civicrm/admin/extensions?reset=1"

All the other pages load correctly what i don't understand is why its looking for a index.html?

Thanks,

The issue was due to the fact i was using FPM applicated server by nginx instead of FPM applicated server by Apache.

I am not sure how to find a work around using NGINX but it is working now, thank you to everyone whos tried to help!

Thanks


View of CiviCRM Profile Fields on Drupal User Edit Page Permissions How do I create a view which is embedded in a Panel overriding the Drupal User Page, which shows the data from a CiviCRM profile ONLY to the currently logged in user, and that user has permission to see their own data in CiviCRM. The goal is to make a pane which shows some basic information about their civi contact record, so they can click a link, and edit it, and return to see it changed. Thanks!

To get a Drupal View to show only the civi data that belongs to the current user, set up a View Relationship to join the Civi Contact to the Drupal User. Then add a Filter using 'current user = Yes'. Should do the job. Hopefully my terminology is close enough to what it says on the page


How do i force a field to be required When i add a new contribution to a contact, i would like to avoid an empty "Source" field.
I need it to be *required.
Have anyone already done this ?
thanks

There isn't a way to do this in the user interface but you can write a small extension where you either:

Use https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_buildForm/ and change the field definition so that it's required.
Use https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_validateForm/ and set an error if the field is blank.


How to link to the CiviEvent registration page from a node field using entity reference Scenario is the Content Type has an Entity Reference field set to use Target Type = CiviCRM Event. This currently gives me a radio set for the civievents to choose from.

My concern at this point is about how the field can be displayed. i would like it to provide a link to the registration page of civicrm - i set the Field Display to 'link label to entity reference' but am just getting the event id with no link

A more elegant approach would be to use field formatters, in a module, e.g. as below. The advantage with this would be that it works with multiple values and automatically disappears once the registration is closed. You could make it do other things when the registration closes also.

/**
 * Implements hook_field_formatter_info().
 */
function mymodule_field_formatter_info() {
  return array(
    'mymodule_civievent_id_register' => array(
      'label' => t('CiviEvent Registration Button'),
      'field types' => array('entityreference'),
    ),
  );
}

function mymodule_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $element = array();

  switch ($display['type']) {
    case 'mymodule_civievent_id_register':
      civicrm_initialize( );
      foreach ($items as $delta => $item) {
        try{
          $event = civicrm_api3('Event', 'getsingle', array('id' => $item['target_id']));
        }
        catch (CiviCRM_API3_Exception $e) {
          // break;
        }
        if ( time() <= strtotime($event['registration_end_date']) ) {
          $element[$delta] = array(
            '#markup' => l('Register','civicrm/event/register',array(
              'attributes' => array('class' => array('button-like')),
              'query' => array('id' => $item['target_id'],'reset' => 1)
            )),
          );
        }
      }
      break;
  }

  return $element;
}


iAmAnIntentionalENoticeThatWarnsOfAProblemYouShouldReport and other event registration warnings in 4.7.1 On the Find Participants page for an event:

Warning: array_keys() expects parameter 1 to be array, null given in CRM_Utils_Array::formatArrayKeys()

In the Drupal log, lots of these:

Notice: Undefined variable: iAmAnIntentionalENoticeThatWarnsOfAProblemYouShouldReport in CRM_Contact_BAO_Query::buildClause() (line 5382 of /home/[site]/public_html/sites/all/modules/civicrm/CRM/Contact/BAO/Query.php).

And these:

Cache rebuild lock hit: event_init

And when viewing a contact, these:

Warning: array_keys() expects parameter 1 to be array, null given in CRM_Utils_Array::formatArrayKeys() (line 1037 of /home/[site]/public_html/sites/all/modules/civicrm/CRM/Utils/Array.php).

And these:

Notice: Undefined variable: onlySubType in CRM_Custom_Form_CustomData::setGroupTree() (line 163 of /home/[site]/public_html/sites/all/modules/civicrm/CRM/Custom/Form/CustomData.php).

And these:

Warning: Missing argument 4 for CRM_Custom_Form_CustomData::setGroupTree(), called in /home/[site]/public_html/sites/all/modules/civicrm/CRM/Custom/Form/CustomDataByType.php on line 56 and defined in CRM_Custom_Form_CustomData::setGroupTree() (line 153 of /home/[site]/public_html/sites/all/modules/civicrm/CRM/Custom/Form/CustomData.php).

It looks like these are related to paid event registration - the client is complaining that the transactions (using Authorize.net) are taking a long time to process and are even timing out.

It looks like going to 4.7 was a big mistake, but now I'm stuck - any ideas? And help greatly appreciated...

That is a lot of errors, so here are a few answers.

Not helpful for you, but in response to your last few comments, I'd say you should also be testing upgrades before doing them on a production site, and making sure you've backed up your site so you can roll it back in case of disaster. That is particularly true of a complex existing site, which appears might be true in your case.
You posted this some time ago when 4.7 was relatively new, so I'd guess that the latest 4.7 will have resolved many of these problems. I agree that early 4.7 releases perhaps should have come with more warnings. Releases do go through a lot of testing, but CiviCRM is a complex code base and especially when you are using it in non-standard ways, there can be some subtle issues that arise.
Your collection of warnings and notices need to be addressed one at a time, it's not necessarily one problem and solution. Some of them may be connected, but the limited error log you've posted above doesn't give us enough to go on. You'll need to dig into the CiviCRM error log in the files/civicrm/ConfigAndLog directory where a more complete backtrace should be. Looking at the datestamps and order of the errors will give you a good idea of which of the errors/notices are the key ones to look at, and which ones are just symptoms of the earlier problem.
iAmAnIntentionalENoticeThatWarnsOfAProblemYouShouldReport is a clever mechanism that I believe Eileen introduced to help diagnose issues. I'd start with that one as being the most helpful symptom of what might be the key issue, which is likely related to custom values.
The cache rebuild lock hit might also be a key symptom - i.e. if there are resource issues, that might cascade down into some of the other issues.


Upgrading CiviCRM under Drupal 8: How can I get around this error? I'm guessing that the upgrade process for CiviCRM under Drupal 8 is something like this:

Use composer require to get the latest version of the package.
Navigate to the database update URL through the browser (http://example.org/civicrm/upgrade?reset=1)

But trying this now, I see what appears to be a version conflict around the pear/log package:
$ composer require --update-with-dependencies civicrm/civicrm-core:5.28.3
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - drupal/core-recommended 8.8.8 requires pear/pear_exception v1.0.0 -> satisfiable by pear/pear_exception[v1.0.0].
    - drupal/core-recommended 8.8.8 requires pear/pear_exception v1.0.0 -> satisfiable by pear/pear_exception[v1.0.0].
    - drupal/core-recommended 8.8.8 requires pear/pear_exception v1.0.0 -> satisfiable by pear/pear_exception[v1.0.0].
    - Can only install one of: pear/pear_exception[v1.0.1, v1.0.0].
    - Can only install one of: pear/pear_exception[v1.0.1, v1.0.0].
    - Can only install one of: pear/pear_exception[v1.0.1, v1.0.0].
    - pear/log 1.13.2 requires pear/pear_exception 1.0.1 -> satisfiable by pear/pear_exception[v1.0.1].
    - civicrm/civicrm-core 5.28.3 requires pear/log 1.13.2 -> satisfiable by pear/log[1.13.2].
    - Installation request for civicrm/civicrm-core 5.28.3 -> satisfiable by civicrm/civicrm-core[5.28.3].
    - Installation request for drupal/core-recommended (locked at 8.8.8, required as ^8.8) -> satisfiable by drupal/core-recommended[8.8.8].

Installation failed, reverting ./composer.json to its original content.

How can I get around this problem and upgrade CiviCRM under Drupal 8?

You can use:
(confirming this syntax)
karins-MBP:d8civicrm.local sysadmin$ composer require pear/pear_exception:'1.0.1 as 1.0.0'
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 0 updates, 0 removals
Writing lock file
Generating autoload files
  - CiviCRM asset map
30 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

Syntax in
https://docs.civicrm.org/installation/en/latest/drupal8/
is wrong. Will put in an MR -> https://lab.civicrm.org/documentation/docs/installation/-/merge_requests/10


CiviCRM Dashboard Not Working - WordPress installation I had no errors when installing CiviCRM (with Sample Data checked); I just had to manually create the database. The only "warning" was that my hosting company is using PHP 5.4.

I can see the CiviCRM link on the dashboard menu, but nothing drops down. On the right (CiviCRM Home) I only see the welcome message and some links. When I click the "System Status: Error" link, the welcome message blurb disappears, but no error message or anything else appears. Refreshing the dashboard data on CiviCRM Home does not help.

CiviCRM 4.7.7

WordPress 4.5.2 - fresh install on a subdirectory of my main site

No other plugins activated.

wp-content/uploads/civicrm/civicrm.settings.php - settings file is here

PHP 5.4.45

wp-content/plugins/files - full permissions (777)

BASEURL - http://paintballheroes.ablewebs.com

I am trying to test CiviCRM before we make the decision to use it for our not-for-profit organization (BC Balance and Dizziness Disorders Society http://www.balanceanddizziness.org). Any help would be greatly appreciated.

Check the civicrm log in /../uploads/civicrm/ConfigAndLog or /../plugins/files/civicrm/ConfigAndLog

Check the error_log. phpinfo() will tell you where it is.

I had upgrade problems because the CONSTRAINT clauses were missing for my FOREIGN KEYS


Adding new grouping to a report I'd like to add a new grouping option to an existing report.

Is it possible to group by the payment instrument in the Contribution Summary Report? The option Payment Instrument is not showing up on the Grouping tab.

Is there any tutorial or explanation to do this? Or am I on an absolutely wrong way?

Thanks!

There is no way to do this in the User Interface, you would have to develop a little extension that customizes the Contribution Summary Report by adding the Payment Instrument as an additional grouping. You can find some guidelines here: https://docs.civicrm.org/dev/en/latest/framework/civireport/

Or log a request at Gitlab for an improvement to the core report. You can do that here: https://lab.civicrm.org/dev/core/issues


How to include source page URL in donation page email receipt? When my CiviContribute donation pages send out email receipts, I would like the emails to include the URL of the source page (i.e., the WordPress page that contains the shortcode of the CiviCRM donation page). Is there a Smarty variable that has that source (or "referrer") page URL? Or is there another way to accomplish this? (Seems like this would be a good variable to have.)

I'm on WordPress 5.23 and CiviCRM 5.13.

I've added the {debug} token to the HTML email template to inspect the available variables and didn't find anything quite suitable. There is a variable called $printerFriendly that seems to have the page URL but with extra query string parameters. Is there a Smarty feature to discard the query string and retain just the page URL?

(Side note in case it helps someone: if you include {debug} in both the HTML email template and the plain text email template, the contribution page will fail with a "too many redirects" error, and the contribution does not get recorded!)

I think the short answer must be "no". Once the client is on a CiviCRM page, there are usually a few clicks before you get to the email receipting code, so at that point, there wouldn't be any record of the referrer (unless you have some code that is saving it).

There should be a way to construct at least one version of a contribution page url, if you have that in your smarty variabloes, using the contribution page id, like:

https://yourdomain.org/civicrm/contribute/transact?reset=1&id={contribution page id}

There's probably a way to convert that to a wordpress shortcode if you're smarter than I am about such things.


Does CiviMobileAPI generate any logs? I enabled CiviMobileAPI extension and Civi CRM Api Fix plug in (I'm using Wordpress) but can't login in the CiviMobile app (iOS). It keeps showing the Server API Error (Unknown error) message.

I wonder if there are any logs that can help investigate what can be causing this issue.

WordPress 5.2.2 with Primer theme
CiviCRM 5.15.1
Civi CRM Api Fix. plugin 1.0.0
CiviMobileAPI extension 4.0

CiviMobile iOS app 4.0

Thanks!

Have you made sure the directory for the extension is com.agiliway.civimobileapi and not com.agiliway.civimobileapi-master (or anything else after civimobileapi).?
The directory has to be correct.
Also do you have the new civicrm api fix? Or the old one?


Exception: Serialization of 'Closure' is not allowed in serialize() using CiviCRM with Omnipay & Mollie I run into an error I cannot explain (I lack the skils) where I can use the help of the community.

I;m trying to get the Mollie payment provider working with Omnipay Multiprocessor extension.

When I submit a paid event registration I get a fatal error with:

Exception: Serialization of 'Closure' is not allowed in serialize()
(line 156 of CRM/Core/BAO/Cache.php).

The line from that file it stumbles upon is:

public static function setItem(&$data, $group, $path, $componentID = NULL) {
(...)
$dataSerialized = serialize($data);

When I put some debug code into that file I get the content of $data:

Array
(
    [defaults] => Array
        (
        )

    [constants] => Array
        (
        )

    [values] => Array
        (
            [Register] => Array
                (
                    [qfKey] => 60b217c8aa3b27fef940a9e5e9b7fb55_7233
                    [entryURL] => https://www.ourdomain.nl/civicrm/event/register?reset=1&id=1
                    [first_name] => iemand
                    [last_name] => eennaam
                    [email-Primary] => user@localhost.net
                    [hidden_processor] => 1
                    [scriptFee] =>
                    [scriptArray] =>
                    [additional_participants] =>
                    [priceSetId] => 7
                    [price_8] => 16
                    [payment_processor_id] => 3
                    [bypass_payment] =>
                    [_qf_default] => Register:upload
                    [MAX_FILE_SIZE] => 134217728
                    [_qf_Register_upload] => Continue
                )

            [Confirm] => Array
                (
                    [qfKey] => 60b217c8aa3b27fef940a9e5e9b7fb55_7233
                    [entryURL] => https://www.ourdomain.nl/civicrm/event/register?reset=1&id=1
                    [_qf_default] => Confirm:next
                    [_qf_Confirm_next] => Continue
                )

            [ThankYou] => Array
                (
                )

        )

    [valid] => Array
        (
            [Register] => 1
            [Confirm] => 1
            [ThankYou] =>
        )

    [_qf_button_name] => _qf_Confirm_next
)

I lack the skills and knowledge to understand why this throws the 'Exception: Serialization of 'Closure' is not allowed' error. Anyone who spots the problem or has a clue to find an answer?

(php 7.0 but also with 5.6 / civicrm 4.7.14 / drupal 7.53)

The answer appears to be that something is getting put in the session by the omnipay code that the CiviCRM caching code doesn't like. Here's the issue that describes the full details:

https://github.com/eileenmcnaughton/nz.co.fuzion.omnipaymultiprocessor/issues/17

And here's a patch Eileen includes that seems to have solved the issue:

https://github.com/eileenmcnaughton/nz.co.fuzion.omnipaymultiprocessor/commit/933806960e1a4c5968e9e6145feffb79eb77b415

FWIW - most of the thread is involved in getting good debug info.


How to change ckEditors config.colorButton_colors I previously did this by hacking

config.colorButton_colors = 'fff,eee,ccc,aaa,999,666,333,000';

into

./sites/all/modules/civicrm/packages/ckeditor/config.js

the config has moved .. I can probably still do this in the bower_components, but it makes it all too clear it's a hack and will again be overridden in due time.

So, is there a place to customize ckeditor config safely, and more advanded than the wizard ?

Sorry. The question is sufficiently answered here

How do I override the default CKEditor configuration?

The file I was looking for is

sites/default/files/civicrm/persist/crm-ckeditor-config.js

but it isn't 100% permanent :-/


Why does a 100% discount not work? We recently ran our first civiEvent with online bookings (and quite complex pricing). I installed civiDiscount and configured two coupon codes for groups who should be free - the event organisers and the National Council of the parent organisation.
I set the discount level to 100%, and while the coupons were registered as having been used, it did not change the price on the registration form at all.
When I set one of the discounts to 99%, it worked as it should.
Fortunately, all our payments were offline, but it meant we couldn't report reliable income figures.

From my reading of the documentation, a 100% discount should be possible, so is this in fact a bug?

Richard

Richard - I have used 100% discount w/Civi 4.3 + pricesets. I assume you included all your priceset options in your discount code configuration (you said you had complex pricing) since the 99% worked? CiviEvent code checks that prices do not go below zero but zero should be fine. You mentioned you're using offline registration ("Register Event Participant") which goes through a different codepath in cividiscount than 'online'.
You or one of your team could set up a test participant, use the 100% discount, and afterwards query the MySQL database table cividiscount_track, and see if you don't find a row for that participant (cividiscount_track.entity_id is a FK on cividiscount_track, where entity_id = civicrm_participant id).


Can the API be used to find contacts with multiple tags? If I tag a contact as a Major Donor and a Volunteer, I can retrieve their contact ID via the API using an API call such as:

$result = civicrm_api3('EntityTag', 'get', array(
  'entity_table' => "civicrm_contact",
  'tag_id' => "Volunteer",
));

or

$result = civicrm_api3('EntityTag', 'get', array(
  'entity_table' => "civicrm_contact",
  'tag_id' => "Major Donor",
));

but I want to find only contacts who have both tags, I have to resort to making two API calls and comparing the results.

This seems to be the case across various CiviCRM APIs. For example, it doesn't seem to be possible to make an API call to retrieve groups that are of type ACL and Mailing List. Am I missing something? Have folks developed a recipe for this kind of query?

You can achieve this by giving the key 'tag_id' an array containing multiple tags. Something like this:

'tag_id' => array('volunteer', 'Major Donor'),


Disable Inline Editing of Fields in Profile Form I have created a profile where authenticated members can edit some custom fields which are part of a multivalue fieldset that I created. Everything works fine - the links to view, edit and delete all work ok. However, on the profile listings page itself the inline editing feature is not working for dropdown list custom fields, only for text and text area fields. When a user clicks on one of the dropdown fields, it simply dissappears and throws a jQuery error:

jquery.crmEditable.js:19 Uncaught TypeError: Cannot read property 'id' of undefined
    at n.fn.init.$.fn.crmEditableEntity (jquery.crmEditable.js:19)
    at HTMLDivElement.getData (jquery.crmEditable.js:204)
    at HTMLDivElement.<anonymous> (jquery.jeditable.min.js:17)
    at HTMLDivElement.dispatch (jquery.min.js?p9n09n:3)
    at HTMLDivElement.r.handle (jquery.min.js?p9n09n:3)

Is it possible to disable completely the inline editing for that profile form? Or perhaps for authenticated users? They can still edit the record by clicking on the edit button.

I am using CiviCRM 4.7.28 with Drupal 7.59.

It looks like this was a bug in CiviCRM. I have written a fix and submitted a pull-request for review. Your testing and feedback can help expedite the review process to get it accepted into the codebase.

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


Can you use Mosaico to create message templates Is this a thing that is possible? In other words to create a template in Mosaico (that is, the Mosaico CiviCRM extension) and to store it for use in User driven message templates such as emails?

You can try the Mosaico Message Template Synchronisation extension.
From the README:

This extension enables you to use CiviCRM-Mosaico templates with scheduled reminders, personal messages, etc. It does this by automatically copying each template from Mosaico to a CiviCRM "Message Template".
When you install the extension, all existing MosaicoTemplates will be automatically copied to MessageTemplates.
When you create or update a MosaicoTemplate, the corresponding MessageTemplate will be updated.

There's a few gotchas/caveats to look out for - see README on branch issue/6 for fuller explanation about what happens with things like unsusbscribe links which don't apply to a log of message templates.


How can I allow opt-in subscription to specific groups with Webform CiviCRM? I'd like to provide the option for users to subscribe to one of two CiviCRM Mailing List groups when submitting a Webform.

From the CiviCRM docs I can see how to use a CiviCRM-integrated Webform to add contacts to specific groups when they submit the form OR allow users to select from any of the groups in CiviCRM via the "User Select" option.

Is there a way to allow users to opt-in to a limited selection of existing groups, rather than allowing all groups?

Once you have selected 'user select' for the groups in the CiviCRM section of the webform admin section, save and return to the 'components' tab (where all the webform fields are listed).  Find your Groups field and edit it from the component list. If you change the list from Live to Static, you can then select which of your groups will appear as an option to the user.


Having issues with recording new payments for registrations paid with credit cards I am running CiviCRM (4.6.9) on Joomla (3.4.5), and am having issues changing registrations for events and posting payments due to changes to the registration options for an event.

We have a lot of events with options.  We use price sets pretty heavily to cover all of those options.  If a user registers for an event, and pays with a credit card all works as it should.  However if that same user comes back to us and wants to change their registration, by wanting an additional option like attending a banquet, the status for that event for the user gets changed to Partially Paid.  This is where it all break down for us.

If the user chose initially to pay offline (by sending us a check), instead of by credit card, we can at this point open the Event record for editing, and see a Record Payment link right there where we can click, record a new payment that we took offline and everything is perfect.

For the user that paid with a credit card, we don't see that Record Payment link.  If we return to the event listing for that user, click on the More link and choose Record Payment, we immediately get an ugly looking error.  The error is:

An error has occurred.
 0

 Sorry but we are not able to provide this at the moment.
No payment information found for this record

Return to home page.

For watever reason the error is not displaying right.  If I look at the jumbled mess of an error I see the following:

Sorry but we are not able to provide this at the moment. No payment information found for this record

Why does this functionality work fine for events paid offline, but not events paid with credit cards?  It also works fine for event registrations that are created through the backend, even if I choose that it is paid with a credit card.

How can I fix this?  Or work around this?

Has anyone else run into this?

Any help or guidance would be appreciated.  Thank you.

I don't have the same error, but a similar issue with workflow for processing additional cc registrations where we can't "submit a credit card edit to an event registration" to add these items for folks. That would be ideal.

Last year we worked around by either having them run through registration again for only the additional item or submitting a credit card registration for the additional item in the back end, then consolidating the line items in one record, updating the amount paid, forcing the status 'registered' at the top, and deleting the second event registration.

This caused a bunch of problems for example the event report dollar amount was off because when editing event registration line items you can't add in discount codes or edit the event total, only the contribution total. Therefore only the contributions dollar amount with that financial code was correct.

In the end the event ran and the badges printed. Not a great answer but this is what we ad-hoc threw together and wanted to say you aren't the only one who has had this workflow issue for events.


bulk email to two addresses - tokens don't work We have separate records for students and parents in our database. All student records include both their personal emails (if they offer one) and their parent's email. We would like to send emails to both addresses and have recently set up so we can include both in bulk emails. (Before we had a separate group for parents & students and included both groups in emails).  However the tokens do not work when sending bulk emails to both addresses. I sent an email to notify students of their audition results, but the field was blank when they received it. When sent to students only (using regular email, not bulk email) or to students w/ a CC to the other email address, it worked. Is there a trick to making the tokens work, or is it just too confusing to use tokens for more than one address in the record? Thanks for any help

Wordpress Version 4.9.5
CiviCRM 4.7.31.

You could try this extension for tokens & see if it helps
https://github.com/eileenmcnaughton/nz.co.fuzion.civitoken


How do you make certain category options non-selectable (but still there/reportable)? Is there an extension available that allows you to make certain category options (on a 'pick list') non-selectable, but are still there/reportable?  And can you do this based upon a previous field selection?  E.g. The 'pick list' for a field called 'Group Name' doesn't allow an 'old' choice to be selected, but it is still there on other records and is reportable.  And could the availability of the pick list be dependent upon a previous choice, e.g. an 'Area' field calculated using address?

I'm afraid this isn't a scenario covered by core or an extension. Only custom fields can be set readonly. For a fast but hacky solution you could try a javascript approach.


How can I integrate (optional) membership sign-up on a CiviEvent registration form? I'm creating a paid event that has free/discounted tickets for members. The idea is to encourage visitors to become members when signing up for the event. I feel like this is a common usage scenario, but don't see how this be done without sending people off to a separate membership registration form.

There's an extension my colleague built for a client of ours that handles this: https://github.com/aghstrategies/com.aghstrategies.eventmembershipsignup

It should work for you. Unfortunately, we just haven't had the time to get it documented as much as I'd like (or to list it in the extensions directory). If you end up implementing this, please drop me a note at andrew -at- aghstrategies.com. I'd love to hear what suggestions you have, since it is on my to-do list to get it listed and write the documentation needed.


In API Explorer, Add Parameter and Add Option links do not work I've been looking at the API explorer for a while. It's a great idea: the API is poorly documented, but this would be a perfect sort of live documentation. but I never got it to work.

I can choose an entity and an action. But add parameter, add option and chain api call dont do anything. The labels 'name','operator' and 'value' are hanging there with question marks and helptext. 'operator' says 'Choose an operator from the list', but there is no list.

I can execute, but I get a very generic call without parameters. I get no javascript errors. I have this on multiple Drupal 7 installations - looking at CiviCRM 4.5.3 now.

Everyone seems to be happily using it...

This sounds like a javascript problem to me. Try the steps for troubleshooting javascript in CiviCRM.

You can also compare the explorer on your site to the one on the drupal demo and see if you can glean any clues from those differences (ignoring the one unrelated difference that the demo is running 4.6 and you are using 4.5)


Mass update / import bulk email preferences? So - here is the deal - we have an excel sheet with hundreds of contacts - with which email they would like set as bulk mail. While doing an import, I see no option to indicate bulk mail preferences - any suggestions?

Civi 5.10, Drupal 7

The API CSV import extension using the email entity has a way to import these.

It looks like you can match on external ID.


What setting is this asking me to change? I created what I thought was a simple custom report and am receiving the the following error message.  I can get to the file, and normally I can stumble through deciphering what Civi is trying to tell me- but I'm at a loss on this one. Kind regards.

To me it looks like you need that $joinsForFiltersOnly parameter in your implementation of customDataFrom


Add contacts to group using CSV with contact e-mails I'm looking for a way to add contacts to a group from a CSV file including e-mails of contacts already existing in Civi.
When I import into Civi, I use the update option and select primary e-mail, and even when the e-mail is the same, it ads a second e-mail entry with the same e-mail that already exists.
Is there a way around this? It doesn't seem like it's the correct action as it pollutes the contact card with repeated e-mail entries.

You have to select an appropiate Dedupe Rule so that the importer can detect by which criteria you want to treat an existing contact and a imported contact as the same.

Using the predefined Email - Unsupervised Rule should work for this purpose.

If you chose the same location as is defined for the contact email it will just update the existing contact.

However, the option to select the primary e-mail does not seem to be working as expected. It will create a new adress without setting a proper location.

You may want to report this as a bug.


How to set up Accruals Accounting/Deferred Revenue? In a video from 2017, CiviAccounts and the accruals accounting feature/deferred revenue are explained quite well: https://www.youtube.com/watch?v=bNIHXBA6EEg (starting from minute 39). According to the video, the feature was supposed to be new in 2017. What it does is, instead of creating one transaction for an annual membership, it should basically break it up into twelve monthly transactions.

In a test installation, I am now trying to set this up. I.e. when someone purchases an annual membership on July 1, half of the revenue shall be recognized within the current year, the other half in the following year.

Although I enabled the check box in the settings of CiviContribute ('Enable Deferred Revenue') and set up the deferred revenue account under the financial type 'Member Dues', I absolutely cannot get this feature to work. - According to the video, nothing else needs to be done.

Unfortunately, I cannot find anything about this in the User Guide or in the System Administrator Guide. Also google reveals only very little information, e.g. 'CRM-16189 Deferred Revenue Support', but this did not really help me in configuring my system.

This leads me to two questions:

Does this feature actually exist or has it never been completed or
removed?
Am I missing any obvious or hidden settings that I need to
tweak in order to make deferred revenue work?

Any help is much appreciated!

Edit: I am using CiviCRM 5.11.0 with Wordpress

There is probably a bug in storing the settings for this option, which prevents it from having any effect. See also here.


Tokens to SMS Messages Can you add tokens to SMS messages? We want to send a link to a form to see if users want to opt in to our SMS messages, but we would like to send a link similar to a website link in an email with the checksum token. Is this possible through Civi SMS?

Yes, you could use tokens in sms messages.

Be aware an issue with the required character length on sms, and the fact that tokens would represent different character lengths.


Drupal Views Exposed Filter (operators) and CiviCRM Multiple Tags We expose CiviCRM contact tags (Tag Name) fields via Drupal Views in order to create simple contacts search by tag(s) via Drupal as front-end.
Since almost every contact has more than one tag,  "Allow multiple selections" option for exposed filter is being selected in order to narrow searches. However, search by multiple tags gives all contacts, not an "exact match" (mean, only contacts which have all of selected tags).

Example:

Bob has "black", "white", "yellow" tags;
Sarah has "red" and "yellow" tags.

Searching by "yellow" returns Bob and Sarah
Searching by "black" and "yellow" returns Bob and Sarah again, while we've expected to get Bob only.

How it would be possible to perform an exact match search?

Drupal 7.x, CiviCRM 6.21

P.S. civicrm.core.inc describes "civicrm_handler_filter_pseudo_constant" as exposed filter handler for civicrm tag field; civicrm_handler_filter_pseudo_constant extends views_handler_field_in_operator and allows only "Is one of" and "Is not one of" operators to choose from; wouldn't it be more logical to use something like "many_to_one" handler? If memory serves, it's being used for Drupal taxonomy and provides exact match for search nodes by multiple taxonomy terms.

Indeed, civicrm_handler_filter_pseudo_constant.inc should be altered and

class civicrm_handler_filter_pseudo_constant extends views_handler_filter_in_operator

should be replaced by

class civicrm_handler_filter_pseudo_constant extends views_handler_filter_many_to_one

Funny, I made a pull request in May 2016 (against wrong branch though so it was closed) and made it again in October. Hope this time it will pass.


How can I create A Report based on counties? As part of our initial member sign-up, we ask folks to list the name of the county where they reside.  I want to create a report identifying members who live in specific counties.  e.g.  A grouping of all members who live in the following counties:  Audubon, Guthrie & Adair.

I cannot seem to find a way to create a report that allows me to use the category of 'county'.  Do I need to create the group first?  How do I do that?  Any help would be appreciated.

This is a good question!  I don't believe there's a report that lets you filter by county "out of the box".  Instead, you can create a smart group, then filter by that:

Go to Search menu » Search Builder.

Build a search using the criteria as I've outlined them in Screenshot 1 below.  Note that assuming you're in the US, there's two "Adair" counties, but no good way to know which is which.  Look at your search results to make sure you're getting the right one.
Press "Search".

Depending on your needs, you might be done!  This may be all you need.  If you need to use this as the basis of other searches/reports (e.g. "show donations from residents of these 3 counties"), you'll want a "smart group":

From search results, select "All records", then select "Group - create smart group" from the "Actions" menu.  See screenshot 2 below, though if you're using an older version of CiviCRM than 4.7, it may look slightly different.
Name your group, press "Save Smart Group".

Now, when doing future searches/reports, you can use the results of the "3 county" search as a "base group" to search/report within.


Quick search not working At some point within the past few upgrades (currently on 4.7.11) our quick search stopped working (i.e. you type a name, but the search doesn't yield results as you type) and we've no idea why. How would we even start to troubleshoot and/or resolve this issue?

Thanks Joe for the comment. In the search settings, all of the checkboxes for "Autocomplete Contact Search" were checked. We disabled all but "Contact" (which is set by default) and "Email" and now it's working.


How do I add "honoree section" to new contribution form in the backend? My "new contribution" form in the backend does not have an "honoree" section for manual entry. I am assuming it should be there (it is enabled on our online forms). How do I enable/expose this section?

We are using 4.6.27 on D7.

Here is the solution that I've come up with: first, we created a custom field set for "Honoree Section". We then create two fields in the set (or as many data fields as required for your application). In my case, 1) radio selects for "honoree type" (two types, "In Honor Of" and "In Memory Of") and 2) a text field for the name of the person memorialized with the gift.

Next we create a custom profile for contributions called "Honoree Section" and use the custom fields.

The searchable profile data can now be entered into the backend along with the soft credit. Also, the soft credit can now be entered for the family of the deceased, whereas the contribution can be "attributed to" the deceased (searchably connected to the deceased via the custom profile).


Upgrade from 5.14.1 to 5.15.0 throws error Running on Drupal 7.67

Running the DB upgrade from 5.14.1 to 5.15.0 stalls on 'Update smart groups where jcalendar fields have been converted to datepicker', and afterwards retrying or reloading Civi shows same as error as the ConfigAndLog shows at the bottom:

Nov 17 12:58:43  [info] Running task: Cleanup old files

Nov 17 12:58:44  [info] Running task: Checking extensions

Nov 17 12:58:44  [info] Running task: Begin Upgrade to 5.15.alpha1

Nov 17 12:58:45  [info] Running task: Upgrade DB to 5.15.alpha1

Nov 17 12:58:46  [info] Running task: Upgrade DB to 5.15.alpha1: SQL

Nov 17 12:58:47  [info] Running task: Fix errant deferred revenue settings

Nov 17 12:58:47  [info] Running task: Fix cache key column name in prev next cache

Nov 17 12:58:48  [info] Running task: Update smart groups where jcalendar fields have been converted to datepicker

Nov 17 12:58:48  [info] Running task: Finish Upgrade DB to 5.15.alpha1

Nov 17 12:59:04  [info] $CRM_Queue_ErrorPolicy_reportError = Array
(
    [is_error] => 1
    [is_continue] => 0
    [exception] => Error 64: Cannot make non static method CRM_Core_DAO::copyCustomFields() static in class CRM_Event_BAO_Event in /home/tamera/www/dev/sites/all/modules/civicrm/local/code/CRM/Event/BAO/Event.php, line 2387
    [last_task_title] => Finish Upgrade DB to 5.15.alpha1
)

Any ideas?

As per comments this was caused by a customized Event.php file in the custom php folder set at administer - system settings - directories.


Will CiviCRM work with Backdrop? I've been keeping one eye on the Backdrop CMS since the fork from Drupal was announced, especially because part of the core audience is "small to medium sized ... non-profits" and the philosophy suggests that there is a goal of making future updates less of a major overhaul, which is appealing to some of the lower budget groups we work with.

I was curious if there is an official statement about CiviCRM/Backdrop and future support (or lack thereof)? How hard would it be to modify CiviCRM's Drupal 7 support to include a Backdrop option? I know that CiviCRM isn't "most modules", but the site claims:

  "Upgrading most modules to Backdrop can be done in days or even hours. With a familiar architecture, it's easy to upgrade."

CiviCRM is very flexible. The current (4.6) core integrates simultaneously with Drupal 6 & 7, Wordpress 4.x, and Joomla 2.5x & 3.x. With a few tweaks it can even work as a standalone app without any CMS.
Could it work with Backdrop? Undoubtedly yes, and it might even be as easy as you suggest. Will it be released with a Backdrop version? I think that's up to everyone. If this is a priority for the community, then it will be a priority for the community.
UPDATE: Take note of CRM17711 on Jira for this topic ("Add Support for Backdrop")
UPDATE2: Backdrop support is officially in place, with a stable download and its own installation page on the Wiki.

The Backdrop team has been working together with Tim Otten to provide support for Backdrop CMS within CiviCRM.
As you may know, Backdrop is a fork of Drupal that maintains most of the APIs of Drupal 7 while providing new functionality like configuration management, more powerful layouts, and built-in Views in core. Backdrop is trying to bring down the cost of ownership by shifting Drupal's backwards-compatibility approach. Drupal basically commits itself to drastic changes every few years, while Backdrop is committing to a more WordPress-like approach of minimized API changes while providing new functionality.
Backdrop's primary audience is budget-restrained sites; putting us in the SMB, education, and non-profit space. Basically, the same we hope as CiviCRM. Supporting Backdrop would be a great way to bolster both projects.
As Backdrop is so similar to Drupal 7, we expect the porting to go fairly quickly, though it may result in a lot of similar code to the existing Drupal integration. Considering Backdrop (or Drupal) may diverge further in the future, it's likely that adding Backdrop as a new top-level CMS (e.g. the same as WordPress or Joomla) would be a better long-term approach for maintenance.


Did Yahoo geocoding stop working? Geocoding used to work fine, but I discovered today that some contacts added within the last week or two hadn't been geocoded.  I tried editing the addresses manually, and tried running a scheduled / batch job, but the geocoding still didn't happen.

I changed the geocoding provider from Yahoo to Google, and now it works, which is good enough for me.  But I wanted to put this out there in case there's a systemic problem.

Norris, I think you might be right. I was just testing some code and dumped out the raw response from the Yahoo geocoder and got this message:

  geo.placefinder table is no longer supported

Might be time to revisit our Yahoo integration.


Is there an update safe way to disable smarty security in templates for CiviMail? I'm using CiviCRM 4.6.14 and I want to write a Template for CiviMail using the smarty templating engine.
I need to add some PHP code to that template, but obvious the security setting is set to true for CiviMail so I get errors.
My temporary solution is to change the settings in the file "Smarty.class.php", but that file will be overwritten at the next update.
So is there a way, to disable the security setting in the template or any other update safe way, to disable that setting?

Thanx in advance

It was hard to finish reading all of your post due to the sirens that go off in my head whenever someone talks about disabling security settings.

Nevertheless, is there really something here that you can't do with a token or a hook? Please could you describe your use case a bit more?

In general, the update safe way is to overwrite core files in a custom templates extension - put it in sites/default/files/civicrm, next to extensions. (That path assumes Drupal, it'll be different in Joomla. You will need to update your resources folder in the Administer menu.

Once you've done that make sure to replicate the folder path in the templates folder. You will likely need to update this file on each CiviCRM update as part of the update procedure (if it changes in core that is).

Good luck!


Problem with Mass Registration There is no option to "Add Contacts To Event" once multiple contacts are selected from a specific event. How do I make this option available?

Create a temporary group, add the selected contacts first to a group and after that go to search, select the contacts in temporary group and add the contacts to the event


Migrating CiviCrm to WordPress CMS from Drupal The wiki guide doesn't work. I ran into issues concerning moving the civi contacts...ie Drupal users. This is obviously very very crucially needed. I have over 5000 thus I cannot move forward. I was told to write a new question. So here it is. If anyone has tried this and had it fail... Please help

Update: Being that this is complicated and likely several glitches will arise after trying this again... I've opted never to do this. It's too risky and I'll lose historical information back to 2012. I'm unwilling. Seems not many successfully do this or is see much more on Stack exchange

Export a csv list from Drupal or phpmyadmin? Then import it into WordPress via a plugin like https://wordpress.org/plugins/import-users-from-csv/ You can disable/delete the plugin after you are done. You will also want to use the plugin https://wordpress.org/plugins/civicrm-wp-member-sync/ to create/sync the users in Civi.


Upgrading old CiviCRM/Drupal and switching hosts I have a CiviCRM 4.1.6/Drupal 6.30 site that I haven't touched in years. I would like to switch to a new host and bring both packages up to the most current versions. To make it even more complex, I'll need to change the domain name. For example, it would go from something like xyz.example.com to xyz.com.

Can anyone recommend a strategy for doing this as easily as possible with the least number of issues? Do I have to upgrade in place and then port to the new host, or is there some kind of shortcut? And what's the best way to handle the domain name change?

Thanks for any tips large or small!

I'd recommend something like this:

Take a snapshot of the filesystem and database(s) and get the current site running on the new host and new domain name. See: https://docs.civicrm.org/sysadmin/en/latest/misc/switch-servers/
Upgrade the filesystem to Drupal 7 (updating the CiviCRM package to CiviCRM 4.1.6 for Drupal 7 in the process of this upgrade so it is compatible but not functionality different beyond that).
Once Drupal 7 is running smoothly, you can upgrade CiviCRM to the most recent version. Backup databases often before attempting next steps.
Then, once CiviCRM is running smoothly on the latest version, you could either stay on Drupal 7 for the next few years OR upgrade to Backdrop CMS or Drupal 8 if you still have some energy.


API vs GUI language code inconsistency or how to best use ISO 639-3? I am comparing the values that appear in GUI Administration > Localization > Preferred Language options with the ones returned with the API. There you can see that Chinese Taiwan and Chinese China have the same value zh so that they cannot be distinguished.

Then when you use the API:

$result = civicrm_api3('OptionValue', 'get', array(
  'sequential' => 1,
  'option_group_id' => "languages",
  'options' => array('limit' => 0),
  'id' => array('IN' => array(557, 558)),
));

Then it will return beside this GUI 'value' also 'name':

{
    "is_error": 0,
    "version": 3,
    "count": 2,
    "values": [
        {
            "id": "557",
            "option_group_id": "78",
            "label": "Chinese (China)",
            "value": "zh",
            "name": "zh_CN",
            "is_default": "0",
            "weight": "137",
            "is_optgroup": "0",
            "is_reserved": "0",
            "is_active": "1"
        },
        {
            "id": "558",
            "option_group_id": "78",
            "label": "Chinese (Taiwan)",
            "value": "zh",
            "name": "zh_TW",
            "is_default": "0",
            "weight": "138",
            "is_optgroup": "0",
            "is_reserved": "0",
            "is_active": "1"
        }
    ]
}

The Administration GUI keeps this 'name' hidden and I cannot change it nor add it in new Languages, but it is this what is stored as preferred language for a contact, which again can be seen using the API and 'value' is not used anywhere.

May be I am missing something obvious here, but am I right that the GUI does not provide any facility to change code to for instance ISO-639-3? What would be the preferred way to get rid of Civi's default language 'name' options and use an ISO-639-3 equivalent in stead? Setting the 'value' is useless.  Is there anyone that has been doing this successfully? Should I pursue using the API or direct MySQL manipuation to import my own Language options?

First I needed to find a source of ISO-639-3 to import in MySQL. I found this one at the SIL website
I used phpmyadmin to import the table, used \t as column delimiter and used iso_639_3 as table name
I used phpmyadmin to discover that (in my case?) the language option_group_id equals 78. Just search for a language for instance Dutch and you will find the row with the value.
Knowing this value you can now delete all default language options:

DELETE FROM civicrm_option_value WHERE option_group_id = 78
Alternatively you can also deactivate them:

UPDATE civicrm_option_value SET is_active=0 WHERE option_group_id = 78
I used this query to import all languages in active state:

SET @weight := 0;
INSERT INTO civicrm_option_value ( option_group_id, label, value, name, weight, is_active )
SELECT 78, Inverted_Name, Id, Id, (@weight := @weight + 1 ), 1
FROM iso_639_3
ORDER BY Inverted_Name ASC
Alternatively I found that this query allows me to import all iso-639-3  options but only a subset activated:

SET @weight := 0;
INSERT INTO civicrm_option_value ( option_group_id, label, value, name, weight, is_active )
SELECT 78, Inverted_Name, Id, Id, (@weight := @weight + 1 ), (SELECT Id IN('nld','eng','fra','deu','ita','por','spa'))
FROM iso_639_3 iso
ORDER BY Inverted_Name ASC


Smart Groups Not an Option after Upgrade We recently upgraded our Wordpress 4.7.1 installation to CiviCRM 4.7.15. I went to make a smart group today and noticed the option was not available. I previously added people to smart groups by going to Report> Membership > Select Approriate Report and results > Action > Add to Smart Group

When I got to Action now on the left there is no Add to Smart Group.

When I got Contacts > Manage Groups > I see the Smart Groups, but can't create a new smart group. I can create a regular ole managed group though.

Did something change?

A smart group is a stored search. To create one a search is the starting point.

Do a search.
Opt for all records
Use the action "Create Smart Group".

In order to make a smart group selecting contacts that have a membership, you can start with an advanced search.

For example - Go to Search -> Advanced Search. Expand the membership section (this takes a bit of scrolling, in the illustration below I closed the other sections):

Add the selection criteria (in the example Lifetime membership and Current Member). Execute the Search, do select all results and select the Create Smart Groep Option. Below an example of the Create Smart Group screen with criteria:


Your Organization Profile for CiviCRM - Survey - To help us make an educated decision We are really hesitant on moving toward CiviCRM because of our size (40k donations per year and > $5M in income with 150k contacts). We have put together this survey below...what is the best way for me to connect with other similar sized organizations to help me get answers to these questions? We are coming from BlackBaud Raiser's Edge.

Last year we priced other options based on our record count and everything that would work will cost us $30-50k annually. Enter CiviCRM...We have the tech skills to implement it, but it may not be a viable solution since its not one of the "big players" in the Donor DB world - you know the $30-50k/yr ones. Thanks for any help. I really want to give CiviCRM a whirl, but need to make sure

What is the income/donation-size of your organization ($10k, 100k, 1M, 10M, 100M)?
How many donor records do you currently have (1k, 10k, 100k, 1M, 10M)?
What are your top 2 donor Metrics and Key Performance Indicators (KPIs) you track within the CiviCRM reporting capabilities?
What are the top 2 strengths you experience with CiviCRM?
What are the top 2 weaknesses?
How much time per month do you spend customizing reports inside of and outside of CiviCRM, if applicable?
How long have you used CiviCRM to date?
What CRM database did you use before?
If budget wasn't a constraint, would you still use CiviCRM or is there another system you would choose?
How many Donor Development employees do you have? How many are power users of CiviCRM? How many are Development officers for fundraising?
How do you best track moves management in CiviCRM?
Who supports your instance of CiviCRM- you or an external vendor?

We have around 14 million contacts & 35 million contributions. I believe our budget is less than $100 million per year but it's in the ballpark

I think we've used CiviCRM for over 10 years. We did evaluate changing about 4-5 years back and instead used a fraction of the cost of changing to invest in performance fixes & improvements which have been merged to core & resolved the issues we had.

Our top metric is $$ in :-)

We have internal support for CiviCRM & our fundraising technology in general. We do have a part-time developer dedicated to needs around CiviCRM and have maybe 20-30 people on the non-tech side of our fundraising & partnerships team at a guess

Top strength is definitely the fact we can customise the things we want changed. The biggest weakness is probably some aspects of the UI - but we are hoping to support some of the proposed changes to that over the next couple of years


HTTP 500 error trying to import contacts Running CiviCRM 5.11 plugin on WordPress. This is a fresh install.

Running on a shared hosting service (Arvixe).

PHP release is 7.1

The Import file is less than 10,000 records. One time, it was successful but all subsequent attempts with different files fail with an HTTP 500 Internal Server Error.

Arvixe tech support has set file/directory permissions but won't tell me exactly what they did.

Time out is set to 300 in PHP

What else can I do?

I am switching to DigitalOcean. Works fine there. Bye bye Arvixe.


After upgrade to 4.7, Activity dashlet and Activity list in Contact not showing any activites I'm still having this issue and I've upgraded to 4.7.2. I've searched everywhere and can't find a cause. I'm not getting any error the activities just don't show in the list.

I upgraded to 4.7 without any issues. The Activity dashlet doesn't show any activities nor do activities show under the contact tab. I did a search a found there was some error causing this and it was marked as fixed. It was related to running php 5.3 but I'm running php 5.5.29 on civihosting.

What's causing this?

https://forum.civicrm.org/index.php?topic=36800.0

I do not get a datatables error. I get no error at all. If you look at the screen grab, notice it says, Showing 1 to 11 of 11 entries but no activities are showing.

Also see the screen grab for the Activities tab in the Contact.

This is a bug related to recurring activities. Issue filed https://issues.civicrm.org/jira/browse/CRM-18165


unexpected extensions listed in system status Anyone any idea why I have the following extensions listed in System Status as being up-to-date in addition to the ones I expect?
Contribution cancel actions: Version 1.0
Event Cart: Version 1.0
Financial ACLs: Version 1.0
Theme: Greenwich: Version 1.0
Sequential credit notes: Version 1.0

I haven't knowingly installed them. They aren't listed under System Settings > Extensions and there is nothing for them in the uploads/civicrm/ext directory. I have cloned the site, updated from 5.26.2 to 5.33.1, updated UK Gift Aid extension and installed (and now uninstalled to check) Civirules extension. Before I re-run the process (to find out if I have done anything stupid by mistake, I wonder if anyone else has seen anything like this. Not event sure what some of them are.
I'm on WordPress.

A couple versions ago the concept of "hidden" extensions was introduced. The theory was it would allow for moving bits of code out of core and into extensions without anyone noticing any difference at first, and then at some point make them visible/optional. You'll find them in the civicrm_extensions database table and also in the ext folder in the root of your civicrm folder.
So technically those are all still officially part of core right now, just the code has been rearranged.


contribute page for membership admin use only I am using Civicrm 4.6 with Joomla! 2.5
I am looking to port our existing manual membership to civicrm. I have set up the membership categories and creating new memberships through the civicrm backend seems to work fine.

The charity will have two or three people who will administer memberships. I have created a Joomla user group and ACL for membership admin and added these users to the group. I have created a menu item which this ACL can access which is linked to a civicrm contribute page for individual membership renewal.

The issue that i have is that when one of the membership admin users logs into Joomla!, follows the link to the contribute page they appear to only be able to add a membership to their own contact record and not to be able to select the contact for which they will administer the membership add.

Any ideas on which i should look at to enable these administrators to process membership on any contact (or to add a new contact to process a membership).

I don't want the membership administrators to have access to the full civicrm, just to give them what they need to carry out their role.

Many thanks
Dave

If you set your link to the contribution page so that it has the following at the end of the url - &cid=0 - then you should see the page load with no contact linked to it. And if you set the cid to an existing contact id, then people with permission would see the form loaded with that contacts data in place. EG

http://d46.demo.civicrm.org/civicrm/contribute/transact?reset=1&id=1&cid=0 should load with no contact

http://d46.demo.civicrm.org/civicrm/contribute/transact?reset=1&id=1&cid=203 should load with contact 203

Does that help you when combined with the right permissions?


Which tokens are available for activity? I want to send a reminder to the assignee of an activity and I want to add in the message the phone number (preventing the assignee to log into CRM and spare clicks).
I found these tokens from here:
{activity.activity_id}
{activity.subject}
{activity.details}
{activity.activity_date_time}

and they work properly with CiviRules but they are not enough. It would be great to have extra tokens with e-mail, phone number and a few others.
Are they available right now or could they be available? If needed we could write an extension.

This extension could possibly help - https://civicrm.org/extensions/activity-tokens


Emails from CiviCRM completely rejected by GMX (Germany) everyone,

I have sent a newsletter to the admin team for testing purposes. All admins with GMX email accounts did not receive this email. The email was also not found in the spam folder or trash. With a newsletter to all contacts this would probably never have been noticed.

The same email sent directly from the sender address arrived. I suspect that the header entries from CiviCRM (bounce, precedence: bulk) are causing this. Does anyone have similar experiences and maybe even a solution? GMX is an often used email provider in Germany.

Best regards

Marion

The same email sent directly from the sender address arrived.

Based on the above piece of information, there are two lines of investigation that are worth pursing.

One key difference between sending a message via CiviMail vs sending directly (i.e. from your mail program) is the "sender envelope from address", which is not the same thing as the "From:" address in the message itself. A CiviMail message uses a sender envelope from address using the domain in the mail account used for bounce processing.

i.e. look at [yourdomain]/civicrm/admin/mailSettings?reset=1 and look at the row that says "Used for bounce processing". All emails sent using CiviMail will use that domain in the sender envelope from address.

So, your first line of inquiry is to look at the SPF record of that domain and make sure that the machine that sends out the email has an entry in some form, i.e. that your smtp server ip is blessed to send out mail from that domain.

If that has already been done properly, then the second line of inquiry is to look at the IP of your outgoing mail machine and look at it's reputation. It's possible that GMX is using a blacklist to block email from your mail machine's ip.

If both of those seem like issues that are too technical, then you really will need someone who understands them to sort it out, otherwise you won't be getting much value from CiviMail.


Is there a way to integrate CiviCRM with Magento? We're looking to replace MailChimp in our organisation as a number of people are questioning the cost.  One area we're using heavily is integration with Magento - automatically emailing abandoned carts, sign up to mailing list as part of checkout process, that sort of thing.  Is there a way to get this functionality in CiviCRM?

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


Drupal CiviCRM update account info with CiviCRM profile I want to allow my registered Drupal users the ability to update certain information in their CiviCRM contact record. I've created a profile and made enabled the following

Standalone form or directory
Drupal user registration View/Edit
Drupal user account

The profile now shows up on the user's Drupal account page and is prepopulated with any information that is already in their contact record, which is great. I did notice, however, that if I use the link found by 'Use Profile-Create mode' the information is not prepopulated for that same user. Is this to be expected or might I have done something wrong?

I would also like to be able to use the Current Employer field as a select list whereas I can have a group of employers show up. We have employers such as The Nature Conservancy and people put in TNC, Nature Conservancy, etc. and that creates many iterations of the same organization. I was able to use this via Drupal's webform CiviCRM integration module but it does not seem possible with just the CiviCRM profiles. Is this also true?

What I currently have is the CiviCRM profile on the user's account page and then I need to redirect them to the webform to collect their employer information which is not ideal. If I get rid of the CiviCRM profile and put everything in the webform then it no longer is attached to their user account page in Drupal.

Just wondering if others have dealt with this same thing and how they went around solving it.

"Create Mode" means just that, creating a new contact, thus the fields will appear blank. You want edit mode, with a url like /civicrm/profile/edit?reset=1&gid=N where N is the ID of the profile.


Error on activity import: "'1' is not a valid option for field custom_42". Can I find which field this is referring to through the admin interface? I am importing custom activities (with some custom fields in them) and getting "'1' is not a valid option for field custom_42."

The problem is that I can't figure out which field it's referring to. "1" is not a value I am trying to import so that's no help. Do I have to go into my back end to find the the interface label for "custom_42" or is that exposed in the admin interface anywhere?

Running 4.6.4 on Drupal.

You may find that you can go to this url and find the field you are looking for
/civicrm/admin/custom/group/field/update?action=update&reset=1&id=

Or, to reverse engineer this, go to any existing custom field and mouse over the view/edit links and you should see the field ID along with the field group ID - i just dropped out the field group id to make the url look a little less intimidating.


Where did the standard HTML window go on mailings with mosiaco installed? I'm testing an upgrade to 5.9.1 and have installed mosaico (versions listed below) and have a few issues with mailings.

Try to create a new mailing.  I don't see the standard HTML window with the wysiwyg editor.  I see one for Design which has the mosiaco templates in it.

If I select a standard (non-mosaico) template, I don't have anyway to see it nor edit it.

If I select a mosaico template, I get that editor and can edit it no problem.

Another issue that may be a clue, is if I hit preview HTML either from the main screen or from within the mosaico editor, nothing happens.  I get a db error with FK constraint on civicrm_mailing_trackable_url.  The sql is doing an insert and doesn't have the mail id.  It is only trying to insert url.

Clearly this works else where so I must have something basic wrong.

Versions:

civicerm 5.9.1

mosaico 2.0-beta4.1528762072

FlexMailer 1.0-beta1

Shoreditch 0.1-alpha30  I could never get this work.  It says it's optional so I skipped it.  In playing with this, the not working could be related.  It might work, in the mailing screens I wasn't getting the options for regular template and it looked like things weren't necessarily in the right place.

If you want to open the traditional UI for mailings, you can find this under Mailings -> New Mailing(Traditional) nagivation menu.

If you don't see that menu item, try updating mosaico ext to latest OR simply visit -

http://site-name/civicrm/a/#/mailing/new/traditional


Opt out bulk email option ignored With our CRM the unsubscribe button adds a user opt out for the bulk emails.

The CRM still sends bulk emails to people who use the unsubscribe button or has the do not email and opt out of bulk email options.

Any help would be great.

I haven't been able to recreate this issue on our sites, or on the demo site.

The test I did was:

Add a user with an email address to a group
Include that group in a new CiviMail mailing
1 recipient is displayed (correct)

Change the user to have the 'No bulk email' setting
Create a new CiviMail mailing, including the group
0 recipients are found (correct)

I couldn't see an automated test that ensures this (I've logged this on JIRA: https://issues.civicrm.org/jira/browse/CRM-19473).

What version of CiviCRM are you using that encounters this issue? Are you sending emails straight from Civi or integrating with a third party email provider? Perhaps you could write out the exact steps to recreate the problem?


How can a member view past and present pledges? How do I add a Pledge so that he may view & pay pledges thru the self-service payments page? Thank you for your help.

You can give your contacts (who have a user login) access to their Contact Dashboard - and once there they can see Pledges

If you don't have CiviPledge enabled go to Admin > System Settings > Enable components.

If you have enabled it but don't see it you may need to go back to your Permission settings and enable those.

You will also find that when you add a Pledge it offer a SelfService Payments Page option.

Maybe worth reading the chapter in the civi book


Automatically create recurring donations from bank statements I'm using the wonderful civibanking extension to import the bank statments, including creating the contributions from the donors that directly wire money to our bank account

for the "normal" bank transfers (one off) it works great, we lookup the donor, create a new contribution and all is well

However, we have some donors that sends the same amount every month. They have a different transfer type (one of the column in the bank statement), so we can identify them.

Instead of "simply" creating a contribution, we'd like to
1) check if there is an active recurring contribution of type "bank transfer", if not, create it
2) add the contribution as one linked with that recurring contribution

Is this possible to do out of the box? Any guidance on how to code it?

I am not sure if Civirules does it(pretty sure it doesn't). Through an extension i would use pre hook to check and create contribution recur when a contribution is created. Here is small snippet

function extension_civicrm_pre($op, $objectName, $id, &$params) {
  if ($objectName == 'Contribution' && $op == 'create') {
    $bankTransferFinancialTypeId = civicrm_api3('FinancialType', 'getvalue', [
      'return' => "id",
      'name' => "Bank Transfer",
    ]);
    if ($bankTransferFinancialTypeId == $params['financial_type_id']) {
      // perform checks if contribution recur exists
      try {
        $recurringcontributionId = civicrm_api3('ContributionRecur', 'getvalue', [
          'return' => "id",
          'contact_id' => $params['contact_id'],
          'amount' => $params['total_amount'],
          'contribution_status_id' => ['IN' => ["Pending", "In Progress"]],
          'options' => ['limit' => 1],
        ]);
      }
      catch (CiviCRM_API3_Exception $e) {
        $recurringcontribution = civicrm_api3('ContributionRecur', 'create', [
          'contact_id' => $params['contact_id'],
          'installments' => '12',
          'frequency_interval' => '1',
          'amount' => $params['total_amount'],
          'contribution_status_id' => 'In Progress',
          'start_date' => date('YmdHis'),
          'currency' => 'USD',
          'frequency_unit' => 'month',
        ]);
        $recurringcontributionId = $recurringcontribution['id'];
      }
      $params['contribution_recur_id'] = $recurringcontributionId;
    }
  }
}

  Note: This snippet is not tested since i have just created it and is
  pure blind coding.

HTH

Pradeep


copy Address of Primary Registrant to Additional Registrants I am once again working on an event registration for an annual convention. I'd like to kno, and searching has thus far yielded nothing, is it possible to copy the first registrant's address to subsequent registrants? We often have families registering their additional household members and duplication of data entry is often cited as an annoyance. Thanks in advance.

Rachel

You can share address between contacts. You can use civicrm_address.master_id to store the parent address id programatically or through UI by adding/updating address and selecting 'Use another contact's address'.


Bulk update relationships to household members We have household memberships. Ive noticed that some households are missing a relation to a residential community that they reside in. This community is common to those households. I tried to select all those contacts and use a profile to batch update but it wont let me make a profile for relationships to households?

Is there a way to do this.

Ie:

Mary Smith
Jane Doe
Trevor ward
Leon Jones

they all live at Smithtown Residential Resort (this is a relationship called residential community)

I want to select the records then tell Civi all these household contacts belong to the residential community

You don't need Batch Update for this - you can use the search action "Add relationship - to household".  Note that this is the 4.7 language - 4.6 probably calls it something like "Add relationship to household".


How to get the number of event "actual participants" from the API? I have an event with a price set which allows multiple registrations on one email.  It accurately counts the number of people registered against the maximum allowed.  How do I get the number of "actual participants" from the API?  This snippet only counts the number of registration records:

{crmAPI var="ParticipantS" entity="Participant" method="getCount" sequential="1" event_id=$event.id }
Count = {$ParticipantS.count}

You can total up the participants by looking up the line items.

https://gist.github.com/ginkgomzd/5ca327a0711fdb586529a4936accb244


Is there a CiviCRM hook or other method which can be used to push data updates to other systems? We are attempting to keep two systems in live sync with each other, one is CiviCRM.

There are hooks in civicrm for:

Pre database saving of data

hook_civicrm_pre($op, $objectName, $objectId, &$objectRef) {}

and

Post database saving of data

hook_civicrm_post($op, $objectName, $objectId, &$objectRef) {}

but both functions are passed all of the data of the relevant form/group/profile that has been submitted rather than just data that has changed. i.e. civicrm considers all of the fields to have been updated even if it isn't the case.

Is the only option to go through each submitted field and compare the posted value to it's current value during callhooks_civicrm_pre? and then only update the 'other' system on callhooks_civicrm_post so that data that isn't actually saved isn't sent to the 'other' system.

Perhaps there is a better way, like a hook from the changelog?

In having to do this with Salesforce and CiviCRM a number operations included the creation of a new contact being initiated on one end, which then had to be replicated on the other. In this case we wanted to prevent both sending unnecessary data and creating duplicate contacts.

Whenever the data being synced didn't involve a chain of transactions that required the result of each previous one (like a primary key id), we used the log to create the data package as each row only contains the exact fields that were changed. In the other cases we did use the pre and post hook along with storing data in the session to create a package that was ultimately sent in the post hook. In both cases, only the data that was added or modified was sent, and not full entity records. We put the responsibility on the receiving systems to understand whether they were adding a new record or updating an existing one, based on certain characteristics of the data package.

Pushing this strategy let us take advantage of the cron and the bulk Apis whenever the data allowed it.


Online registration: Drupal+CiviMember we are really new to CiviCRM and Drupal (and this forum). We're trying to setup an online member registration: we want an anonymous user to become a Drupal user filling a registration form with a membership payment. The user account will stay blocked until the payment is received.

We've read the membership documentation (also profiles and civimember sync) but we're still missing the general idea.

If anynone can shed some light on the workflow to achieve this or recommend a good reference, it would be great for us.

Thanks in advance!

Most of what you're describing is handled automatically.  Here are some key elements that may help:

You must create the membership form as a contribution page.  Go to Contributions menu > Manage Contribution Pages and create a new page.  Be sure to fill out the "Membership" section.
A good reference can be found here.
To allow the user to become a Drupal user as part of signup, create a profile from Administer menu > Customize Data and Screens > Profiles.  In the profile settings, under "Advanced Settings", there is an option to allow someone to create a Drupal account while filling out the profile.  Once you've created the profile, add it to the contribution page from the "Include Profiles" tab.
You can decide whether or not to take either online (e.g. credit card) or offline (e.g. mailing in a check, aka "pay later") payments or both for your registration form.  If someone pays online, and the transaction is successful, they'll automatically receive a membership.  If you allow a "pay later" option, a membership will be created with a status of "pending".  It will not be counted as a membership for most purposes.  When you mark the contribution as complete, the membership will activate.


Why aren't my advanced search results sorting properly? A copy of this issue: http://forum.civicrm.org/index.php/topic,36263.msg154206.html#msg154206

Which says: "column header sort option does nothing at my advanced search results."

There's a setting in the Administer -> Customize Data and Screens -> Search Preferences called "Include Order By Clause". If you set that to "No" (presumably to improve performance as it recommends), then your search results will be ordered by contact id even when you try to change the sort order by clicking on the column headers.


Can I offer different pricing for an event based on user group? I have an event in CiviEvent that should be a paid event for some of our user base but should be a free event for other users.

Presently the users are grouped using smart groups, but I could also create a membership if that would be more helpful.

The main question is how do I structure my price sets so that one price set is offered to one type of user, but a different price set (or no price set) is offered to a different type of user?

I thought it would be possible to create different price sets and only make them available to different user types, but I haven't figured out how to do that.

I also thought about using a cividiscount code, but the challenge is that I don't want people to share the discount code.  (Is there a way to make a discount code limited to a certain user group?)

Thanks for any thoughts.

Edit: I forgot this was a CiviCRM extension (Group-Based Pricing). My apologies. Luckily it's very easy to use.

I haven't used CiviDiscount but what I am using right now is Price Sets with Radio, Select, or Checkbox price fields. Within those, you can edit each option, and limit the visibility to certain groups. (I actually just posted asking if there's a way to do this with the "Text / Numeric Quantity" price field because it doesn't have the same options available).

Create a Price Set with the fields: Radio, Select, or Checkbox. Fill out all price options, details, save it, and close the popup window.
Click on Edit Price Options
Click on Edit Option for the price that should have limited visibility.
Limit Price Option To the group(s) you want to see this price option.

This also allows for people to pay the "full price" if they feel generous.


Allow user to cancel a recurring contribution What I want is for a user to be able to log into a website, click a Cancel Membership button and that cancels the recurring contribution attached to an auto-renew membership thus making the membership expire.

Has anyone been able to do this? Using Drupal 7.54 and CiviCRM 4.7.18

If you give your contact access to their Dashboard, then (from memory) they can access and make some limited changes to their recurring payments - ok, not from memory - some screenshots

and


configuration variables: where is the documentation? This is changing between 4.6 and 4.7.

Where is the best place to see what each setting does?

In CiviCRM 4.6, but not in later versions, the source documents the following configuration variables:

$debug = 0;
$backtrace = 0;
$smartyDir = NULL;
$pluginsDir = NULL;
$templateDir = NULL;
$resourceBase = NULL;
$uploadDir = NULL;
$imageUploadDir = NULL;
$customFileUploadDir = NULL;
$imageUploadURL = NULL;
$extensionsDir;
$extensionsURL = NULL;
$cleanURL = FALSE;
$countryLimit = array('1228');
$defaultContactStateProvince;
$provinceLimit = array('1228');
$defaultContactCountry = '1228';
$defaultCurrency = 'USD';
$lcMessages = 'en_US';
$dateformatDatetime = '%B %E%f, %Y %l:%M %P';
$dateformatFull = '%B %E%f, %Y';
$dateformatPartial = '%B %Y';
$dateformatYear = '%Y';
$dateformatTime = '%l:%M %P';
$timeInputFormat = 1;
$dateInputFormat = 'mm/dd/yy';
$fiscalYearStart = array(
$moneyformat = '%c %a';
$moneyvalueformat = '%!i';
$currencySymbols = '';
$defaultCurrencySymbol = '$';
$monetaryDecimalPoint = '.';
$monetaryThousandSeparator = ',';
$gettextCodeset = 'utf-8';
$gettextDomain = 'civicrm';
$gettextResourceDir = './l10n/';
$userFramework = 'Drupal';
$userFrameworkVersion = 'Unknown';
$userFrameworkUsersTableName = 'users';
$userFrameworkClass = 'CRM_Utils_System_Drupal';
$userHookClass = 'CRM_Utils_Hook_Drupal';
$userPermissionClass = 'CRM_Core_Permission_Drupal';
$userPermissionTemp = NULL;
$userFrameworkURLVar = 'q';
$userFrameworkDSN = NULL;
$userFrameworkBaseURL = NULL;
$userFrameworkResourceURL = NULL;
$userFrameworkFrontend = FALSE;
$userFrameworkLogging = FALSE;
$maxImportFileSize = 1048576;
$maxFileSize = 2;
$localeCustomStrings = NULL;
$mapProvider = NULL;
$mapAPIKey = NULL;
$geoProvider = NULL;
$geoAPIKey = NULL;
$geocodeMethod = '';
$mapGeoCoding = 1;
$logging = FALSE;
$empoweredBy = TRUE;
$enableComponents = array(
$enableComponentIDs = array(1, 6, 2, 3, 4, 8);
$enableSSL = FALSE;
$fatalErrorTemplate = 'CRM/common/fatal.tpl';
$fatalErrorHandler = NULL;
$legacyEncoding = 'Windows-1252';
$fieldSeparator = ',';
$maxLocationBlocks = 2;
$captchaFontPath = '/usr/X11R6/lib/X11/fonts/';
$captchaFont = 'HelveticaBold.ttf';
$includeWildCardInName = 1;
$includeEmailInName = 1;
$includeNickNameInName = 0;
$smartGroupCacheTimeout = 5;
$defaultSearchProfileID = NULL;
$dashboardCacheTimeout = 1440;
$doNotResetCache = 0;
$includeAlphabeticalPager = 1;
$includeOrderByClause = 1;
$oldInputStyle = 1;
$formKeyDisable = FALSE;
$inCiviCRM = FALSE;
$componentRegistry = NULL;
$doNotAttachPDFReceipt = FALSE;
$wkhtmltopdfPath = FALSE;
$secondDegRelPermissions = FALSE;
$wpBasePage = NULL;

The 4.7 equivalent source is here


PHP Fatal error Class 'CRM_Extension_ClassLoader' not found in civicrm/civicrm/CRM/Extension/System.php:196 I just upgraded from CiviCRM 4.7.10 to 4.7.24 and I followed the steps on the update page here.  When I copied the new version to the plugins folder, I started receiving this error in the admin portion of WordPress when I tried to load any pages of CiviCRM.

[20-Sep-2017 20:49:48 UTC] PHP Fatal error:  Uncaught Error: Class 'CRM_Extension_ClassLoader' not found in /home/prairie1/public_html/wp-content/plugins/civicrm/civicrm/CRM/Extension/System.php:196
Stack trace:
#0 /home/prairie1/public_html/wp-content/plugins/civicrm/civicrm/Civi/Core/Container.php(395): CRM_Extension_System->getClassLoader()
#1 /home/prairie1/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Config.php(112): Civi\Core\Container::boot(true)
#2 /home/prairie1/public_html/wp-content/plugins/civicrm/civicrm.php(672): CRM_Core_Config::singleton()
#3 /home/prairie1/public_html/wp-content/plugins/civicrm/civicrm.php(1121): CiviCRM_For_WordPress->initialize()
#4 /home/prairie1/public_html/wp-content/plugins/civicrm/civicrm.php(969): CiviCRM_For_WordPress->add_core_resources(false)
#5 /home/prairie1/public_html/wp-includes/class-wp-hook.php(298): CiviCRM_For_WordPress->admin_page_load('')
#6 /home/prairie1/public_html/wp-includes/class-wp-hook.php(323): WP_Hook->apply_filters('', Array)
#7 /home/prairie1/public_html/wp-includes/plugin.ph in /home/prairie1/public_html/wp-content/plugins/civicrm/civicrm/CRM/Extension/System.php on line 196

I made sure that civicrm.settings.php had the following at the end:

require_once 'CRM/Core/ClassLoader.php';
CRM_Core_ClassLoader::singleton()->register();

I also started off with php version 5.5 running, but I read that I could try 7 and it was supported, so I switched.  It gave me the stack trace where 5.5 did not, but didn't help the error.

Thanks a lot!

Sorry, I finally found the solution.  It was incredibly simple but hard to find.  When I uploaded the new version of civicrm using FileZilla, it said all transfers were successful and 0 failed.  However, there were a few files, one being ClassLoader.php, that were 0 in File Size.  It marked it as successfully uploaded, but didn't upload any content.  I just used FileZilla to upload all files again with the option to only Overwrite if the size was different, and it fixed these errors.


What is the recommended level of PHP for CiviCRM? There seems to be some inconsistencies See the wiki which says the minimum level is 5.4+

But see this linked page from the wiki which recommends 5.6 with a bare minimum of 5.3.10.

See also the system status for release 4.7 which says the minimum recommendation is 5.5

Which is it?

CiviCRM PHP requirements recommends PHP5.5 or greater, and notes PHP5.3.10 is the bare minimum required. As well as this, you want to be sure your PHP version is actively getting security updates, and also consider what PHP versions CiviCRM is tested with.
As of Feb 2016, I recommend PHP5.6 -

Support ended for PHP5.3 in 2014, and for 5.4 in 2015.
PHP 5.5 is getting only security fixes until mid 2016.
PHP 5.6 is actively supported until Dec 2017, with security fixes until Dec 2019.
CiviCRM doesn't run on PHP7 yet ... (CRM-17789: Support PHP7).

NB: Distributions may backport security fixes for older versions after those dates; please do your own diligence on whether your PHP version is secure :)


DB: No such field! Error message We're just a very small charity trying to put this together with limited experience.
I had set up some custom fields for the database but some changes to those fields was requested which I made and now when I run a find contact search, a list of releveant contacts will come up but if I click on a contact name I get this message:
Sorry, due to an error, we are unable to fulfill your request at the moment. You may want to contact your administrator or service provider with more details about what action you were performing when this occurred.
DB Error: no such field
I imagine it has something to do with changing the fields. Any ideas of how to move forward with this?  I only had uploaded some of our database as a test so happy to delete all of our contacts and start again but don't know how.
Thanks in advance!!

Try installing the CiviCRM Log Viewer extension (you can do that via the web interface) and then you'll be able to see more details about the specifics of the error, which are logged in a CiviCRM error log file that is otherwise not easy to access.
The 'Transaction integrity error' isn't super useful, it's evidence of a deeper issue - see:
https://civicrm.stackexchange.com/search?q=Transaction+integrity+error%3A+Expected+to+find+active+frame
That deeper issue would be more easily seen via the error log.
Sometimes, if you make changes to custom fields via the web interface, it will only half-complete, leaving a mismatch between the tables in mysql and what CiviCRM thinks is there. That might be evidence of a server setup issue, for example.
The easiest solution, if it works, is to delete the fields that make up the custom fieldset, then delete the fieldset itself and start again.