Restrictions and Limitations for CiviSpark I very recently signed-up to CiviSpark Hosting Plattform to evaluate it for future use by our organistion. Early on the way I stucked by some limitations of that Version, first of all:

The localisation/ language can't be changed as desired
Only Users with the Admin Role selected in CiviCRM can access the CiviCRM-Site

Does anybody know how to get detailed information about the limitations, restrictions and functional differencies of the Civi Spark hosted Version compared to the "native" CiviCRM

The sign-up page says:

Store up to 2000 contacts
Send up to 5000 emails per month
Payments are only supported with three processors: PayPal, Stripe and iATS
The interface is available in many languages.
A few other configurations are disabled by default, such as Households and some Location Types
It is not possible to enable other extensions than the ones provided by default.

If you can't do something on Spark, it's worth clarifying on the Spark channel on Mattermost whether it is an intentional limitation or just a problem with your setup.


Why do I need so extensive permissions for getting event participant via API? I'm trying to get participant info via CiviCRM API like this:

civicrm_api('Participant', 'get',
   array(
      'version' => 3,
      'sequential' => 1,
      'contact_id' => $contact_id,
      'event_id' => $event_id
   )
);

but get the following error:

  API permission check failed for Event/get call; insufficient permission: require access CiviCRM and access CiviEvent and view event info

I need to allow unauthorized users to access CiviCRM ("Master control for access to the main CiviCRM backend and API") and CiviEvent ("Create events, view all events, and view participant records (for visible contacts)") to solve this. Aren't those permissions to extensive, just to get some info about a participant? Or am I doing something wrong?

I'm using CiviCRM 4.7.23. I did not get this error in 4.7.14.

EDIT: I do not have to set these permissons to create a participant via API (which is OK). So I think there is definitely something wrong here.

I'm not sure what context you are doing this in, but since you are calling the API from php, you can pass in the param 'check_permissions' => FALSE to bypass the ACLs for the logged in user. This is useful when you know you want to get something from the api that the logged in user wouldn't normally be able to access. Just be careful!


How to change the Email that get notified when a new case is opened I am new to Civi CRM, been reading the docs and can't for the life of me find where to set what email gets notified when we open up a new case.

It doesn't have that feature by itself but check out the add-on for webform (https://www.drupal.org/project/webform_civicrm).

Alternatively, the case will appear on the case manager's dashboard so if you set that role on the case to the appropriate person when creating a case you can achieve a similar thing.


404 errors for loading CSS on Event pages (Wordpress) I'm using a fresh install of Civi 4.7.15 on Wordpress 4.7.1

I can use the back-end of Civi fine, but when I try to load public pages - e.g. Event Registration Page, the page can't load the necessary CSS and JS files (hangs for a long time and then displays wrong).

I believe it's somethng to do with paths - my Wordpress install is at: http://mysite.org/mysite/wp-content

(but points to http://mysite.org/ as the default address)

When Civi tries to load the scripts, it looks for the files in http://mysite.org/mysite/mysite/

Changing the Base URL to just http://mysite.org/ fixes the public pages but breaks the back-end.

Is there somewhere I can change this behaviour?

It looks like you have WP installed in it's own directory as per https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory

The short answer is that this is not (yet) supported by CiviCRM.  We've been documenting it here:

https://wiki.civicrm.org/confluence/display/CRM/WordPress+installed+in+its+own+directory+issues

The issue is tracked here : https://issues.civicrm.org/jira/browse/CRM-16421

For now I would move WP out of it's own directory, it may not be your optimum configuration, but it will work.


Recurring Contributions consistently stuck in Pending Status We've been noticing a trend over the last few months that typically around the 21-23 of the month several of our recurring contributions end up not being processed by iATS and then get stuck with a Pending status.  Where are the first places that I should look to figure out the problem of why there is this pattern?  We are using Civi 5.10.4 and iATS Extension 1.6.2.

First place to look is to ensure your cron is running properly. The verification is managed by two scheduled jobs: one to pull in the journal from iATSpayments.com and one to the verify (checks the journal entries to see if any of your contributions have been completed).


Create a membership list with employee name I have a public directory list that is created based on a relationship with an organization that is set-up as a smart group.  I have a profile that lists the organizations that are included in the smart group along with their web address and email address.  I also want to include the employees or contacts for each organization.  How do you create a list or directory on a web page that includes an organization name and an individual's first and last name?

I see that this is a limitation of CiviCRM - can't combine individuals with organizations, but that doesn't seem practical.  When you create a directory of member organizations it seems appropriate to include a contact name.  How have others handled this problem?

I am using CiviCRM 4.4 and WordPress.

To get the employees, run an advanced search.  In the relationships section, select the relationship type and enter the organization that the employers are related to.  Then, go up to the top section and find Display Results As.  Select "Related Contacts" and then in the relationship type drop-down that appears, select "Employee Of".

You should get results of all the employees.  Create a smart group from this search, and have your directory profile use this new group instead.

Finally, to display the employees' employers, add the field "Current Employer" (available under "Individual") to the profile, making it visible as a result column ("In selector").  (You may need to remove any organization-specific fields and/or create a fresh profile as your profile is now a listing of individuals rather than organizations.)


modify API request using searchmodule_civicrm_apiWrappers I'm trying to change the CiviCRM API getquick search to support legal name, but without a core override. (To remove the need for hacks).

I have the following code:

            function searchmodule_civicrm_apiWrappers(&$wrappers, $apiRequest) {
              if ($apiRequest['entity'] == 'Contact' && $apiRequest['action'] == 'getquick') {
                $wrappers[] = new CRM_Utils_API_LegalSearchAPIWrapper();
              }
            }

And the following class:

            <?php

            require_once 'api/Wrapper.php';

            /**
             * Class CRM_Utils_API_LegalSearchAPIWrapper
             */
            class CRM_Utils_API_LegalSearchAPIWrapper implements API_Wrapper {

                /**
                 * @var CRM_Utils_API_ReloadOption
                 */
                private static $_singleton = NULL;

                /**
                 * @return CRM_Utils_API_ReloadOption
                 */
                public static function singleton() {
                    if (self::$_singleton === NULL) {
                        self::$_singleton = new CRM_Utils_API_LegalSearchAPIWrapper();
                    }
                    return self::$_singleton;
                }

                /**
                 * @inheritDoc
                 */
                public function fromApiInput($apiRequest) {
                    return $apiRequest;
                }

                /**
                 * @inheritDoc
                 */
                public function toApiOutput($apiRequest, $result) {

                    $name = json_decode($apiRequest);
                    $name = $name['params']['name'];

                    $result = civicrm_api3('Contact', 'get', array(
                        'debug' => 1,
                        'sequential' => 1,
                        'return' => "sort_name",
                        'legal_name' => array('LIKE' => "%$name%"),
                    ));

                    return $result;

                }

            }

The class executes, so no issues there, but I'm unsure how to append the query with a legal name attribute. When I write a seperate query for the API to return sort_name, it generates a DB error in the API.

Solved. It's easier to append the results, that modify the original query, which is long, verbose and complex.

                public function toApiOutput($apiRequest, $result) {

                 //  $result format
                 //
                 //   [id] => 12345
                 //   [sort_name] => Last, First
                 //   [email] => first.last@gmail.com
                 //   [data] => Last, First :: first.last@gmail.com

                    $search_term = @$apiRequest['params']['name'];

                    if (strlen($search_term) > 0) {

                        $additional_result = civicrm_api3('Contact', 'get', array(
                            'debug' => 1,
                            'sequential' => 1,
                            'return' => "sort_name, email",
                            'legal_name' => array('LIKE' => "%$search_term%"),
                        ));

                        // Increment count
                        $result['count'] += $additional_result['count'];

                        foreach ($additional_result['values'] as $key => $api_result) {

                            $result['values'][] = array(
                                'id' => $api_result['contact_id'],
                                'sort_name' => $api_result['sort_name'],
                                'email' => $api_result['email'],
                                'data' =>  "[L] " . $api_result['sort_name'] . " :: " . $api_result['email']
                            );
                        }
                    }

                    return $result;

                }


Different profile based on membership selection When our members join or renew online, I want to use a different profile to capture different information depending on the membership type. For example, if someone selects an "Educator" membership, I'd like to use custom fields to capture the programs they offer and the audiences they reach - but those fields aren't relevant to the other membership types, so I don't want to use the same profile for all types.

Is there a way to select a certain profile based on the membership type selected, or do I need to create separate contribution pages for the different membership types?

I am using CiviCRM 5.18.2 with WordPress.

I recommend taking a look at the Caldera Forms CiviCRM plugin. This will allow you to use conditions within a caldera form to show and hide fields (and make them required) based on the type of membership selected. The plugin contains multiple processors to allow you to add contacts, memberships, etc. in CiviCRM.

The plugin is available in the WordPress repository. Here is a link to the plugin info: https://github.com/mecachisenros/cf-civicrm


Webform- Existing contact- Contact ID option not returning results I'm trying to build a webform to allow users to add contact details using the contact id, from existing contact

But the lookup doesn't seem to be working on the form itself, I enter a contact id of the corret contact type, and the fields refuse to fill.

Does the contact id option not act as a look up? Have I misconfigured something?

D= 7.65
Civi= 5.13.4

It’s not an autocomplete; it’s a lookup. So enter the contactid and then click elsewhere to leave the field.

When I implemented this I did so for Individuals and though theoretically it should probably mostly work for Households - I’ve never tested it as we don’t use Households with any of our clients.


Dedupe based on custom fields? My organization contacts can sometimes share the same email address but I have one custom field that is unique to each organization (registration number) and I want to add this custom field to enhance the unsupervised rule.
The thing is that I don't see this option. I can use any standard field (city, zip code...) but none of my custom fields appear.
Is this possible and how? Do I need and extension to do so or to set a parameter somewhere?
EDIT 1 : I use CiviCRM 5.25 on Drupal 7.72

When creating a custom fieldset, you need to ascribe to "ANY" when your contact type has sub-types. Instead, if ascribed to a particular sub-type (Organization - enterprise, for example), the custom field doesn't show up in dedupe rules :-(
So I found my solution but I would like to have the ability to use custom fields related to a sub-type and not all of them.


Where in the database is the note field for contributions? One can enter notes with a new contribution and they show up like this:

  Campaign   Middleport Pottery, Steam Engine

  Receipt Sent   April 10th, 2015 10:56 AM

  Note   Where is the note field?

  Transaction ID 101010

And are in the template like this:

{if $receipt_date}

            {ts}Receipt Sent{/ts}
            {$receipt_date|crmDate}

  {/if}

{foreach from=$note item="rec"}
  {if $rec }

      {ts}Note{/ts}
      {$rec}	             //LINE IN QUESTION!

  {/if}
{/foreach}

  {if $trxn_id}

      {ts}Transaction ID{/ts}
      {$trxn_id}

  {/if}

However it seems I can not export the data in this field from the user interface and I can not seem to find it in the database to create a query. Any idea on table and field?

Thank you!

civicrm_note

entity_table = 'civicrm_contribution'

entity_id = contributionID


Tracking links that have been added via tokens I have created a token using hook_civicrm_tokenValues that inserts content into a CiviMail. The content includes URLs that we want to track.

As I understand it (and I don't understand it very well) in CiviMail, token substitution happens after links have been converted to trackable urls, which means that any links that are inserted into tokens will not / cannot be tracked.

I'm wondering what the smartest way to get around this is?

Options I am considering are:

1) run the relevant CRM_Mailing_BAO_TrackableURL functions again once the tokens have been subsituted and observing if there are any side effects (maybe some stuff coming from other tokens should not be tracked). FWIW, it looks like CRM_Mailing_BAO_TrackableURL::getTrackerURL() already takes some steps to not track links in the format civicrm/extern/ which would cover links like civicrm/extern/url.php?u=129&qid=77.

// hack for basic CRM-1014 and CRM-1151 and CRM-3492 compliance:
// let's not replace possible image URLs and CiviMail ones
if (preg_match('/\.(png|jpg|jpeg|gif|css)[\'"]?$/i', $url)
  or substr_count($url, 'civicrm/extern/')
  or substr_count($url, 'civicrm/mailing/')
) {
  // let's not cache these, so they don't get &qid= appended to them
  return $url;
}

2) switch the order of execution so that token substitution happens before links have been converted to trackable urls (but there may important reasons why it happens in that particular order).

3) create trackable URLs as part of the token generation though I wonder if I would be able to access the data I need for the appropriate CRM_Mailing_BAO_TrackableURL function at this point and if the function is expecting to be called in a certain context.

@Andrei - thanks a lot for pointing me to the solution!

Based on your answer, I wrote this function that did the trick for me for finding and converting links in arbitrary $html:

function trackUrls($html, $contactId, $jobId){

    // Find all URLs
    preg_match_all('#\bhttps?://[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))#', $html, $matches);

    // We need to find the mailingId and the eventQueueId
    $mailingJob = civicrm_api3('MailingJob', 'getsingle', ['id' => $jobId]);
    $mailingEventQueue = civicrm_api3('MailingEventQueue', 'getsingle', [ 'job_id' => $jobId, 'contact_id' => $contactId]);

    foreach($matches[0] as $url){
        $replacements[$url] = CRM_Mailing_BAO_TrackableURL::getTrackerURL($url, $mailingJob['mailing_id'], $mailingEventQueue['id']);
    }

    $html = str_replace(array_keys($replacements), $replacements, $html);

    return $html;
}


How should I generate a report (or view) showing contacts and people they have relationships to? I would like to create a view, or custom report, whoever is easier, to show the following:
-The names of all contacts in a specific group
-Some of their contact information
-The names of all contacts in specific relationships with them (parent-child, for example)
-Some of the contact information of the above.

When I created a view, I wasn't able to filter by group membership. And when I went to create a report I wasn't sure where to get started. Got any tips for me?

I will add this as an answer so i can add the screenshot. You 'should' be able to filter by Groups in a civicrm contact based View. In the screenshot you will see i have both Group Name and Group ID set as fields, and have Group ID set as an Exposed Filter. Hope that helps if only to confirm that something is amiss in the world of Views for you.

(Note: on the first site i went to do this on I also did not have them available, but that is a Pantheon based site where things keep changing on me, on the second which is a standard-hosted site it all worked as expected. So you may not be alone with the Group fields being unavailable)


Installing extensions with civicrm-buildkit When using civicrm-buildkit, it automatically configures an extension directory with something like:

/home/jon/local/civicrm-buildkit/build/d46/sites/default/ext

However, there are no extensions in that directory, though there are clearly extensions installed in the built site.  Moreover, extensions added to the extensions directory don't appear.  What's the preferred method to get extensions installed on a site built with civicrm-buildkit?

As a bit of background, it may help to check out "What's a build?" and "What are the basic build techniques?".

There are a few directions one can take on that topic:

Install an extension once, locally, for a single build.
Modify the build-document of an existing build-type so that the extension will always be installed in the future. (For example, if you modify the build-document for wp-demo, then the extension would be installed on wp45.demo.civicrm.org, wp46.demo.civicrm.org, etc. every night when the demo sites are rebuilt.)
Create a custom build-type with a custom build-document using your own curated list of extensions/modules.

Installing once is easiest -- you can use basically any extension-management practice that you'd use normally (with or without civibuild). The web-based manager or drush cvapi will be fine.

To modify a build-document, you would create or edit files in app/config -- you'll need to create steps for download and install. For example, in drupal-demo:

The file drush.make.tmpl defines all the download steps
The file install.sh defines the installation steps.

Digging into those files, you can see how it handles the CiviVolunteer extension. (Search for "volunteer".)

To create a new build-document, you should copy one of the existing build-types. The best starting points are (IMHO) drupal-demo (which uses drush with drush-make), wp-demo (which uses wp-cli and git), and wmff (which uses git submodules).

When editing a build-document, the development-feedback-loop (edit=>run=>validate=>repeat) can be a bit slow. To mitigate that, buildkit includes caches and nuanced rebuild commands.


Where is the Update billing url? we are on Civi 5.8 and Wordcpress 5.

A member called and wants to change her credit card information for her recurring membership.  I would prefer to send her a link to click so she can change it herself.  Does anyone know what the URL is?

Thank you

If they get the email receipts or have the initial email that notifies it is recurring it has the URL.

This is what I see for WP:

https://example.org/?page=CiviCRM&q=civicrm%2Fcontribute%2Fupdatebilling&reset=1&crid=XX&cs=......

crid is the in the civicrm_contribution_recur table

Not sure what CS string is.


How can I use , ,  tags in a mailing? As a follow-up to: How do I override the default CKEditor configuration?

The issue

We have a custom email template that uses <html>, <head>, <body>. When using either the CKEditor main 'email body' editor, or the standard textarea when creating a custom header/footer, these tags are stripped out.

Is this a combination of CKEditor and CiviCRM both stripping out these tags seperately?

I've tried...

I originally tried adding the CKEditor config option fullPage=true . This works, but automatically adds <html>, <head>, <body> to every CKEditor instance (cross-posted here) .

But then I spotted that the <html>, <head>, <body> tags are also stripped if used within header and footer templates, as described in this forum post. And these fields do not use CKEditor.

Not a good solution but what you can do is disable Advanced Content Filter (ACF) in ckeditor by editing the config.js file in the ckeditor folder like this:

config.allowedContent = true;

See documentation for more info.

What I do is extend the ACF like this:

config.extraAllowedContent = 'html;head;body;span;ul;li;table;td;style;*[id];*(*);*{*}';

[ ] // for attributes

{ } // for styles

( ) // for classes

That way you prevent ckeditor from striping html, body, head, id's or any element tag or even attributes that you need, but it won't add the default html->head->body by default (the behaviour with fullPage = true). The downside is that you will have to add the line on each CiviCRM upgrade, and i don't belive it will work with header/footer templates, I haven't tried it though.


How to build a Real Size Drupal+Civi Test Configuration? I have installed a Drupal+Civi test site, with same software level as my production site (Drupal 7.54 / Civi 4.7.16).

To be able to make real size tests, I want to have identical DBs on each site.

So, I have copied both prod DBs (Drupal and Civi) into my test DBs (using phpmyadmin / Copy structure and data + DROP TABLE).

Tables now seem identical (statistically : I have no real comparison tool)

I have updated settings.php with the same table "prefix"

But when I open the test site, I get an error : "Fatal error: Call to undefined function webform_menu_to_arg() in /home/bapaparoisse/www/dev/includes/menu.inc on line 824".

I must have missed something, but what ?

Any suggestion is welcome

Your error doesn't indicate a problem with your database - and it does sound like you've copied them correctly.  This error indicates that you have a missing file in your file system.  Is the webform module missing on your test site?  Or perhaps the test site's webform module isn't the same version?

You should also clear your Drupal cache on the test site.


Does CiviCRM work with Site Performance Engines in Wordpress such as Falcon? I'm using CiviCRM on Wordpress, and recently installed Wordfence, an excellent security plugin to make my installation more secure. It also offers the Faclon Engine, a server-side caching system which promises to speed up the website by 30-50 times.

While my installation of CiviCRM isn't too slow, some more speed would be welcome.  However, due to the sometimes complex php searches and apis that CiviCRM runs, I was wondering if it'll lead to mistakes / crashes when running.

Does anyone have a sense if these kinds of engines are ok with CiviCRM or if they're better avoided?

Thanks.

Most of the pages displayed by civicrm can potentially be customised per user (eg. pre-fill the contribution form if the visitor is known or display "looks like you are already registered" on an event page for instance).

So if you start generating a page for one specific visitor, cache it  and distribute the result to all visitors, there is a big risk you will show information about one visitor to all the others, and finetuning which specific page is cache safe is going to be tricky

However, it seems that the falcon cache allow you to explicitly exclude some pages, so you could exclude every civicrm page and still benefit from the cache for all your other pages (eg. your articles).

That's what I'd suggest you to do. The potential speed gain isn't worthwhile the risk of showing private information to the wrong visitor.


From email addresses with 4 character domain names or non-normal domains I am attempting to add a From email address with a .club domain. Civi is stating, "Please follow the proper format for From Email Address" when I try to save the email address. I looked for the error in all of my civicrm plug files and found one line in CRM\Admin\Form\Options.php that has text below. I thought perhaps the "3" was the length of the domain name having to be 3. I changed to 4 and still the same error. Has any one had experience in Civi with "non-normal" domains other than the usual suspects (e.g., .org, .com, etc.)?

  $formName = explode('"', $fields['label']);
  if (empty($formName[1]) || count($formName) != 3) {
    $errors['label'] = ts('Please follow the proper format for From Email Address');
  }
}

The most likely cause of this error is that the email was entered in the format myname@example.org rather than a name and email in the format My Name <myname@example.org>.

While the field label at civicrm/admin/options/from_email_address?reset=1 says From Email Address, the field actually requires you to enter a sender name and email address.

The field help says,

  Include double-quotes (") around the name and angle-brackets (< >) around the email address.
  EXAMPLE: "Client Services"


ISSUE upgrading CiviCRM 4.6 to 4.7 (or 5.1) in Wordpress (comes from a Drupal multisite) we are trying to upgrade a CiviCRM 4.6.15 on Wordpress that comes from a multisite Drupal installation. This on WordPress is on a different server, but with the same DNS and Admin name. It works correctly but...

...if we try to upgrade to CiviCRM 4.7 (or 5.1) the procedure starts but does not go beyond a "dead screen" with a Retry & Skip button that do not work.

We fear that there were problems with exporting the DB from Drupal multisite. Please, where should we look for the error?

Attached the log file: https://pastebin.com/65fnAgMG

Thanks in advance for those who can help us.

    UPDATE:

1) as our SysAdmin (user3225453) replied, we've tried to follow Jaap's procedure
below, but it's not working.

2) However this activity and the next Jaap' comment helped us to read better the LOGs:

the problem (if does not concern "not imported custom fields" as
suspected by Jaap) could also be related to "PROFILE" (aka: "UF_Group", which are also found in the LOG)

Do you have any idea? what about if we delete all profiles from the previous installation and try a new update?

Thx.

we were able to update CiviCRM from ver. 4.6.18 to version 5.2.1! I will tell you below how we solved the problem:

a) we realized that we had 3 extensions (CiviVolunteer + Angular + CiviRules) that we did not use. CiviRules, in particular, needed updates (a Yellow Warning said us that it was necessary to update the DB, but the relative link did not work);

b) then we unistalled all the extensions and canceled the relative permissions in Wordpress Access Controll.

c) we cleaned up and verified that no traces were left.

The upgrade was successful.

It must be said that we had installed the three extensions for testing purposes, but if they were in production ... :(


CiviCRM Reading Contacts name as admin I have a WordPress website with large CiviCRM database. For some reason, CiviCRM is reading one of my Administrators as a contact name (not matching his name) and every time I try to delete him and make him a new user, it matches him to another contact (not his). How can I find a fix for this issue?

Every WordPress (or other CMS) user gets a CiviCRM contact, even though not every contact corresponds to a user.  The only tool CiviCRM has for making these matches is the email address.  Once CiviCRM is installed, whenever a new WordPress user is added, CiviCRM will find or create an individual contact with that email address.

If you have a lot of contacts with this person's email address and/or if his contact has a different email address, you may run into issues.  You also may have another user already connected to his contact record.  Pete's suggestion about the civicrm_uf_match table is a good one: that's the table that connects the user to the contact.

Assuming you have a user account that is good and a contact that is good (and an Individual, not a Household or Organization), you can use the API Explorer to fix the problem.

Get the IDs of the WordPress user and the CiviCRM contact you want to connect.  Also, get the email address that is on the WordPress user record.
Go to Support > Developer > API Explorer
For Entity, pick UFMatch and for Action, pick get.
In the Parameter drop-down, pick CiviCRM Contact ID, leave the operator as =, and in the Value field, enter the Contact ID.
Click Chain API Call, and in the line the appears, select UFMatch as the Entity and delete in the second column, and leave the third column as {}.
Hit Execute.  This will delete any records connecting the good contact to any WordPress user.
Now, modify the first parameter and change it to CMS ID, leave the =, and change the value to the WordPress user ID of the user you want to connect.
Hit Execute.  This will delete any records connecting the good user to any CiviCRM contact.
Now, go to the Action drop-down and select create.  This should clear out the old parameters and set up three for CMS ID, CMS Unique Identifier, and CiviCRM Contact ID.
Fill those values: enter the WordPress user ID as CMS ID, the WordPress user's email address as the CMS Unique Identifier, and enter the CiviCRM contact ID as CiviCRM Contact ID.
Hit Execute.  This will explicitly connect the WordPress user to the CiviCRM contact.  You can verify this by going to the contact record and seeing the user ID there next to the contact ID.


Why are my users being blocked? A few members have reached out to me to say that their account has been blocked. I have gone into their accounts to "enable" their user status and change their password. However, the member is still getting the "block" notice and when I re-enter their account, their user status is flipped back to "blocked".
How to I enable these users that are continuing to be blocked?

A 'user' account is usually managed by the CMS. Their are integration tools that will set a user 'role' according to eg Member status or Groups, but that isn't what you are describing.
If you are using Drupal it could be that you had Drupal Rules that are designed to set a user record as Blocked based on some characteristic.
It may be possible to do similarly via CiviRules or an equivalent in WP.


Authorize.net changes I received a notice from authorize.net telling of changes to the interface. I did not see any comments so I thought I would ask the question. Does the connections to civicrm require any updates because of:

Akamai SureRoute
Transaction and Batch ID
RC4 Cipher Disablement

This isn't a full answer, but ... I just had to research this same thing for a client.

Check that your processor config is using the correct URLs:
http://www.authorize.net/support/akamaifaqs/#newurls

/civicrm/admin/paymentProcessor?reset=1

Even in our client's old version of CiviCRM, the transaction ID field is 255 characters.
The cipher suite is a question for your host. A good host should be using modern cipher suites and disallowing insecure ones.
Not sure about requiring sequential transaction ID ... have not done a CiviCRM code audit to make sure (yet). Don't see why it would, but who knows.


Settings Definition (How to Use On_Change?) Settings definitions allows for a field "on_change". Can anyone explain how to use this? I would like to have it execute a function that I have defined in my extension when my quickform is saved.

THanks!

Documentation Referenced: https://docs.civicrm.org/dev/en/latest/framework/setting/#settings-definition

on_change is executed when setting value is changed. You can either set it

 'on_change' => [
   ['CLASS_NAME', 'functionName'],
 ],

Else

'on_change' => [
  'CLASS_NAME::functionName',
],

A good example would be https://github.com/civicrm/civicrm-core/blob/master/settings/Localization.setting.php#L145

HTH

Pradeep


Should smart groups be highlighted so users are aware they are smart and so avoid corrupting them? One of my users has corrupted most of their smart groups by manually adding & deleting contacts.  Talking to the user, she was not aware of what was a smart group and what was a regular group.  in fact, in normal use there is no visual difference (unless I'm missing something). However, in 'contacts/manage groups' menu option it is clearly displayed but not otherwise.
Clearly indicating that a group is smart would avoid this problem - use a different colour? I have noticed other questions about smart groups that indicate corruption caused by users manually adding contacts.  Do other users think this would be worthwhile?

That's a good suggestion. I've also heard the suggestion to provide an admin option to "lock" smart groups to prevent manual adding/removing of contacts.


Vague error in log "You do not have permission to access this page." What's the first step to finding out the cause of an issue logged in ConfigAndLog/.log? (shown below).. Its from a shortcode on the frontend of wordpress 4.4.7 [civicrm component="user-dashboard" hijack="0"].

Civi 4.6.4

The page works fine but someone somewhere in the world might not have been able to access their dashboard:

Feb 09 11:41:08  [info] $Fatal Error Details = Array
(
    [message] => You do not have permission to access this page.
    [code] =>
)

Feb 09 11:41:08  [info] $backTrace = #0 /home/public_html/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Error.php(363): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 /home/public_html/www/wp-content/plugins/civicrm/civicrm/CRM/Utils/System/WordPress.php(294): CRM_Core_Error::fatal("You do not have permission to access this page.")
#2 /home/public_html/www/wp-content/plugins/civicrm/civicrm/CRM/Utils/System.php(277): CRM_Utils_System_WordPress->permissionDenied()
#3 /home/public_html/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(232): CRM_Utils_System::permissionDenied()
#4 /home/public_html/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(86): CRM_Core_Invoke::runItem((Array:14))
#5 /home/public_html/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(54): CRM_Core_Invoke::_invoke((Array:2))
#6 /home/public_html/www/wp-content/plugins/civicrm/civicrm.php(1189): CRM_Core_Invoke::invoke((Array:2))
#7 /home/public_html/www/wp-content/plugins/civicrm/includes/civicrm.shortcodes.php(292): CiviCRM_For_WordPress->invoke()
#8 [internal function](): CiviCRM_For_WordPress_Shortcodes->render_single((Array:2), "", "civicrm")
#9 /home/public_html/www/wp-includes/shortcodes.php(326): call_user_func((Array:2), (Array:2), "", "civicrm")
#10 [internal function](): do_shortcode_tag((Array:7))
#11 /home/public_html/www/wp-includes/shortcodes.php(223): preg_replace_callback("/\[(\[?)(civicrm)(?![\w-])([^\]\/]*(?:\/(?!\])[^\]\/]*)*?)(?:(\/)\]|\](?:([^\...", "do_shortcode_tag", "[civicrm component=\"user-dashboard\" hijack=\"0\"]")
#12 /home/public_html/www/wp-content/plugins/civicrm/includes/civicrm.shortcodes.php(200): do_shortcode("[civicrm component=\"user-dashboard\" hijack=\"0\"]")
#13 [internal function](): CiviCRM_For_WordPress_Shortcodes->prerender(Object(WP))
#14 /home/public_html/www/wp-includes/plugin.php(601): call_user_func_array((Array:2), (Array:1))
#15 /home/public_html/www/wp-includes/class-wp.php(692): do_action_ref_array("wp", (Array:1))
#16 /home/public_html/www/wp-includes/functions.php(952): WP->main("")
#17 /home/public_html/www/wp-blog-header.php(14): wp()
#18 /home/public_html/www/index.php(17): require("/home/public_html/www/wp-blog-header.php")
#19 {main}

For example, this is an error in the production log but how do I know 'who' in the world or which constituent ran into the issue?

Try this extension

https://civicrm.org/extensions/civicrm-error-handler

  Sometimes CiviCRM can be real tough to debug. Especially when you are getting fatal errors, but only by some users, and you can't recreate the problems. This utility will send you a detailed email when a CiviCRM fatal error occurs.


Unable to edit existing contributions after CiviCRM upgrade Issue arises after upgrading from 5.25 to 5.34.
When attempting to edit any contribution and consequently saving, the form returns an error 'please enter a valid amount'
It appears that the system is auto placing a "CA$" acronym before the numerical value (amount). Unfortunatley, the field isn't editable, therefore prohibiting the opporunity of removing the offending acronym to enable form saving.
I've tried to adjust settings in Administer > Localization > Languages, Currency, Locations to no avail.
Does anyone know how I may fix the issue?
Wordpress: 5.6.4

Thanks to a couple of members, there is a patch in circulation to define decimals in place of the currency symbol that's causing the problem.
https://github.com/civicrm/civicrm-core/pull/19680/files


Different invoice template depending on payment gateway? We have an client who uses two payment gateways - they have a requirement that some types of payments (contributions) use one payment gateway, and other types of contributions use another payment gateway. The resulting invoices will need a different header and contact information.

Has anyone achieved something like this before?

For a client with different payment gateways we sidestepped the issue by having different Contribution pages for each - since one was for a c4 and one for a c3 entity and used

{if $contributionPageId == X}


Table for Custom Fields I'm using Joomla and CiviCRM 4.7 and I want to add custom fields to the Participant List that's available as menu item on Joomla. I've searched all of the tables but I don't know where to find the data in the civicrm database.

I have a custom group called Conference_Selections and one of the options is for participants to choose a workshop and a study group. I want to add those fields to the participant list report so my committee can access it on the front end without having to access the report from the back end.

Is this possible? If so, where is this data stored?

Thanks for your help!

If I understand correctly, you want to add some custom fields to the "Event Participant List" report, as displayed in this screenshot:

If so, you just need to mark those particular custom fields as "Searchable":

Go to Administer menu » Customize Data and Screens » Custom Fields
Click View and Edit Custom Fields in the row labeled Conference_Selections.
Next to each field that should display on the report, click Edit Field.
Tick the checkbox labeled Is this field searchable?.


Offline event registration Pay later option I want to be able to offline register user, that will pay later.
If in 'Payment information' I set an amount of 0 and a 'Payment status' to 'pending', 'Participant Status' is always set to 'Partially paid' and not the status that I have set, when an confirmation and receipt is send by email.
If 'Send Confirmation and Receipt' is unchecked, 'Participant Status' is not changed, and only contribution status is set to Pending (Pay Later)

It should be nice to have a 'Pay later' checkbox so it's not mandatory to record an empty payment.

Is it possible?

Thank you for your help,

Olivier.

You could do the above by going to a contribution form and have cid=0 or use the 'register as another person', ie use the public form but put in their details and set as 'pay later' via the form


Error when trying to install buildkit I am trying to install buildkit and re-educate myself with some of the more up to date CiviCRM development practises :-) However, I get an error when I run civicrm_download_tools. I am running Ubuntu 14.04. Here is what my npm-debug.log says:

 14868 error 404 'types' is not in the npm registry.
14868 error 404 You should bug the author to publish it
14868 error 404
14868 error 404 Note that you can also install from a
14868 error 404 tarball, folder, or http url, or git url.
14869 error System Linux 4.4.0-57-generic
14870 error command "/usr/bin/nodejs" "/usr/bin/npm" "install"
14871 error cwd /home/erik/buildkit
14872 error node -v v0.10.25
14873 error npm -v 1.3.10
14874 error code E404

Any ideas what I could or should do?

Solved by updating my npm install using

install npm -g


Any experiencing errors upgrading to 4.7.9, related to 'CRM-16189 Financial account relationship' My upgrade simply hangs (20+ minutes) and then crashes a 2GB VPS trying to execute the MySQL related to 4.7.9.

My guess is that line 26 and beyond in 4.7.9.mysql.tpl is writing checks that my server cannot cash, given over 100,000 contributions already in Civi.

Can this query be optimized or can I see a less smarty-ized version of it I can run?  What are the consequences of not running these queries, if we do not use Accounting integration or Financial Accounts?

Actually I found it was the FK changes in 4_7_8 in FourSeven.php in conjunction with the 4.7.8.mysql.tpl were crashing server.  By commenting out all 4.7.8.mysql.tpl and then manually running these after upgrade complete, there were no crash/hang.


Wordpress page title only fixed in 4.6.4? Can I assume that the fix mentioned in this post is for 4.6.4 NOT 4.6.3, the current stable version?

http://forum.civicrm.org/index.php/topic,36339.msg154556.html#msg154556

Any idea how long until 4.6.4 is the stable version or what magic happens in that version to allow Wordpress to use the title of the PCP for the page title (instead of the site title)?

On reviewing the situation in the presence of various plugins that try and change the title for SEO or Open Graph reasons, I think there is an issue with the way Civi tries to set the title. I've created at pull request on the CiviCRM WordPress plugin's repo at GitHub that should fix this.


CSS and JS Files aren't loaded - CiviCRM 5.18.2 & WordPress 5.2.2 Fresh install of CiviCRM on a WordPress multisite yet no interface loads on the status page - seems that all the assets throw a 404 error causing this.

Tried updating from 5.18.1 to 5.18.2 but no success.

I'm with Demerit - it looks like there's a mismatch between your Resource URL and your base directory.  Check your $civicrm_root in civicrm.settings.php.  Ensure that it is a) correct, b) doesn't contain a symlink.  If it contains a symlink, rewrite the path to be whatever the symlink(s) resolve to.


How to cope with CiviEvent user choices I've set up a paid-for event with online registration which uses a price set where a user can choose how many tickets they want in each of the available types and optionally add a donation (by entering multiples of £1).

It seems that a user can enter fractions and negative values in any field. And they can also not select anything but can continue.

I've done a temporary fix to test for fractions and negative values in a custom extension by adding some JavaScript in templates/CRM/Price/Form/Calculate.tpl and some extra validation code in CRM/Event/Form/Registration.php

Is there a better/recommended way of doing this? This would seem like a common requirement.

PS  The CiviEvent Cart Checkout looks useful but is described as being in an Alpha state. Anyone using it successfully?
https://wiki.civicrm.org/confluence/display/CRMDOC/CiviEvent+Cart+Checkout

Thanks in advance.

If you're on Drupal - I recommend you use Webform CiviCRM module - https://www.drupal.org/project/webform_civicrm - It will let you built a cart (multiple Events, fee-options, discount codes, etc) and leverage all native Drupal Webform options (like Conditionals) to build your fees without requiring any code.

If your CiviCRM is not attached to Drupal - then your options are to either help fund improvements [contact the Core Team - they have a paid Issue queue https://civicrm.org/paid-issue-queue ] or get on Mattermost chat.civicrm.org - to see if you can team up with developers/other orgs that are interested in improving the native CiviCRM Cart Checkout.


Base table not found for civicrm_contribution_page #201 On latest version of 8.x-3.x branch i get following error when try to add a view for contribution page

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'civicrmdb.civicrm_contribution_page' doesn't exist: SELECT civicrm_contribution_page.id AS id FROM {civicrm_contribution_page} civicrm_contribution_page LIMIT 11 OFFSET 0; Array ( )

views for Contact, Contribution, Event works fine but not incase of Contribution page, Payment processor, campaign etc.

Can we create list of contribution pages/campaigns/payment processors using  civicrm_entity + civicrm views d8?

This happens when you have separate database for civicrm tables. Below patch in civicrm_entity module fixes problem for 'Base table or view not found:'

diff --git a/src/CivicrmEntityViewsData.php b/src/CivicrmEntityViewsData.php
index 51db201..ffbb31d 100644
--- a/src/CivicrmEntityViewsData.php
+++ b/src/CivicrmEntityViewsData.php
@@ -17,6 +17,8 @@ class CivicrmEntityViewsData extends EntityViewsData {
     $base_table = $this->entityType->getBaseTable() ?: $this->entityType->id();
     $base_field = $this->entityType->getKey('id');

+    $database = _civicrm_get_db_config()['key'];
+
     // Setup base information of the views data.
     $data[$base_table]['table']['group'] = sprintf('%s (CiviCRM Entity)', $this->entityType->getLabel());
     $data[$base_table]['table']['provider'] = $this->entityType->getProvider();
@@ -27,6 +29,7 @@ class CivicrmEntityViewsData extends EntityViewsData {
       'field' => $base_field,
       'title' => $this->entityType->getLabel(),
       'cache_contexts' => $this->entityType->getListCacheContexts(),
+      'database' => $database,
     ];
     $data[$base_table]['table']['entity revision'] = FALSE;
     if ($label_key = $this->entityType->getKey('label')) {


Admin-generated receipts show server name in email 'from' field When we process a contribution in the back end and click the 'Send receipt?' button, a receipt is sent to the user from the address of our server (which is not listed in our 'FROM email address' list). For example the confirmation email header that comes through:

From: <1111@server234.com>
Date: Jan 21, 2019 4:21 PM
Subject: Contribution Receipt
To: <1user@email.com>

This just started happening after I upgraded to CiviCRM 5.9.1 running on Drupal 7.63.

Recreate by
going to Contributions/New Contribution and creating a new contribution for a user (could be $0)
Click the 'Send Receipt?' checkbox
Save transaction (send receipt)
and check the 'from address' - it should indicate the servers name rather than the 'FROM' name that was selected.

I noticed someone else reported this in the last 24 hours in the comment by 'The Doctor' under this question:
Registration confirmation email uses wrong From email address

This is now fixed and should be part of next release hopefully. You may wait for next release or apply patch manually from here.


Getting permission error when installing CiviCRM under Drupal I've recently set up a subdomain of mine on a VPS, installed Drupal 7.56, and managed to download the civicrm module but when I go to http://mysite.net/drupal-7.56/sites/all/modules/civicrm/install/index.php

It give me this:

You don't have permission to access this page

I was logged in as the admin before I tried the install.  Not sure if this is file permissions or what.

PHP 7.0
Drupal 7.56
CiviCRM 4.7.28

Thanks in advance,
John

I faced this problem too and tried a lot of things to make it works, but failed.

Finally, I opened the file "index.php" in "http://(mysite)/sites/all/modules/civicrm/install/index.php". I put the comments in line number 265th through 274th like this.

/*
  // Check that user is logged in and has administrative permissions
  // This is necessary because the script exposes the database settings in the form and these could be viewed by unauthorised users
  if ((!function_exists('user_access')) || (!user_access('administer site configuration'))) {
    $errorTitle = ts("You don't have permission to access this page");
    $errorMsg = ts("The installer can only be run by a user with the permission to administer site configuration.");
    errorDisplayPage($errorTitle, $errorMsg);
    exit();
  }
*/

Yeah. IT WORKS!!!.

Who use this way like me, DON'T for get to remove the comments after installation is completed.


Activity changes individuals busy/available status I'm looking to use CiviCRM to - in part - manage our team of around 50 volunteer translators. Once a volunteer has agreed to take on a translation, staff will set an activity, so that we can keep a record of how many translations people have done. I've set that up, with a number of custom fields for the volunteer contact, and for the activity (a URL of the original text, the date we should receive the translation, etc).

What I would like to be able to do but can't work out out the functionality of, is - once an activity has been assigned - for something in the volunteers contact sheet to display that they are currently translating (I can do this manually, but busy people probably won't necessarily always do two steps, so we could end up with activities being assigned but the translator still appearing "available"). This way when a staff person comes to search for a translator (by language to/from, and their availability) they only get shown volunteers who aren't currently completing activities.

Thanks!

I think the best way to do this is with smart groups instead of custom fields.  Create a smart group of folks who have a translation activity that's unfinished; create another smart group of everyone not in the first smart group.


Persistent "Your database has already been upgraded to CiviCRM" Problem I am updating CiviCRM from 4.7.27 to 4.7.31 on WordPress 4.9.4. Other than CiviCRM, everything is up to date.

I've thoroughly Googled the problem, and have tried three times to do the update. But the "Your database has already been upgraded to CiviCRM 4.7.27" problem persists. I've followed the relevant portions of Upgrading CiviCRM for WordPress for current versions of WordPress and CiviCRM.

In particular, in response to problems other people have had, I've:

Completely deleted my /wp-content/plugins/civicrm folder via FTP (I didn't just rename it).
Downloaded a fresh copy of CiviCRM 4.7.31, unzipped it locally, and uploaded the civicrm folder to /wp-content/plugins. I confirmed that the remote copy of civicrm.php references version 4.7.31 in the header.
Deleted the files in /wp-content/uploads/civicrm/templates_c.
Cleared the browser cache (I'm using Chrome).
Searched the site files for a rogue civicrm plugin directory. There is none.

All of this in addition to all the other relevant steps in the Upgrading wiki article. (We're not using localization files.)

Nothing works, and I continue to be haunted by "Your database has already been upgraded to CiviCRM 4.7.27" when I run the upgrade script.

What could I be missing? What is causing the problem?

Thanks!

Huge thanks to @PradeepNayak for your help! The problem wasn't with the paths in civicrm.settings.php, but that suggestion led us to look at our configuration. Turns out that we had some confusion between a development and staging server, so were, in fact, not updating the right instance. In essence, the version number from the database was right, but it was looking in the wrong place for the files version.


Price set contribution field won't accept negative amounts? Price sets give you the tremendously useful ability to add a price field in which a user can enter an arbitrary amount. This is done by choosing an Text/Numeric field type, setting its value to '1' and NOT ticking 'Display amount'.

However, we want to use this to create an arbitrary-sized discount for admin users, and Civi doesn't seem to allow negative numbers in this field.

As you can see from the attached screen shot, the negative entry in our 'arbitrary amount' field has been ignored.

It's perfectly possible to make discounts of fixed amounts in a price set - the screen shot shows that our fixed discount has been included in the price calculation.

What would need to happen so that this 'arbitary amount' field can accept negative amounts?

Thanks for your help!

Drupal 7.43, Civi 4.6.17

Ah - I strongly suspect this is a 'rule'/'validation' (either in the javascript or the form layer) - to ensure people donate extra as opposed to giving themselves a discount.

The workaround is obvious: create an Arbitrary Amount similar to how you created the Discount Amount - or do you need it to be this type of field?


How can I get the donation amount radio buttons on the same line as the amount? I've had the same problem with different templates. It is not clear which radio button relates to which amount. See pic.

This layout is coming from some theme or plugin on your site.

CiviCRM includes its own CSS which delivers your desired result out of the box, and you can override or replace those CSS files.

In this case, your site theme / some plugin is instructing the browser to lay out the form differently from how CiviCRM does per default. I'd hazard the site shown above is using a CMS theme which includes some directive like

input, label {
  width: 100%;
  clear: both;
}

You can address this by providing appropriate CSS to achieve the desired layout. Not having seen the site in question, it's hard to be more specific than that.

Anyway, here's a Stack Overflow question on how to sit radio buttons next to their labels which might help you.


Custom Field doesn't show up in Advanced Search I created a custom data set called Volunteer Fields with one field. The name of the field is "Volunteer?". It's a Yes/No radio button and it's marked as Searchable. The documentation says:

Is this Field Searchable?
Makes the field appear in a panel of custom fields in CiviCRM's Advanced Search page.

I can't see it in Advanced Search. I can see and edit the field on the View Contact screen. I can search on the Volunteer? field using Search Builder, but there's no panel for custom fields in Advanced Search. I can't find the field anywhere in Advanced Search. Please Help...thanks!!

Navigate to Administer - Customize data and screens - Display preferences and select the Custom field section listed under Contact search. After that you should see the Custom field accordion in the Advanced search


How to make a daily bithday report at morning? Every day a person receives a list of who has a birthday on that day. But this happend at evening, when it useless, How to make it at morning?

My guess is you have a cron job scheduled to do this. See https://docs.civicrm.org/user/en/latest/initial-set-up/scheduled-jobs/#timing for how to adjust your timing.


Civievent custom data field duplicate fields in Edit I encountered a strange situation.  I have added a custom data group in a participation record called "Emergency Contact"  with 2 fields and while this appeared ok in View of the participant records, there would be 2 such group displayed when i click Edit.  Entering only 1 of these 2 group will retain the values, the other group wouldn't.  Any idea how this happened and how it can be resolved?

WordPress: 5.0.4 CIVICRM: 5.10.4 Ubuntu

I guess the custom field is configured to use for Participants entity with Event name/event type/role set to any.

Solution for fix:

Upgrade CiviCRM to 5.15 or 5.16 because i can't replicate the bug anymore on latest version of CiviCRM.
Change the custom field config to use only Participants as entity instead Participants(Event Name), Participants(Event Type) or Participants(Roles).

Thanks

Pradeep


CiviCRM upgrade paths I have Civicrm 5.3.0 on Wordpress. -  It says need to upgrade a security patch.  Should it be 5.3.1 or 4.6.38 first?  Want to end up with 5.3.2

You can upgrade to 5.3.2 (and that will then automatically include 5.3.1 - the security release)


Submit redirects to Home page, DB Error: syntax error I am using CiviCRM 4.7.8 on Joomla Joomla! 3.5.1 Stable [ Unicorn ].  When I go to my Donate (civicrm contribute page), the first time I submit the form, I am just redirected to the main front page.  No error message or confirmation page.  Subsequent form submissions, give me the following error and debug info.  This happens even when I submit a blank form.  How can I solve this issue?

DB Error: syntax error

Database Error Code: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY id1, id2 ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight)' at line 1, 1064
Additional Details:

Array
(
    [callback] => Array
        (
            [0] => CRM_Core_Error
            [1] => handle
        )

[code] => -2
[message] => DB Error: syntax error
[mode] => 16
[debug_info] => INSERT INTO dedupe (id1, id2, weight) SELECT 0 id1, 0 id2, 0 weight LIMIT 0 GROUP BY id1, id2 ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight) [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY id1, id2 ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight)' at line 1]
[type] => DB_Error
[user_info] => INSERT INTO dedupe (id1, id2, weight) SELECT 0 id1, 0 id2, 0 weight LIMIT 0 GROUP BY id1, id2 ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight) [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY id1, id2 ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight)' at line 1]
[to_string] => [db_error: message="DB Error: syntax error" code=-2 mode=callback callback=CRM_Core_Error::handle prefix="" info="INSERT INTO dedupe (id1, id2, weight) SELECT 0 id1, 0 id2, 0 weight LIMIT 0 GROUP BY id1, id2 ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight) [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY id1, id2 ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight)' at line 1]"]

)

It was a redirect issue.  Not all domains were redirecting to the domain that civi had listed as its base domain.  example.com needed to redirect to www.example.com for instance.


Civicm change UFID to ContactID relationship programatically How can I programatically change the ufid and contact id of CIVICRM?

I know the table civicrm_uf_match  holds the matching ids but even if I change that it doesn't matter.  It seems like the ids are put into session but even if I try to change the session variables via:

$session =& CRM_Core_Session::singleton( );
$session->set( 'userID' , $myjoomauserid);
$session->set( 'ufID' $mycivicid);

everytime I click renew member its the same member.  I need to be able to change it all on the fly for my custom user interface.  It allows a user to view all civicrm contacts and memberships associated with one email address.  Then the user can edit renew whichever ones they want -- I created this to allow families to be able to edit there kids and for clubs to edit their members.  Any help with how this works would be geatly appretiated.  I used to set the ids in the civicrm_uf_match programatically then log the user out of joomla and log them back in but that doesnt seem to work anymore since the civicrm uprade to 4.6

I am not sure if synchronizeUFMatch as seen in some of the ecode is the route i neeed to look into such as

$ufmatch = self::synchronizeUFMatch($user, $userSystemID, $uniqId, $uf, NULL, $ctype, $isLogin);

Well as usual it turns out to be simple.  I just need to manually make the link in civicrm_uf_match via my program then simply change the session variables via:

require_once 'administrator/components/com_civicrm/civicrm.settings.php';
   require_once 'administrator/components/com_civicrm/civicrm/CRM/Core/Config.php';
   require_once 'administrator/components/com_civicrm/civicrm/api/v3/UFMatch.php';
   require_once 'administrator/components/com_civicrm/civicrm.settings.php';
   require_once('CRM/Core/DAO.php');

$session = CRM_Core_Session::singleton();

$session->set('ufID' , $ufid);     //joomla ID
$session->set('userID' , $userid); //civi contact id


Why do reminders not go out to some of the contacts who should receive them Situation is that having ruled out contacts with no emails, blocked, etc there are still some contacts that are not having reminders created/sent

One reason could be that an existing Reminder had its criteria changed!
EG ...
X was sent a scheduled reminder for reminder no 14 on 23 Jan 2015 and the entry relates to his membership end date being 31 Dec 2015.

At the time the reminder was sent scheduled reminder no 14 was configured to send a mail 23 days after the expiry date (then 31 Dec 2014). On 25 May the reminder was changed to send out 7 days before expiry date.

The reference_date column was not added until 28 August and at that point the current end_date was stored for the reference date. There was some calculation that went on regarding this but to the extent that it was correct in general terms, it was messed up by this reminder's history.


Searchable Profile fields do not work I have an issue on creating profiles.
When I create a profile with several fields such as "First Name" "Past Name" "E-Mail" and some Custom Fields and I set these fields to "searchable", everything looks fine at first. I can check the preview and the Use - Create/Edit/Listing Modes and it works.
But after a while, it suddenly doesn't work any more:

I get for the Listing Mode the error message: "No fields in this Profile have been configured as searchable. Ask the site administrator to check the Profile setup. "
Preview is empty
Preview od searchable fields tell: "Profile Field Preview This CiviCRM profile field is view only." -> BUT IT IS DEFINITELY SEARCHABLE AND NOT "VIEW ONLY"

for me this feels a bit like a bug. Would be nice to hear if this problem is known and if there is any fix

Clearing cache may be the solution? If yes you can turn on 'Clean-up Temporary Data and Files' schedule job with below parameter.
dbCache=1
memCache=1


Drupal Views - Views Plugin - Gender ID I'm making a Views Plugin, a 'format type', and when I use CiviCRM Contact Gender as a field, it returns a Gender ID. That's to be expected. But when I use the other Views formats (HTML, grid, etc) it shows the actual gender.

Does anyone know why it is changing it to male, female etc on the standard ones, but leaving it as an ID on my new format?

Thanks,

Update - to be clear I understand that this is stored in the contact table as an ID that is looked up elsewhere. My question is - does anyone know how it's being looked up in the options table by standard views plugins, but not by mine?

Take a look at the file civicrm_handler_field_pseudo_constant.inc - this is what handles the option value lookup.


How can I prevent deduping from killing my server? On a reasonably big data set (e.g. one with 70,000 individual contacts), it's not hard to kill your server with a naive manual de-duplication attempt. For example, if you don't specify a group, that number of contacts generates about 5 billion comparisons.

Has anyone thought of a way to prevent unreasonable deduplication attempts?

I think Parvez's work on deduplication performance is a big piece of this puzzle: http://vedaconsulting.co.uk/civicrm-dedupe-workflow-ui (see step 1).  Some of the answers here are also relevant to improving performance.

However, neither of these solves what's probably your most common use case - someone running a massive deduplication script.  One solution might be to feed deduplication into a queueing system.  Another might be to permission the dedupe screen - or even permission specific dedupe jobs, so that someone can run Parvez's smart dedupe but not a standard dedupe rule.


Outbound mail fails after upgrading to 4.7.1 I recently upgraded my site to 4.7.1.  Outbound SMTP does not work.  Even though I use the correct credentials, I get errors and email does not send.  I restored my site back to 4.6, and all is good.

Tried testing on your sandbox, but 4.7 is not available yet.

From what I understand, this can be because the server you contact has a self-signed certificate (see this question for a workaround), or because the PEAR SMTP package version used by CiviCRM does not support TLS. Civi uses 1.6.1, but support was added in 1.7.1.

In our case (php7, CiviCRM 4.7), we are able to work around this by forcing SSL connection rather than TLS. In the Outbound mail settings
1) put ssl:// in front of the mail server name
2) change the port to something appropriate. Usually to 465**


CiviMail Unsubscribe link goes to a generic/undefined Wordpress page When the recipients of my mailing try to click on the "Unsubscribe" link the user is taken to a generic/undefined page that reads: "CiviCRM  Do not delete this page. Page content is generated by CiviCRM."  The user is also not marked as having opted-out of all bulk mailings.
The link generated is generated via {action.optOutUrl} which yields "http://besanthill.nfshost.com/civicrm?page=CiviCRM&q=civicrm%2Fmailing%2Foptout&reset=1&jid=244&qid=7847&h=0db2c5d63683bd63", for example.
I've looked at the suggestions on this post but the CMS base page and the permissions appear to be set correctly (that is, "access CiviMail subscribe/unsubscribe pages" is enabled for anonymous.)  And ideas?
Thanks in advance,
Richard

This is now fixed. The solution was to upgrade CiviCRM to the latest version.


Error with CiviVolunteer after upgrading to PHP 7.1 Via permissions page and system status page.

Warning: Declaration of CRM_Volunteer_Permission::check($permissions) should be compatible with CRM_Core_Permission::check($permissions, $contactId = NULL) in /home/site/public_html/wp-content/uploads/civicrm/ext/org.civicrm.volunteer/CRM/Volunteer/Permission.php on line 0

Civi 5.6 Wordpress 4.9.8

CiviVolunteer is not fully tested for 5.x version and might have compatibility issue like you are facing. This issue has been fixed and is probably waiting in PR queue for it to get merged in next release.

You can either download the patch from here or wait for next release.

HTH

Pradeep


Attempting to add a new Contact, why do I get this error message - 'Warning: htmlspecialchars() expects parameter 1 to be string'? I'm getting this error message when attempting to add a new contact in Civi 4.6:

Warning: htmlspecialchars() expects parameter 1 to be string, object given in krumo::_array() (line 1071 of /var/www/[myCivisite.org]/sites/all/modules/devel/krumo/class.krumo.php)

Eileen fixed the error, see the Jira issue at https://issues.civicrm.org/jira/browse/CRM-16287


search for two relationships at once is it possible to search for two relationships at once?

Until now I search for relations like
- search
- advanced search
- relationships
- choose the desired relationships

thx.

I would do it using search builder, not advanced search.


List Parents of Children having certain values Is there a way to query the Custom Fields on a Child and then show their Parent's detials? Scenario: email all parents whose children attend a certain class.

Yes, using Advanced Search (Search menu » Advanced Search).  Set up the search the same way you would in order to find the children.  Additionally, set the "Display Results As" at the top to "Related Contacts", and select the "Parent of" relationship.


Can I save bulk update screens for future use? I'm not sure if my title is 100% clear, but here's the situation I'm facing.

We have custom fields that once a year we have to manually update for all current members. A smart group was created to find all current (paid) members and a profile that shows the username and the two custom fields we need to update. To initiate the bulk update, we do the following:

Click on Manage Groups
Click on the Contacts link of the group in question
Select all entries
From the Actions drop down list, select Update multiple Contacts
On the next screen, select the profile for updating the appropriate fields
Click Continue

Now, we can update the necessary fields, click Update Contacts and we're done.

Is there a way to save that bulk update screen for later re-use. Ideally, I'd like to be able to save it for easy access from the menu much like a report. Not only would it be quicker to access, but also simpler when training someone else to make these updates. Basically, it should remember the Smart Group and Profile used to create it.

You can use the search action designer extension to design your own bulk update actions.


CiviReports filtering on email adress I want to display a report of all my contacts with a certain email adress ending, like "@gmail.com".

I find many reports that display email adress as the result, but I fail to find any report that can filter on email adress.

  Is there a CiviReport that can filter on email adress?

I don't believe there is a core report that allows filtering by email.  Have you checked to see if there is one in an extension?

An alternative would be to create a smart group where the criteria is, for example, "%@gmail.com".  Most reports will let you filter by group.


Adding An Extra Tab When Configuring/Creating An Event I want to add a new tab called "Web Tracking" when creating a New Event.
I want to do this so that I can keep all the parameters for web tracking separate from the other Event parameters. How do I go about this?

The only relevant file I could find is civicrm/CRM/Event/Form/ManageEvent/TabHeader.php

I have attached a picture in case the description is not clear.
(I got the picture from the CiviCRM forum)

I see now that you are working on core code. But just for the record, if you were doing this in an extension you would proceed by implementing hook_civicrm_tabset.


Track last updated custom data Is there any built in way to tell when the data in a custom data set was last updated?  If not, what would be the best way to proceed to build that in for one specific group?

As usual, the data can be edited by the administrative user logged in to civicrm OR it could be edited via a profile.  In my case I know the profiles in advance, so could rely on the profile ids.  These are always 'on behalf' profiles.  Not sure if that's important.

I'm thinking I could create a custom "last updated" field in the data set, and then update it through a hook, but not sure if that's the best way.  Thanks for any guidance.

This question is conceptually similar to this one: https://civicrm.stackexchange.com/a/4880/12

I think a hook is your best bet.


REST API - setting an activity's custom fields How do I set a custom field value for an Activity via the REST API?

I can create an activity on a contact.  I am looking to set a value for a custom field within that activity as well.

For reference my current POST request looks something like this:

<www_path>?entity=activity&action=create&activity_id=0&target_contact_id=0

Any insight is appreciated!  Thanks for the help!

You need to know the custom field ID of the field in question.  If the ID is 14, you can use:

<www_path>?entity=activity&action=create&activity_id=0&target_contact_id=0&custom_14=myvalue

In general, if you're asking these sorts of questions, you can answer them best by using the API explorer: Help menu > Developer > API Explorer.  You can use it to design your query, and it will build your REST string for you - including looking up custom field IDs.

To get the ID via the GUI, you can go to Administer menu > Customize Data and Screens > Custom Fields, then select "View and Edit Custom Fields" for the appropriate group.  If you hover your mouse over the "Edit Field" link, you'll see a URL that ends in "&id=x".  "x" is your field ID.

To get the field ID via the API, do a call to CustomField.get.  Here's a REST call to get the ID of a field called "Mail Designation":

/sites/all/modules/civicrm/extern/rest.php?entity=CustomField&action=get&json={"sequential":1,"label":"Mail Designation"}&api_key=yourkey&key=sitekey

Better still, use CustomField.getvalue to return just the ID:

/sites/all/modules/civicrm/extern/rest.php?entity=CustomField&action=getvalue&json={"sequential":1,"return":"id","label":"Mail Designation"}&api_key=yourkey&key=sitekey


Suscpicious Database Errors In my installation I firstly recognized database errors like described in CiviCRM issue CRM-19109: Draft mailings are not saved. In a fresh local installation (Ubuntu 16.04LTS, php 5.6, mysql 5.7.13, Drupal 7.50) even more database errors came up.

Digging into the MySQL database showed error messages like:

SELECT  id, component_type
FROM    civicrm_mailing_component
WHERE   is_active = 1
AND     is_default = 1
GROUP BY component_type LIMIT 0, 25

MySQL said:

  #1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'database_civicrm7.civicrm_mailing_component.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

I found that since MySQL 5.7.5 the default value for "sql_mode" is "ONLY_FULL_GROUP_BY" and this causes the problems with CiviCRM database and CiviCRM SQL queries.

In my local installation I added in /etc/mysql/mysql.conf.d/mysqld.cnf/mysqld.cnf

[mysqld]
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

… no more problems so far.

The issue is addressed here:

CRM-18439: support MySQL 5.7 sql_mode=only_full_group_by

This issue was fixed in CiviCRM 4.7.10.

If you are using an earlier version of CiviCRM (e.g. 4.6), one option is to stick to an earlier version of MySQL (e.g. 5.6).

Alternatively, as stated in the question, you can fix this problem by adding a custom config file for MySQL.  I used the following file:

[mysqld]
# Turn off 'ONLY_FULL_GROUP_BY' option as this breaks CiviCRM < 4.7.10
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

Rather than using my settings, I suggest that you check your current SQL mode with the following query:

SELECT @@SQL_MODE;

Copy the results of this query into the file above without ONLY_FULL_GROUP_BY.


100% mailing have bounced : validation failed for Hello after two modifications on the server and on CiviCRM, it becomes impossible to send any mailing. All the email adresses are "burned" with all the email addresses being wrongly tagged as bounced.
In the Report, the Bounce Type is for all emails indicated as Invalid.

Some symptoms :
The table civicrm_mailing_event_bounce indicate for all mails adresses in the bounce_reason this problem :

Validation failed for: "(INVALID)" <(INVALID)>

The bounce_type_id in the is #6 which is Invalid : Email address is not valid
Of course the setting in admin/options/from_email_address (From Email Address Options) have been verified, they are OK.

In the table civicrm_mailing_bounce_pattern there is 24 different patterns from the bounce_type_id #6.

There is then two clues :
The server had been recently moved under PHP7.2 and CiviCRM had been enabled to handle the Multi Site Configuration with the extension CiviCRM Multisite (org.civicrm.multisite).

Did someone experimented and solved this trouble ?

Thanks for any help.

The CMS is Drupal 7 with CiviCRM 5.4.1 on a Debian 8 server
The bounce email boxe is located on a different Debian 8 server with Postfix Mail Server Postfix version 2.11.3

So I found the problem.
Thanks to @HomoTechsual who lead me in the right direction.

The reason had been found in the Settings - Outbound Mail.
It was set to mail() with a success message : Your SENDMAIL settings are correct. A test email has been sent to your email address.
That looked good but in fact the message was never sent by the server ! Trusting this message, I did forget to check if the test email really arrived to email address. My mistake : always double check.

After I changed the setting to SMTP with all the right setting of the mail server, I still got the success message but the message arrived in the mailbox.
After I removed the bounce tag for each email address, I could make a test mailing that went fine this time ;-)

So the issue was from the mail server. The issue was not with CiviCRM. Something probably related to the DNS is not working on the server. This made CiviCRM confused about the mailing.
From now Civimail works well with the SMTP set in the Settings - Outbound Mail. I the case of my server this is the only option.

UPDATE : In this case it seems that a group of several issues happened.
I found another thing that could be at the origin in the table civicrm_mailing :
both from_name and from_email are set to (INVALID)

from_name From Header of mailing (INVALID)
from_email From Email of mailing (INVALID)

Yet I have no clue how this happened but there now a clear link with validation failed for <(INVALID)>
I did not find why chosen email provoque that. It might be related with multi-site extension. Now I can manage the mailing with an another email address.


Can I search for contacts with activity added by specific person? I am trying to create a smart group for contacts that have activity added by specific person.

Advanced search allows me to search either
(1) for contacts based on some activity;
(2) for activities based on who has added the activity.

But unfortunately not for contacts based on who has added the activity.

UPDATE: (Tested on CiviHosting demo site.)

Advanced search parameters:

Display Results As: Contacts
Basic Criteria - Complete or Partial Name: Errol
Activities: (*) Added by

RESULT: Search returns Errol as the only result, not all contacts whose activities have been added by Errol.

In Advanced Search and Activity Search you can filter by 'Added by'.

Also you can use Search Builder form and filter by 'Activity' with 'Source contact' = ...


Itemized Annual Statement of Contributions I can create a letter template containing the appropriate tokens from the Summary Fields but the only available token would be a Sum reflecting the entire year's donations. Is it possible to produce an end of the year statement that would reflect an itemized list of each individual contribution (including the final sum).

Assuming you are using version 4.4 or higher the answer is yes.

In brief the steps are:

Use a Find Contributions search to identify the relevant contributions from last financial/fiscal year.
From the actions list select Thank-you letters for Contributions
Choose to Group Contributions by Contact.

More details, including layout of letters, can be found in the Thank-you letters section of the our user and admin guide for version 4.6.  ( Functionality has been available since 4.4, but not documented until 4.6.)


How to generate a monthly report for multiple years? I would like to generate a report that shows monthly breakdowns for last 4-5 years. Is there a shortcut to do it? thanks

You can try Report plus extension, it does provide some reports grouped by contribution date in month or year may be Contribution Summary Plus or Contribution Matrix Plus


How do I get Retrospective feedback for an event using a Webform (participant Custom Data)? Is there a way to get 'retrospective' feedback from participants for an event?

I'm struggling to find any way to access Custom (or any) participant fields without the form becoming one for Registration of an event - at which time they are not going to be avle to give feedback.

Does anyone have any knowledge of how to get Custom Participant fields into webforms when not registering the users?

Any light shed would be much appreciated.

Thanks!

OK - I have it,
for this I've set up a Scheduled Job that fires off to "attended" participants a few days after the event. I set up a smart group of "participants whos participatory date was after [a month ago]" so i didn't spam older participants, and used the group as an "include" filter.
Set up an event, of the right type, so that it would get fired.
Added contacts to the event (and gave them the "Attended" status.
Created the webform and including (from the CiviCRM tab):

existing contact
firstname
lastname
contact ID
checksum

then in the "Event Registration" section

show past events: all
Registration Options > Disable unregistering participants: yes
Registration Options > Allow events populated from URL: yes
under Contact1
no of event sets for contact1: 1
event(s): User Select
& any needed participant custom fields

and build the checksummed url:

http://example.com/node/xxx?event1={event.event_id}&cid={contact.contact_id}&checksum={contact.checksum}

think that's it.
let me know if I missed a bit (or did anything stupid!) and I'll correct it.


How to display sort name with prefix/suffix in webform select list When we create a webform for users to select contacts from a list whether we select to display display name or sort name it does not include suffixes. All of our contacts are families, many of which have suffixes (Sr, Jr, etc.) which makes it very hard to discern which contact is the right contact.We have set the webform up to display the contact's full name including prefix/suffix once they select them from the list and it works ok, but it is not the slickest solution.Is there a method to either alter what Civi includes as the sort name or display name or to alter the webform select list to include the prefix or suffix?

Display Name and Sort Name formats are both configurable at Administer > Customize Data and Screens > Display Preferences.  The default format for Display Name includes the suffix.

On a test webform with an existing contact and autocomplete showing the Display Name, the suffix is included.


specific confirmation email for an event? I would like to send an particular email confirmation for certain events.
Is it possible to select a particular model for these events, or must absolutely change the existing model?

Two options!

Use the text in the Event Config -> Online Registration -> Confirmation Email -> this is Event specific and this text/note will be pasted ahead of the receipt Email - so ahead of what is generated by the message template.

Or - if you want to go into more detail:

You can get into the message-template and add some if logic - that would essentially change the message based on {$event.event_xxx}


Remove Default/Standard fields from activities is it possible to remove some of the default/standard fields for activities?

For example, when creating a new activity type it includes "location" as a standard field. However, you can't search or report by this field. I'm not sure what it's purpose is, and I would rather create a custom field that can be searched.

Thanks

You can not switch this off as a user I am afraid. But you can hide it with a little jQuery to the template if you know how to do this. Is this something you can do?


CiviCRM 4.6.8 compatible with Wordpress 4.3? CiviCRM 4.6.8
Wordpress 4.3
MySQL Apache/2.2.22 (Debian)
Datenbank-Client Version: libmysql - 5.5.44

I've imported contacts, added new contacts, without any problem.

Then I've added a rule for individuals in "Find and merge duplicate contacts". and added following rule:
"Firstname Lastname";
"supervised";
"field=LastName"
"field=First Name". Saved and used the rule.

The message i've got was: "DB Error: syntax error"

Now I'm not able to add a new contact...

I've already tested this in the public demo and it didn't show an error-message.

Can someone help?

Here are the Error Details:

Sep 10 18:22:10  [info] $Fatal Error Details = Array (
    [callback] => Array
        (
            [0] => CRM_Core_Error
            [1] => handle
        )

[code] => -2
[message] => DB Error: syntax error
[mode] => 16
[debug_info] => INSERT INTO dedupe (id1, id2, weight) SELECT 0 id1, 0 id2, 0 weight LIMIT 0 GROUP BY id1, id2 ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight) [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY id1, id2 ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight)' at line 1]
[type] => DB_Error
[user_info] => INSERT INTO dedupe (id1, id2, weight) SELECT 0 id1, 0 id2, 0 weight LIMIT 0 GROUP BY id1, id2 ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight) [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY id1, id2 ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight)' at line 1]
[to_string] => [db_error: message="DB Error: syntax error" code=-2 mode=callback callback=CRM_Core_Error::handle prefix="" info="INSERT INTO dedupe (id1, id2, weight) SELECT 0 id1, 0 id2, 0 weight LIMIT 0 GROUP BY id1, id2 ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight) [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY id1, id2 ON DUPLICATE KEY UPDATE weight = weight + VALUES(weight)' at line 1]"]

)

This doesn't look like a Wordpress compatibility error.  It is, as you guessed, related to deduplication.

It sounds like you may not have a rule designated as your "Supervised" dedupe rule - or there's a problem with the rule you have designated as your "Supervised" rule.  Check to make sure you have a rule, and if you do, try changing it to the default Supervised dedupe rule.  That should clear your problem.  Then you can troubleshoot the dedupe rule itself.


Price Set fields with Quantity per Option We want to have our price set have options such as

A
B
C
D

but we want to have a quantity field for each option

X  A
X  B
X  C
X  D

and have it calculated at the end of the form.

Is this possible or achievable with native CiviCRM functionality, or is there a way to adjust the code to suit our needs that has been done before?

