CiviCRM Wordpress Optimization Keep banging my head against this and can't seem to get anywhere.  I've got a dev site up on Centos 6.6 using KVM, with 4 cores and 8 GB of RAM allocated and PHP 5.3.3.  I'm testing a large import via the web interface import.  When I do, I've noticed that the box never uses more than 25% CPU and only has one thread for Apache.  That 25% CPU usage all sits on one CPU core, effectively maxing it out.  The worrisome thing is, I also can't open another instance of WordPress while this is running.  That means that one user could lock out the whole box with a large report or mass deletion!  (BTW, same thing happens on mass deletion of the 35,000 records, so it's not just the web import script.)

BTW:  The host server isn't that busy and is nowhere near maxed out.  Also, other tasks show that there is no bottle-necks in the usual places like CPU, network, or disk usage.

Things I've tried:

Upping php.ini memory_limit - No changes
Changing a thousand parameters in MySQL, mainly memory - No changes
Upping max children in php.ini - No changes
Adding FastCGI+PHP-FPM - No changes
Adding WP-Super Cache - No changes
Adding Memcached - No changes
Upping file descriptors - No changes
Adding Max Memory line to wp-config - No changes
Who knows what else I've forgotten I've tried

Anybody have any ideas here?

Have you tried running mod_php as opposed to fastcgi mode?

In the past when we've had this with our servers our first point of call is to determine which part of the stack is limited to 1 core. Our experience has been that its normally mysql. Could you load up mysql with a few concurrent large DB operations and see if it uses multiple cores? This should then good you a direction to head in i.e. which part of the LAMP stack is being limited.


Adding new default components to the database I have been working on to add a default header and footer to the system workflow emails. Most of the part is done but I am stuck at setting those components in the database by default so that whenever a new user installs civicrm, get the new transactional_header and footer along with other components as well.
I have for now trying updated the .tpl files for the mysql in civicrm/templates/civicrm_msg_templates.tpl
I tried resetting the database to see the changes but its not there.
Do we have any documentation or we need to make changes somewhere else also?

A bit of terminology: Components in CiviCRM usually means CiviContribute, CiviEvent, CiviMembership, etc. I think you are referring to parts of an email template when you write about components. In general, when you are wanting to add something to the database in CiviCRM as part of the core code, you need to make sure it is added to the install tarball and is added or changed in databases as they are upgraded.

To insert data in the tarball, look under https://github.com/civicrm/civicrm-core/tree/master/xml/templates - in your case you likely want to add or update templates in https://github.com/civicrm/civicrm-core/tree/master/xml/templates/message_templates

To insert or modify data on upgrade, look at https://github.com/civicrm/civicrm-core/tree/master/CRM/Upgrade. Note that the message templates are in subdirectories by release, and that non-message template insertions are generally in the per release upgrade scripts in https://github.com/civicrm/civicrm-core/tree/master/CRM/Upgrade/Incremental/sql


Number of zero after colon in Price field Is there a way to reduce the number of 0 after colon in a simple price field in the backend?

For example, this is what I see in Price Fields Window.

I read this post and JonG's answer but I'm not working on a simple donation.

I use CiviCRM 5.19.3 on Drupal 7.67 and currency is euro.

Regards,

Guillaume

The backend isn't exposed to the visitor, so you might just not worry about it.
There is a good reason to have currency showing to what might seem an excessive number of places: taxes! For example, a membership price on that screen would be showing the amount exclusive of taxes, and if you lived somewhere that typically shows prices with tax included, then you might want a membership price that makes use of those extra places.


Registration forms not submitting - What Permissions needed Is there a specific Permissions setting we need to turn on for forms to be submitted by anonymous users registering for event?

Error Message:
Please correct the following errors in the form fields below:
Mandatory fields (first name and last name, OR email address) are missing from this form.

Using CiviCRM 5.70 for WordPress

The form works fine When I am signed into WordPress.

Tried several tests to resolve the issue. Checked all Anonymous Roles to YES, not this problem. Turned off all WordPress Plugins, not this problem. Changed theme, BINGO!

There was a conflict with one of the JQuery/Lightbox type page overlay option within our theme that cause the forms not to submit. Disabling that option fixed the issue.

The overlay window was loading a separate page and somehow it was loading the Registration form too, doubling up the Registration form!

So, Theme conflict in WordPress.


How can I align an image to the top of a cell in civimail? Currently it is displaying in the middle...

Name AM

In the
 tag, you could try changing it to
  Does that work?

Incidentally, there should be a semi-colon after "inline-block" and in the
 tag after "center".

If this doesn't work, could you say what CSS you have in the class="image"

Edit1 On reflection, I dont think the above will work.  You could try the following:

Name AM

Do you need all the CSS in the
 tag?


Wordpress Clean URLs show "Page Not Found" Edited my civicrm.settings.php file to enable clean URL's (as described in https://docs.civicrm.org/sysadmin/en/latest/install/wordpress/)
It does not work and any time I try to go to a clean URL page I get the standard wordpress "nothing found page"

Please check that you the base page here: https://example.org/wp-admin/admin.php?page=CiviCRM&q=civicrm/admin/setting/uf&reset=1

The value here

Should be an existing published WP Page.

I would then revisit the permalinks page.

That should 'fix' it.


CiviMail template errors I have been having issues using templates in CiviMail. If you use the sample responsive newsletter template the draft cannot be saved. We get an "error: Sorry your information could not be saved"

With out the template no issues. I have tried with different sample templates and the issues are the same. I have also tried different sites. Not sure when this started. I know on one site it was all fine earlier this year.

Anyone experience anything similar?

CMS: WordPress & CiviCRM 4.6.21 (also tried in 4.7.10)

