"Empty needle" error when exporting from Advanced Search results I get the following Warnings when export contacts after performing an advanced search:

Blockquote Warning: strpos(): Empty needle in /home/iskcohdx/public_html/crm/wp-content/plugins/civicrm/civicrm/CRM/Export/BAO/Export.php on line 600
Blockquote Warning: Cannot modify header information - headers already sent by (output started at /home/iskcohdx/public_html/crm/wp-content/plugins/civicrm/civicrm/CRM/Export/BAO/Export.php:600) in /home/iskcohdx/public_html/crm/wp-content/plugins/civicrm/civicrm/CRM/Utils/System.php on line 833

What could be the cause of this and how to fix this issue?
I'm using CiviCRM 4.5.3 on Wordpress.

It's likely an issue with the code. The fastest "fix" is to hide that armless message by changing the setting. you add in your civicrm.setting.php that line:

ini_set("error_reporting", 0);

and it should avoid to show that message.

Beware that it means that you might have other errors (eg. from other modules) that will be hidden too.


Error installing CiviCRM on GoDaddy-Hosted Wordpress Website I am getting a database error when installing CiviCRM on a WordPress website hosted by Go Daddy.  The error is: 'Could Not Create a Database Trigger.' I've seen several online posts about Go Daddy not permitting the use of triggers on MySQL 5.0.  Is this still in effect?  Is there a work-around?

The answer is "yes", and "no".

I would strongly discourage using GoDaddy shared hosting (or almost any shared hosting) when running CiviCRM for any non-trivial use.  It's going to be slooow and possibly non-functional (as in your case).


WordPress Content Directory Setting I have installed CiviCRM successfully for WordPress. However, the Civi dashboard shows many 404 errors. My install directory is content/plugins/civicrm and the dashboard is searching for wp-content/plugins/civicrm. I am not able to find a setting that tells Civi where to look for the content directory. Is this something that I can modify?

I'm sorry to say that you'll have to revert back to the default 'wp-content' folder name in order to use CiviCRM. I can find at least 5 places in CiviCRM core where this is hard-coded.


How to recording financial classes in addition to financial types in a contribution? We have been using CiviCRM's 'Campaign' functionality as a way of assigning additional information to contributions. It's how we have made CiviCRM more compatible with our Quickbooks, which makes extensive use of 'Classes'. So we match up 'Financial Types' from Civi with 'Accounts' in Quickbooks, and match 'Campaigns' in Civi with 'Classes' in Quickbooks. This has worked well as long as all financial types on a given Contribution page in CiviCRM were associated with a single 'Campaign'.

However we now have a need for contribution pages that not only record different financial types (through price sets), but also record different campaigns. The intention is to allow people to contribute towards multiple things with a single payment- for example: if I were to donate towards the 'Event Scholarship Fund', make a payment for my Membership, and make a donation towards the 'San Francisco Center', those would each have separate accounts and separate classes when they are entered into Quickbooks.

I would like to give donors the option to contribute towards many different areas and only have to enter their payment info once. As it currently is set up, I can only associate a single campaign with a contribution page. So the donor would have to visit multiple contribution pages and enter their payment info each time as it is currently set up.

Does anyone know of another way to accomplish this? To record both financial types and classes in CiviCRM?

I have considered adding a new financial type for each class and appending the class name to the end, but this would result in an unwieldy number of financial types. I thought about using custom fields in place of Campaigns, but couldn't figure out a clean way to use them to accomplish this same purpose. Campaigns work really well for us because of the way they are integrated throughout CiviCRM, but I can't figure out how to move forward with this and accept multiple donations on a single contribution page in a way that integrates with our accounting.

You could add a custom field for the donors to effectively pick the campaigns they wish to donate to, then you could reallocate behind the scenes is one option.

Another is to use shop items, these could result in separate contributions being created in CiviCRM for each item.

Either approach would need a bit more then just config so to speak.


Multiple contact (sub)types for an individual I am new to CiviCRM and I am wondering what would be best practice regarding the use of contact (sub)types in our organization.

The situation is following:
Type of business: coaching and training.

We provide coaching to clients(contacts) so we assign one or more Coaches to a client at the start of a coaching period. This coach(or coaches) could be an in-house coach or he/she could be external. However, coaches could also be qualified trainers in certain areas of expertise. Trainers can offer workshops/courses/trainings to clients but also to coaches and other trainers.

Is it good practice to assign multiple contact sub-types to individuals who are qualified as a coach and trainer and possibly as supervisor as well?
Or would a different approach be a better solution?

Many thanks!

As long as I know it's a good practice to use multiple subtypes in the same contact.

Doing that you can, for example, create different custom fields for each subtype. So your coaches who are also trainers will have the fields for being coaches and in addition the fields for being trainers.

And if in the future, one of your coaches became a traier, you can add him the subtype and automatically will appear the custom fields for it.

So I will recommend it. :)


Solved - Wrong base URL for Civi include files (Wordpress) Civi version: civicrm-4.7.14-wordpress |
Wordpress version: 4.7

Hi,

I have run into a problem with a Civi/WordPress install. The content of the dashboard is not loading and the Civi menu not showing. The site is installed in a directory and the urls for 34 Civi include files have that directory duplicated. This is a new install. The only concern during the install was that the server is running PHP 5.4, otherwise it went fine.

  Example URL:
  domainName/dir/dir/wp-content/plugins/civicrm/civicrm/css/crm-i.css?r=YR5cm

I am still relatively new to Civi and I am having trouble sorting out where to correct the duplication. Any recommendations would be very appreciated.

Thanks!

ADD. 1: If it's of any help, I've confirmed there are no Javascript errors (probably because none of the Civi includes are loading), Wordpress itself is running fine, there are no other plugins installed, and the theme is Twenty Seventeen.

ADD. 2:  I confirmed with the host that everything is okay on their end.

I removed the directory from civicrm.settings.php, line 211

  define( 'CIVICRM_UF_BASEURL'      , 'domainURL/dummy');

Now the dashboard at least tries to load, but generates the error "Network Error, Unable to reach the server". The 404 errors are gone now. There is still no Civi Admin menu but I am at least able to access the Administer CiviCRM page and its links now. Unfortunately, it also means I have to manually add the directory back into URLs that didn't have the duplication to start with, like the "System Status" link at the bottom of the dashboard.

ADD. 3: I tried installing CiviCRM Utilities plugin as suggested on "Word Press Install Missing civicrm.settings.php; dashboard unavailable; no menus" (I don't have enough points to post more than one link)

It didn't resolve the problem but I now have the following appearing on Civi dashboard. That's progress of a sort... I guess.

Now I'm looking at resolving these issues. Sigh.
I'm willing to entertain even the smallest shot in the dark for the original problem at this point.

The problem I am experiencing is related to this issue Word Press Install Missing civicrm.settings.php; dashboard unavailable; no menus

The override provided has the site up and running. Yay!

(If someone can relay my thanks to Kevin Cristiano I'd really appreciate it!)


Compatibility problem with Joomla 3.8.7 and Civicrm 5.0.1 that affects Cron On my last question How to setup Cron in Civicrm- local server I found out Joomla.php is having problem. i used curl or cli to run cron both does not work, here are the errors:

initial error
require(C:\Apache24\htdocs\joomla\administrator\components\com_civicrm\civicrm\administrator\includes\defines.php): failed to open stream: No such file or directory in C:\Apache24\htdocs\joomla\administrator\components\com_civicrm\civicrm\CRM\Utils\System\Joomla.php on line 559

after changing joomla.php and civicrm.settings.php civicrm_root slashes
require_once(\libraries/import.legacy.php): failed to open stream: No such file or directory in C:\joomla\administrator\includes\framework.php on line 15

applied patch Cron Job not working after Joomla 3.8.1 update
require_once(\libraries/vendor/autoload.php): failed to open stream: No such file or directory in C:\Apache24\htdocs\joomla\administrator\includes\framework.php on line 18

just wonder if there is a solution for this.

I think you are still likely to run into problems on Windows as Aidan mentioned but to give yourself the best chance:

use CiviCRM 5.1.0, which has additional changes to resolve cli.php problems on Joomla 3.8
use cli.php not cron.php. cron.php still doesn't work in some environments

My recollection of PHP and Apache on Windows is that paths with / work fine so you don't need to replace with \ if that's what you meant when you said you changed civicrm_root slashes.

As you saw in the initial error, the path C:\Apache24\htdocs\joomla\administrator\components\com_civicrm\civicrm\administrator\includes\defines.php is incorrect. It should be looking in C:\Apache24\htdocs\joomla\administrator\includes\defines.php.

In CRM\Utils\System\Joomla.php, look in getBasePath(), around line 532, for this line:

$joomlaPath = explode('/administrator', $civicrm_root);

My guess is that the forward slash is not being matched in the Windows path so try changing it to:

$joomlaPath = explode(DIRECTORY_SEPARATOR . 'administrator', $civicrm_root);

UPDATE 22 August 2018: The above change to getBasePath() will be in CiviCRM 5.6


Searching for users by Total Contributions (CiviContribute, Drupal7) I process donations on a third party site and would like to import these records to CiviContribute.

I've imported each donation as a separate contribution, e.g. Peter has made a donation on 14/01/19 for $500.00 and on 15/07/18 for $800.00. This is so I can track how many donations are made on average, whether donation sizes are increasing for donors who make multiple donations, etc.

I'd like to add all donors who have donated over $1000.00 in total, to a smart group so they can receive tailored email content. However when I do searches, it only shows users based on whether they have donated $1000.00 in one individual donation, not by their lifetime donations.

Does anyone know how I can do this?

If I read you right, I would recommend the Summary Fields extension which then lets you have a standard Custom Field for Total Contributions and you can build smart groups etc off that field.

(Note (Feb 2019) there has been very recent discussion about some blips with the latest release (https://civicrm.stackexchange.com/search?tab=newest&q=summary%20fields)


how to transfer data from one server to new one for Civi CRM on wordpress we have data in wordpress based Civi CRM on one server and want to migrate to another server with wordpress. please guide us.

There is a section in the CiviCRM documentation on moving to a new server. Its not so thorough on WordPress as the other platforms but you should be able to work it all out from the information at https://wiki.civicrm.org/confluence/display/CRMDOC/Moving+an+Existing+Installation+to+a+New+Server+or+Location


batch members communication settings Is it possible to change a communications preference for several members using profiles? I can't find how to do it. If I select "Contact" while having members filtered Civi won't find the profile. But if I select Member from profile I can't bulk-change communication preferences.

Am I doing stuff wrong?

1/ Create a Profile that includes the required Comm Pref fields (this would be a Profile that ONLY contacts Contact type fields, not membership fields)

2/ Adv Search

3/ set your 'membership criteria' as required to find the relevant contacts

4/ use the 'batch update' or 'update multiple contacts' Action (4.6 and 4.7 have different descriptors

5/ you should then be able to bulk update

i just did this on dmaster.demo.... and it worked fine but maybe i am misreading your problem


Any elegant way to 'override' a No Bulk Mail setting for a single mailing? One of our client organizations is sending newsletters to their 4000 members on a regular basis; about 400 of them are not interested in bulk mail and have the No Bulk Mail switch set to On. Once a year though there is a statutory meeting that requires that an invitation is sent to all members, overriding the NoBulkMail setting. So far I've only found awkward ways to arrange for this (moving the members involved into a dedicated group, removing the switch, sending the mail, moving switch back on). Any ideas on how to solve this more elegantly?

Ignoring the no bulk email flag isn't, and shouldn't be an easy process, so what you describe seems to be the "less cumbersome" possible way indeed.

However, it seems to point out to a related issue: these 400 people shouldn't have opted out, but rather it seems should have been unsubscribed from the "regular" newsletter group and kept into the "VIP statutory meeting announcement only" group.

In theory, you can't really reach out to people that have opted out -by definition- but given your specific situation, I would contact them to tell them that you need to be able to mail them, and explain the new "statutory meeting" vs. "newsletter" situation.


How would I view an attachment PDF that is attached to a contact activity, through the REST API? This is through the REST API, I'm using CiviCRM 4.4.14, REST API v3.

I read that there is an attachment API, but the attachment API does not seem to be available through the REST API.

I think you're right. The table that links attachments to what they're attached to is civicrm_entity_file, and the table with details of the file itself is civicrm_file. In 4.4 (and indeed 4.6 and 4.7) the former has its own DAO but isn't its own API entity.

If you want to get details of the attachments on some entity, you might need to write a custom API function wrapping CRM_Core_BAO_File::getEntityFile.

One way you can present a link to the user to download the attachment, is /civicrm/file?id=<file ID>&eid=<activity ID>, but they'll need the 'access uploaded files' permission. On Drupal (I don't know about roles and permissions in Wordpress) this means they'd either need to be actually logged into Civi with a role that has that permission, or the permission would need to be granted to anonymous users, which would mean anybody could grab any attachment by guessing the numbers.

Another way you could allow your app to download an attachment is to write a custom API that base64-encodes the file contents and includes that in the API result.


How do you report group history? (audience growth/change) We transitioned from MailChimp to Mosaico - overall is been okay - but there is a report we were asked to generate that I can't seem to figure out. The report would display group size over time (monthly preferred). This way we can visually demonstrate growth or decline over any time period. Is there a way we can do this?

Somewhat related: How many new subscriptions (added to group) since last mailing to group. (I can do the math - but it would be nice if it was a report so I can have it on their dashboards.)


Display CIVICRM Contact Dasboard Drupal 7.59
Civi 4.7.27

In Blocks there is a default CiviCRM Contact Dashboard. #block-civicrm-3 I have assigned it to Content. It displays for Admin but not for any other roles. I want it to display for role Donor. In the block config I have Roles checked to display Admin & Donor.

Under Civi > Administer > Users > Permissions > Drupal Access Control I checked for Donor: CiviCRM: view my contact & CiviCRM: access Contact Dashboard

But the Donor role still cannot see the link to access their dashboard. When signed in as a donor I can go to /civicrm/user and see the dashboard. It is just not displaying this default block that has the link.

Any ideas what is keeping this from displaying?

The default contact dashboard block is only visible on civicrm pages or form. If the user has access CiviCRM permission than on /civicrm it should display the block or you can change the setting by editing the block to include it on all the pages.

Hth

Pradeep


How to debug chained API calls How can I get back a dump of the full param array when a chained api call fails, so that I can see what values are coming back from the previous call and going into the chained call (and thus better troubleshoot cause of failure)?

I know that I can add the "debug" param into the array, but I can't seem to read the trace in a way that tells me what $value was returned from the previous call and inserted to the chained call.

You can use try/catch and the CiviCRM_API3_Exception class to get more information. It would be something like this:

try{
  $result = civicrm_api3('contact', 'get', $params);
}
catch (CiviCRM_API3_Exception $e) {
  // handle error here
  $errorMessage = $e->getMessage();
  $errorCode = $e->getErrorCode();
  $errorData = $e->getExtraParams();
  return array('error' => $errorMessage, 'error_code' => $errorCode, 'error_data' => $errorData);
}

The getExtraParams method should give you what you are looking for.


Why does a user get 'email field required' after submitting a form such as a Contribution page If a Contribution page has a profile that creates a Drupal User, then the user gets a message after submitting the form that 'email is required' and no Drupal user is created.

Not sure if this is only affecting Drupal.

Looks to me like to me like this was a problem in 4.7.20 and 4.7.21 and am picking this JIRA issue is involved and have created this JIRA issue for the fix.


How to add Custom fields in civicrm contribution page? How to add Custom fields in civicrm contribution page - below the title text field of contribution page form

Do you need field associated with contribution page or contribution?

For contribution:

You can create custom group extending contribution and then add custom field in it and then include the custom field in a profile.

For Contribution page:

Currently CiviCRM doesn't allow to create custom field to extend contribution page. JMA Consulting have developed an extension to have custom field extend contribution page. This extension is not yet released in civicrm.org but they are hoping it to release it soon. You can try by downloading and installing manually.


Manage Groups not listing groups None of my groups are listed on the Manage Groups option in the Contacts menu. Its applies to all my sites which vary between CiviCRM 5.2 to 5.11. Some are new sites some upgraded from 4.7.x where it worked fine as far as I can remember. The groups are there (for example in a drop down in Find Contacts). I can add a new group, but that doesn't show in the listing either. Also there is no search button on the Find Groups part of the page (it is there in the documentation).

I tried the WordPress sandpit demo and that is the same (though most of the menus are missing (but fortunately Manage Groups was there) so it looks a bit odd and on the Drupal sandpit I couldn't see any menu, so couldn't try there). Nothing in the CiviCRM log at the time I tried.

I'm using WordPress 5.1 and CiviCRM 5.2 to 5.11 on various sites.

I'm in 5.7.5 on Drupal 7.64 with no issues, I can see a list of all my groups on this screen (Contacts Menu > Manage Groups).

There isn't actually a search button on this screen - I believe its ajax/javascript that powers the search. After you type something in a field and press enter or tab it refreshes the group listing.

Are there any javascript warnings/clashes in your console?


How to translate the "Confirm Contribution" button on Contribution pages I have a multilingual CiviCRM install with 3 languages.
"Multiple Languages Support" is activated, and the fields with translation icon next to them have all been translated.

But I also need to translate the button "Confirm Contribution" at the bottom of the Contribution pages.
How can I achieve this?

Since this needs to be translated to 3 languages, I can not use Word Replacements (word replacements is not multilingual, so it uses the same replacement in all languages)

Multilingual word replacement support is the topic of both CRM-14349 and CRM-19683.  CRM-19683 just had a patch merged, which should be available in the January 2017 release of CiviCRM.  You can patch it now if you're patch-savvy.  Please try it and see if it solves your problem - or wait until January 2017, upgrade to CiviCRM 4.7.15+ and see if it solves your problem.


On multi-site CiviCRM, are mailings supposed to be separated per-domain? According to the CiviCRM wiki here, under "Functional Separation in Multisite", mailings are listed as separated by domain.  However, when my users access the "Scheduled and Sent Mailings", they see mailings from all domains.  I know that civicrm_mailing has a field domain_id.  Is there something I need to do to enforce this separation?  Or am I just misreading the wiki?

This is a bug. Please log an issue on https://issues.civicrm.org.


Are the WordPress install docs wrong? I'm following the docs at https://docs.civicrm.org/sysadmin/en/latest/install/wordpress/

I downloaded 5.17 in a zip file from https://github.com/civicrm/civicrm-core/releases, unzipped it and renamed it civicrm (I need 5.17 and not 5.18 for various reasons).

The docs say:

  You should now have a /var/www/wordpress/wp-content/plugins/civicrm
  directory containing civicrm.php, README.txt and another civicrm
  directory (which in turn contains bin, CRM, sql, templates, etc.).

The unzipped civicrm directory does not contain civicrm.php at the top level; that file is in a folder called install. There is no directory inside civicrm called civicrm. As a result, the CiviCRM plugin does not show up in WordPress admin to be activated, even with correct _www and 755 permissions.

Do I create a directory inside civicrm? How do I get the plugin to show up in WP admin?

And, using the plugin installer in WP Admin to upload the zip file civicrm-core-5.17.zip directly results in the error The package could not be installed. No valid plugins were found.

Is there somewhere in the docs where it says to go to https://github.com/civicrm/civicrm-core/releases because that isn't the right place to download and all you get from there is core, not the wordpress parts, so if it says that it should get changed.

You need to download from https://civicrm.org/download and if you need an older release you can go to https://sourceforge.net/projects/civicrm/files/civicrm-stable/


How to export member type after an advanced search I am doing an advanced search in our database.
Members Current - Primary
and a proximity search for these members to be within 100kms of a postal code.
my problem:
when I go to export my results I would like it to show the MEMBER type as well as some basic contact details.
I do not know how to add this field and it isn't in any of the fields available for selection "Member Type"

Welcome to CiviCRM Stack Exchange Michael ^^
In the upper left corner of the Advanced search you will find a dropdown field called "Display Results As". If you select memberships the search will yield a list of memberships instead of contacts.
You should then be able to select "Export Members" from the action menu and include all membership details including the type.


Fatal Error Activating CiviCRM We had this issue activating CiviCRM

Warning: require_once(CRM/Core/ClassLoader.php): failed to open stream: No such file or directory in /home/capitaleventscom/public_html/wp-content/uploads/civicrm/civicrm.settings.php on line 462

Fatal error: require_once(): Failed opening required 'CRM/Core/ClassLoader.php' (include_path='.:/home/capitalevents/public_html/wp-content/plugins/civicrm/civicrm/:/home/capitalevents/public_html/wp-content/plugins/civicrm/civicrm//packages:.:/usr/local/php56/pear') in /home/capitaleventscom/public_html/wp-content/uploads/civicrm/civicrm.settings.php on line 462

then followed by this when using a fresh download:

Could not extract file from archive. civicrm/civicrm/packages/kcfinder/themes/dark/img/files/big/..png

Any ideas?

A warning like Cannot redeclare class CRM_Core_ClassLoader can indicate that all is not good in the civicrm.settings.php file, such as incorrect paths. not quite the same warning you have but may be a useful pointer


Message templates "access denied" I was trying to change the message template for the membership invoice, so I went to Administer - Communication - Message templates, but got the message "Access denied - you are not authorised to access this page". Anyone who knows what I can do and why access is denied?

Thank you.

your username has not got permission to Edit message template

so please try to view - Drupal Access Control

Administer -> Users and permissions -> Permissions(access control)

where you will see the following role and try to enable for your user group

  CiviCRM: edit message templates

If you don't have permission then please ask your admin or login to admin user and enable for specific user group

refer to link https://book.civicrm.org/user/current/initial-set-up/permissions-and-access-control/

I guess this helps !!!


Google Map not displaying on new events I have just upgraded our CiviCRM install to 4.7.13. When creating a new event and selecting all relevant options, the Google Map is not displayed. This IS displayed when viewing other active and older events.

We have been using a custom .tpl file, but even after disabling the tpl and clearing the cache(s) we are still facing the same issue.

Any ideas what might be going on here?

For testing we are using the same stored address. The existing, pre-upgrade event has the following values:

{$event.is_map} = 1
{$config->mapProvider} = Google
{$location.address.1.geo_code_1} = 56.0797664
{$location.address.1.city} = Dunfermline
{$location.address.1.state_province} = NULL

The map is displayed.

A new event, post-upgrade, with exactly the same settings has the following:

{$event.is_map} = 1
{$config->mapProvider} = Google
{$location.address.1.geo_code_1} = NULL
{$location.address.1.city} = Dunfermline
{$location.address.1.state_province} = NULL

The map is missing.

When we open the location information on the old event and save, the map fails to work ?!

I have also seen this problem, and fixed it. It's nothing to do with CiviCRM at all - it's a recent change made by Google regarding their API and your authorisation to use it.  Existing users seem to be OK, but new users (ie. one of my clients) or maybe even new maps seem to be affected.  You should review your  authorisation to use the Google API for your domain.  It's a slightly confusing situation because it appears that you don't need to enter your API key on Civi anymore, but you do need to be authorised by Google.


Why are my CiviCRM queries rewritten to short links that do not work? I'm running a Wordpress 5.5.1 site with a custom theme that was working fine until a few months ago. With no changes to the site other than plug-in and Wordpress updates, the CiviCRM-generated pages no longer work in Live or test modes, and my site links are briefly displayed before being rewritten to short links that result in a blank template. CiviCRM is version 5.14.0.
Here's an example from the live site:https://cantusnovus.org/support-us/
On this page is an Orange button that links to: https://cantusnovus.org/civicrm/contribute/transact/?reset=1&id=4
When that is clicked, the link is rewritten as: https://cantusnovus.org/civicrm/?reset=1&id=4
To my knowledge, nothing has changed in the hosting environment or Wordpress templates or CiviCRM configuration. Here's what I've tried:

I removed a redirection plugin I was using (no effect)
I disabled/removed all plugins not directly needed by CiviCRM just to look for interference (no effect)
I switched themes to test if something in my custom theme was interfering with the display (no effect)
I checked (and simplified) .htaccess file to just standard Wordpress setup (no effect)

While CiviCRM works from the backend and I can access/edit forms, I cannot Preview them. I also can't see (preview) previous mailings, etc. I simply can't display anything in live/preview mode.
Any ideas would be much appreciated!

You'll need to upgrade CiviCRM. WP 5.5 made changes to how URL paths are handled which required changes in CiviCRM. I believe those changes were introduced in 5.26. So you will need to upgrade to at least that version to be compatible with WordPress 5.5+.
There was a blog post a while back with more details:
https://civicrm.org/blog/kcristiano/civicrm-526-and-wordpress-important-notice


How can I get the WYSIWYG editor to appear when using CiviCRM with Wordpress on Cloudron? I have CiviCRM 5.18 running with Wordpress on a server where the Wordpress instance is managed by Cloudron (https://cloudron.io). Several other web applications being used as well on the same server, and handling all the updates is greatly simplified by using Cloudron. The CiviCRM settings needed to be tweaked slightly to get it to work: essentially from what I can see the Wordpress code sits in a directory /app/code (which is managed by Cloudron) apart from the wp-content directory which sits in /app/data/ with a symlink.

so, in my civicrm.settings.php file I have:

$civicrm_root = /app/data/wp-content/plugins/civicrm/civicrm/

CiviCRM  reports:

[cms.root] as /app/code

[civicrm.root] as /app/data/wp-content/plugins/civicrm/civicrm

[civicrm.files] as /app/data/wp-content/uploads/civicrm

So far so good, and CiviCRM appears to be working flawlessly, with one exception: the WYSIWYG editor isn't loading.

For example, on the 'Memberships' tab of a contribution page, where I would expect to see rich text editor fields for the message text for new memberships and renewals, I'm just seeing standard text fields.

My browser console reports a 404 error on these pages, saying that it failed to load the resource at https://mydomain.org/app/data/wp-content/plugins/civicrm/civicrm/js/wysiwyg/crm.ckeditor.js?r=UgnWN

The URL it should be using is https://mydomain.org/wp-content/plugins/civicrm/civicrm/js/wysiwyg/crm.ckeditor.js?r=UgnWN so for some reason it is incorrectly constructing the URL.

I'm thinking that I could/should be able to override this URL in civicrm.settings.php and so avoid the issue, but I'not sure what variable I need to be setting there. Can anyone advise?

This is because your cms.root doesn't match properly with civicrm.root variable and you might be using variables in Resource url for 'CiviCRM Resource URL'.

For such cases you add below two line at the end of the file you will need to change

$civicrm_root = '/app/data/wp-content/plugins/civicrm/civicrm/'; to $civicrm_root = '/app/code/wp-content/plugins/civicrm/civicrm/';

$civicrm_setting['URL Preferences']['userFrameworkResourceURL'] = CIVICRM_UF_BASEURL . 'wp-content/plugins/civicrm/civicrm';civicrm/';
$civicrm_paths['civicrm.root']['url'] = CIVICRM_UF_BASEURL . 'wp-content/plugins/civicrm/civicrm';civicrm/';

Thanks

Pradeep


Mosaico template editing not loading consistently I am using CiviCRM 4.6.28 and Joomla 3.7.2 with Mosaico 1.0 enabled. I have created a new template and edited it but am finding that the editing page only loads about 50% or less of the time. When it does not load I get a red screen (the Mosaico background colour) and the template blocks do not load. There seems to be not predictable reason for this. The site is hosted by Siteground and they have checked the server for problems. has anyone else had loading problems?

After using Mosaico from some time, I've noted that you need to make sure you've correctly installed this extension as per the steps mentioned in the doc, i.e,

Doc mentions you need to install shoreditch theme, flexmailer and then Mosaico in order.
Make sure you've downloaded all the dependencies it needs to be included by executing ./bin/setup.sh -D from your terminal.

After these steps, it worked fine for me on around 4-5 sites.


passing JSON objects to drush cvapi I'm building API extension that takes complex objects as parameters.

The API exporer does a brilliant job at parsing the objects, but drush less so.

Commands I am trying are:

`drush @contact cvapi Contact.getclif sequential=1 return="id" clif={"type":"raw","params":{"5":1,"6":1}} length=5`

`drush @contact cvapi Contact.getclif sequential=1 return="id" clif='{"type":"raw","params":{"5":1,"6":1}}' length=5`

Both fail to json_decode the object and my API method receives a JSON string.

I could decode the string in my API - but that feels a little hacky...

Am I doing something wrong?

Here is how to pass an array to drush

echo '{"retrieval_parameters":{"jobId":97727336,"filePath":"Raw Recipient Data Export May 15 2017 22-07-43 PM 674.zip"}}'
| drush cvapi Omnirecipients.get --in=json


Updating an activity using the API I'm looking at the API and the options to update an Activity are struck through.

Is there a way of updating an activity with the API? COUld someone point me in the right direction? Thanks

You can use the Activity Create API with an id in the parameter list. That should function as an update.


Permission to see Campaigns in Activity search criteria When I (admin) go to Search > Find Activities, the criteria includes a selector for Campaigns. Authenticated users, however, do not get that option. See the snippet below from such a user, in my criteria the Campaigns selector is right below the Location box. Likely means they're missing a permission (Drupal 7.69, Civi 5.21.0), but don't know which. There are a number of permissions associated w. CiviCampaign and I'd rather not open all of them because our use case is very narrow. Any guidance on which permission to grant, if that's what the issue is, appreciated.

This is related to this bug 'CiviCampaign: access CiviCampaign' permission missing. Unfortunately at this time, in order to get Campaigns search showing in Search -> Find Activities, you have to grant permission to administer CiviCampaign.

Depending on your user base (trust and size) and how bad you need this working now, you could give administer CiviCampaign and then change the menu permission for the Campaigns top nav menu item to administer CiviCRM. They would only be able to get to those menu links if they knew the URL directly (unlikely).


Prefered Communication Preferences boxes not set on profile page using Joomla I'm using CiviCRM 4.7.29 with Joomla 3.8.3.

We've got a Joomla page connected to a CiviCRM profile definition which allows normal Joomla users to edit there CiviCRM address details and communication preferences. The problem is that the communication preferences checkboxes are never preset to the value stored in the CiviCRM database, the boxes are always unchecked regardless of the underlying stored value. So every time a user edits there address, the stored communication preferences get wiped out, unless they notice and re-tick them manually before clicking save (which rarely happens).

Has anybody else encountered this problem? How would I go about fixing it?

This is a core bug logged at CRM-21644. You can apply the patch manually to make it work or will need to wait for 4.7.31 to release.


Dedupe rule for organization always firing on membership signup form Our unsupervised rule for organizations is Organization name with a weight of 10 and the Postal Code length of 3 with a weight of 10 and a weight threshold of 20. We wanted to test behavior on a Membership signup form with the 'On behalf of my organization' option. For the organization data section, we entered different organizations with the same organization name but different postal codes first 3 characters and different emails. Everytime the organization data was updated. We thought it was supposed to recognize they were separate organizations create new records but it didn't.

We looked around and listened many times to the Civiteacher tutorials on dupes but it looks we are missing something.

In our project we have teachers buying reading clubs memberships for their classes on behalf of a school. It does occur that accross Canada we have different schools with the same name, but their postal code will differ. In that case we want to have different organization records created when people use the membership sign up form.

Are there references around that could explain what we are not understanding well or doing wrong?

Using CiviCRM 4.7.1 with Drupal 7.

@benoit.dubuc as discussed on phone you've identified a bug. I've replicated this and created an issue for it https://issues.civicrm.org/jira/browse/CRM-18163. Thanks for offering to fund fixing it and creating an automated test to ensure it doesn't reappear.


Importing Participants I am trying to import multiple participants from a CSV file into Civi as event participants. I am running into an issue when I go to match the required fields. I keep receiving an error because the Participant Status ID doesn't match.

This is a historic event I am trying to enter from another database, so I don't believe we have a match for this field. Is there a way to get around this?

Most of the constituents are already in Civi and have an external identifier from the past database. I now just to update their record to note that they attended the event.

"Participant Status ID doesn't match" means the value(s) you are trying to insert into this field do not match the option values defined in CiviCRM.

Both Particpant status and Participant status Id are in the list of possible fields to import. Although the UI indicates that you need to import Participant status Id  I think you can import participant status instead provide the text you import matches exactly with the defined options.

You could be tring to import values such as 'Registered' or 'Attended' into Participant status Id when it is expecting numerical values  or you could be trying to import a text value into Participant status that is not one of the defined options. (perhaps 'Att' or 'attended' instead of 'Attended')


Change billing date of recurring contribution (PayPal payment processor) Is it possible to change the billing date for someone's recurring contribution (e.g. monthly donation)?

We're using CiviCRM 4.7 and Joomla 3.7 (if that matters) and the PayPal payment processor. Thought we could ask PayPal to change that but the answer was no.

Thanks much for any pointers.

Short answer: no, so long as you're using PayPal.

Recurring contributions come in two flavours, depending on your payment processor: token-based with the amount and schedule controlled by CiviCRM, or payment processor controlled. Some payment processors will allow either method.

PayPal is only controlled by the processor, so contrary to what you got as an answer, the only way to change the billing date is via PayPal. But if they tell you you can't, then you can't. In general, PayPal is very donor/customer oriented and it tends to put all the power into the hands of the donor/customer, not you the merchant/organization. So it's not usually the best option for large organizations that are used to managing the recurring contributions themselves. You can check out other options here:

https://wiki.civicrm.org/confluence/display/CRMDOC/Payment+Processors

Note that even if you're using a payment-processsor-controlled recurring schedule, there may be an API that lets you change the schedule indirectly via CiviCRM.


How do I call an SMF function from CiviCRM? I want to write a postProcess hook to post submitted form info to a Simple Machines Forum.  How do I call SMF functions from Civi?

In a standalone test script, I could call the SMF createPost() function by first requiring some SMF files:

require_once('/path/to/forum/index.php');
require_once('/path/to/forum/Sources/Subs-Post.php');
createPost($msgOptions, $topicOptions, $posterOptions);

But I ran into php variable scope problems when trying to include index.php from my hooks plugin in the middle of Civi's chain of processing code.  index.php include()'s Settings.php which defines important variables, but they don't wind up in the global scope, so when index.php then calls various other functions they don't have access to the variables.

I hacked around this based on something I found somewhere.  I used this code within the postProcess hook to manually put all the variables defined in Settings.php into the global scope:

$__defined_vars = array_keys(get_defined_vars());
require_once('/path/to/forum/Settings.php');
$__newly_defined_vars = array_diff(
  array_keys(get_defined_vars()),
  $__defined_vars,
  array('__defined_vars')
);
foreach ($__newly_defined_vars as $var)
  $GLOBALS[$var] = &$$var;
$GLOBALS['smcFunc'] = array(); //also need to define this in GLOBALS
require_once('/path/to/forum/index.php'); //this and next line needed to call SMF createPost function
require_once('/path/to/forum/Sources/Subs-Post.php');
createPost($msgOptions, $topicOptions, $posterOptions);

I welcome other input on better ways to do this...but it works!


Workflow approach for anonymous users, or limited roles to create events Problem: Currently, we need a trained content editor to create events. The event content, often comes via email from others inside (or outside) the organization.  This typically involves copy/paste of event info.  I could setup a form but this would still require manual effort.

Objective: I'm looking for a clever workflow adjustment to allow people (authenticated or even anonymous) to stage the event content for approval so that many people can initiate the event workflow and an event coordinator can finalize/approve.  Civi already has the public/active flags for events. I know many folks are developers and jump to a dev solution, but wondered if some creative folks had an approach to this for a system builder without much new coding - Anyone up to the challenge?

Scope: Clearly this can be done via development of an extension/api or custom tpl, but wondered if someone has a lower cost/maintenance approach to preparing/staging content in CiviCRM (like drafts/workflow in a CMS.) I'm using Drupal.

Approaches: Since I'm using Drupal, one path I considered is civicrm_entity which now
supports domain.com/civicrm-event/add or domain.com/civicrm-event/edit.  This exposes the laundry list of event fields so I would need display suite or some other module to hide most of the irrelevant fields and set the event to inactive.  The problem here is that price / location / etc. are actually different entities so I believe i'd need code to join them.  The nice thing here is that the user can see the template content and then just edit it or leave it.

Another thought was creating to webform or entityform to ask the user to fill-in things like event title, description, etc. and then using drupal rules, create an event based on a template and copy those fields to a new, unpublished event.

I admire the principle of not being too ambitious in building customizations, but I worry that you'd be going through far more trouble than you'd need to.  You might consider just building a custom Drupal module that did exactly what you need.

Set up a Drupal form with all the fields that you need.  Then in the submit function, use the CiviCRM API to create the event, location, and whatever else--including leaving the event inactive.  It won't be very reuseable, but it will be more reliable and understandable than a Rube Goldberg Does Drupal sort of contraption.


CiviRules - triggers, but no mails sent Similar to CiviRules triggers, but fails to send email,
but I've not seen a resolution there. For the past ~year, have had CiviRules sending my DRIP email campaign, along with a couple of tag setting functions.
(techie enough to be dangerous... I can get in to things, but...)
Recently, (not sure exactly when) I noticed that it wasn't sending the emails, though, it was processing other things in the actions. Emails do send no problem - manually.
I didn't know about CiviRules logging, so just loaded it, but don't know where the logs might show up. I added another user, it triggered, but no emails, and no errors - at least not seen in Administer> Administration Console> View Log.
From above post, I saw about civicrm_queue_item table. There are a number of items there from the past ~2 months, but I don't know how to interpret.
Cron is running, including process civirules and process delayed civirule actions (both always, with no errors).
I just saw another question with problem with delays, so I changed the delay on my first email from 1minute - to no delay. Created user, with the trigger tag. It sent the email! Now, will it send the rest? (2, 4, 6... day delays on them.
Running:
WordPress 5.5
CiviCRM 5.27.3
CiviRules 2.16
Email API 1.19
Thanks for any ideas/suggestions/hints...
..clark

I don't know the root cause of the failure, but, installing the 5.28.2 seems to have fixed the issue.


Running out of memory on contact creation On a site with ~68k contacts, we find that occasionally we get a memory error on a simple contact creation (although we haven't noticed problems elsewhere). We have a fairly large PHP memory allotment to start with, and although I realize I could increase that further I am a little hesitant to go too much further there. I'm assuming the process that runs the dedupe check could be responsible for this.

Can anyone confirm that the duplicate check is most likely the culprit here? If so, is there a setting to disable that?

What is the default dedupe rules you are using? is this the standard ones or did you customise?

In general, the performance problems I experienced on civi the same size as yours are

1) badly configured server (eg mysql with wrong variables...). I would recommend you to run mysqltuner, you need to read the doc before blindly following their advices, but it's mostly good
2) modified dedupe rules (this one is a performance killer)
3) smartgroups (easy to kill your server with that one too)

It's probably worthwhile to check the load of your server and mysql configuration in any case, but dedupe rules are usually close next indeed


How can I locate my extension directory? This question surprised me a bit - but I have no clue about where to locate my extension directory!!

Is there a simple way to reliably locate it (either programatically or via the UI)?

You can find your extension directory by going to Administer menu » System Settings » Directories and checking the value for the "Extensions" directory.  If there's a token like [civicrm.root], you can determine its value with this technique.


Scanning business cards to CiviCRM Anyone working on creating an app to scan a business card and have that information transfer to CiviCRM? Or ideas for how to create this? Thank you.

I don't recall seeing any discussion on this since this forum post and i don't suspect anything has changed. Scanning cards would be a 3rd party process and that would then presumably provide a csv to import.


Scheduled Reminders not being send I want civi to send an email when our users renew their membership. I have setup the reminder as follows. but I have tested this couple of times by renewing my own membership offline but nothing gets sent.

What is it that im doing wrong

I have set the time to 0 hours after activity date assuming that it will send the email as soon as the renewal.

Any help would be highly appreciated

Check under Administer>System Settings>Scheduled Jobs and make sure the job is enabled. It should also show when it was last run.

If it is enabled you should make sure you have your cron job setup correctly. More info on that is here: https://docs.civicrm.org/user/en/latest/initial-set-up/scheduled-jobs/#initiation

Hope this helps!


Missing contact records I am missing two contact records. I have done an advanced search in trash and they are not there. I have their information saved elsewhere (a spreadsheet, an email update from a webform) so I can recreate their records.

What concerns me, though, is that they were lost. The only reason they came to my attention is they belong to a particular student group that I needed to contact. This is a pretty small subset of our overall membership, so it was easy to identify that there were missing records. My concern now is that there might be more missing contact records, but I don't know how to look for them or even how they would go missing. Any ideas?

As far as I know if you did not have the extended logging switched on, if they were permanently deleted there is no direct way to check.

You might want to compare a backup with the current data, if that is possible?

To reassure you: we work with a fair number of organizations that use CiviCRM, some small and some quite large. None of them have ever experienced contacts simply 'disappearing' from the database.


Where is CiviPetition currently documented please? My online searches for CiviPetition guidance have so far found only nine year old articles which lead to dead ends?  Is petition functionality still supported in the latest version of CiviCRM?  Can someone here please point me to online guidance for how to use it?  Thanks.  -- Hugh

There are some docs at docs.civicrm.org/user/en/latest/petition/what-is-civipetition and more pages if you look in the left sidebar there.


Exports in 4.7.6 are not working correctly If I do any type of search and then try to export my search results, the export CSV only contains one record.  Even if the search finds hundreds of records, and I tell the export to export them all, I only get one record in the CSV.

It was working fine for us on 4.6, but as soon as we upgraded to 4.7 this broke.

Are other people having this issue?  Anyone have any thoughts on how to fix this?

Any help at all would be appreciated.  Thanks.

This is a bug and will be updated in the next release. In the meantime, you can use this PR to fix.

Further info on Jira.


How do I control the imported user role when using CiviCRM WordPress Member Sync? I'm working on an inherited CiviCRM/WordPress site using the CiviCRM WordPress Member Sync https://wordpress.org/plugins/civicrm-wp-member-sync/ and the Members plugin https://wordpress.org/plugins/members/ and I can't find an answer to the question below in any docs.

In the past, someone used the Manual Synchronize feature of Member Sync to manually sync all CiviCRM members to WordPress, but all users were Administrators. After a reinstall of CiviCRM, an import of a CiviCRM database, and deleting all the old WordPress Administrators, I now need to manually sync the users again. But of course I don't want them synced as administrators; I need them synced as lower level roles in order to restrict access to page content and of course not give admin privledges.

How do I control the user role that the CiviCRM users are synced as WordPress users? I'm using the "Role" Synchronization Method.

Is this controlled by Association Rules? I need to add a rule for each CiviCRM membership level?

Will the "New User Default Role" in WordPress>General Settings override synced users Association Rules?

Do I need to use https://wordpress.org/plugins/groups/ ?

How do I control the user role that the CiviCRM users are synced as WordPress users? I'm using the "Role" Synchronization Method. Is this controlled by Association Rules?

Yes, exactly. Association Rules are the "glue" between CiviCRM Memberships and WordPress Roles (or Capabilities).

  I need to add a rule for each CiviCRM membership level?

Yes. FYI, if you have a large number of Membership Types, have a look at the newest feature in CiviCRM WordPress Member Sync, which allows you to do "bulk creation" of Association Rules.

  Will the "New User Default Role" in WordPress>General Settings override synced users Association Rules?

No. It comes into play when syncing to Capabilities, since WordPress users must have a role of some kind. When syncing to Roles, the selected role is granted instead.

  Do I need to use https://wordpress.org/plugins/groups/ ?

No, but CiviCRM WordPress Member Sync has deeper integration with the Groups plugin than with the Members plugin.

The integration with Members consists solely of granting WordPress users the restrict_content capability, which is what Members uses to determine access to, well, restricted content. The capability is removed when the Membership expires.

The integration with Groups is more sophisticated, in that Group membership can be independent of the user's role or capability. Capabilities can be assigned to groups in much the same way that roles are collections of capabilities. Membership Types can be added to (or removed from) groups depending on the status of the membership.

So... if you have removed the WordPress admin users and want to recreate them with a different role, make sure you have edited your Association Rules so that the Contacts with the appropriate Membership Type sync to your desired current and expiry roles.

FWIW, by default CiviCRM WordPress Member Sync will not sync users with the admin role in WordPress. This can be modified with a filter, but since you're avoiding granting WordPress users admin rights, you shouldn't be caught by this.


Member Identification Card Our members often receive discounts in our community as a benefit to their membership. Is there a way to pull their membership data into an online membership card or something? I am just thinking like an image that pulls member's name, membership level, current standing, and member since date. Then member could either save it to their phone or print it out.

Apologies. This is a Drupal answer and I know you are on Wordpress, but this ticket might attract drupal users too so thought I would outline the approach.
There is a View you can download here which provides the logged in user a block with their Membership status etc, and this could be modified to include other fields including image. Using the Print module, or Views PDF this could then have a download option for the user to 'take it away'.


CiviContribute: change "from" email address for thank-you letters I'm using CiviCRM 4.7.27 and am trying to change the "from" address used for thank-you emails generated from CiviContribute. The workflow we are using apparently has no option to choose the email sender and the emails are sent with a "from" address of the current CiviCRM user! NOTE: This workflow is not from the "Mailings" menu. The procedure I am using is:

Search for contributions from the menu: Contributions -> Find Contributions
Select search options (typically: select "No" for the "Thank-you sent?" option to find all contributions that have not been acknowledged with a thank-you letter). Click "Search"
Select all found contributions by clicking the check-box next to each one
Select "Thank-you letters, print or email" from the "Actions" menu. This leads to the "Print/Merge Document" screen
Select "Send emails where possible. Generate PDFs for contacts who cannot receive email" from the "Print and Email Options" selector. Also select the "thank you letter" template and click "Make thank you letters". NOTE: There is NO option to select the email sender from this page!

Result: email is sent, but the "from" address is the email address of the current CiviCRM user!

Is this a bug or am I missing something? I see that from the "Mailings" menu, I can create a mailing and select the "from" email address. However, there doesn't seem to be a Mailings workflow which allows me to send a tailored thank-you to donors who have not been acknowledged.

A quick look at the 'Thank-you Letter for Contributions (PDF)' page suggests that you are not missing something, and that this is not possible at the moment.

I wouldn't call it a bug, I would call it a missing feature, but that is somewhat academic / pendantic :)

If you did want to be able to select a person, as you can when sending other mailings, you would need to add this feature. Either by asking someone to do it for you, or coding it yourself (not sure if you are a coder, Noky).

If you want to go down the first route, you can find a list of people that could help you do this here: https://civicrm.org/partners-contributors


What would cause contributions and contacts to go missing? Recently we noticed a several contacts and their contributions were missing from our database. These contacts and contributions were not manually deleted. The contacts are not in trash (I believe civi does not allow contacts with contributions to be permanently deleted. The contributions would need to be deleted first).

I suspect that the data was overwritten. Can anyone advise:

(1) What change to the server or database could allow data to be overwritten? I am the site admin, not the sys admin (we are on shared server). Would an upgrade be a likely cause? Or would I need to ask the sysadmin about an actual move from one server to another?

(2) Is there a best practices for recovering data? I think the best approach would be to pinpoint the date the data was lost, export contacts and contributions that are in the backup but not the current version, and import to current version. But I am open to suggestions.

(3) Does anyone have suggestions on how to catch this kind of issue?

1/ unlikely to be upgrade related

2/ assuming you have access to 'log' tables you can write an sql query to identify records where the first/last names have changed from the previous log record

3/ if you mean how to find and prevent in future, use the logs to try and identify who/when and figure out what the person was trying to do and train them otherwise (assuming user error at backend) OR if problem occured by front-end process then perhaps check your Matching rules


When the smart group cache is regenerated, are disabled smart groups regenerated? I work with a CiviCRM install with about 400 smart groups - but only about 30 of them are enabled.  I'm seeing slow performance - I'm wondering if anyone knows definitively whether my disabled smart groups are affecting performance?

Pretty sure that we only consider active groups to regenerate the cache:

CRM/Contact/BAO/GroupContactCache.php

also most smart groups are regenerated on demand. The scheduled job invokes the loadAll function with groupsIDs as null, which in turn restricts the query to is_active groups


How do I prevent a user from adding contacts to ACL groups? I have successfully set up CiviCRM ACLs so that only contacts within the group "NYC Team" have access to certain events.

What I am trying to figure out is how to prevent low-level users from adding themselves (or other contacts) to the CiviCRM group "NYC Team".  (If a low level user can add themselves (or others) to the group "NYC Team" (and other Access Control type groups), it renders the ACLs to be ineffective.

With situations like that I simply just disable the group. The ACL still works, but users don't have access to add anyone to the group.

If you need to add someone else to the group, just enable, add and disable again.

Heather.


Mail not send if preferred_mail_format is NULL I had some contacts who complain of not receiving mailings.
In communication preferences, email formats were 'both' for all contacts.
Quite by chance, I went to look in the log file, where there were messages:

  CiviMail will not send an empty email body, Skipping: xxxxx

After having researched this message in the php code, I analyzed CRM/Mailing/BAO/Mailing.php and saw that the body of the message is deleted if $contact['preferred_mail_format'] is neither Both, Text or HTML.

I went in the database, and for all contacts who did not receive the mailings, I've seen that the preferred_mail_format column contained NULL.

I have corrected by hand and all mails are gone.

I wonder if we should not:
 - Or, if preferred_mail_format is neither Both, Text or HTML, put a mail contains in a default format (Text, Html,?)
 - Or, when calculating the number of recipients (in the mailing of the editorial page), display a warning indicating the potential problems.

Regards.

We fixed this quite old behaviour by hacking CRM/Mailing/BAO/Mailing.php around line 1295 by overriding:

if ($text && ($test || $contact['preferred_mail_format'] == 'Text' ||
    $contact['preferred_mail_format'] == 'Both' ||
    ($contact['preferred_mail_format'] == 'HTML' && !array_key_exists('html', $pEmails))
  )
) {
  $textBody = implode('', $text);
  if ($useSmarty) {
    $textBody = $smarty->fetch("string:$textBody");
  }
  $mailParams['text'] = $textBody;
}

if ($html && ($test || ($contact['preferred_mail_format'] == 'HTML' ||
      $contact['preferred_mail_format'] == 'Both'
    ))
) {
  $htmlBody = implode('', $html);
  if ($useSmarty) {
    $htmlBody = $smarty->fetch("string:$htmlBody");
  }
  $mailParams['html'] = $htmlBody;
}

with:

$pmf = isset($contact['preferred_mail_format']) ?   $contact['preferred_mail_format'] : 'Both';
if ($pmf != "Both" && $pmf != "Text" && $pmf != "HTML") {
    $pmf = "Both";
}
if ($text && ($test || $pmf == 'Text' || $pmf == 'Both' ||
        ($pmf == 'HTML' && !array_key_exists('html', $pEmails))
)
) {
    $textBody = implode('', $text);
    if ($useSmarty) {
        $textBody = $smarty->fetch("string:$textBody");
    }
    $mailParams['text'] = $textBody;
}

if ($html && ($test || ($pmf == 'HTML' || $pmf == 'Both' ))) {
    $htmlBody = implode('', $html);
    if ($useSmarty) {
        $htmlBody = $smarty->fetch("string:$htmlBody");
    }
    $mailParams['html'] = $htmlBody;
}


Is postURL no longer supported? We have recently upgraded from 4.4 to 4.7.3 and are now experiencing an issue with one of our profiles. It seems that the civi will no longer use the postURL we are passing to it in an html form. I don't see any release notes saying this was removed and I am kind of at a loss of what could be causing this.

Any suggestions?

Thanks

David

I assume you're talking about a profile where you've copied the HTML Snippet and pasted it onto another site.  If so, you should be aware that the necessary code does change periodically between major versions.

Thankfully, the answer is pretty straightforward: just generate the HTML Snippet all over again.  Go to Administer > Customize Data and Screens > Profiles and select More > HTML Form Snippet next to your profile.  Copy the HTML and paste it into your other page.


Has anyone successfully setup Mandrill with CiviMail for bulk? In the past (v. 4.5.x) I tested CiviMail for bulk mailings and had lots of trouble process bounces via the return channel.  I know there is a wonderful plugin for transactional emails, but for bulk mailing, Mandrill is very reasonable and provides some great complimentary reports.  I expect it should work with Mandrill's SMTP functionality directly.

So before I dive in, I'm simply asking if anyone has gotten this to work and if so, could you please share your config.

I've been doing some testing with the last release of the Mandrill Emails Extension and it's looking pretty quick and simple with the new version to do both transactional and bulk mailing (CiviMail) through Mandrill. Basically you install it, plug in your Login/API credentials (Administer > System Settings > Mandrill Smtp Settings), and indicate one or both of the types of email you'd like to use Mandrill for:
.

To get the report backs on bounces and the like, you use the "Mandrill Post to URL" on that screen to set up a Webhook in your Mandrill account and get notifications for all events except a message being sent:

In the little testing I've been able to do, it seems pretty much plug-and-play in terms of the bounce reporting getting back into CiviCRM.

The updated README is quite thorough, too.


How can i combine new person and a new contribution on the same page? I want to have one page with the possibility to register a new contact that have made a contribution instead of needing to do this on 2 separate pages.

Generally you can go to the Contribution page, either incognito, or if logged in by using the "or want to do this for a different person" option at the top of the page, which takes you to the same url with cid=0 inserted (or just add this to your menu for quick access), then fill in the form same as 'they' might have.


Authorize.net TLS Disablement Notice civicrm what are the changes I need to make to make sure authorize.net works perfectly after authorize.net has sent this message as given below

  Your Payment Gateway ID:
  Dear Authorize.Net Merchant:
  As you may be aware, new PCI DSS requirements state that all payment systems must disable early TLS by 2018.
  TLS FAQs
  Merchant Interface
  Transport Layer Security (TLS), is a technology used to encrypt sensitive information sent via the Internet. TLS is the replacement for Secure Sockets Layer (SSL).
  In preparation for this requirement, Authorize.Net plans to disable TLS 1.0 and TLS 1.1 on the following dates:

  Sandbox: COMPLETE Production: September 18, 2017

  We have disabled the sandbox in advance of production to allow you and
  your developer time to test your website or payment solution and
  ensure you are no longer using TLS 1.0 or 1.1 prior to September 18th.

  Please contact your web developer or payment solution provider, as
  well as your web hosting company, to confirm that they can support TLS
  1.2 for your API connections.

See this blog post which has specific instructions.


Error message when testing memberships: "Expected one PaymentProcessor but found 0" we are now trying to test the membership signups which includes recurring payments. I've gone through all the steps on the contribution pages and have not seen any errors there (except that no thank you email was sent, but this may be a separate issue from this one)

However once I go to "Memberships" -> "Find Memberships", choosing "Yes" for "Membership is a test", and clicking on "Search" I get this error:

  Sorry but we are not able to provide this at the moment. Expected one
  PaymentProcessor but found 0

Output from /sites/default/files/civicrm/ConfigAndLog:

Mar 02 18:51:27  [info] $backTrace = #0 /home/peoplesfund/www/www/sites/all/modules/civicrm/CRM/Core/Error.php(451): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 /home/peoplesfund/www/www/sites/all/modules/civicrm/CRM/Core/Invoke.php(55): CRM_Core_Error::handleUnhandledException(Object(CiviCRM_API3_Exception))
#2 /home/peoplesfund/www/www/sites/all/modules/civicrm/drupal/civicrm.module(448): CRM_Core_Invoke::invoke((Array:3))
#3 [internal function](): civicrm_invoke("member", "search")
#4 /home/peoplesfund/www/www/includes/menu.inc(527): call_user_func_array("civicrm_invoke", (Array:2))
#5 /home/peoplesfund/www/www/index.php(21): menu_execute_active_handler()
#6 {main}

(Entire output is not shown because a huge code mass is printed. I can provide this if needed though in a file)

I've also tried enabling debugging but the same error screen is shown

There is no problem when searching if we have chosen "No" for "Membership is a test", this will (instead of the error message) produce a list of real members that we have

Does anyone know what we can do to solve this problem? Is it likely that this will cause problems for the live contribution pages in the future (even if that is not the case right now?)

Grateful for help and with kind regards,
Tord

I had the same error. It appeared that we had removed a payment processor that we had used before, but don’t use any more (never do that. Just disable the payment processor).
When searching for memberships, also attached payments are displayed. Some of these payments het the removed payment processor. The was causing the error.
We restored the payment processor. In the database we changed the ID’s of the live and the test payment processor to the original ID’s. That solved the issue.


Event signup - email address verification? Is there a way - with CiviCRM on WordPress - when an unauthenticated user registers for an event, it'll send an email with a link they need to click on to confirm their registratin?

You might want to consider using Caldera Form Wordpress plugin, then add the CIVICRM Caldera Form as well (https://github.com/mecachisenros/cf-civicrm).  This provides a more powerful way to register various forms with CIVICRM including events.  Though i have not done what you asked here on email verification as part of registration, i saw that Caldera has a free plugin with registration (Verify Email for Caldera Forms) which does what you mentioned.  I think it is worth a try.


confusing interface for staff registering contacts for events When staff (at a client org) go to register people for paid events there is a difference in the interface and the ability to actually take/process a payment depending on what path is taken to the registration form.

If they start from the event admin page and click "Event Links" -> "Register Participant" they get a form that only allows for entering the last 4 digits of the credit card number (which of course is not enough data to actually charge the person the fee)

If they start at a contact record, click the Events tab and then Submit Credit Card Event Registration, once they select the event and the price from the price set, they get a form that allows for entering all necessary payment information which does allow them to charge the user the fee.

Why is there a difference? Is this a bug, or intentional for some reason?

This is an inconsistency in the CiviCRM interface that others have noticed before as well.

This inconsistency does NOT exist for the "New Contribution" screen - because that screen has a "submit credit card contribution" link to bring you to the live entry screen.

For kicks, I added &mode=live to the "New Event Registration" URL - and it APPEARS to work.

I would recommend:

Append &mode=live to the "New Event Registration" URL and confirm that it works correctly.
If it does, it should be a simple matter to submit a patch to generate the "submit credit card registration" link to the appropriate template.


Contribution form errors after latest security release We have three different clients reporting erratic errors on public-facing and administrative credit card donation forms.

The error is that CiviCRM reports that a credit card + expiry is invalid, and the error shows up before talking to the payment processor, i.e. it's form error, not a payment processor error. We've confirmed that the cc credentials are in fact valid.

These started happening after the latest (Nov 20 2019) security update (some on the 5.13.7, some on 5.19.2, not all using the same payment processor).

See attached picture for a clue: note the title of the cc images.

So the error occurs when CiviCRM is doing it's implementation of the Luhn algorithm https://en.wikipedia.org/wiki/Luhn_algorithm

The picture suggests it's javascript related, but note that there are no console errors showing.

Fix: I cleared both the site cache and the browser cache and now it works.

The weird [object Object] title that you can see in the console seems to be a red herring.

In our case, the issue is likely due to css/js/img resources having long caches and not getting cleared by CiviCRM with the upgrade, so restarting Varnish in front of the site is likely the right answer.


Can you search for only manually added members of a smart group? Is there any way to search or sort the manually added members of a smart group (versus the smart members)? It seems like there should be, but I don't see any option anywhere. It isn't possible to sort by status when viewing a groups contacts either.

The only workaround I can see is to create a new smart group with the group's criteria, then use an include/exclude search to find the manually added members, but there must be a better way.

I have an experimental search extension that provides many missing features, and includes your needs, I believe.
You can try it if you're up to that https://lab.civicrm.org/artfulrobot/keenies but it should be considered alpha, beta at a push! Please see the README for the searches it can do.
It includes a search on the manual added/removed from a group (smart or not), so using this on a smart group basically ignores the criteria.
I built it because if you're using a smart group for a mailing group, it's helpful to be able to search for people who have unsubscribed, but there could be many uses.
It's in early stages, and may be abandoned if/when the core CiviCRM new search project comes to fruition and provides this functionality (but I built this now because that could be a while).
EDIT: for convenience from the README as of 9 July 2020:

Implemented searches

Has Activity: choose activity types; relationship (with/target, assignee,     created); date range; subject (exact or pattern);
location.

Contact details: contact type(s); created date range; source field.

Manually added/removed from group: select group(s) and a status:    Added/Removed. e.g. find exceptions for smart groups.

In group: select group(s). This is like a normal group search, so works    for smart and non-smart groups. You can put this criteria
in a 'not' wrapper    to find people not in a group.

Has clicked a link in a mailing: date range for the click; select    mailing(s) they must have clicked in.

Has opened a mailing: date range for the open; select    mailing(s) they must have clicked in.

Was sent a mailing: date range and mailing(s) selector.

Has tag(s): select one or more tags.


4.7.28 upgrade gives false warning that my resource URL is not correct when I upgraded a client's staging site to 4.7.28, which added in a check to verify the resource url setting, we started getting a warning that the site's resource url was incorrect.

However, the setting is correct.

after chasing my tail for a while, I finally realized that the check for resource url is not done by the browser in a way that would pass along other validation credentials.

This led to the resource url check, which tries to load the small arrow image used in the civiCRM admin menus, to fail in my case because all non live/production sites are behind htaccess passwords.

When the update was moved to a publicly accessible url, the resource url check worked as expected.


civiVolunteer database table creation? When are civiVolunteer database tables created? When I run a search on volunteer opportunities and when a donation is made to our organization, we get database errors saying that tables civicrm_value_civivolunteer_5 and civicrm_value_civivolunteer_7 are missing. An inspection of the database reveals that we have a table called civicrm_value_civivolunteer_3, but that's it.

I cannot disable civiVolunteer without an error, which is another clue that something is wrong with the civiVolunteer installation.  I recently took over this website, so I do not know any of the specifics of the installation. I just need to fix the problems.

So, does anyone know what I need to do to get the missing tables in place? Will reinstalling civiVolunteer be enough?

Those tables are for custom data. CiviVolunteer uses standard CiviCRM custom data tables (created in the normal way, just as you would create custom fields) so that error is rather unusual. Was the site migrated from one server to another?


There is some inconsistent/confusing workflow managing contacts from smart groups? CiviCRM allows add and remove contacts from smart groups. This is an useful functionality that allows us to cover some cases managing groups.

However this functionality often leads to confusion among users that found a group with a mixed contacts that have been added and removed manually and others that meet the search criteria of the smart group. It might be useful if the system somehow warned when you are adding or removing contacts on a smart group?

Despite this, since the time you can add or remove a contact to a group there should have the possibility to manage this membership from the contact summary group tab in the same way that can be made with regular groups. I seem to recall that this possibility had existed in the past, but maybe I'm wrong.

I'm right or I'm missing something?

Because of this non covered functionality I've gone crazy more than once looking why a contact appeared on a group if in their sumary contact group tab there is no information about if it has been added manually or by a smart search criteria.

https://issues.civicrm.org/jira/browse/CRM-19435 fixes the static assignments to smart groups.


How to add custom field using API? I want to add a custom field use for activities (meeting)?
I did that using administrator -> customize data and screen -> custom fields

How can I achieve it by API 3.

Following API call should do it.

$result = civicrm_api3('CustomField', 'create', [
  'custom_group_id' => "GROUP_NAME",
  'label' => "CUSTOM_FIELD_LABEL",
]);

Replace label and group name accordingly.


Links to a contribution page with checksum and contact ID generate a fatal error I want to send email to members with a link to the membership renewal page profiled with their data. I create a suitable link including the contact ID and checksum, of the form
https://example.com/civicrm?page=CiviCRM&q=civicrm/contribute/transact&reset=1&id=2&cid=xxx&cs=1ccf75cf22138bd255525af8c8c05dc4_1599646931_168
If I'm logged and the link is for me then it works. If I'm not logged a Fatal Error is generated, and the site (WP) presents the message "The site is experiencing technical difficulties".
Nothing appears in the CiviCRM log, but in the Apache log I see:

Sep 09 13:56:02 [Wed Sep 09 12:56:02.301893 2020] [php7:error] [pid
203] [client 172.18.0.1:41254] PHP Fatal error: Uncaught
CRM_Core_Exception: [0: One of parameters (value: ) is not of the type
Integer\n\n thrown in
/app/data/wp-content/plugins/civicrm/civicrm/CRM/Utils/Type.php on
line 470 Sep 09 13:56:02 172.18.0.1 - - [09/Sep/2020:12:56:01 +0000]
"GET
/civicrm?page=CiviCRM&q=civicrm/contribute/transact&reset=1&id=2&cid=213&cs=1ccf75cf22138bd255525af8c8c05dc4_1599646931_168
HTTP/1.1" 500 3081 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15;
rv:80.0) Gecko/20100101 Firefox/80.0"

Using Civi 5.29 with WP 5.21. I had the same problem using Civi 5.25.0. I'm using a Cloudron LAMP stack, which makes things a little more complicated.
Any pointers most welcome.

I would guess that anonymous users are not able to view and use contribution pages.
Confirm and change this at:
Administer->Users and Permissions->Permissions (Access Control)->Wordpress Access Control.
OR
https://yoursite.tld/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Faccess%2Fwp-permissions&reset=1


Differentiate contacts as donors vs. class participants I need to differentiate contacts who are donors to our organization from those who are class participants. Some will be both but funds need to be differentiated. How do I do this?

There are many ways to do this, it really depends on what you want to achieve. The simple and basic way would be to use a tag to flag if someone is a class participant or a donor? But I would really need more description of what you want to achieve to give you a good answer!


WordPress installation with MySql connection problem I've been trying to install the lastest version, 5.9.1, on a new WordPress 5.0.3 site. Requirement checks all passed but when I clicked "Check Requirements and Install CiviCRM" button I got this error:

Cannot open mysql://username:password@localhost:3306/database_name?new_link=true: DB Error: connect failed

Server is using PHP 7.0.27.

Can anyone point me to the right path?

Thanks so much!

First, thank you, Demerit, for helping me. I found a patch for the fatal error and it went away. However, the installation error remained.

At the end, turns out this error was due to MySQL password containing special characters. Once the password was changed, I was able to install without any errors. Hope this helps someone else.


How can I view books.civicrm.org? I'm new to Civi and I'm trying to view books.civicrm.org, but its asking for a username and password, where do I register for that?

If you are after civicrm documentation the address is book.civicrm.org  (ie no "s" on book). That takes you to a page which directs you to various documentation.

(If you are looking for the user and admin guide for v 4.6 you can go directly to gitbook.civicrm.org.

Did you find that URL somewhere on the civicrm site?  If so, please let me know where it was so that it can be corrected.


Can CiviCRM work by itself (e.g. without Drupal)? I have CiviCRM connected with Drupal to sync users and other information. I am planning to make a new website to replace Drupal, perhaps without having it connected to CiviCRM.

Can CiviCRM work by itself? Can I "disconnect" it from Drupal and have it run alone?

There is a paid service you can use for this, if you wish to go that route:
CiviDesk offers a hosted standalone version of CiviCRM you can subscribe to.  Nicolas from CiviDesk has expressed interest in other people using standalone Civi, so you may want to talk to him. You can download the code for standalone Civi here, but of course this isn't supported by the core team.


Fatal Pear Error with form This form used to work: https://hej-support.org/subscription-chemicals-in-products-newsletter/

Now it gives back a
Fatal error: Cannot redeclare _PEAR_call_destructors() (previously declared in /kunden/549141_85221/webseiten/wordpress/wp-content/plugins/civicrm/civicrm/packages/PEAR.php:773) in /kunden/549141_85221/webseiten/wordpress/wp-content/plugins/backwpup/vendor/pear/pear-core-minimal/src/PEAR.php on line 812

Seems to be due to the backwpup plugin enabled on your site. Try submitting the form after disabling the same.

This looks like a problem with this plugin. It was also raised on WP support - https://wordpress.org/support/topic/fatal-error-cannot-redeclare-class-pear/


What is the grey box on selecting Webform Payment Processor? Specific Issue
I have a View that contains a Views Block Area as one of its rows. In each of these Views Block Areas I have a Webform that contains a CiviCRM Payment Processor.

I want the Payment Processor that is used to be set on content within the row.

When I set this by Javascript I get a grey box appearing on the screen and disappearing. Google Chrome's Console shows the data is: form?currency=GBP&snippet=4&processor_id=[[index of the selected payment processor]]

My Questions are:

1) What is this for? What does it do?
2) How can I get rid of it / stop it happening?
3) Is there a better way other than javascript to do this? The only other thing I could think of was using views_post_render. That feels like using a sledgehammer to crack a nut.

Purpose
I want to be able to have multiple donation options on the same screen for a crowd funding effort. These options are generated by a View. I am open to having a link instead of a payment form, and definitely open to a better way than using Views Block Areas in rows!

I think you are referring to the jquery blockUI which was enabled on the webform_civicrm payment page recently to prevent submission until the processor has actually loaded all it's fields?


CKEditor not fully functional in CiviCRM 4.6.11 We are expecting the editor in CiviCRM to look like this: http://docs.cksource.com/CKEditor_3.x/Users_Guide/Interface/Toolbar

There is at least one row missing on the toolbar that we can see. Is there a way to fix this on CiviCRM 4.6(Joomla 3.4.8) or install CKEditor Premium?

Take a look at
Is there a way to enable or install the full version of CKEditor in CiviCRM 4.6.x?
as well as
Big Changes To WYSIWYG Editing In 4.7


How to attach a File to a Contact? One can attach a file to an Activity, but is it possible to attach a file to a Contact ? How ?

Then, if the file is an image (jpg or png, ...) how to display it ?

(I am using CiviCRM/Drupal + Webform + Views)

One possibility is to use the Documents extension: https://civicrm.org/extensions/documents. This will allow you to add documents to contacts and show them on a separate tab.


Who supports civiCRM in Raleigh NC using Wordpress? Our organization uses civiCRM currently.   We wish to migrate to WordPress for our new website design.   We want three bids for this work.   Who in Raleigh, NC are currently offering such services that are familiar with civiCRM and Wordpress?

You'll find a good list of available CiviCRM/Wordpress implementation experts here:

https://civicrm.org/partners-contributors?country=All&services=Implementation&language=All&cms=WordPress


CiviCRM API V3 : Translate Two Digit State to State_Province_id? I'm using civimigrate for a pretty intense migration into CiviCRM and I have hit something of a puzzler.

I have a table with addresses that I am matching to contacts, but I cannot seem to find a way to map a state abbreviation (AL,MD,FL) to an id for the api.

I was hoping to find something in the API explorer to paste into my import, but I can't seem to find out where the API calls for translating state abbreviations into ids live.

Any ideas?

Try this:

$result = civicrm_api3('StateProvince', 'get', array(
  'sequential' => 1,
  'abbreviation' => array('IN' => array("AL", "MD", "FL")),
  'country_id' => 1228,
));

Note that you should specify country_id as state abbreviations are not globally unique.


Find Contacts with no Relationships Have tried using API, but
$result = civicrm_api3('Contact', 'get', array(
      'return' => "id",
      'contact_sub_type' => array('!=' => "Parent"),
));

gives zero results, while Search builder gives results using this query:

Contact Subtype Not Like Parent ...AND...
Contact Type = 'Individual'

API calls also give zero results count if

 'organization_name' => array('IS NOT NULL' => 1),

and

'current_employer' => array('IS NOT NULL' => 1),

being used, although we know such records exist. Moreover, theree are records, where "Current employer' field is empty, which yet have Relationships.

In theory, it might be possible to compare two arrays (all existent Relationships wjere Contact A is an Individual and all existent Individuals), but it might be tricky a bit at current number of records in both arrays (around 100K in each).  So, any reliable way to find Individual Contacts  with no Relationships, nor Employers?

One way of achieving your goal would be via a temporary group:

Using advanced search, search for all contacts who do have a relationship (simply open the "Relationships" tab, enter nothing, and search - it will default to all active relationships).
Add all the resulting contacts to a group (or make a smart group if you want to save yourself this step in the future).
Using search-builder, find all contacts not in that group.

PS: the "Parent" contact sub-type has nothing to do with relationships. Contact types are quite different in CiviCRM from relationships, and having one does not automatically bestow the other.


Hook postProcess doesn't work with message templates form I'm trying to add a couple of fields to the message templates ("CRM_Admin_Form_MessageTemplates") in a custom extension. I use the "buildForm", "validateForm" and the "postProcess" hooks. The "buildForm" and the "validateForm" hooks works perfectly but the "postProcess" hook does nothing.
I'm using civicrm 5.27.4 and drupal 7.72.
I tried it also on a other installation but same results. I also tried it with a other clean custom extension but that also doesn't work. And the same hook works on other forms.
Can someone help me?

Yes, some admin config forms doesn't invoke postProcess hook. Try below patch to invoke post process hook
diff --git a/CRM/Admin/Form/MessageTemplates.php b/CRM/Admin/Form/MessageTemplates.php
index 5f809f2..67cac30 100644
--- a/CRM/Admin/Form/MessageTemplates.php
+++ b/CRM/Admin/Form/MessageTemplates.php
@@ -309,6 +309,7 @@ class CRM_Admin_Form_MessageTemplates extends CRM_Core_Form {
       }

       $messageTemplate = MessageTemplate::save()->setDefaults($params)->setRecords([['id' => $this->_id]])->execute()->first();
+      $this->postProcessHook();
       CRM_Core_Session::setStatus(ts('The Message Template \'%1\' has been saved.', [1 => $messageTemplate['msg_title']]), ts('Saved'), 'success');

       if (isset($this->_submitValues['_qf_MessageTemplates_upload'])) {


CiviCRM database issue with views and the definer We have a website using CiviCRM that was recently switched from Drupal to WordPress as well as to a new server.

Everything on the website is working properly and they have had no issues with CiviCRM.

The problem: The websites and databases are backed up every night and the old backups are deleted upon completion of the backups. The CiviCRM database backup is failing because the database has 2 views (civicrm_view_case_activity_recent and civicrm_view_case_activity_upcoming) which have a "definer" which was carried over from the last server and does not exist on the new server.

The question(s): Is there a way to redefine the definer without recreating those views?

If not, is there code available to recreate those views?

Thanks!

It is possible to recreate the views using the following script. (It also recreates the triggers and stored functions that can have the same problem

<?php
   civicrm_initialize();
   Civi::service('sql_triggers')->rebuild(null, false);
   CRM_Case_BAO_Case::createCaseViews();

Run the script with drush scr <script.php>


How to (hide) NOT show £0.00 in Price sets for the FREE options? I have a price sets, which have an option FREE. How to NOT show £0.00 in Price sets for the FREE options?

Can you tuck in your FREE options into a separate Price Field? And then to not show any $ values for all options within a given Price Field: de-select the display amount checkbox:


Message Templates Font Color Change Message Templates I want to specify the color of the text "Status - Send Copy of an Activity" for incoming mail as color code 1f497d.

So I want to replace the posts in the table with 1f497d color, not black. How can I do that.

In the message template there's two lines near the top that look like this:

{capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;"{/capture}
{capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999;"{/capture}

If you change them to add a color: #1f497d; to look like this it should work:

{capture assign=labelStyle }style="padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7; color: #1f497d;"{/capture}
{capture assign=valueStyle }style="padding: 4px; border-bottom: 1px solid #999; color: #1f497d;"{/capture}


Event Waitlist - Paid Is possible to set a limit of say 20 participants for an event, have waitlist enabled and when people register for waitlist, they still have to pay like a normal registration?

I couldn't see that and hope I haven't missed it.

I don't think it is without custom code :-(

The idea of the waitlist is they only pay if they have a place.


(Event reminder) Exclude Participant who registered after the event! In some occasions we had some event participants who just turned up on the events without registering. A schedule reminder is already in place for registered participant, day before the event.

Now for those who registered after the event they also receives an email after. Is there a way to excluded those participants?

The only one I can think of is to switch off the confirmation email once the event date is up? This can obviously be done manually, or you could create a little extension with a scheduled job that does this on a daily basis?


Contact.url token is not a hyperlink When I send a bulk mailing I use the {contact.url} token, when the email comes through though the url is not a hyperlink.

Is there a way to amend this?

Fixed it by adding the token into a hyperlink

Edit: < a href="{contact.url}">{contact.url}< /a >

Surprisingly worked


"Make Mailing Labels" not working for Bosnia language Im trying to "make mailing labels" with contacts with names in Bosnian and CiviCRM cannot create it.

Example:

Correct: Antolović
CiviCRM prints: Antolovi?

Instead, CiviCRM shows it correctly in most parts of the CRM, for example
print/merge document in actions of contact summary view.

Any suggestions?

Tx!

It's because it's using Helvetica font which doesn't have unicode characters - if you can use Deja Vu Sans or another font that has unicode it should work.

IGNORE rest of answer below. As per comments Cesar found that under Administer - Communications - Label Formats you can change the font in there.

You can try to hack CRM/Utils/PDF/Label.php to hardcode the font: https://github.com/civicrm/civicrm-core/blob/5.20.3/CRM/Utils/PDF/Label.php#L180

I'm not sure the right spelling to get the font. If you look in vendor/tecnickcom/tcpdf/fonts/dejavusans.php it seems like it might be DejaVuSans, without spaces.

You can also try this instead:

Copy vendor/tecnickcom/tcpdf/config/tcpdf_config.php somewhere, e.g.
/usr/local/tcpdf/tcpdf_config.php
Edit the line inside it for PDF_FONT_NAME_MAIN so it reads define('PDF_FONT_NAME_MAIN', 'dejavusans'); (again I'm not sure of the exact spelling).
In civicrm.settings.php add these lines:

define('K_TCPDF_EXTERNAL_CONFIG', TRUE);
require_once('/usr/local/tcpdf/tcpdf_config.php');


Multilingual text not copied when using an event template to create an event I am running a new multilingual (en & fr) civi site an making extensive use of templates for multiple event types. The templates are created with text in the appropriate language blocks on each field. However, when I create an event using such a template, only one of the languages gets copied across into the new event. If I create an event while my civicrm language is set to english then the english text is copied into BOTH language blocks. Likewise if civicrm language is set to french then the french text goes into both. I have replicated this on a fresh civi install. Can anyone indicate if this is a restriction, a bug or a misconfiguration on my part. Thanks in advance.
Civi=5.27.1 / Drupal=7.72 / PHP = 7.3.21 / mySQL=5.5.60

Sounds like a bug.  If you have an event template with English and French and you create a new event using that template, I'd expect the new event to have English and French content identical to the template.
I'd suggest opening an issue at https://lab.civicrm.org/groups/dev/-/issues


what type of protocol and api connection is used for authorize.net Authorize.net will disable older protocols, TLS 1.0 and TLS 1.1, which are highly vulnerable to security breaches. They will be disabled by Authorize.Net on February 28, 2018

What type of protocol and API connection does CiviCRM use?

CiviCRM will communicate with AuthorizeNet using whatever versions of TLS are enabled on your server.

To see if your server is using TLS 1.2, go to https://www.ssllabs.com/ssltest and put in your url

in the Configuration section of the report it will list the TLS versions supported.


Cannot edit links (or source code directly) in Scheduled Reminders Configuration: Wordpress 5.1.1, CiviCRM 5.10.3

We needed to edit a link in our Scheduled Reminders and discovered we can no longer do so. This is the behavior:

We can edit these reminders just fine, but when we select linked text to edit (or to add a new link), I cannot put the cursor in the edit box to make the edit (see 1st screenshot below). That seemed strange so I clicked on the "Source code" edit button and, once again, I could not place the cursor in the window to make the edit (see 2nd screenshot below). I then checked the ability to edit in CiviMail and also in CiviEvents. I had no problem editing/inserting links there.

I thought this must have something to do with TinyMCE editor or possibly some weird conflict with our Wordpress theme, or even conflict with a block editor that we use (Elementor). I changed to a pure vanilla WP theme (2019) and deactivated Elementor. No dice. Thinking that it was TinyMCE, I upgraded Civi to 5.12.3. All these things did not fix this strange behavior.

Wordpress 5.x was a major upgrade regarding editing where they are pushing their Gutenberg block editor, so maybe this started when we upgraded to 5.x, but there's no turning back at this point, but I suspect there is some weird TinyMCE mess up somewhere and have no clue why it would only show up in editing Scheduled Reminders, whereas all edit functionality in CiviMail and CiviEvents seems to be working.

Any clues would be helpful. We NEED to edit our reminders as our special renewal contact links display weirdly under a recent WP theme change we made and we have it fixed by just pointing the contact link to a different page.

OK, I'm going to be bold and answer my own question. According to https://civicrm.org/extensions/tinymce, starting with CiviCRM 4.7, an internal editor CKEditor was provided to handle all Civi backend editing. Since we started using Civi prior to that, we had the TinyMCE extension installed and I should have been aware to disable TinyMCE in favor of the default CKEditor at that time.

I'm interested if anyone else has anything to add. At the very least this post does note an evident TinyMCE bug with our Wordpress/CiviCRM versions configuration.


How to display the Event Registration Form for public? I am just starting about a week to use CiviCRM & CiviEvents running on Drupal. Managed to create an event and its Online Registration Form.

However, the form appears differently for logged-in and non logged-in users.

My question: How to display the same form for logged-in and non logged-in users?

What I did so far:

I created 2 profiles for the form, "Registration Info" & "Course Type".*
On the Event's Online Registration, I included these 2 profiles.
If a logged-in user click the Register Now button at the event page the system displays the correct form:

But when public click the button, the system displays this form:

Thanks in advance!

Regards,

Voldi Sinarta

You should look at permissions. It seems anonymous users are not allowed to access these custom fields.

You can do this with the drupal permission
"CiviCRM: access all custom data "

Or, if you do not want to let anonymous people access all custom data, then you can use the CiviCRM permission system ACL, which lets you configure more fine grained access to custom fields.

More info: http://book.civicrm.org/user/initial-set-up/permissions-and-access-control/