This can be done if you set the Input field type to Text/Numeric Quantity when you create a price field.

You will need to create one price field per option.  There are two slight variations for this field type. Based on your question I think the following will work for you:

If A costs $5, set the "Price" field to 5.00 and make the field's label something like "Number of $5 Widgets"

and so on for B, C and D.

The other option, mostly used for donations, can be found in our book in the section on  membership pricesets. You will need to scroll down to the section on Non-membership price fields.


I set up and scheduled a mailing, but it didn't send. Now what? I scheduled a mailing to send according the the instructions, and it didn't send. Now what?

This has happened to me in the past for a few reasons

In one instance, my time zone was set wrong so the scheduled time had already passed, and the mailing was never triggered.
My cron jobs weren't running. A temporary fix would be to trigger the job manually in Administer > System Settings > Scheduled Jobs > Send Scheduled Mailings.
My cron job hadn't run yet. For example, I can schedule my email to go out at 1:15, but if my cron jobs run every hour it won't go out until 2:00.


What does 'Number of Items to Process For Each Queue Item' mean when using the API Importer extension? I'm using Civi 5.35 and Drupal 7. We've installed the API CSV Import extension. At ~/civicrm/index.php?q=civicrm/csvimporter/import , I see a place to enter
"Number Of Items To Process For Each Queue Item" followed by "This is the number of rows to process in each queue item. (Eg. 10)"
What is a "queue item"? Do I enter a 'Number of Items' value of, say, 2,000, if I want to 'process'/import 2,000 records at a time, but my entire import file can contain say 50,000 or 500,000 records, as long as it does not exceed 3 megabytes?
Thanks!

API CSV Import extension uses Job Scheduler to import the records in Civi. The job scheduler breaks down the whole csv into small batches(also known as queue item) to import to avoid timeout issue, memory excess and various reasons.
'Number of Items' is used to define how many records you want to process in single single queue. If you specify 2000 than there will be 25 queue item lined up in job scheduler to process 50k records with 2k in each queue. The 'Number of Items' you specify should respect the max time out and memory size of the server or it will always result in error. I prefer to set to 500 per batch for better results.
HTH
Pradeep


Error adding new new contact: getaddr info? Suddenly I started getting error when trying to save any new contact using web version of CiviCRM 4.5.3. Persisted for several days now, across 3 different browsers. Looks like this, any advice?:

This says that PHP is trying to connect to an external server and failing. Generally, that would suggest that the DNS settings of the server are no longer correct.

Since you're experiencing this problem on save, the lookup is probably that of geocoding.  I would try to disable your geocoding provider to see if it solves the immediate issue.  However, the long-term solution is to figure out whether a particular service is gone, your server can't find it, etc.


How can I show users the mailings they have been sent? I am using CiviCRM 4.6.x with Drupal 7.

I would like users who are logged in to be able to see a table or list of all of the mailings they have been sent. The should be able to click on the subject line (or some other link) in the list in order to see the full text of that mailing.

Can this be done and if so, how? In CiviCRM? With Views?

Thanks for any suggestions.

Yes you can do this with Views.

Important points:

Views must be configured to see the CiviCRM database in settings.php
Create a View for "CiviCRM Activities".  "Bulk Mailing" is an Activity type
The 'link' to view the bulk mailing is probably best constructed via "replacement patterns" within the Drupal View.  You get this link from the mailing itself, before it is sent.  All mailings have a similar link pattern, but each a unique number
Create a Relationship in the view to the Drupal User.  Limit the results to the "current user" or the "logged in user".  I forget the precise wording.  This shows them "their mailings" - rather than everyone's mailings.


How do I give event registrants one of four prices but allow admins to select a free option for guests? I have an event signup form where I have four different price options. I have made this a mandatory field in order to require that registrants select one price option. However, when I as an admin user sign up a guest or volunteer, I would like there to be another option that does not cost anything.

Is there a way of doing this without also offering this option to the regular attendee? I cannot figure out how.

The workaround that we have is to add an additional field for admins with a negative amount to reduce the payment down to 0. This is not a great solution.

I have accomplished this using the CiviDiscount module. It works well. You'll just need to create a code that offers a 100% discount and then only share this code with people whom you deem qualified for free registration.


How do I rename a report I have copied a report which shows the title as "Copy plus the report name"
How do I change the name of this copy?

When viewing the report results click on the Title and Format tab at the top. Change the name. Then from the actions dropdown below the Refresh Results button choose Save.


CiviCRM profiles / Caldera Forms: What to use when? I am new to CiviCRM and CiviCRM profiles and Caldera Forms + CiviCRM seem to be two realisations for the same thing: Let users enter data.

What are the advantages of the realisations? When to use what?

This might not be the same, but the information at this link comparing drupal civicrm webform to profiles might be a similar starting point:

https://docs.civicrm.org/sysadmin/en/latest/integration/drupal/webform/#compared-to-civicrm-profiles


Correct method for API calls on contact summary page? (slow!) I pull out some important at-a-glance information on contact summary pages - membership info, relationships via related cases, etc.

At the moment i override contentsummary.tpl and do my API calls with javascript - page loads, my things fire, then for some, returned values are used in a second API call.

This is slow and feels embarrassingly cludgy!

What should i be using for this?

Try the Contact Summary Layout Editor that lets you restructure the contact summary.  There are a couple of other extensions that link with it that can provide blocks - see the readme.


Fee based on payment processor Is there a way to enable a different price set or enable a fee (like a tax) dependent on the payment processor?

For instance if they select "Credit/Debit" as the payment processor a certain fee will be applied (3% or whatever).

Or if they select "Credit/Debit" a specific price set with the reflective price changes would appear which would be different than a "Pay Later" price set?

Unfortunately I don't think this is possible to do without a small amount of development work.

If you did want to add this as a feature there are several approaches:

1) You could modify the contribution template file yourself (or pay a developer) to add some javascript in order to do this. You would probably also need to configure the page to have a price set field that is the "credit card fee" or something similar. There is more information about how to append a template page here:

https://wiki.civicrm.org/confluence/display/CRMDOC/Page+Templates

2) You could contact the core team here and request a new feature using the paid issue queue: https://civicrm.org/paid-issue-queue. CiviCRM has a new monthly release cycle so your feature could be built relatively quickly.

Best

Jamie


Unable to launch a fresh install of CiviCRM I installed CiviCRM over Drupal. Everything looked fine but when I want to start the module, I get a white screen and the following error when I back to Drupal. I can't enter CiviCRM.

Warning : include(.../sites/default/files/civicrm/templates_c/fr_FR//%%06/069/0693F89E%%drupal.tpl.php): failed to open stream: No such file or directory dans Smarty::fetch() (ligne 1264 dans .../sites/all/modules/civicrm/packages/Smarty/Smarty.class.php).
Warning : include(): Failed opening '.../sites/default/files/civicrm/templates_c/fr_FR//%%06/069/0693F89E%%drupal.tpl.php' for inclusion (include_path='.:.../sites/all/modules/civicrm:.../sites/all/modules/civicrm/packages:.:.../sites/all/modules/civicrm:.../sites/all/modules/civicrm/packages:.../sites/all/modules/civicrm/vendor/tecnickcom:.../sites/all/modules/civicrm/vendor/phpseclib/phpseclib/phpseclib:.:/usr/share/php') dans Smarty::fetch() (ligne 1264 dans .../sites/all/modules/civicrm/packages/Smarty/Smarty.class.php).

My configuration is conformed with the basic requirements asked on the wiki :
GNU/Linux 3.2.65-1+deb7u2 x86_64
Drupal 7.43
CiviCRM for Drupal 7 4.7
PHP Version 5.4.45-0+deb7u2
MySQL 5.5.47-0+deb7u1-log
pcre 8.30 enabled
I changed the permissions to 755 for the 'sites/' folder. But the error still there.
I tried before on my local machine (Debian 8 and PHP 5.6). Everything was great. Why it doesn't work on my host ?

Two "simple" things jump to mind immediately.  Did you do a recursive change on the sites/ folder, chmod -R 755 sites?  Secondly, and I'd assume from the error message that you did, but you did install the l10n package, correct?


How to have different receipt messages on different donation pages I have different donation pages and want to have completely different receipt messages sent. You can set up a custom "intro" text for the thank you message, but the bulk of the mail comes from the same template, no matter the contribution page, so limited options to change that. Moreover, the template message used if recurring donation is no using the custom thank you "intro" text.

Is there a way to change what template to use on a per page basis?

I tried @Eli Lisseck's suggestion and it worked.
You can have a different receipt message per page by using this logic
{if $contributionPageId == "yourPageId"}


Print Contribution Receipt Offline Some donor wants a receipt of their contribution printed. I could not find any option other than printer icon on the top right. But that gives a very barebone format. What is the best way to go about it, please? Thanks

You can make pdf and then print it.

Go to CiviCRM Menu -> Contribution -> Find contribution
Click on search button.
Select any contributions which you need
On the top of table is located "actions" dropdown. Chose "Receipts - print or email".
Then You will redirected on "Print Contribution Receipts" page. Click on "PDF Receipts" select pdf template. And then click on "Process receipt". After that it generates pdf.

If you don't have any pdf template, you can create in "[your domain name]/index.php?q=civicrm/admin/pdfFormats&reset=1" page. Be caerful, don't set big value for margin param(try to set "1").


Event registration expires - why? Question from Civi newbie:

I'm testing the event registration process, live.  Why do I get this message:

"Your pending event registration for Restoring Oceans, Restoring Climate has expired because you did not confirm your registration."

I don't know what "confirm" means. Registration was completed and charged with credit card via Paypal standard. I received no e-mail asking for any kind of confirmation.

IOW, it seems to me that it shouldn't have expired.

Thanks!

Adam

The message is a little misleading. This email is generated if you've got the field "Pending participant expiration (hours)" set on the "Online Registration" tab of your event configuration. The help text for this field states:

  Time limit in hours for confirming/finishing registration by
  participants with any of the pending statuses. Enter 0 (or leave
  empty) to disable this feature.

If you don't have participant approval or waitlisting enabled for your event, then the likely cause is that your PayPal transactions are getting stuck in a pending state. You've probably seen the "Pending (Incomplete Transaction)" status on contributions in your database. Have a look in PayPal to see if the funds are actually going through. If they are, you probably have a config problem keeping PayPal from pinging CiviCRM to let it know that the transaction was successful. Is your notification URL set in PayPal?