I had the same problem. It happened after upgrading CiviCRM. The cause was the html. There were problems/errors with the html template along with too many tables. We used the W3 validator (https://validator.w3.org/). That helped a lot but did not find all the problems. So we just kept testing portions of the html until we found the section that was preventing CiviCRM from saving. Eventually we were able to clean up the html and CiviCRM was able to save it.


Hanging Searches, Listings I'm trying to test CiviCRM to see if it'll be right for our organization, but try as I might, I just can't get contact searches (either through the quicksearch or profile -> frontend) to return any results. In fact, they just hang, and after a great while (20+ minutes?) will finally timeout.

I've removed all options from search settings, tried appending "force=1" to URLs, turned off SEF entirely, played with Joomla menu link types, all to no avail. The profile search page will load fine, but entering any (or no) data will cause a total hang and never returns. Similarly, hitting "Back to listings" from a contact view, actually clicking on any data in contact view, or running a quick contact search in administration backend all result in a load forever loop.

My error logs make mention of some client denied access errors, so I made my htaccess file allow all, but that didn't seem to have any effect (other than stopping the errors).

Does anyone happen to have any other ideas?

It sounds like you have a problem on your install/instance, perhaps a host issue.

If you are evaluating CiviCRM, you may first want to try the Joomla Demo and/or create a sandbox to test on.

Once you have done the evaluation you can look in to why your instance is giving you problems.


How much time it will take to build CiviCRM from scratch by single person? This question is just to have an idea of the effort that has gone into building CiviCRM. How much time will it take to build CiviCRM from scratch by a single person? including testing and fixing the bugs.

All of it? Probably 10 years.

(that's a serious answer - I know, as a member of the core team, I built a lot of it myself)


SMTP errors with "Thank You Letters - print or email" -- does this use CiviMail settings? I'm on CiviCRM 5.9 on WordPress. We just did our first batch of year-end contribution summary letters, and ran into an issue when choosing the "Send emails where possible. Generate printable PDFs for contacts who cannot receive email" option. We have a total of about 550 letters/emails to send.

We're using G Suite as the SMTP server, and in looking at the logs, it looks like Google started rejecting the emails after about 100 or so had been sent. The resultant PDF of letters wound up with about 450 pages, including many contacts who do have email addresses (and therefore should have been sent an email).

Since this is my first time doing this and we don't send out any other bulk emails, I took at look at the CiviMail settings and they're all set to the defaults (0 across the board), which is I assume what caused the issue. But I wasn't sure if the specific "Thank You Letters" function actually used those settings or not.

For reference here's the error message in the logs:

Jan 31 15:29:08  [info] Ignoring exception thrown by nullHandler: 10004, Failed to set sender: EMAIL_ADDRESS_HERE [SMTP: Invalid response code received from SMTP server while sending email.  This is often caused by a misconfiguration in Outbound Email settings. Please verify the settings at Administer CiviCRM >> Global Settings >> Outbound Email (SMTP). (code: 421, response: 4.7.0 Try again later, closing connection. (MAIL) z7sm8172274pga.6 - gsmtp)]

I verified the settings are correct, and I can send test emails from the settings page fine, but my guess is I triggered a block on the Google side, so I wanted to make sure that if I update the settings and try again that those actually apply to this particular task.

As for the actual settings for Google, I came across these:
Questions About Mailer Settings - Suggested G Suite settings?

Are those good settings? Anyone else using G Suite as SMTP have any other advice on settings, particularly as relates to sending out Thank You letters?

Thanks!

I think that this is probably a limitation in G Suite. I have certainly not been able to send more than about 100 messages at a time using the G Suite SMTP relay.  I think the section on sending limits is relevant https://support.google.com/a/answer/2956491?hl=en


Can't change help_post text in Price Set using the civicrm_buildAmount hook There are several fields I expect to be able to change in the buildAmount hook that just won't change for me. One example:

function myext_civicrm_buildAmount($pageType, &$form, &$amount) {

      $feeBlock =& $amount;

      foreach ( $feeBlock as &$fee ) {

          if ( !is_array( $fee['options'] ) ) {
            continue;
          }

      // My debug-to-file function prints the original value as expected
      // fdebug($fee['help_post']);

      $fee['help_post'] = 'New help text';

      // My debug-to-file function prints the new value as expected
      // fdebug($fee['help_post']);

      // But the value in the price set, when rendered, does not change

      }
}

The help_post text remains as originally set in the price set. Why?

Just as a thought i think you may need to set $amount = $feeBlock right at the end as your modifying $amount


how do I determine the specific instanceId for a given report How do I determine the instanceId for a given report? The dropdown on the access panel gives me a subset of all reports, but I can't figure out how to get the id for other reports for email automation.

Thanks in advance!

Its quite simple to get the Instance ID for a report through its URL. Consider an example of Contribution Summary report, the url for it is civicrm/report/instance/7?force=1&reset=1 So the instance id in this case will 7 i.e integer value anything after civicrm/report/instance/ will be your instance id or you can use api explorer to get the instance ID.

HTH

Pradeep


Membership Page - Contributions page I am currently attempting to make a membership page. I keep getting this pop-up "you need to enable Separate Membership Payment when online contribution page is configured for bo- Membership y Recurring Contribution" when attempting to check off the different membership types offered. How do I fix this?

Thank You,

It pretty much means what it says and you should see a checkbox on the Membership tab to enable this.

Or it may mean that you are trying to offer 'auto renew' for Memberships but are incorrectly trying to achieve this via 'recurring contribution'.

I can't tell without know what your requirements are.


Error on contribution details display, recently updated system Current CiviCRM is 5.6.1 running on Drupal 7.60. This system was very recently updated from 4.4.4 running on Drupal 7.36 or something. The updates were done cyclically, one right after the other, to bring it all up to date, and nothing seemed to have gone wrong.

Problem I'm having is when viewing Contact Contributions tab. The main list displays fine, but if I click on the Amount, to get an expanded details view, the expanded area often says Sorry but we are not able to provide this at the moment, and there is at the same time a pop-up notification bubble that says One of parameters (value: ) is not of the type Integer. This does not happen for every contribution, just for many or most of them. Some of them display correctly.

I checked the Troubleshooting help page, which suggests turning on debugging including backtraces, so I did that. Sadly, nothing at all seems to have been added to the log file after reproducing errors with this setup (I don't have shell access to the server, but log files exist and I can ftp them down).

However one interesting thing did happen when I turned on debugging. Now the error message changes. The expanded space in the list is now empty, and the notification bubble says Network Error Unable to reach the server. Please refresh this page in your browser and try again. I tried flipping the debug setting on and off a couple times and this was replicable (i.e., with debugging off, the original message about not of type Integer came back).

I suppose I should mention, because you never know, that after the upgrades, I get a yellow warning in the System Status saying the following Price Set Fields use disabled or invalid financial types and need to be fixed if they are to still be used It refers to a field called Contribution Amount that has a type of Text / Numeric Quantity, but none of our users know what this field is, whether it is custom added here, or whether it is being actively used. It is not at all clear to me if this could be related to my main problem.

Any clues about how I can debug this are much appreciated, esp. given the situation that nothing seems to end up in the log even with full debugging traces turned on.

I think it would be worth following the lead about disabled or invalid financial types. At /civicrm/admin/financial/financialType?reset=1 , do any of the financial types show as disabled? If so, you could try enabling and seeing if that resolves the error.

If you have SQL access, you could check the financial type of working vs non-working contributions and see if there's a pattern. This is in table civicrm_contribution, field financial_type_id for the contribution itself and table civicrm_line_item, field financial_type_id for the contribution's line items.

The way price sets come into it: suppose a contribution page has a price set called Subscription, with price field Journal, with price field values (options) Print and Electronic. When you set up those price field values, you specify a financial type for each. This is stored in table civicrm_price_field_value, field financial_type_id. If the user selects "Print" and this has a financial type of "Publications", say, then the contribution will include a line item for that subscription, with financial type "Publications".

If the "Publications" financial type subsequently gets disabled or deleted, that could cause issues.

If you have SQL access, this query could shed some light on the message you  received during upgrade:

select pfv.id, pfv.price_field_id, pfv.financial_type_id, ft.name, ft.is_active
from civicrm_price_field_value pfv
left outer join civicrm_financial_type ft on pfv.financial_type_id = ft.id
where pfv.label = 'Contribution Amount'
and pfv.is_active = 1;

Any results where the last two columns are NULL (indicating a missing financial type) or the last column is 0 (indicating a disabled financial type) could have caused the warning you saw.

Some price sets are used behind the scenes, which could account for "Contribution Amount" not being recognised as a field that users have set up.


Restoring uploaded file records WE had some sort of corruption on our CiviCRM db and somehow lost data in different fields

One of these was a custom field containing uploaded files

THese files are still listed in the civicrm_file table and the file ids are also associated with the civicrm entity in civicrm_entity_file.

BUt they do not show up in the contact profile.

I tried adding a new file to a contact and this shows up. I can't see any difference between the record for the new file and the one for the old file.

Any ideas how to restore these? there are 756 files, so it would be a lot of work to manually do it.

If you say the file record is correctly present in civicrm_file and civicrm_entity_file table, then only thing which is missing seems to be the entry for it in custom value table. To verify this yourself -

Check the custom value table name mentioned in civicrm_entity_file (entity_table column).
Open the above custom table and make sure it contains the mapping of civicrm_file id and entity_id(contact id)


error: "Found installation Canary" while installing CiviCRM Fatal error: Uncaught CRM_Core_Exception: [0: Found installation canary.
This suggests that something went wrong with tracking installation process.
Please post to forum or JIRA. thrown in
C:\xampp\apps\wordpress\htdocs\wp-content\plugins\civicrm\civicrm\Civi\Core\InstallationCanary.php
 on line 53

I am getting above error when I tried to start CIVICRM?

I am not able to go forward.

Can any body guide me?

Shashikant,

Were you able to complete the installation mentioned at https://wiki.civicrm.org/confluence/display/CRMDOC/Installing+CiviCRM+for+Wordpress ?

Kurund


Filter options dynamically in webform We work with schoolchildren in Florida, US. Schooling here is grouped into Elementary (grades 1 thru 5), Middle (grades 6 thru 8) and High School (grades 9 thru 12). I have a webform that asks the grade and the school, where school is a dropdown with too many choices. Is there a way to limit the choices in the school dropdown to those that offer the grade entered?

School facilities in our CiviCRM are Organization contacts with tag(s) indicating the grade grouping(s) each serves. Most school facilities serve only one grouping, but some serve all groupings (Elementary, Middle and High).

If you use Drupal's webform (with webform civicrm to integrate civicrm), you can use the "webform conditionals" function.

Alternatively, you could create some custom javascript for the form.


combining log and error output I want to combine the output written to the civicrm log file and php_error.log.
This is because I cannot alway conclude based on the time stamp what the order is of the messages in those files. Ideally, I would have them in a single file so that the 'whole story' is in one place.
Is this possible? Ideally, I could catch the warnings that are sent to php_errorlog and write them  with the same routine as I use for writing to the logging.

I can think of a way to do it the other way around, by defining your own civicrm logger and having it send to syslog. The problem is large stacktraces might get cut off and be formatted badly because of the way that works.
To get php to send all its errors including 500-level errors to civi might not even be possible, because they happen before civi even gets to the point where it would be capable of writing a log. If civi can't even load because of error 500, it can't possibly write to its own log.
Or if the error were to be in the CMS, then it might not be able to get to civi either.


individual contacts: Bulk email? What does it mean if, on an individual contact, I select the 'bulk email?' box when editing their email address?

I want to be sure that all of our contacts can receive our newsletter.

If you set a bulk email address it will be used instead of the primary email address to send your newsletters to. You may even set more than one email adress as bulk email address.


How can I switch off the CiviCRM print icon on public pages? We set up a petition page, which all works fine.

In order to simplify the user experience, we want to "switch off" the CiviCRM printer icon.

Can this be done using the admin interface?
Or do we need to do some customization? (and what?)

Thanks,
Detlev

I think hiding it with CSS might be the most straightforward solution to this... I don't believe this is an option that can be toggled on/off in the admin settings.

Hope this helps,
Lesley


How can I prevent Contribution Pages forcing the email to be of type Billing Only just stumbled on this after realising that a client was correct. They set the Profile to use Email (home) but the Contribution page overrides this and makes the email be Billing.

This ticket seems closest to the issue though it is initially about the idea of being able to collect additional email addresses.

If John K is correct then current approach is

If the contact is logged in this field defaults to the 'Billing' email, if set, otherwise the 'primary' email
When the contribution is confirmed the email address is saved/updated on the contact as the 'Billing' email

(ie: If the field was prefilled from the primary 'home' email, the contact would now have two email addresses the same for 'home' and 'billing')

One solution is to create your own custom module/plugin to do what is required. Steps:

Use hook_civicrm_postProcess hook for the target contribution page, you can give the contribution id or name in if condition.
Use civicrm contact create api call to edit email address type.


CiviCRM 4.6.7 Wordpress 4.3 Extension Issue / BaseURL Went through the install twice and it is repeatable on my shared hosting server.

The extensions are expecting to rewrite: wp/civicrm?page=CiviCRM&q=civicrm/contribute/transact&reset=1&id=1

But the it is actually here: wp/index.php/civicrm?page=CiviCRM&q=civicrm/contribute/transact&reset=1&id=1

(wp/ is the base install of my wordpress)

It seems Wordpress 4.3 is injecting the index.php file to be rewritten and CiviCRM does not like this. I am having to create amended menu items with the corrected URL, but would like to know if there is a better way to handle this?

I tried changing some of the base url configurations, but then I break the main CiviCRM components and have to restore them manually.

This is as @Christian-Wach suggested. For some reason a permalink was set injecting the index.php in a new install of both Wordpress and CiviCRM.

So check your permalinks inside Wordpress in addition to BaseURL.


Search for contacts within Geocoded regions/borders My organisation needs to search for contacts within the regions/borders of England, Scotland, and Wales. This is important as our communications relate to elected representatives within devolved parliaments etc.

As all contacts in the UK have country 'United Kingdom' this is not easy.

Postcodes in the UK do not correspond to the borders between England/Scotland and England/Wales, and overlap significantly in some areas.

Postcode Areas and Postcode Districts (the 'SW' and '1W' in the post code 'SW1W 0NY') also do not correspond with the country borders, so it also isn’t possible to search on these (even using ‘Range’ or ‘Regex’).

Would it be possible to geocode the entire areas of England, Scotland, or Wales around known coordinates, and create smart groups based on these?

These three groups alone would be incredibly helpful, but it would be even better were it possible to import coordinates from Google Maps / OpenStreetMap searches (e.g. https://www.google.co.uk/maps/place/Scotland/@56.367676,-4.9607288,8z/data=!4m5!3m4!1s0x4861e2c403f2a19f:0xe7c1fad809c30714!8m2!3d56.4906712!4d-4.2026458), that way other regions could also be quickly turned into Smart groups.

At present we are searching by postcode and excluding contacts using poorly defined 'radius' searches - so finding a better solution would make a huge difference to our work, and I'm sure to many organisation working in the UK.

We had a similar need and used mapit: https://mapit.mysociety.org/. Every time an address is created/updated we use the mapit API to grab the associated parliamentary constituency, European region etc. It looks like the mapit API can give you England/Wales/Scotland/NI too (though it's trivial to translate from the European Region).

We did similar to @ErichBSchulz and created a custom field that is populated by this API lookup. We then have smart groups running off that.

Happy to share our somewhat hacky extension if it'd help, though you'd need to adapt it to your needs. Caveats are: it only works if you have the full postcode; currently we don't have a way to run it for imports; you'll need to populate your existing database somehow (we have a million-row excel spreadsheet we got from one of the government's open data things).

At one point Veda Consulting were working on a service that did something similar - possibly building on top of their postcode lookup service. Might be worth pinging them in case they have something more robust.

EDIT: published this extension at https://github.com/bhahumanists/bha.politicaldata


Including Participant ID in Event Registration Email I am attempting to include the Participant ID in the email sent to the participant upon successful event registration.  I have searched documentation and previous questions/answers, but no luck so far.  I was able to get the Participant ID on the Thank you Screen using info from a previous question -- involved changes to DisplayProfile.tpl  But it is not included in the confirmation email.  There were some older (2010/2011) questions that referenced using the email workflow templates, but they were not specific enough for me as to where to put the {ParticipantID} token.

Susan, Welcome to CiviCRM stack exchange. Its possible to add Participant ID in email sent when a user registers online. You need to update the message template to include the {$participantID} token which prints the participant ID when rendered.

To update the message template navigate to CiviCRM >> Mailings >> Message Templates. Locate 'Events - Registration Confirmation and Receipt (on-line)' under 'System Workflow Messages'. Click Edit. Modify the message template to include the {$participantID} token either in subject, html or text field.

HTH

Pradeep


CiviVolunteer Interest form actions I've installed CiviVolunteer and have a public facing interest form at http://example.org/civicrm/volunteer/join

But all this seems to do is create a contact. It doesn't put the contact anywhere that we can easily find them to tell them of volunteer opportunities. Am I missing something?

It adds them to CiviCRM and then you can search for them. You likely need to add a group or tag (I like a group, as I use it for mailing lists) to the settings for the profile that you are using. Then anytime someone fills out that form, they are added to your Volunteer group. Then inside CiviCRM you can easily run a search to pull the entire list of everyone who has signed up on that form.

And by using a group, you can then send them emails with volunteer opportunities - just make sure you select that it's for mailings when you create the group.


Cannot download CiviVolunteer 4.7-2.2.2 I am unable to download Civivolunteer 4.7-2.2.2 which is necessary for me because prior versions do not work with the current version of Civicrm. It does not appear in the extensions directory and it is not listed on the civivolunteer page. https://civicrm.org/extensions/civivolunteer

When will 2.2.2 become available for download through the extensions directory? Or is there a direct link to download and install manually?

You can download it from GitHub. Just unzip and place in your extensions directory.


Can CiviCRM limit the number of event registrations for each member? Can CiviCRM limit the number of event registrations for each member?

We have an event where they receive an automatic discount (because they are a member). However, we don't want them to buy the tickets for others at that price.

So we only want them to be able to register for each event, once. Is this possible?

Jon-man

CiviDiscount has functionality that limits the number of times a discount can be used. So if you create one-use discount codes / member, that might meet your need.

The automatic discount for members probably does not have a limit functionality, though that might be a useful addition


SIMPLE CiviCRM events interface? (on Drupal)
Our organisation runs its own annual events with complex ticketing, but we also list a great many events posted by our users, across a number of categories. Some of these can get a bit complex such as one-weekend-a-month modular courses.
We are doing a ground-up site rebuild, and I'm wondering whether to use CiviCRM for all events (so far we have only used it for our big annual ones).

Creating events via the civiCRM backend is probably too daunting for most of our users (plus access control is a challenge) - Is it possible (examples would be good) to create events via a webform?
Or are we best to keep the Date/Calendar/Event modules approach in Drupal?

I looked quickly into doing this with civiCRM entity and rules integration modules (I would think this would be possible), but that seems difficult or not possible without some further customization to set the event parameters.

If you are comfortable with this type of work, I would imagine writing a short module that engages the civiCRM API to create an event on submission of a specific webform could take in the (validated) data from your simplified webform (submitted by a user, doesn't have to be staff) and create the events for you in civiCRM. Using event templates for your categories as Aidan suggested in comments would cut way down on the parameters you would have to feed in for proper configuration. See the API explorer on the relevant version of demo site as a resource for how that might be put together.

Whether doing that work is actually worth it for your use-case, I can't answer for you, depends on how much better it is to have all user events in civiCRM (but I think it would be pretty cool!).


CiviMail tracked links in WordPress site are marked down by Mail Tester I have CiviCRM (5.21.2) installed on WordPress site. When testing our CiviMail messages on https://www.mail-tester.com/ we are marked down by 1.7 when we use tracked links. If we turn off tracking, we get full marks. Mail Tester marks us down for the following reason:

URI_WP_HACKED_2 URI for compromised WordPress site, possible malware

Has anyone else experienced this issue?

Googling the error, some people report that "SpamAssassin treats any email with a common WP path in a link URL as suspicious. If enough other points are added, it can flag the message as likely-SPAM."

Because URLs are rewritten when tracking, it sounds like this would be a problem for anyone using tracking in WordPress since the URLs are rewritten like /wp-content/plugins/civicrm/civicrm/extern/url.php?u=1&qid=2

Has anyone found a solution for this?

This is a known issue with all scripts in CiviCRM's extern directory - pointing directly to a PHP script inside wp-content is considered highly likely to be malicious. This will be solved out-of-the-box once the CiviCRM WP REST API Wrapper is merged into the CiviCRM WordPress plugin, but for now you probably need to install that and follow the instructions for replacing calls to those CiviCRM scripts with proper WordPress REST API calls.


Price Set Option still publically visible when visibility set to 'Admin' Civi 5.26.1/Drupal 7.72
When I added an option 'Complimentary' to a pre-existing price set with an amount of '0.00' and set visibility to 'Admin', the option was still visible to anonymous users. Testing, I find that setting the 'Admin' option makes no difference to the existing options either.
The 'edit event participants' permission is switched off for anonymous users.
Could this be because the price set is already in use? Any similar experiences or hints for a work around?

This belongs as a comment, but I'm bending the rules because I wanted to include screenshots.
I was unable to replicate this.  See my attached screenshots from a demo site.  The first screenshot is while logged in as an admin, the second is as an anonymous user on the same page.  Since you're able to replicate this on the demo server, we must be setting up the page differently.  Could you please edit your question to detail the exact steps you took to set this up?  Or perhaps link to a video?
As admin

As anonymous


How can I make tags in tagsets visible to users who want to tag contacts When I have a group of tags in a tagset, I notice that when I'm trying to add tags to a contact I can't see the list of tags (as I would if it was a standard CiviCRM multi-select field).

Instead all I have is the option of keying characters in and seeing possible matches. I guess that approach is OK if all my users know the tags well, but for a new user who doesn't know the tags it's a bit daft, and I'll end up having to produce a cheat sheet with all the tags on it.

Is there a reason why these tagset fields are different from conventional multi-select fields? Is there a simple way to change them so that the tags do appear in a drop-down as well as responding to keyed characters?

I'm working with CiviCRM 4.7.24 and Wordpress 4.8.2, and I see the same behaviour regardless of whether I add tags from the contact summary screen or by editing the contact record.

By design, tagsets are an auto complete drop down.
However, there is one thing we could do to improve the usability: make the list open immediately and show the complete list of tags.
I don't really see a downside to that change so I'll make a PR and see if anyone objects.

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

UPDATE: The feature has been accepted and will be released with CiviCRM 5.3.0.


Show Event Custom Fields in Reports I have an event with custom fields that I use to collect information relevant to each participant's registration (for example, number of guests accompanying, seat preference, etc.). When I view the participants under the "Manage Events" view, it will show me the fee levels and quantities they selected, but not the custom fields. I have to click on each participant to view the content of the custom fields.

How can I generate a report that will show the custom fields? When I try to generate a custom report, the custom fields don't appear as columns I can select.

First thought: go into the config for your custom fields and check the box that says 'Searchable'!

That will then make that field available in all reports that pull in custom fields on specific entities.

If you still don't see it in the report you want to see it in - then installl Fuzion's Extended Reports extension!


Testing new site (not secure yet); using Search/Contact switches to secure url Working on a new install (haven't installed CA certified SSL yet), I can browse to http://example...admin...event search ( search participants) or 'advanced search', or 'manage events', or seemingly any other menu items but going to 'search contacts' the url generated has ' search'
It is a WP frontend and the baseUrl doesn't specify httpS:// yet.

Three things to try, in this order:

Administer menu » System Settings » Resource URLs.  Ensure "Force Secure URLs" is set to "No".
Clear cache and templates_c.
Rebuild the menu:
 http://<wordpress_site>/wp-admin/admin.php?page=CiviCRM&q=civicrm/menu/rebuild&reset=1


CiviMobileAPI - "The extension is too old" Error I'm running CiviCRM (v5.21.2) and the CiviMobileAPI (v5.0.1) extension in WordPress (v5.3.2).

The CiviMobileAPI extension path is /wp-content/uploads/civicrm/ext/com.agiliway.civimobileapi/

The CiviCRM WP REST API (v0.1) WordPress extension is also installed and active.

Still, I'm getting a "The extension is too old" Error when connecting via the iOS CiviMobile app (v5.0).

What could be the reason for that?

The CiviMobileAPI page is mentioning that you need a Patch for Wordpress - maybe that's the reason?


Can't Remove CiviCrm Membership Type From Being Visible Publicly I tried disabling, making visibility admin only, and then finally deleting a specific CiviCrm Membership Type, but still can't remove it from being seen publicly on Contribution Page. Anyone know what is causing this and how to fix it?

FYI I was able to edit other membership types and those changes became visible.

Using Wordpress 4.6.1
Using CiviCrm 4.7.7

Thank you!

I just saved the changes in the contribution page and that somehow fixed it. Not clear how the price changes updated (without saving) but not the actual membership type, but that's okay.


Issue in sections of civicrm that use /civicrm/.*/#/.* using LEMP So civicrm case and extensions like simple donate use a path that includes the # character.  When running on apache these work fine, but when I moved the site over to nginx, they stopped working. so I am assuming that I need a specific nginx location directive to handle this, but haven't been able to figure out what.

I'm not sure it's an issue on nginx (as the information after the # is never sent to the servers anyway).

It's more likely an issue of a url that is incorrect, for instance if the url of extension isn't properly defined

Do you have a javascript error? (using firebug or your favourite debugger)


Change Case summary report to group by Case ID When civicase is configured to have multiple case clients, the summmary report
(report class: CRM_Report_Form_Case_Summary) shows one line for each client.

I'm trying to change this to show only one line per case.  I've created a copy of the above report and i'm trying to change the group by clause, currently it's

  public function groupBy() {
    $this->_groupBy = "";
  }

I'm looking for some pointers to how to change this to group by CaseID.

Is this the right way to go and if so what would i need the function to say.

In general this kind of thing depends what other fields you're including as columns. But ignoring that for the moment one approach is use the groupBy as you suggest and then in select() add an if statement for the contact sort_name and use mysql GROUP_CONCAT().

Another is remove the joins and anything related to contact.

Another is alter the from() to do some kind of derived table inner select on the contact tables so that at the outer level it's already flattened to one row per case.


How do I make a Simple SOAP request in CiviCRM? As I can see there is a get_contact() function in CRM/Utils/SoapServer.php.
I would like to use this function to get the list of contact. How can I do that ? Is it similar to how we make a Rest api call like http://<site_name>/sites/all/modules/civicrm/extern/soap.php? ? If it is, what params do I need to pass to get the required result ?

Any help/hints would be appreciated. Thanks.

Update : I'm using the latest version of CiviCRM.

I don't have a proper answer to the question of how to use SoapServer, but it may be useful to place that in context.

The extern/soap.php script is a bit of a relic which is not on par with the RESTy APIv3. I was just a casual user at the time, but I'm pretty sure it predates APIv3 and (probably) APIv2. Its major use-case was facilitating a fast return-channel for CiviMail. (There's some kind of smtpd/perl/soap integration which folks used to use.) IMHO, the only reason to retain it in the codebase is for backward compatibility (on the off-chance that it maybe still works for existing installations).

If you skim the code of CRM_Utils_SoapServer, you'll see get_contact() and a bunch of mail-related actions (and basically nothing else). The design is generally... shallow.

If you really do need SOAP access, then I'd recommend implementing new bindings between SOAP and APIv3. Ideally:

The SOAP implementation should be generic, passing along requests to civicrm_api3() and getting metadata from civicrm_api3 (ie Entity.get and *.getfields).
The SOAP end-point should ideally go through the menu/router system -- rather than a standalone script (e.g. http://example.com/civicrm/soap instead of http://example.com/sites/something/modules/civicrm/extern/soap.php).
The SOAP end-point should ideally go into an extension.


How to decide between using a custom Relationship and using a custom Contact Reference field? This is admittedly open-ended any may just depend too much on use-case. I am looking for advice on when it is preferable to create a custom Contact Reference field instead of just creating a custom relationship.

If you have an example of a situation where you chose one over the other, that would be helpful.

In my experience, I default toward relationships, but might use a custom reference field in these situations:

I need to export multiple people with the same relationship.  For instance, if Andy and Beth both have a "Mentor of" relationship to Johnny, you can't export Johnny's record showing both mentors.  So I'll make two contact reference fields.
You need to create a form where a site visitor needs to specify an existing contact.  For instance, if new members must be referred by existing members, you may want them to be able to submit a profile that indicates who the referring member is.  If you use Webform-CiviCRM Integration, I think you can do this with a relationship, but otherwise, you need a contact reference field.


Organisational search option I have three types of organisations: a. institution, b. supplier, c. corporate member.
I am creating different menus for manipulating each one of these (requirement of our users). I would like to offer a menu item that it called "Search for an institution" that when you press it, it has filtered the big list of organisations and displays only institutions. (the same for the other two categories).

How would I go about achieving something like this?

Thanks in advance

Aris

Like Jon said auto filtering the search using url param is in progress. But a work around for this until its available is to

Create a smart group using advance search for each contact type.
Grab search id (civicrm_group.saved_search_id) of the smart group either from database or api.
Replace the id in the url for ssID civicrm/contact/search/advanced?reset=1&ssID=1&force=1 and add it in your menu item.

Thanks

Pradeep


civibuild create is not working/frozen is there any alternative? that I can use to install Drupal+CiviCRM development environment. taking too long it(in screenshot) took 2 hours.

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


How can I tell which template a specific report instance is based on? If I look at a report instance, how do I know which template it comes from?

Short answer: with some difficulty.

If you only have access to the web interface, your best bet is to use the "Create Report from Templates" link under Reports to see a listing of all the available templates, and try the "Existing Reports" link on the most likely ones to see if the report is listed.

If you have database access, you can look up the report instance in the civicrm_report_instance table where it will tell you the class that the instance is based on, from which you can usually identify the report.

Providing the report template information on the report instance would be a great idea.


Is there a mistake in the Upgrading CivCRM for WordPress instructions? I was following the instructions to upgrade to 4.7.14 here:
https://wiki.civicrm.org/confluence/display/CRMDOC/Upgrading+CiviCRM+for+Wordpress
It clearly says to extract the zip file in  /wp-content/plugins/. It then says to clear caches and point to the upgrade url.
This leads to:
Your database has already been upgraded to CiviCRM 4.7.13.
The extract left things in a directory called: civicrm-4.7.14-wordpress. This implied to me that the upgrade will move things from there to the civicrm directory, but reading things here and elsewhere I suspect that files need to be extracted (or moved) to the civicrm directory.  There are no instructions to do that. Should I remove the civicrm/ tree and move civicrm-4.7.14-wordpress/civicrm to plugins/?

The assumption that was made in the instructions is that you must extract the files into the /wp-content/plugins/ directory and then rename the resulting file to civicrm, just like the old directory was named. The previous step to this was to backup /wp-content/plugins/civicrm.

E.g. Back up and delete /wp-content/plugins/civicrm then extract the new version and name it civicrm and put it in /wp-content/plugins/, thus replace the previous.


How can I setup ACL for user to modify only custom fields? I would like to limit access of some CiviCRM users, so they can only access contacts in certain smart groups. Meanwhile, I would like them to be able to edit Custom Fields.

I created a separate drupal role for these users.

Now, if I keep the Permission CiviCRM: edit all contacts, the user can access all contacts and edit all fields.

If I remove Permission: CiviCRM: edit all contacts and allow access to specific groups in ACL, the user can access contacts in these groups, but can't edit any fields including custom fields. (It is not possible to edit any fields even if I enable ACL for all, authenticated or specific role users to be able to edit custom groups.)

CiviCRM 4.7.14 on Drupal.

Your ACL allows to view and edit all custom fields sets. I guess you previously had CiviCRM: view all contacts to be able to see the contacts at all.

You still need to grant a view permission to access the contact or an edit permission to allow any modification to your desired set of contacts:

I'm not aware that you can grant permission to edit custom fields without permission to edit the contact while using the UI.


Delete activity of a contact I have created few activities for a contact. I want delete one of the contact. When tried to delete, it is not showing proper screen after deleting the activity

This appears to have been fixed for version 4.7. After deleting an activity you remain on the 'Activities' tab for the contact. I tested this on http://dmaster.demo.civicrm.org/


Forgotten Mattermost password. Not getting reset emails I recently spring cleaned my lastpass account (a little too thoroughly).

And have lost my mattermost password.

I've tried to request new password but the notifications aren't getting through.

Anyone know who I can contact to get this resolved?

Cheers

Craig

I pinged bgm for you so expect it will be resolved shortly


How to display Contact Summary address in an Activity Form? I would like to display the address fields found in the contact summary tab (I'm thinking this is the inline location) in the new activities screen.  Would also like for the fields to be editable as well.  The reason for wanting it to display in both locations is because users are reading off a script in the new activity.  Address is the one of the pieces of information gathered/confirmed.  Is this possible?  All help appreciated.  We prefer to have one location for the demographic information so it will be easier to use.  We are using Drupal-7.41 and CiviCRM-4.6.6  Thanks for the help.

Like Jon G suggested a little more information would help a lot, I am now assuming I understand what you mean but I do not really :-)

Obviously it is possible to place the address on the activity form (I am assuming you mean the form of the activity when you click 'edit'/'view'? But you can not do this from the UI, you will need to do some customization.

My way would be to write a little extension and use the CiviCRM buildForm hook to add the address on the list of form variables, and add a little jQuery to the template (using CRM_Core_Region::instance('page-body')->add(array('template' => 'yourtemplatewithjQuery.tpl'). This answer assumes you are familiar with PHP and jQuery and with concepts like CiviCRM extensions and hooks. If you are not, the place to start would be the CiviCRM Documentation at http://wiki.civicrm.org/confluence/display/CRMDOC/CiviCRM+Documentation.

ALternative would be to add jQuery to your own .tpl, retrieve the Contact Address with the CRM.api3 function and then display the address. Example of the CRM.api3:

CRM.api3('Contact', 'get', params).done(function(result) {
         <your function>
        })


Path changes with move to VPS I have a civi site working from a subdomain on my main VPS account. I want to move the account to its own cpanel account, allowing the client full access to the site. However, I'm concerned about path changes and whether I need to change anything beyond what's in civicrm.settings.php, Resource URLs and cache. Is changing the BaseURL, etc. in settings enough to manage all absolute path references?

Thanks,
Kate

Current: /home/sherida1/public_html/jgsny_restore

New: /home/jgsny/public_html/

At least a couple times a month, I copy our live site over to the dev version, which means different paths. I just make sure I:

delete the templates_c directory and let it recreate itself

change the civicrm.settings.php file

check the directories page in CiviCRM: administer > system settings > directories

check the resource URLs page in CiviCRM: administer > system settings > resource URLs

clear caches and update paths: administer > system settings > cleanup caches and update paths

Running through all these steps always fixes any changes in my installation directory.


Offline data entry/access to CiviCRM Has anyone seen or know of the ability to either update or add records when offline?

We have several users who often travel and at times are not able to be connected to the internet but their updates still need to be pushed once they connect?

CiviCRM does not have any mechanism which would allow you to make changes locally, offline, and sync later to the master database; what you envision is not currently possible.

A workaround might be to record the updates into a CSV file, then import the CSV file once online.

Theoretically, I suppose one could develop an HTML5 app that stores some subset of database records in browser storage, allows them to be updated, and reads the CiviCRM log or otherwise determines how to reconcile changes made to the live record since the last sync. Even if we hand-wave things like authentication, however, it sounds like a lot of work.


Regex search for a list of Contact IDs I occasionally have a list of contacts outside of Civi but with CiviIDs that I want to search for in Civi, but aren't grouped in any easily accessible way (no common event, activity, tag, group, etc. to search for). If it were a longer list, I'd do an update import on the contacts (with no actual changes) adding them to a new temporary group. But if I have fewer than say 10, that seems like a lot of steps.

I thought, "A regex search builder would work." But when I put

\b(64|5917|5725|5892|5852|5818|5893|5850)\b

OR

\b64\b

OR even

[64]

into the regex search, I get a "Please enter a valid value" error. I seem to get a valid search when using only numeric text ("64") without any regex operators, which kind of defeats the entire purpose of regex.

I'm not a big regex user, so I could believe I've screwed up the regex. Anything I'm doing wrong here?

It's true - looking at the code, I can see that Search Builder expects an integer if you're searching on an integer field.  An exception is made for using the IN operator, in which case it validates each value separately.

Trying to validate a regex to ensure it's non-malicious is a very difficult task, and I think the appropriate answer is to remove the regex function from the Search Builder on integers.  Work is being done on Civi 5.2 to remove operators from Search Builder that aren't appropriate.

However, to solve YOUR problem, you should use IN, separating your values by commas like so: 64,5917,5725,5892,5852,5818,5893,5850


WordPress plugins and themes incompatible with CiviCRM I am looking for a way to find which plugins incompatible with CiviCRM without deactivating them and install one by one.
And if you have any experience with your WordPress website please share here.
I fond this (https://docs.civicrm.org/sysadmin/en/latest/integration/wordpress/incompatibilities/) link but I am looking a way to know which my plugins incompatible with CiviCRM.

I recommend using the wiki page WordPress plugins and themes incompatible with CiviCRM.


How can CiviCRM manage and deploy configuration? Motivation: we're looking into building something in this space for a current project, so this question is intended to identify what approaches are already available / being utilised.

For multi-developer and multi-branch workflows, it would be beneficial to "wrap up" site configuration and have it able to be merged into the site before deployment.

I see that there are some approaches to this already:

Features CiviCRM is a (now-abandoned?) approach to using Drupal's Features module
CiviCRM Entity seems a good candidate for exporting entities in Drupal space, although it doesn't provide this currently
civix can scaffold code to import Case Types and Custom Fields
CiviCRM's hook_civicrm_managed can generate managed entities in CiviCRM.

For comparison, in host-CMS space there are different approaches also:

WordPress has an Options Importer plugin
Drupal 6 onwards has Features
Drupal 8 onwards has Configuration Management (and retains Features for "bundled" configurations)

My question here is: how are people managing and deploying configuration in CiviCRM today?

CiviCRM Features looked like it had promise:
https://www.drupal.org/project/features_civicrm

I spoke to the former maintainer, Tim Mallezie, about this a while ago. He was very helpful. The module was proving hard to maintain, as each entity in CiviCRM required it's own handler (perhaps this is something CiviCRM Entity could help with); and the overhead was proving too much to be worth continuing development.

At the time Tim noted that:

  ...we now use the CiviCRM API in custom modules with update hooks to deploy CiviCRM configuration.


Why can't I easily manage contact images in Drupal Views any more? I'm updating an old D6/Civi site to D7. It includes some Drupal Views that display listings of contacts along with the contact image (in our case we're working with organisational contact records and using the contact image field to store a logo.

This just worked on the D6 site, where Views simply provided the raw image URL in [image_URL] and I was able to rewrite it in the View and so control the size of the rendered image to suit the view.

In D7 now this looks totally broken. I can get the view to display the image, but [image_URL] now includes the img tag and everything, so I can't just get the raw URL any more and rewrite it.

There appear to be other questions here referring to the same issue, and a number of issues in Jira, but i can't find anything that provides a decent workable solution.

Has anyone got this resolved, and if so, how?

Did you try the Output the image URL only option as shown below?


Wordpress User only to access CiviCRM I would like allow a WordPress user only to have access to CiviCRM. I realise that it has to go through the WordPress interface, but we want the CiviCRM users to only be able to administer CiviCRM, and not the WordPress site. Some will need full rights to CiviCRM.

I have found some info regarding this, and this questions helped me a lot: How to display CiviCRM menu for non-admin role using WordPress?

Anyone can register is not selected in WP admin, and I have changed that a subscriber can access basically everything in in WordPress Access Control.

I am just concerned about security, and was wondering if perhaps there is a better way of doing this?

Thank you

I find the plugin User Role Editor Pro to be very helpful with this. https://www.role-editor.com/  This makes it easier to setup the access control on the WP side.
Use CiviCRM > administer > Users & Permissions > Permissions (Access Control) > WordPress Access Control to control what parts of Civi different roles have access to.
I would NOT give Subscribers full access to Civi or WP. This is the role your basic donor is likely assigned. Yes this would create a serious security and liability issue if you give donors full access to Civi. Create/use another role besides Subscriber for anyone that needs some level of access beyond their donor dashboard.
Helpful tip. Create a user that is not your admin. Assign this user whatever role you are wanting setup with limited access. Login with one browser or computer as admin and in another browser or computer as the new user. Start editing Civi or WP Access Control settings as the admin, then refresh your other user tab and see what has changed.


how do I use phpcbf? When I run civilint in the build kit I get a long report which ends with this line:

PHPCBF CAN FIX THE 2 MARKED SNIFF VIOLATIONS AUTOMATICALLY

Well that sounds great! Where is this mythical phpcbf and how do I use it?

When I ran it with just the name of the file it really broke things!!

The phpcs/phpcbf standard in use is a modified Drupal standard, so you call the standard of "Drupal":

phpcbf --standard="Drupal" filename.php

However, if you ALSO have unmodified copies of the Drupal standard installed, the trick is to make sure that you're calling the correct version of phpcbf.  For instance, I get this:

mycomputer» which phpcbf
/home/jon/local/civicrm-buildkit/bin/phpcbf

If your default phpcbf isn't the one installed with civicrm-buildkit, make sure to specify the full path to the one that is.

If that doesn't work:
civilint is a script.  So you can edit it in a text editor.  In the latest version, line 179 reads:

xargs $BINDIR/phpcs --standard="$PHPCS_STD" < "$TMP/php.txt"

Add an "echo" into it like so:

xargs echo $BINDIR/phpcs --standard="$PHPCS_STD" < "$TMP/php.txt"

Run civilint again:

civilint myfile.php

Instead of outputting the result of phpcs it should instead show the command it WOULD have run.  In my case, it's:

/home/jon/local/civicrm-buildkit/bin/phpcs --standard=/home/jon/local/civicrm-buildkit/vendor/drupal/coder/coder_sniffer/Drupal fastactionlinks.php

Change phpcs to phpcbf and run that command:

/home/jon/local/civicrm-buildkit/bin/phpcbf --standard=/home/jon/local/civicrm-buildkit/vendor/drupal/coder/coder_sniffer/Drupal fastactionlinks.php

Note Don't forget to remove the echo when you're done!


Is it possible to define an activity status to be the equivalent of completed? Specifically in the UI, activities that are past their date show as red unless their status is completed. I have a few use cases where it would be preferable for the final state of the activity to be a status like 'accepted' or 'denied'. I have not found in place where it is possible to set the status level as equal to Completed, so I am assuming that you would have to either do it with some type of extension or custom code?

The status of an Activity is where it stands on its path from creation to completion (started, in process, awaiting xyz, etc, etc, completed).

In this flow, 'accepted' and 'denied' aren't statuses, because they don't tell us what the next action is (or if there will be another action). We should think of these as outcomes. Assuming the activity is a proposal or similar, what about creating a custom field called Result or Outcome, with 'accepted' or 'denied' as the available options?


What is the significance of event_queue_id in civicrm_mailing_event_delivered table? I generally find that the event_queue_id and id values are same for all the tuples in the civicrm_mailing_event_delivered table. Why do we need a separate event_queue_id then? Can two tuples in this table have the same event_queue_id?

It is a foreign key to the civicrm_mailing_event_queue table. It is in lockstep since all your emails are being delivered etc and thence the two tables are in sync. However there is no guarantee of this and you cannot rely on it, hence the need of the foreign key.


Limit access to form to authenticated users? We're using Drupal8+CiviCRM
We have a data entry form (created with a profile) that we don't want Anonymous users to access. We also have several other forms that we do want Anonymous access for (donations, email subscribes).
How can I limit access to just one form?
Thanks for any help!

At the bottom of the profile settings page, there's a collapsed advanced section. There you can limit it to a group.


Where is the "Do Not Email" setting? We want to find the best way to not send bulk emails to a contact when they've asked to be removed from our mailing lists. I've seen many references to the "Do Not Email" box, but have not been able to find it. We are able to use the "On Hold" setting for a specific email address of the contact, but the documentation implies that that is for a different purpose (that the email address does not work). Is there a "Do Not Email" setting that we can manually select in order to have a contact excluded from any future CiviMail mailings?

It's a bit hidden inside Communication Preferences on the contact record:


Best way to make new groups mailinglists by default I wonder how I may preset the mailinglist group type checkbox in group's edit form for new groups.

From a quick glance to code and db I assume that the is_default field in the db is not used here (have tried also).

So how could I do if I want to avoid a client side/js hack?

I would create a custom extension as explained here or using an existing one and implementing hook_civicrm_buildForm

Updated

function myextension_civicrm_buildForm( $formName, &$form ) {
  if ("CRM_Group_Form_Edit" == $formName) {
    if ($form->getAction() == CRM_Core_Action::ADD) {
      $defaults = array ("group_type[2]" => true);
      $form->setDefaults($defaults);
    }
  }
}

That will make the Mailing list checkbox checked by default.


Is there a way to add a Null option to webform radio buttons? When using a Drupal Webform with CiviCRM it is possible to add a Null or 'Empty' option to a Select input box, if using a dropdown list.  Is there a way to do the same thing if using radio buttons?

No Required Radios example:

Alternatively in CiviCRM -> Custom Fields -> If you wanted to specifically record the 'none' option simply add it as an Option (Add Option) and it will automatically appear on your webform as an option as well!


Dropping thousands of records into a batch via SQL I have imported (tens of) thousands of historic contributions to a site that uses Accounting Batches regularly. They were starting to bog down the batch assignment page so I thought I would simply create an administrative batch, drop them in via SQL directly as follows, and then be done with them.

insert into `civicrm_entity_batch` (entity_table,entity_id,batch_id)
select 'civicrm_financial_trxn',trxn.`id`,188 from `civicrm_financial_trxn` trxn
where trxn.`trxn_id` LIKE 'archive_%';

In the SQL above, I am inserting the string 'civicrm_financial_trxn' into the entity_table field, the id, and then the number 188 (which is the ID of the new batch I created). Also, all the transaction IDs for these archival records have been prepended with 'archive_' (hence the where clause above to choose just these contributions).

This works for the most part (the transactions show up in the batch, and I can close it as I would expect), but there is a kicker. Now in any new batches, the bottom portion of the page where you typically assign transactions to the batch never stops "Processing":

The Drupal watchdog has a few notices:

Strict warning: Non-static method CRM_Batch_BAO_Batch::links() should not be
called statically in CRM_Batch_BAO_Batch::links() (line 280 of
/var/www/public_html/sites/all/modules/civicrm/CRM/Batch/BAO/Batch.php).

and

Notice: Undefined index: batch_type in
CRM_Batch_BAO_Batch::getBatchListSelector() (line 230 of
/var/www/public_html/sites/all/modules/civicrm/CRM/Batch/BAO/Batch.php).

Does anyone have an idea what this might mean? The archival imports were not intended to be fully integrated into the Financial/Accounting portion (they were batched and dealt with in a previous system) but were meant simply as informational background on contacts.

How can I troubleshoot/fix this?

Well this is not really an answer but it is a workaround. We've found that when creating the batch, if we specify the Payment Instrument (e.g. Credit Card) then it works. So we can get around this for now by doing separate batches for credit cards and checks.


Create a "Not Attending" Option for CiviEvent I've been getting complaints from my invitees that there's no way to indicate that they won't be attending. Is there someway to activate or build this option?

You can create a custom "Participant Status" at civicrm/admin/participant_status (via the menu at Administer > CiviEvent > Participant Statuses).

I don't think there is a default way to expose the participant status on a core event registration form (they are typically for admins in the backend only), so you may consider using a separate workflow with a tag or group for those that are not attending, as noted by @Nicholai below. You might even be able to use Rules to automatically change their status to the new one you created based on the tag/group they are in.

However, if you are using Drupal with Webform-CiviCRM for the registration, it would be a nice clean solution to expose this new participant status on the form (allowing "Registered" or "Not Attending" as choices), and then use Webform's Conditional functionality to show or hide event registration fields as appropriate. This way they can indicate they are not attending without having to see/fill out any custom registration fields on the form.


D8 - can't view Contributions after upgrade to 5.28.x When trying to View a Contribution (any Contribution) I'm getting this error on one of my D8 test sites.
Error: Class 'Brick\Money\Money' not found in CRM_Utils_Money::subtractCurrencies() (line 142 of /var/www/drupal/vendor/civicrm/civicrm-core/CRM/Utils/Money.php)

It's still at 5.28.2

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

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


launch custom profile from Edit button? Civi 5.9.1. WordPress 5.0.3

I built a profile for my organization's staff to use when adding an Individual with a specific subtype ("Farmer"). I created a New Farmer menu item under Contacts>New Individual in the nav bar, and linked it to the Farmer profile's URL. I used the Contact Summary Layout extension to show only the fields from that profile when viewing details for an Individual of subtype Farmer. But when a user clicks the Edit button from there, the default Individual contact template appears, instead of my custom Farmer profile.

Is there any way to change this, so that editing an existing Individual of a certain subtype launches the profile created for that subtype? (I framed the question generally because we'll eventually have a few more subtypes with their own profiles that also will differ substantially from the default and from each other. But for now I'm setting aside the question of whether and how an Individual's subtype can change over time.)

While I have no coding experience outside of SQL (at which I'm fairly expert), I'm open to suggestions that go beyond the CiviCRM UI.

Many thanks!

EDIT: I'd also be keen to learn if there's a way to hide or disable the Edit button on the Contact Summary page, even if it can't be done based on subtype. Users would still have recourse to the pencil icons on that page, which should work fine given that it matches the custom profile.

You can do it with a link but I'm not sure how to get the link to display somewhere without some customization. For example if the contact id is 2 and the profile id is 3 then this url will open the profile to edit the user:

https://your-website/civicrm/profile/edit?cid=2&gid=3&reset=1

The profile id is what you see in the url when you're on the admin page where you created the profile, and you hover over the Fields or Settings link, e.g. in this example it's the gid=3 part:
https://your-website/civicrm/admin/uf/group/field?reset=1&action=browse&gid=3

EDIT: There is a way to get to the desired page just using the UI but it's a couple steps:

Go Search - Find Contacts. Pick some criteria that will find your
contact.
In the results list check the checkbox on the left next to
the contact.
From the actions dropdown at the top of the results list, choose Update Multiple Contacts.
It will then redirect to a page where you pick the profile.
Then on the next page it will present a version of the edit form.


Error when end-users access Contact Dashboard I want users to have access to the Contact Dashboard on our CiviCRM site. But I'm currently getting the following error when trying to access.

The following permissions I have set.

Authenticated User:

CiviCRM: access Contact Dashboard

Anonymous:

CiviCRM: profile create
CiviEvent: register for events
CiviEvent: view event info
CiviDonate: make online contributions
CiviCampaign: sign CiviCRM Petition

If I give the permissions "CiviCRM: access CiviCRM backend and API" it fixes the issues but do not probably want to do that.

CiviCRM version 5.22

You have to have this permission (access CiviCRM backend and API) for anyone to access anything CiviCRM related, it's the minimum permission required for anyone to do anything.

You can have a look at some information regarding this here - https://lab.civicrm.org/dev/drupal/issues/45

There are a lot of other pages that say similar things as well, it sounds like a scary permission to give someone but in reality it's more of a first step kind of thing.

Unfortunately, this means that anyone with the access CiviCRM backend and API permission can see the CiviCRM menu but there are ways of going about this such as the answers on this question - How to remove CIviCRM from menu for some roles


Export contributions - missing Field Mapping dropdown I was able to reproduce on CIVICRM DEMO site: https://demo.circle-interactive.co.uk
Steps to reproduce:

Find contributions
Select contributions
Select action 'Export contributions'
Select option 'Select fields for export'

A dropdown should display to let use select fields for mapping but in civicrm version 5 that div id '#map' do not have any content.

It does work. If you don't have mapping saved then it won't display the list. I tested on https://demo.circle-interactive.co.uk/ after saving the mapping. Second time i visited the page i could see mapping field. Make sure you have mappings saved for contribution export.


Can field names be wordwrapped? Using CiviCRM 4.7.1
Some of the field names in our registration form are so long that, on the form the attendees use, they are truncated. Also on the confirmation messages. Either truncated or overtyping the data. Can the field names be wrapped?
The field names shown are "SS Dance Class - 1st choice" and "... 2nd choice", etc.

I would recommend either:
1) Using Drupal Webform to capture the data (are you on Drupal?)
2) Adding a custom template for this profile
3) Using a custom theme for this page
4) Report this as a bug to be fixed in future versions of Civi.


Getting a Custom Field Value on a Contact with Javascript API I have a custom field for contacts that I would like to retrieve the value for using JavaScript.

Using the API explorer I have generated the code that does this. It works PERFECTLY from the API explorer (which uses PHP).

However, when I run the Javascript code in my extension I get an error. Here is the code:

CRM.api3('Contact', 'getvalue', {
  "sequential": 1,
  "return": ["custom_102"], //custom_fieldId
   "id": 2 // contact id
 }).done(function(result) {
   // do something
 });

Here is the error:

Object {
    invalid_field: Array[1],
    is_error: 1,
    error_message: "field Array unset or not existing" }
    error_message : "field Array unset or not existing"
    invalid_field : Array[1]
         0 : "custom_102"

I am at a complete loss here... and would really appreciate some help!

The syntax is incorrect - and I just confirmed that the syntax generated by the API Explorer for Getvalue is incorrect, so you're not to blame!

The culprit is this line:

"return": ["custom_102"],

In JSON, the square brackets indicate an array.  "return" expects an array for a Get action, but Getvalue accepts only a single value (for the obvious reason).  If you remove the brackets:

CRM.api3('Contact', 'getvalue', {
  "sequential": 1,
  "return": "custom_102", //custom_fieldId
   "id": 2 // contact id
 }).done(function(result) {
   // do something
 });

You should be in business!


How do notifications for recurring payments work? I've got a site that has had recurring payments (via paypal) working for some time, but only recently had the ipn settings configured correctly. Now that that is working we're getting more notifications than anticipated, so I just want to check my understanding on what's happening.

Memberships were set up to cc an info@ address in to the membership reciept. And also when the "member details" profile in the contribution page was submitted.

This now works as expected for new membership subscriptions.

The unexpected side is that the membership admins are getting the same notifications for the automated renewals. They are cc'd into membership renewal receipt, and it looks like the recurring payment resubmits the profile data so they're getting a notification from that as well.

I've not had much dealing with recurring payments before, I just want to check that this is the expected behaviour.

In which case. cc into reciept and notify from profile submission from the membership contribution page are the wrong way to notify membership admin about new members. I'm guessing a scheduled reminder for member join, limited to the admin email only would be a better way to go.

Also the contribution page that created the membership has been updated several times over the years so it now is no longer a membership page, and uses different profiles. So the notifications are linked to the original payment record and changing the contribution page makes not a blind bit of difference to associated recurring payments.

Removing the submission notification address on the profile will stop future notification emails (I guess). But I can't see a way to stop the cc notification from each membership renewal reciept, at least in the civi user interface- can this be amended from the sql tables?

So two questions
1) Is civi behaving as it should, and our expectations of the original set up was wrong?
2) How can I kill off future notifications for recurring payments

----editting after further work----
Scheduled reminders don't function as I thought, and can't add a cc to a scheduled reminder. So can't send a "welcome to us" message and cc the admin address in.

Looked at Civi Rules on the demo site- can set a trigger for membership added. But, "Send email to..." not available as an action.

There is an answer here that says among other things

You'll need to install these:

https://github.com/CiviCooP/org.civicoop.emailapi / https://civicrm.org/extensions/e-mail-api


multi-value import issue I created several custom fields & groups but I am not seeing all of them when I try to import my contacts.

Like I have a few custom sets/groups and custom fields within each. But only one set is showing when I import my contacts & try to match them up to the fields. I have checked the settings, and everything is the same. Any ideas?

Update: I found the "import multi-value custom data" part of the import contacts ... almost impossible for anyone to find without spending too much time looking through this forum.

HOWEVER when I import it does its normal "column names", "import data (row 1)", "import data (row 2)" thing.... problem is, its putting half of my row 1 in row 2 and not importing all of row one. If that makes sense? In fact not all the column names are in there either. And YES I did check the CSV before uploading & after the error. There is nothing wrong with it. When I imported that same doc for the main import contacts screen it worked fine.

Any ideas? Thanks in advanced!

Update: I decided to upload the multi-value's in smaller chunks to match the specific custom data field that I created. The custom data is broken down into one custom field with a bunch of options in the checkbox setting. When I go to upload the content pertaining to just that, I will go through everything and just set it to the base custom field (since I cannot choose the options). When I do that it processes & then throws out a "DB Error: constraint violation" .

Any ideas, anyone?

You can check in custom field settings if "Is this Field Searchable?" is enabled. I think it is necessary to mark it, to appear in the import selectable fields.


Can CiviCRM entities be used as events to trigger Drupal Rules? I have CiviCRM Entity installed, Drupal Rules, up to date versions of both.

I'm just creating a simple rule that says when a CiviRM Contribution Page is viewed, a "Hello World" message is displayed.

Getting nowhere with it. It does not even trigger Rules at all, so no debug, no log entries.

Works fine with Drupal content.

Am I missing something?

The rule will only trigger when the Drupal version of the contribution page at path /civicrm-contribution-page/(id)

We haven't added a feature to trigger the rule event when the civi version of the contribution page is viewed.


VBO (views Bulk Operation) to send mails, mailings, ans SMSs? CiviCRM 5.6.0

Is it possible to use VBO (views Bulk Operation) to send mails, mailings, ans SMSs ?

How ?

Although CiviCRM entities are exposed to Drupal via CiviCRM Entity module, they are still not Drupal entities.

So in VBO even though you might think you can modify entity values to CiviCRM entities, it does not work very well at all.

Also in VBO even in Drupal you cannot send an email using this method. In VBO all you can do is modify entity values or execute a PHP script.

You would have to use a combination of VBO and Drupal Rules to send an email. And none of that would be recorded as a CiviCRM activity.

Not for me to ask, but using CiviCRM Scheduled reminders and inbuilt CiviMail would be a much easier option.


CiviCRM Membership form Renewal text not displaying I have a question about the functionality of membership forms for renewals.

We've got our CiviCRM membership form set up with both new membership and renewal text/copy:

As I understand it, it's the same page that changes title/text based on the member status.

I can't for the life of me get this renewal title/copy to appear on our membership page. Does anyone know how this title/text change is triggered?
Does it appear because of a membership status eg 'grace'/'expired'?
Would it appear with a membership status as 'current' but nearing the end date of the membership?

Thanks for any suggestions!

It should appear if the user is logged in or is using a checksum and has a Membership status which can be renewed, eg New, Current, Grace


Membership renewal as same type How can we ensure members renew as the same membership type?  At initial sign-up, they can choose their type but after that, renewals should be as the same type - they should not be able to renew as a different type.

One option is to create separate contribution pages for each membership type, then have a join page that links to each of those.  And then setup scheduled reminders for each type with links to the contribution page for renewal. With 13 membership types, that's a lot of setup.

So we're looker for a smarter way to do that.  Any ideas or useful extensions?  Drupal system so webforms are an option.

With Drupal webforms I am pretty sure you can set the Membership Type to be locked so renewing folk won't be able to change from the one that loads - will only work if they are logged in or using a checksum.


Unintended Text in civiBooking Resource Configuration in civiBooking, additional text is showing under Resource Configurations while trying to add a booking.

Trying to add a booking, all the options (Conference Room/Hourly -$50, Conference Room/Daily -$200, Hourly - $50, Daily - $200) have the additional text /Phone or /Email added.

Neither Phone or Email was set up as part of the resource configuration (Image 2) or size units (image 3). Where is it coming from? How do I get rid of it?

It looks like that text is likely from the "Resource configuration size unit" option list.

From the Resource Configuration Set page (civicrm/admin/resource/config_set?reset=1), you can edit the individual options for the configuration set in question. You can select a different "Unit" on the options, which shows up at the end of the selection as you noticed.

If there is no appropriate option listed, you can also edit the option list that is used here. Go to Administer > System Settings > Option Groups and look for the Resource configuration size unit group.

It looks like you've already set these values correctly. Did you change the values at some point? If you create a new "size unit" and select that, does it affect the display?


How can I indicate if our donors prefer to receive Charitable/Political Tax Receipts by Email or Postal Mail? using:
CDN Tax Receipts Extension
https://github.com/jake-mw/CDNTaxReceipts

The CDN Tax Receipts extension contains several hooks - one of them allows you to set the 'method' of delivery (Email vs Print) for a specific Contact. Here's an example implementation:

/**
 * Determine Contact's Preferred Communication Method
 * return 'print' -> if Postal Mail is checked
 */
function my_receipts_cdntaxreceipts_method($contactId) {

  // Check if Contact's Preferred Communication Method = Postal Mail -> id = 3
  $result_pcm_id = civicrm_api3('Contact', 'get', array(
    'return' => "preferred_communication_method",
    'id' => $contactId,
  ));

  if ($result_pcm_id['is_error'] != 1) {
    if (count($result_pcm_id['values'][$contactId]['preferred_communication_method']) == 1) {
      if ($result_pcm_id['values'][$contactId]['preferred_communication_method'][0] == 3) {
        return array('print');
      }
    }
  }
}


Fatal error: Class 'Symfony\Component\DependencyInjection\ContainerBuilder' not found On a 100% fresh Drupal 7.56/CiviCRM 4.7.22 install, after entering all the db info in the CiviCRM installer and clicking "Check Requirements and Install CiviCRM", I get the following error:

Fatal error: Class 'Symfony\Component\DependencyInjection\ContainerBuilder' not found in ... /sites/all/modules/civicrm/Civi/Core/Container.php on line 104

I also got this same error when trying to perform an upgrade of an existing CiviCRM installation from an older version (4.4.5) to the latest. I thought a fresh install might be the fix, but apparently not.

I've searched documentation and Google for this error and found no real information on what could be causing it. All the server/database requirements are in place as far as I can tell, so I'm not sure if this is something any others have experienced? If anyone can shed any light on this error, it would be much appreciated. Thank you.

I had this in an upgrade scenario when I forgot to clear my templates_c folder. Clearing that folder solved the issue.


How can I set up CiviMember to meet these requirements? I'm wondering how I can set up CiviCRM to fit these requirements, do I create one membership with price sets or multiple memberships? How Would I go about the dynamic price changing? 2nd and last year??

Thanks!

For Honorary members, year the member became honorary is indicated.

Member type: Members will enter one of the following. If they are joining or renewing, the amount of membership is automatic.

1st year practice       $50
2nd year practice       $100
Regular             $150
Part-time           $75
Retired             $30
Resident            $40 or $20 *
Medical Student     $20 or $10 **
Associate           $50

* Residents who join in their first year pay $40 for the duration of their graduate medical training program. Residents who are in their 2nd or last year of their training program pay $20 each year.

** Medical students who join in their first year pay $20 for the duration of their undergraduate medical training program. Students who are in their 2nd or last year of their training program pay $10 each year.

I would go for all different membership types.

And on the signup page to describe properly for who it is.

The problem with pricesets is that it is much more difficult to get priceset info to show up in searches, in exports, in reports, in batch imports. So if you would do all (or a few) with the same membership types, you often only see the paid price difference, and not the underlying reason why they paid differently. You obviously can guess, but often you would want to see the reason (different option chosen in the priceset).


Thank you page not displaying Whenever someone registers for an event, this error displays instead of the thank you page:

I'm using Wordpress and I have a civicrm page, and I have the Wordpress base page set to the civicrm page on the CMS Database Integration page in civi. The url for the error page displayed is:
?page=CiviCRM&q=civicrm%2Fevent%2Fregister&_qf_ThankYou_display=true&qfKey=

I see the error below in the  the civi debug log.

A thank you email is sent as requested.  I'm usisng CiviCRM 5.4.1 and Wordpress 4.9.9.

What do I need to configure or change to fix this problem?

ETA: The thank-you page used to display properly. I think it stopped working when Wordpress was automatically updated to 4.9.9. Any ideas?

Update:
We are using credit cards through Paypal Website Payments Pro for payments. The transactions go through and are marked as complete.

We also get this error when people register with a discount code giving them a free registration, thus no paypal transactions are required, or if they register using the pay later option.  For donations and memberships, the orginal donation or membership screen is displayed instead of the thank you screen.

Update:

I finally found the correct debug log. We have a subsite and I was looking at the main site ConfigAndLog. Here's the error and backtrace:

Jan 07 11:01:08  [info] $Fatal Error Details = Array
(
     [message] => Could not find valid value for id
     [code] =>
)

Jan 07 11:01:08  [info] $backTrace = #0 /var/www/vhosts/site/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/Error.php(381): > CRM_Core_Error::backtrace("backTrace", TRUE)
#1 /var/www/vhosts/site/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Utils/Request.php(121): CRM_Core_Error::fatal("Could not find valid value for id")
#2 /var/www/vhosts/site/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Event/StateMachine/Registration.php(52): CRM_Utils_Request::retrieve("id", "Positive", Object(CRM_Event_Controller_Registration), TRUE)
#3 /var/www/vhosts/site/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Event/Controller/Registration.php(47): CRM_Event_StateMachine_Registration->__construct(Object(CRM_Event_Controller_Registration), TRUE)
#4 /var/www/vhosts/site/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(304): CRM_Event_Controller_Registration->__construct("Event Registration", TRUE, "null", NULL, "false")
#5 /var/www/vhosts/site/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(84): CRM_Core_Invoke::runItem((Array:15))
#6 /var/www/vhosts/site/httpdocs/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:3))
#7 /var/www/vhosts/site/httpdocs/wp-content/plugins/civicrm/civicrm.php(1246): CRM_Core_Invoke::invoke((Array:3))
#8 /var/www/vhosts/site/httpdocs/wp-content/plugins/civicrm/includes/civicrm.basepage.php(141): CiviCRM_For_WordPress->invoke()
#9 [internal function](): CiviCRM_For_WordPress_Basepage->basepage_handler(Object(WP))
#10 /var/www/vhosts/site/httpdocs/wp-includes/class-wp-hook.php(286): call_user_func_array((Array:2), (Array:1))
#11 /var/www/vhosts/site/httpdocs/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters("", (Array:1))
#12 /var/www/vhosts/site/httpdocs/wp-includes/plugin.php(515): WP_Hook->do_action((Array:1))
13 /var/www/vhosts/site/httpdocs/wp-includes/class-wp.php(728): do_action_ref_array("wp", (Array:1))
#14 /var/www/vhosts/site/httpdocs/wp-includes/functions.php(960): WP->main("")
#15 /var/www/vhosts/site/httpdocs/wp-blog-header.php(16): wp()
#16 /var/www/vhosts/site/httpdocs/index.php(17): require("/var/www/vhosts/site/httpdocs/wp-blog-header.php")
#17 {main}

I am fairly confident that your issue is that the WordPress redirect_canonical function is rewriting your unescaped CiviCRM URLs and redirecting to properly escaped URLs during the registration process. This would cause your session to be cleared during the redirect.

I recently fixed the as much of the code as I could find where CiviCRM generates URLs and updated it to produce valid URLs that wouldn't be caught by redirect_canonical. The latest CiviCRM has the fixes (so upgrading is as always recommended) but here are the relevant PRs in case you want to back-port them to your version:

https://github.com/civicrm/civicrm-core/pull/13043
https://github.com/civicrm/civicrm-core/pull/12969
https://github.com/civicrm/civicrm-core/pull/12968

As the question is also Paypal-related, you should also be aware of:

https://civicrm.stackexchange.com/a/27958/520

I haven't verified that jgillmanjr's fix works, but the logic looks right to me.


Displaying long CiviCRM multi select fields in a Drupal Webform We have a circumstance where we have a multi select custom field with around 200 options. We then have this field loaded into a Drupal webform (for this project we need to use Webforms).

The standard Drupal Webform field options only allow either a CTRL click multi select or radio buttons, neither of which will work with that many options.

We have also tried a module called Chosen (https://www.drupal.org/project/chosen) but have failed to get this to work with the Webform. Has anyone got any experience of getting Chosen working with Webforms or an alternative approach?

Oliver

I've written a small module that allows you to use the select2 widget on your webforms:

https://github.com/colemanw/webform_select2

Enjoy!


Webform results table not displaying I have numerous webforms set up.  When I click on 'results' then 'table' there seems to be an issue with viewing any of the results there.  The results are there, as in, they can be downloaded and viewed individually through 'submissions'.  All I  can see are the titles of each column.
Thank you.

the Results and Table aspects you refer to are purely Drupal components. We have built many hundreds of webform_civicrm forms and have never seen a problem with this so I doubt the problem is specifically an issue due to using civicrm.

You could try right-clicking and using your browsers 'inspector' to check the console and see if it shows any errors.

Otherwise try searching/asking in either the Drupal stackexchange or in the Drupal project Issues pages - and hopefully they won't say 'this is a civi issue' (unless of course it is and I am wrong)


Getting error message upon installation Getting this error message just as I am trying to set things up should I be worried?

0

 Sorry but we are not able to provide this at the moment.
CiviCRM 4.6.10 requires MySQL trigger privileges.

Return to home page.

 < script language="JavaScript"> function toggle( element ) { var className = element.className; if ( className == 'crm-accordion-wrapper collapsed crm-fatal-error-details-block') { element.className = 'crm-accordion-wrapper crm-fatal-error-details-block'; } else { element.className = 'crm-accordion-wrapper collapsed crm-fatal-error-details-block'; } }< /script>

I don't know why all that HTML markup was displaying for you--that's a bit of a bug.  However, the real error message is in there: CiviCRM 4.6.10 requires MySQL trigger privileges.

The MySQL user that CiviCRM and Joomla use for connecting to the database needs to have the ability to create triggers.  You or whoever maintains your server will need to grant that permission to your database user before you proceed.


How can I bulk update a collection of recurring contributions to set the next scheduled contribution to a specific date? If you're using the iATS Payments Extension you control the schedules of recurring contribution from within your CiviCRM. You can already edit a given recurring series and change the next scheduled date. Can this be done in bulk?

Since yesterday you can now do that if you're using Drupal! @jackrabbithanna (Mark) added some code to CiviCRM Entity Project, which now exposes civicrm_contribution_recur as an Entity in Drupal so that you can manipulate it in Drupal like any other Entity. Will post some steps/screenshots here:

git clone https://github.com/jackrabbithanna/civicrm_entity.git

this is fresh - look for it soon on https://www.drupal.org/project/civicrm_entity

Enable modules: views, views bulk operations (VBO) and CiviCRM Entity
-> also Enable the CiviCRM Entity Actions submodule
Clear caches twice!
Add a view: Show: Recurring Contributions Profile; you will want it to Format: Show: Fields and Create a page for it.
Add Field: Bulk Operations: CiviCRM Contribution Recur

Select Modify Entity Values (as we're going to want to update values)

In action - go to your page

Hit Execute
Select Next Scheduled Contribution Date and assign the new value for it (this is the date/time/format that CiviCRM uses):
2017-05-01 00:00:00

Next and Confirm!
And check that it worked: it did - will transact on May 01, 2017: