Why would an email have much lower open rates in the final part of an A/B test, but only in Gmail? Recently, we sent an A/B test using Mosaico, which showed a unique open rate of about 27% for Gmail addresses. The final mailing, which was identical other than being sent a few hours later, had an unique open rate for Gmail addresses of 2%. Open rates for other email domains were the same in the A/B test and the final mailing. Does anyone have any ideas why this may be?
About half of the emails on this list are Gmail addresses and yet all the click throughs recorded are for other domains. I suspect that these emails to Gmail were sent to spam or otherwise not showing up in people's mailboxes, but I'm not sure about this. The evidence from the donations is not conclusive, but the donation rate is about 80% lower for the Gmail addresses, so I suspect they didn't receive this email or it was somehow sent to spam or otherwise not to the inbox. I don't quite understand why that would happen for most of the final part of the A/B test, but not the initial parts.
We sent a similar mailing with an A/B test and final to a different list the same day and did not see any difference in Gmail open rates. One list with Gmail issues was 48k, the list without about 13k.
I've checked our mailer (Amazon SES) and it shows the right number of emails sent on that day. Bounce rates for all three messages were similar.
Thoughts or things to check about this are welcome. My current plan is to resend this mailing to all the Gmail addresses that don't show an open for it, perhaps with some slight changes to content.
Edit: This mailing was not sent during the recent reported Gmail outages. It was sent on Dec 10. Also, there is no correlation between the emails that do show as opened and the sending time of that particular email.

It's the metric. Open rate is not a reliable metric. An open is tracked through an image pulled from your crm server. If images aren't loaded the open doesn't get recorded. Further, Gmail uses something called image image proxying, i.e. they cache the images on their servers instead of pulling the images from your server.
Click rate is a reliable metric, though, so maybe construct decision making around that?
In any case it is still possible your emails are ending up in spam. There are services like glockapps that can help you figure out if this is the case.


submit button onclick First time using civicontribute. We get a transaction error when submitting a donation. (see below)
Our donation form submit button has: onclick="return submitOnce(this,'Main','Processing');"

Other people with similar pages do not have an onclick function.
Is that the cause of our problem?
Should we have it?
If not, how do we get the page to be rendered without it?

Here is the error message we get when clicking submit.

"Sorry, due to an error, we are unable to fulfill your request at the moment. You may want to contact your administrator or service provider with more details about what action you were performing when this occurred.
DB Error: unknown error
Return to home page.

Fatal error: Uncaught CRM_Core_Exception: [0: Transaction integrity error: Expected to find active frame thrown in .../wordpress/wp-content/plugins/civicrm/civicrm/Civi/Core/Transaction/Manager.php on line 107"

Problem solved - after updated mariaDB
following
Uncaught CRM Core_Exception Transaction/Manager.php

and
re-installed stripe.


How to disable caching? I am working on an issue regarding Date Formats (Localization > Date Formats) and it took me a while to realize it is caching due to which changes in Localization.settings.php file were not being reflected. Even after the realization, after every small change I have to clear the cache manually. I used drush ($ drush cc civicrm) to do it which takes about a minute everytime and it is hectic.

So, how can I disable caching?

Caching methods can be enabled or disabled in your CiviCRM settings file (eg: civicrm.settings.php).

The setting you're looking for is:
CIVICRM_DB_CACHE_CLASS

To disable caching, change the value to 'NoCache'. Other possible settings are documented above the setting in the file.

There is a page about caching in the documentation here: https://wiki.civicrm.org/confluence/display/CRMDOC/Cache+Reference


Is is possible to restrict visibility of custom data sets? Current install - WP5.0 / Civi 5.7.2

I'm just thinking through our Safeguarding / Child Protection process. We don't have any issues, but we're legally obliged to have a process. And I'd rather set this up now when there's no pressure than when, heaven forbid, there's an actual issue.

What I'd like to do is have a set of custom data fields against a contact (essentially notes, but I can't have them exposed like 'normal' notes) that our designated Child Protection Officer (me) has access to, so that any concerns / issues can be logged against a contact record.

Obviously, access to those fields needs to be tightly controlled. No one else in the organisation even needs to know they exist.

I know I can use ACL's to manage access to functions within CiviCRM, and I can hide fields from profiles. But if I have other people legitimately using CiviCRM, I can't have them seeing these additional fields (or even see if a contact has those fields present on their record, even if the content is hidden).

There is such a concept as Private Notes which are Notes that are only visible to the author and to anyone with the permission to see 'all notes'. Try that. It may be less effort but still acceptable


How to set read only field in Drupal CiviCRM I would like to set a read only field in Drupal CiviCRM:

mymodule_civicrm_buildForm($formName, &$form) {
  ...

  // Set default value
  $defaults['readonly_field'] = xxx;
  $form->setDefaults($defaults);

  // Set read only
  $element = $form->getElement('event_type_id');
  $element->updateAttributes(array('disabled'=>true));
}

The field is disabled for input; however, the default value cannot be passed through the form submission.

The form warns that this required field does not input.

Could you advise how to set the read only field correctly?

Thanks a lot!!

Try $element->updateAttributes(array('readonly'=>true));

The difference between readonly and disabled is a common thing with HTML and forms.

See for example https://stackoverflow.com/questions/7730695/whats-the-difference-between-disabled-disabled-and-readonly-readonly-for-ht


Date range profile search problem I've fairly recently upgraded from 4.4 to 4.6.12 in Drupal.
We have a custom date field that is Searchable and Search by Range is Yes.
This used to work but doesn't now: The error includes this:
No matches found for:
Start date In '20 May 2, 20 July 2' ...AND...
Searches for date fields not by range are OK.

I've just tried this in the 4.7 WordPress demo (UK locale) and can repeat the problem there, though the no matches error report format is better.

The specific date case is handled in convertFormValues() in 4.6.12 CRM/Contact/BAO/Query.php - but not in 4.7.2.

Any suggestions for how to fix this?

Thanks, Chris

In 4.6.12 CRM/Contact/BAO/Query.php I've added this case in convertFormValues() to fix this - someone may do it more beautifully:

elseif (!empty($values) && is_array($values) && self::isCustomDateField($id)) {
    $from = FALSE;
    if (array_key_exists('from',$values)){
        $from = $values['from'];
        $from = CRM_Utils_Date::processDate($from);
    }
    $to = FALSE;
    if (array_key_exists('to',$values)){
        $to = $values['to'];
        $to = CRM_Utils_Date::processDate($to);
    }
    if( $from && $to){
        $q = array('BETWEEN' => array($from,$to));
    } else if ($from){
        $q = array('>=' => $from);
    } else if ($to){
        $q = array('<=' => $to);
    }
    $params[] = array($id, '=', $q, 0, $wildcard);
}

This handles the case when the custom field is a date but the supplied $values is not a single value, but is instead an array with from and/or to values.


Multiple participant registration not tied to contribution for paid events? When registering multiple participants for a paid event, only the first participant has a contribution attached to them. Each subsequent participant shows up correctly, but has no attached contribution or any payment information.

Checking the participant_payment table, no entry is created for the additional participants.

Is there a way to track payments or the contact who registered them for these additional participants?

Examples from the Civi 4.7 Demo site -

User with contribution:

User without contribution:

After looking at this for a good while, I've discovered that clicking the contact name in the "Registered By" field on the additional registrations will bring up the original registration in a modal.

The way it appears now implies that it would take you to that contact's detail page and not their registration.


Best practice for finishing a CiviCRM session? Close browser window? log out? does it matter? When finished working in CiviCRM, is there a practical difference in terms of the health of my database between simply closing my Civi browser window vs explicitly logging out? We run on drupal...

The server doesn't know that you closed your browser, so it considers that you are still looking at the last page; for a very long time.

The vast majority of users doesn't log out to explicitly inform the server they are out.Your drupal/webserver is going to discard stalled sessions when they stay inactive for too long, so it doesn't have an impact to logout or let the server "auto logout" after a while.

They are tiny differences if you close the browser while editing, as Civi might warn other users that you might still be editing to prevent conflicts (when two users edit the same content at the same time, you might overwrite each other modifications), so here, properly logout -or cancel your edit before closing- does help avoiding that other users wonder if you are still editing it or not.

There might be small security concerns to leave your session open, but assuming your civicrm installation is using httpS (and if not, you really should ssl encrypt your websites), it's not an issue either.

So in a nutshell: it's slightly better to logout, but as it means you will have to login more regularly, you might end up using less Civi -yeah, we are that lazy- I wouldn't advocate to logout, unless you aren't using your regular computer.

If you aren't the only one using the computer, you should always logout (so the next one using it won't be able to access Civi with your account).

X+


Upgrade Does Not Pass [Executed: Begin Upgrade to 4.7.19] I am trying to upgrade from 4.7.18 to 4.7.29.  I am doing this on a development server and I have created a sub-domain for it and made sure that the site is running before I attempt to do the upgrade.

I have tried the upgrade several times (having restored the database and reset paths) and I still get stuck at the begging saying - [Executed: Begin Upgrade to 4.7.19].

The url I am at is https://[subdomain].[domain.org]//civicrm/upgrade/queue/runner?reset=1&qrid=CRM_Upgrade

I have PHP 7.0.22 on my test server and MySQL 5.7.21.  Basically, what comes out the box with an Amazon Ubuntu AMI.

Thanks,
Josh

I used drush civicrm-upgrade-db and it appears to be working perfectly.

I had already put the  4.7.29 files in /sites/all/modules/civicrm so only the database had to be upgraded.

-Josh


How to create Drupal View of Participants with custom fields I have events with custom fields.
I want to show participants with the corresponding custom fields in a View.
I can't find how to retrieve custom datas.

Is somebody have already created this kind of View?

Using Drupal 7.54 and Civicrm 4.7.16.

Thank you for your help.

Create a new view.

Give the view a name

Show CiviCRM Participants

Create a page view perhaps, make sure there is a path

Continue

Add some fields, maybe you want the contact display name for instance
The custom field will be available in a group "CiviCRM Custom [custom_group_name]"
Add your custom fields...

Maybe you want only those participants for a given event?

Number of ways to do this, but lets just describe one way.

so lets say your View is at path "/event-participant-listing"
Lets use a contextual filter, and filter by event id, so that
"/event-participant-listing/1" would list participants for event with id 1

editing your view, Click the Advanced fieldset in the right column

Add a contextual filter
"CiviCRM Events: Event ID"

Maybe set "When the filter value is NOT in the URL" to 'Display contents of "No results found"'

Make sure if you choose that to add a "Global: Text Area" to the "No Results Behavior"


Date created field displays erratically in views and webform Drupal7 integration The native date created field for contacts shows up erratically in my views, some items it works, and some it doesn't.

The modified date field always displays however.

Additionally, there used to be a change log field on the bottom on contact creation, but now it's gone...!

Seems that some items that were created a while back show up, but some I did today don't, and I have no idea why some from a while back show and others don't!

You didn't specify what entity you'd like to add this custom field to - but you refer to "every new contact", so I assume you want it for contacts.

"Date created" and "date modified" already exist as core fields on many entities, including Contact entities.  See screenshots below.  "Modified Date" on contact is on the Change Log tab.


Cannot Select Recipients in CiviMail in 4.6.2 I'm experiencing the same issues as shown in this thread: http://forum.civicrm.org/index.php/topic,36343.0.html

Fields appear duplicated, I can't select any recipients, etc. In fact, when I select a group (autocomplete search does not work), the field label goes red as if I've missed selecting any recipients.

I've got an urgent mail to get out for this client, but can't do it through CiviMail. I've tried all versions of the layout (standard, unified, unified2 and wizard).

Joomla 2.5.28
CiviCRM 4.6.2
Browsers used: Safari 7, Chrome 42.x, Firefox Developer's Edition

Thanks. It's helpful to report these kinds of issues along with details of the configuration (like you did) and any steps required to reproduce in a new installation.

For a temporary work-around, you might try using the old, deprecated UI by editing civicrm.settings.php to include define('CIVICRM_CIVIMAIL_UI_LEGACY',1);

FWIW, we still have a couple issues that are getting reported by multiple people but which we cannot reproduce yet. Based on the data-points so far, the use of Joomla with Civi 4.6.2 seems to be a common theme, but that could be coincidence. More reports/debugging is greatly appreciated.


Bounce handling not working We've been trying to make bounce handling work but with no success so far.

The fact is that it used to work setting a gmail.com email address as in this forum thread (see below), but all of a sudden it stopped working and it has nothing to do with opening port 993, because it was already open.

http://forum.civicrm.org/index.php?topic=33637.0

Server   imap.gmail.com
Username   xxx@gmail.com
Password        (triple checked against gmail account)
Localpart   xxx+
Email Domain  gmail.com
Return-Path   (empty)
Protocol IMAP
Source   (empty)
Use SSL?   Y
Used For?    Bounce Processing

When sending a test mail to wrong email accounts CiviMail counts them as correct addresses.

Any clues?

Thank you very much for you help

Please do NOT use a gmail address for the bounces, it won't work (a google app email is fine however).

It will fail you in two different but both bad ways:

if you use mail() or a local smtp mailer for your outbound, you are trying to send an email from your civicrm server as being from a gmail email, something that google said is not allowed (SPF record) and it will mostly end up in the spam folder of the recipient (or be flat out rejected).
if you do use google smtp as mail servers, they will prevent you to send too many emails (the too many is going to be changed over time, but is pretty much guaranteed to be above the number of emails you want to send)

For your specific issue (and for others that use google apps): check the spam folder see if the bounced emails are there, and add a filter to these emails stay on your inbox, they will often be seen as spams by default until you add filters.


Relationships Calendar is in Russian - How do I fix? I recently updated CiviCRM to 5.21.0 and have noticed a rather strange bug affecting the relationships function.

Specifically, when I go to add a new relationship to an individual the pop-up calendar that appears to specify the start/end of the relationship is in cyrillic (Russian).

As I'm using the default US english install, I'd rather the calendar appear in English... As such, I'd like to seek advice regarding what I might be able to do to fix the issue.

regards,

Robert

ps. My install details and a screenshot are below:

Database system  :  MySQL, MariaDB, or equivalent
Database system version : 5.5.5-10.1.43-MariaDB-0ubuntu0.18.04.1
PHP 7.2.24-0ubuntu0.18.04.1
Web server: Apache/2.4.29 (Ubuntu)
Drupal 7.69
CiviCRM 5.21.0.

I've tracked down what caused the - duplicate calendar icons . It was an outdated version of the CiviCRM Shoreditch extension that was installed. I've disabled, uninstalled and deleted it. The duplicate icons are gone, the Russian text still remains though.

I have posted a ticket on the Shoreditch extension github site with the details. Hopefully they can resolve the issue. In the meantime, i've disabled the extension.


Send QR code via SMS? Does anyone know whether it is possible to send QR codes to event participants via CiviSMS? A client wants us to send participant's QR codes to their mobiles.

As mentioned in my comment to Demerit's answer I successfully achieved my objective to send a QR code to an event participant's phone (albeit the URL and not the image).

I installed the Clickatell extension for CiviSMS and the QR Code Checkin extension to generate the emails or SMSs to send the QR Code or its URL to event participants.

The instructions to set up the Clickatell extension at https://docs.civicrm.org/user/en/latest/sms-text-messaging/set-up/ are outdated but it was not hard to set it up.

The QR code extension was easy to set up, but don't forget to manually set the required permissions in your CRM (Drupal in my case). The extension provides a handy couple of tokens that can be easily included in an email or SMS.

The downside of the QR Code extension is that it only works on one event at a time. If you have multiple events that run on different days it may be possible to change the 'effective' event (on the event page) before sending QR codes and again during checkin.  I haven't tested this.

Below is an example of the test SMS I generated.


SQL to unlink contacts and drupal accounts 1) In what table/field of the CiviCRM database is the Drupal User ID stored?

2) What is the SQL statement to delete all rows in that table except User1?

Due to the way we imported contacts and generated Drupal users, all our contact/user links are mismatched (on a development site). And I just can't get phpMyAdmin working on this server, so need to do it via mysql CLI.

The table you are looking for is civicrm_uf_match with the following structure

CREATE TABLE `civicrm_uf_match` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'System generated ID.',
  `domain_id` int(10) unsigned NOT NULL COMMENT 'Which Domain is this match entry for',
  `uf_id` int(10) unsigned NOT NULL COMMENT 'UF ID',
  `uf_name` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'UF Name',
  `contact_id` int(10) unsigned DEFAULT NULL COMMENT 'FK to Contact ID',
  `language` varchar(5) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'UI language preferred by the given user/contact',
  PRIMARY KEY (`id`),
  UNIQUE KEY `UI_uf_name_domain_id` (`uf_name`,`domain_id`),
  UNIQUE KEY `UI_contact_domain_id` (`contact_id`,`domain_id`),
  KEY `I_civicrm_uf_match_uf_id` (`uf_id`),
  KEY `FK_civicrm_uf_match_domain_id` (`domain_id`),
  CONSTRAINT `FK_civicrm_uf_match_contact_id` FOREIGN KEY (`contact_id`) REFERENCES `civicrm_contact` (`id`) ON DELETE CASCADE,
  CONSTRAINT `FK_civicrm_uf_match_domain_id` FOREIGN KEY (`domain_id`)  REFERENCES `civicrm_domain` (`id`)
 )

So the SQL statement to delete every link except the admin user is:

delete from civicrm_uf_match
where uf_id !=1

The batch found at Administer -> Users and Permissions -> Synchronize Users to Contacts brings them back. But better try this first on a test instance.


Warning "mismatched contact IDs" when trying to update existing individual records I'm updating the CiviCRM database with a list of individual records. All these individuals exist already in the database, but I need to create the link with existing organisations.
I've already done that for other imports and I use the relationship "Employee of" -> "Organisation Name (match to contact)" to do the relationship between the individual and its organisation.
When trying to import, I receive a message telling me that all my records have "mismatched contact IDs"
and that no record has been updated.
Any idea ?
Thank you

More information on this : I have tested with a single record "Patrick Test" on the demo database - https://dmaster.demo.civicrm.org/ with the same import scheme and all went well. I make the same with one record on my CiviCRM and I receive an error. I really do not know what to do now...

The exact error message for this one record test is :
Total Rows 1   Total number of rows in the imported data.
Mismatched Rows (skipped)   1   Rows with mismatched contact IDs... (NOT updated). <
» Download Mismatched Contacts
Total Contacts  0   Total number of contact records created or modified during the import.
The generated csv error file tells me that "Related contact required fields are missing." Which fields ? I really dont know...

Many thanks for you help

Apart the right answer of Pete (thanks) here above, I have found something else who explain the problem I have : I had two relationships in my import scheme: the one for the "Member of" relation and the second for the "Employee of" relation. This cannot work... and I need to make two separate imports for each relation.


Trouble getting Activity Information with api I'm trying to get Activity information via the API, but have run into two issues:

I cannot seem to filter by a date stored in a custom field. I've tried formatting the date multiple ways ('Y-m-d', 'm-d-Y', 'YmdHis', etc), but it doesn't seem to have any impact.
Since I can't figure out to make the filter work, I thought I would do the filtering myself. But I can't seem to get the custom field to be returned in the results. When I try in the API Explorer, I get all kinds of data back for each activity. But when I copy / paste the PHP code, I only get a small amount of activity fields, and definitely not the custom field I need.

This is the code from the explorer that isn't working for me when I actually use it in code:

$result = civicrm_api3('Activity', 'get', array(
  'return' => "custom_46",
  'status_id' => "Scheduled",
  'activity_type_id' => "TDY",
));

The Explorer shows all activity data for each result. When running the generated PHP code in my code, I only get the Activity ID, Activity Type ID, Status ID, and Source Contact ID.

That is weird :-) I assume you have all permission for custom data? And have you tried using the actual ID's for status_id and activity_type_id?


Issues with cron job - Wordpress I'm on a shared hosting solution that I just moved over to. After the move, I did an upgrade to the newest CiviCRM version but left WordPress intact (no upgrade). Scheduled cron jobs were working fine on the previous host server, but not anymore.

Current configuration:
PHP: 7.2.13
CiviCRM: 5.8.2
WordPress 4.9.9

I updated the wget command I was using to capture the results in logs. In CPanel, the job looks like this:
wget -O /home/xxx/public_html/cron_output.log -t 1 -a /home/xxx/public_html/cron.log 'https://xxx/wp-content/plugins/civicrm/civicrm/bin/cron.php?name=xxx&pass=xxx&key=xxx'

I know the syntax of the command is right because I can run the https: command from a web browser and everything works.

The cron.log shows that it's run with the 200 OK response. The cron_output.log is empty (should it be?).

--2019-01-02 12:50:01--  https://xxx/wp-content/plugins/civicrm/civicrm/bin/cron.php?name=xxx&pass=xxx&key=xxx
Resolving xxx (xxx)... x.x.x.x
Connecting to xxx (xxx)|x.x.x.x|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 0 [text/html]
Saving to: ‘/home/xxx/public_html/cron_output.log’

The server logs that my hosting provider sent me show that the jobs run.

I've also scheduled the same job in easycron and it shows that's it's run successfully.

So I know that cron is running and the syntax is right. But the scheduled jobs in Civicrm don't run. There's nothing in any error_log anywhere that indicates there's a php problem. I've looked at the questions here, and checked that PHP and the MySQL database are on the same timezone, and they are.

I cannot figure out why Civicrm is not running the scheduled jobs. I've tested with a scheduled mailing that sits there and never gets delivered (until you run the https:// command line manually, then it completes). Also the Administer -> System Settings -> Scheduled Jobs show that they are not being completed unless the cron job is manually triggered. And Civicrm has the orange System Status: Warning: Cron Not Running

I'm stumped, and my provider says the issue is not with the server, and I tend to agree.

Any thoughts as to next steps?

Are you sure that the path to cron.php is right on the new server? I recently had to set it up again on the new host (SiteGround), and the path was slightly different. What was surprising was that, by all indications, the cron job was executing successfully, but it silently didn't run the CiviCRM jobs. I still don't have a good answer on that.

In cPanel, you can go into File Manager and check the path.


fatal error: Unknown column 'contribution_source' in 'order clause' When we use Find Contributions to generate a list of contributions for thank you e-mails, then select the All Records radio button, and then choose Thank You Letters, we see the fatal error below.

I do see code in CRM/Contribute/Form/Task/Batch.php that looks like it's meant to handle an issue like this: https://github.com/civicrm/civicrm-core/blob/67ea385e0e5cd3daed04807c1465605f059b1002/CRM/Contribute/Form/Task/Batch.php#L230

We do not get the fatal error when we use the select all checkbox instead of the All Records radio button.

I have not yet been able to replicate on the demo. (The CiviHosting Drupal 7 demo is throwing an error right now itself.)

$Fatal Error Details = Array (
[callback] => Array ( [0] => CRM_Core_Error [1] => handle )
[code] => -19 [message] => DB Error: no such field [mode] => 16
[debug_info] =>
SELECT civicrm_contribution.id, contact_a.id as contact_id,
civicrm_contribution.id as contribution_id,
civicrm_contribution.contribution_status_id as `contribution_status_id`
FROM civicrm_contact contact_a LEFT JOIN civicrm_contribution ON
civicrm_contribution.contact_id = contact_a.id WHERE ( (
civicrm_contribution.receive_date >= '20161017000000' ) AND (
civicrm_contribution.receive_date <= '20161018235959' ) AND
civicrm_contribution.financial_type_id IN ("5", "1", "4") AND
civicrm_contribution.financial_type_id IN ("1") AND
civicrm_contribution.contribution_status_id IN ("1") AND
civicrm_contribution.thankyou_date IS NULL AND
civicrm_contribution.is_test = 0 ) AND
(contact_a.is_deleted = 0)
GROUP BY civicrm_contribution.id
ORDER BY `contribution_source` desc,
`contact_a`.`id` [
nativecode=1054 ** Unknown column 'contribution_source' in 'order clause']
[type] => DB_Error
[user_info] =>
SELECT civicrm_contribution.id, contact_a.id as contact_id,
civicrm_contribution.id as contribution_id,
civicrm_contribution.contribution_status_id as `contribution_status_id`
FROM civicrm_contact contact_a LEFT JOIN civicrm_contribution ON
civicrm_contribution.contact_id = contact_a.id WHERE ( (
civicrm_contribution.receive_date >= '20161017000000' ) AND (
civicrm_contribution.receive_date <= '20161018235959' ) AND
civicrm_contribution.financial_type_id IN ("5", "1", "4") AND
civicrm_contribution.financial_type_id IN ("1") AND
civicrm_contribution.contribution_status_id IN ("1") AND
civicrm_contribution.thankyou_date IS NULL AND
civicrm_contribution.is_test = 0 ) AND
(contact_a.is_deleted = 0)
GROUP BY civicrm_contribution.id
ORDER BY `contribution_source` desc,
`contact_a`.`id`
[nativecode=1054 ** Unknown column 'contribution_source' in 'order clause'] [to_string] => [db_error: message="DB Error: no such field" code=-19 mode=callback callback=CRM_Core_Error::handle prefix="" info="SELECT civicrm_contribution.id, contact_a.id as contact_id, civicrm_contribution.id as contribution_id, civicrm_contribution.contribution_status_id as `contribution_status_id` FROM civicrm_contact contact_a LEFT JOIN civicrm_contribution ON civicrm_contribution.contact_id = contact_a.id WHERE ( ( civicrm_contribution.receive_date >= '20161017000000' ) AND ( civicrm_contribution.receive_date <= '20161018235959' ) AND civicrm_contribution.financial_type_id IN ("5", "1", "4") AND civicrm_contribution.financial_type_id IN ("1") AND civicrm_contribution.contribution_status_id IN ("1") AND civicrm_contribution.thankyou_date IS NULL AND civicrm_contribution.is_test = 0 ) AND (contact_a.is_deleted = 0) GROUP BY civicrm_contribution.id ORDER BY `contribution_source` desc, `contact_a`.`id` [nativecode=1054 ** Unknown column 'contribution_source' in 'order clause']"] )

Further investigation found that this was failing not only with contribution_source, but also for financial_type and contribution_status.

A fix has been raised to address this issue at https://github.com/civicrm/civicrm-core/pull/9516. It'll be included in 4.7.15.


Is there a way to access [civicrm.files] from smarty? I'd like to replace the default logo in my email templates ({$resourceBase}/i/civi99.png) with a URL that points to a different location where the custom logo won't be overwritten by updates. I can do that by directly editing the template to point to https://www.mydomain.com/images/logo.png for example, but I'd like to avoid asking customers to edit the templates, which requires programming skills. Instead, I'd like to tell them to put their logo in a magic folder where it will be picked up if it exists.

Probably [civicrm.files] would be a suitable location but I can't work out how to expand that in a smarty template.

I tried {crmSetting name="imageUploadURL" group="URL Preferences"} but that returns "[civicrm.files]/persist/contribute/" which doesn't expand the variable.

I also tried {crmResURL ext=civicrm} but that just gives "/wp-content/plugins/civicrm/civicrm/" which is not a complete URL and in any case points to a directory that will get overwritten by updates (yes I'm on WordPress).

I haven't yet found where $resourceBase is set but something equivalent that returns https://www.mydomain.com/wp-content/uploads/civicrm would be good. I think I can only create that new variable by writing an extension though, which is a lot of bother if there's a better way. I would have expected the root URL of the installation to be in the settings or global variables somewhere and accessible from smarty but I can't find it.

A possibly related problem is that I'd also like to retrieve information like the date of a contribution from the database and display that in an email. Again, I can see that information is put in a smarty variable in Invoice.php for example, but the format is wrong (American, comma in wrong place) and my hunch is the information should be accessible some other way through the API. But if so I can't find it.

I've spent several hours on this (even bought the book) and I'm still struggling to find any information on how to create or use variables like [civicrm.files] in general, and in smarty in particular. Can any one help with either a specific or a general solution?

Update: I've found a partial solution to the logo path problem.
 {$smarty.server.SERVER_NAME} will get the name of the "server", in a format like "www.mydomain.com". By sticking "https://" in front and "/wp-content/uploads/civicrm" at the end you can make a good guess at where civicrm.files is likely to be on a WordPress installation. But it's only a guess.

You can use

{crmResURL ext='civicrm.files'}


'Cases' option missing in Advanced Search - how to correct? 'Cases' are missing in Advanced Search (usually the last search item). The last 2 items I have are 'Mailings' then lastly 'Events'.  I can't see any configuration option that sets this, so am puzzled how to fix. This Civi was installed in 2013, don't know whether that's a factor. It's at 5.19.4 and Drupal. Can anyone help - how can 'Cases' be put back in Advanced Search?

Can you go to CiviCRM >> Administer >> Customize Data and Screens >> Display Preferences and see if 'Cases' is ticked in 'Contact Search' option? If not check the box and save the setting.

Thanks

Pradeep


Date Format and CiviContribute/Data Form Confirmation Page We are using CiviCRM with the european portuguese language pack and during setup we set the date format to be dd.mm.yyyy at localisation/date format (administration tab).

We have created a civicontribute form/page where we request dates twice. Everything is fine in the way a user inserts the date and it shows the date in the preset date format we chose (e.g. 10.04.2015). However when you press "contribute" and advance to the confirmation page the dates don't show like that anymore but in the US format (04/10/2015). I am afraid this will generate a lot of confusion because people will think they have filled in the date incorrectly.

I've tried changing all possible date settings at civiCRM administration and nothing works. We simply can't use the form until this is fixed.

Help would be appreciated. Thank you.

The bug come from QuickForm being used to render in "freeze" mode (read-only) for the contribution confirm page.

The bug had been reported here:
https://issues.civicrm.org/jira/browse/CRM-14588

I wrote a patch for it against CiviCRM 4.7 (master dev branch), but it should be easy to apply on 4.6:
https://github.com/civicrm/civicrm-core/pull/5729

Could you test the patch to see if it fixes the issue? If you are not familiar with patches, you can download the file from the pull-request:
https://github.com/mlutfy/civicrm-core/blob/47-crm14588/CRM/Core/Form/Renderer.php

Then click on the "raw" link, which leads to:
https://raw.githubusercontent.com/mlutfy/civicrm-core/47-crm14588/CRM/Core/Form/Renderer.php

You can then save this file and replace the file in your local CiviCRM installation.


anyone getting "IPN warning" emails from PayPal? About two months ago, we started getting the following notifications 2x/day via email from PayPal. It appears Civi returns response 200 (error) for non-recurring transactions rather than 500 response (success). The email from PPL says they may disable our account if the issue continues so I'm really worried. We had a pro look at the code, saying there should not be an IPN call for non-recurring transactions, and that Civi throws the error because it doesn't expect it. He's also saying the Civi code handling this hasn't been touch for a long time, and that it's possibly on the PayPal side. We certainly haven't changed any PPL settings ... so wondering if anyone else is seeing these warning emails from PPL:

  Please check your server that handles PayPal Instant Payment
  Notifications (IPN). IPNs sent to the following URL(s) are failing:
  https:///civicrm/extern/ipn.php  If you do not
  recognize this URL, you may be using a service provider that is using
  IPN on your behalf. Please contact your service provider with the
  above information. If this problem continues, IPNs may be disabled for
  your account.  Thank you for your prompt attention to this issue.
  Thanks, PayPal

Anyone, anyone?

Thank you for the confirmation others are seeing this issue. In the end, this solved it for us - add lines 4-6 from the following code (lines 1-3 and 7-9 included for reference) to file /CRM/Core/Payment/PayPalProIPN.php

CRM_Core_Error::debug_var('GET', $_GET, TRUE, TRUE);
CRM_Core_Error::debug_var('POST', $_POST, TRUE, TRUE);
if ($this->_isPaymentExpress) {
  if (empty($this->_inputParameters['rp_invoice_id'])) {
    return;
  }
  $this->handlePaymentExpress();
  return FALSE;
}


Confirmation emails not being sent Our event confirmation emails are not being sent. The PayPal payment is happening, but the Online Registration Confirmation is not happening. What have I forgotten to enable??? We are using CiviCRM ver 4.7.1. I don't know how to find the version of Joomla. Emails DO go out, but only to those who do not owe any money - who have not gone to PayPal. Those who have paid remain in the "Pending (incomplete transaction)" status. We are NOT using "Pay Later".

I've recently had to address this issue.

1) Make sure that the PayPal's "callback" setting is enabled and set to point to your website.

2) Speak with your sysadmin and make sure that calls from PayPal are not being blocked.

3) Look in your CiviCRM logs around the time of the payment to see if there are any errors.

4) Ask your friendly neighbourhood software developer (or me or a CiviCRM partner agency if you don't have one) to add extra logging and debug output to determine if the calls are being received and traced through the system.

5) Check the spam folders - there's a lot of things that you can do if emails end up being sent to spam.

Good luck!


Outdated CiviCRM, blind SQL injection risk on parameters? (PCI compliance failure) on CiviCRM 4.5.4 on Drupal, PCI vendor is reporting errors along the lines of:

  Using the GET HTTP method, XYZ found that : + The following resources
  may be vulnerable to blind SQL injection : + The 'snippet' parameter
  of the /civicrm/mailing/subscribe CGI : /civicrm/mailing/subscribe?
  mark_x_2=1&recaptcha_response_field=manual_ch
  allenge&recaptcha_challenge_field=&qfKey=03baf253d7e24b62a4d8b8e76939c
  36
  3_6657&mark_x_45=1&_qf_Subscribe_cancel=Cancel&_qf_Subscribe_next=Subs
  cr ibe&_qf_default=Subscribe%3anext&email=Email%20Sign-

In addition there are a number of other parameters they report, like "recaptcha_response_field", "recaptcha_challenge_field", "qfKey", "mark_x_45", and others.

I'm fairly certain this is a false positive, but need some justification.

Thank you!

CiviCRM 4.5.x branch has stopped receiving security updates a very long time ago. Best to upgrade to 4.6.x or 4.7.x as soon as possible!

If you need help - find a partner near you in the partner listings: https://civicrm.org/partners-contributors


Extension settings lost on upgrade - known issue? On a couple of my own extensions and some that are not my own, I've seen that the extension settings go missing immediately upon upgrading the extension. These extensions all define settings metadata in a php file a la hook_civicrm_alterSettingsFolders() (e.g. https://github.com/twomice/com.joineryhq.activityical/issues/27)

It's not just that the setting values are cleared; rather, the settings themselves are uknown to CiviCRM. This is evident when viewing the Settings page for the extension; if that extension settings page is built dynamically using the Settings API to build the list of settings fields for that form, the form will contain no fields at all, because the Settings API finds no settings.

The workaround for this situation is to clear CiviCRM caches (e.g., run cv flush or use Administer > System Settings > Cleanup Caches and Update Paths). After doing that, the settings are once again available, although unfortunately their values have been cleared and must be reset.

Extensions where I've seen this recently:

https://github.com/twomice/com.joineryhq.activityical (see issue: https://github.com/twomice/com.joineryhq.activityical/issues/27)
https://github.com/osseed/com.osseed.eventcalendar

Is anyone else seeing similar behavior, and are you aware of a cause, a fix, or something extension devs can do to avoid this issue?

I have not experienced this yet @twomice. I tend to use Civi::settings()->set as well in my upgrader and/or config file in my extension too, perhaps that might help?


Record the purchase of a publication I am working with an organisation that wants to record the purchase of publications that they sell.  What is the best way of doing this?

The publications are purchased through a variety of channels including in cash and via third party websites such as Amazon.  The purchase itself would not be processed via CiviCRM but they would like to be able to record the purchases within CiviCRM so that they can report on sales figures.

In terms of reporting they would like to know how many publications have been sold each month and how much income each type of publication has generated.

Would it be best to record these purchases using CiviContribute or as a custom activity type.

Thanks for your help.

I would go down the CiviContribute approach first with a PriceSet and a specific 'contribution type'


I have imported memberships, need memberships to count as contributions I have imported memberships tied to households via CSV, but have just realized that despite the fact I uploaded the membership type and payment amounts are saved for each membership type, no associated contribution record has been created. In other words, the membership appears in a  contact's record with the correct start and end date, etc., but when I pull by contributions or look at a contact's contribution record, there is nothing.

How might I go about fixing this? I need contributions to inherit membership purchases.

Thank you!

Ahna K

Do a .csv import of new Contributions of financial type Member Dues, Civi ID, contribution amount, contribution date for each, then export that list with Internal Contact ID, and create a list of new or updated (a separate import for each) Memberships to import.


Troubleshooting relationship ACL Permissions This is the same issue listed here but my understanding of the issue has changed enough that it really isn't the same question anymore. (If any mods disagree I'm happy to take guidance on this point.) I am using the CiviCRM Webform Integration module in Drupal 7 to have users register both themselves and their children for events. Currently, they are not able to see their children even though their relationships are permissioned in CiviCRM. I  believe the issue is that my ACL permissioned relationships are broken.

I'm using CivCRM 4.6.18, Related Permissions 1.1,  Drupal 7.43, Webform 7.x-4.12, and Webform Civicrm Integration 7.x-4.15+27-dev

Any clues appreciated, even if you don't' have a complete answer!

Did you follow the recipe at: https://civicrm.org/blog/sarahgladstone/recipe-for-handling-youth-registration-with-civicrm

Make sure you have both extensions:

Entity Settings Helper Extension (nz.co.fuzion.entitysetting) version 1.2

Related Permissions Extension (nz.co.fuzion.relatedpermissions) version 1.2


how can I set the default value for the field "priority" in the actions form? I want to force a default value for the field priority in the actions form, so that users don't have to pick the right value if the default value is OK.

Bernard, you can do this by developing a little extension and using the buildForm hook to set the default value of the priority. In the buildForm hook you can do something like this:

if ($form->_action == CRM_Core_Action::ADD) {
  try {
    $normaal = (int) civicrm_api3('OptionValue', 'getvalue', [
       'return' => "value",
       'option_group_id' => "priority",
       'name' => "Normal",
    ]);
    $defaults['priority_id'] = $normaal;
    $form->setDefaults($defaults);
  }
  catch (CiviCRM_API3_Exception $ex) {
    Civi::log()->warning(E::ts('Onverwachte fout: geen prioriteit met naam Normal gevonden in ') . __METHOD__ . E::ts(', foutmelding van API OptionValue getvalue: ') . $ex->getMessage());

}
}

More information on the buildForm can be found here: https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_buildForm/

Does this make sense?


Where are recent Warning popups logged? CiviCRM has certain post-installation checks where you get displayed warnings on your webadmin dashboard, for instance on missing file permissions for directories. But when you click them away they are gone. I informed my Admin about them, but there was no way to tell him the exact content of the warnings.

a) Are past warnings logged somewhere?
b) How do we manually check our installations again?

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

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

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


Xero integration with OAuth 2.0 credentials Seeing some changes in the Xero process of creating a "new App" to use for synching with CiviCRM.

Specifically it now requires an

OAuth 2.0 redirect URI

but also, unless my eyesight is failing, i no longer see where we are meant to upload the .cer we create on our hosting server.

Thoughts?

we’re almost done moving over xero to oauth 2.0 and can share the code/instructions in the next few days if that works for you?


Can I change a contribution's values for Financial Type and Campaign directly in SQL without danger? When using "Import Contributions > Update Existing Contributions" I can import a Financial Type using the full name of an existing (and active) Financial Type. However, if I try to use the full name of an existing (and active) campaign it does not seem to work consistently.

EDIT
I notice that in the database the civicrm_contribution table has fields for financial_type_id and campaign_id -- is there any danger in using some SQL directly to populate these values? (ie. can anyone verify that if I set those IDs correctly in this table, it won't conflict with anything else)

If you're not using the in core CiviAccounts bits - then changing the financial_type_id is ok. We do lots of retyping (update more specific financial_type_ids ad-hoc) - on projects where we do our own Accounting integration i.e. bypassing the core CiviAccounts.

PS - forgot to note that updating campaign_id should be safe


(SOLVED) String impossible to translate Civicontribute It seems that i can't translate, even within word replacement, the 'Credit Card Information' string. I am using Stripe as payment processor. Would this be related to them and not CiviCRM?
Has anybody successfully translated it?

This is a good question.

The word "Information" is being translated SEPARATELY from the words "Credit Card". You can see this if you switch the language to Spanish for example. It will then say "Informacion Credit Card".

But the "Credit Card" part is intended to be coming from the label for the payment type as defined in the admin section for payment methods. However the code in CRM_Core_Payment::getPaymentTypeLabel() has a comment that this was never finished, and so it has the words "Credit Card" hardcoded.

If you want a hack then you can edit the line in templates/CRM/Core/BillingBlock.tpl where it says <legend>{$paymentTypeLabel}</legend> to say <legend>Desired Text</legend>, but this will get overridden each time you upgrade.


What is the contact ID of my own user record? Often, when giving support, it's helpful to direct people to their own record.  Is there a good way to find this?  As a dev, I can use the techniques listed here, but I don't see a non-technical way to do this.  It doesn't seem to be listed on the User Dashboard, for instance.  Any thoughts?

On Drupal -> go to Hello [user] in the Toolbar -> then hit view contact Record (or view Contact Dashboard):


How are long jobs handled, e.g. Contact import I'm trying to understand what happens with an import.

A file gets uploaded in a POST operation, then there's GET requests polling(?) of civicrm/ajax/status?id=somelongid

Which request does the work? Is is the POST?

Is it that the POST is a really long running script (server timeouts permitting) but that it's triggered in the background? (EDIT: yes, that's true.) Where does the somelongid come from for the GET polling? Or do the GET requests trigger processing the next batch? Does the process continue without the status requests (e.g. if you close the browser).

The reason for wanting to understand is primarily that I have a timeout issue and I don't want to increase the global timeout for all requests, so I change the timeout for certain paths in nginx config. But also I'd just like to know and couldn't find it in the docs.

It depends on the job.

Import jobs (Contacts, Contributions...) work by having one long-running POST request, and then your browser polls for updates on progress.

This means your browser/server/interenet connection need to be able to cope with the time that POST request requires. Whether a job completes after apparently timing out depends on how PHP is set up on your site.

For example:

Using Apache + mod_php: I believe that if the script times out on the POST request, processing stops at the point it got to.
Using nginx + PHP FPM: nginx will give up and issue a Gateway Timeout according to its configuration, but the PHP process may still carry on regardless, until completion.

So for import jobs, it's best to configure your server's timeouts to exceed the time taken for the biggest import you're likely to need to do, and/or break your imports down into smaller chunks that can be handled within those timeouts

Other jobs (dedupe merge, and applying database upgrades are examples) may use CiviCRM's queue system. This has two ways to get processed.

A server-side CLI script may chug through the entire queue without any timeouts.
A browser-side process with a progress bar works differently and requires the browser to process each step of the queue. If a single step ("task") takes longer than the configured timeouts, you're in trouble. If you close your browser, the next step won't run and the last step may (or may not) fail. If you close your browser and re-open it, you may start running the tasks more than once, in parallel (so don't do this!).

See my newly added Queue Reference in the developer docs.


Listing only some event types with CiviEvent Widget we are using the CiviEvent Widget, I’m struggling to figure out how to display a list of event ids, but not others using shortcode.
I would like for example to list events of id 9,10,11 exclusively.
I've tried seperating the id's by coma, semi-colon etc... but have had no success, it usually just displays the first id number i list.

Thanks for your help

The document says you add custom filters on shortcode

try adding

[civievent_widget custom_filter='{"start_date":{"IS NOT NULL":1},"id":{"IN":&#91;9,10,11&#93;},"is_public":1,"options":{"sort": "start_date ASC"}}' admin_type="custom" custom_display='{"event_title_infolink":{"title":0,"prefix":null,"suffix":null,"wrapper":1},"description":{"title":1,"prefix":null,"suffix":null,"wrapper":1}}' limit=5]

Also you will need to amend the patch below to decode html entities

diff --git a/civievent-widget.php b/civievent-widget.php
index e973ce0..c3c2da4 100644
--- a/civievent-widget.php
+++ b/civievent-widget.php
@@ -223,7 +223,7 @@ class civievent_Widget extends WP_Widget {
                                $standardDisplay = true;
                        } else {
                                // Get custom filters.
-                               $customFilters = json_decode( CRM_Utils_Array::value( 'custom_filter', $instance, '' ), true );
+                               $customFilters = json_decode(html_entity_decode(CRM_Utils_Array::value( 'custom_filter', $instance, '' )), true );
                                $filterParams = array(
                                        'start_date' => array( '>=' => date( 'Y-m-d' ) ),
                                        'is_public' => 1,


Upgraded to 5.3.2 from 5.3.1, now warning Cron not running - log shows it is at 10 minute intervals - Ignore? Running on Wordpress 4.8.7. No problem with Cron on 5.3.1, but right after upgrading we're getting warning that cron is not running.
    "Cron Not Running-
Last cron run at July 28th, 2018 3:20 PM."

Here is crontab entry, sanitized:

*/10    *   *   *   *   /usr/local/bin/php /home2/xxxxxx/newarksymphony.org/wp-content/plugins/civicrm/civicrm/bin/cli.php -s www.newarksymphony.org -u xxxxxx -p xxxxxxxxx -e Job -a execute

Scheduled jobs log shows that jobs are indeed running every 10 minutes.

==================================

2018-07-29 15:40:02 Civirules cron
Entity: Civirules Action: Cron

Summary
Starting execution of Civirules cron
Details
Parameters parsed (and passed to API method):
a:1:{s:7:"version";i:3;}
Full message:

Starting execution of Civirules cron

==================================

2018-07-29 15:30:02 Civirules cron
Entity: Civirules Action: Cron

Summary
Finished execution of Civirules cron with result: Success (a:0:{})
Details
Parameters parsed (and passed to API method):
a:1:{s:7:"version";i:3;}
Full message:

Finished execution of Civirules cron with result: Success (a:0:{})

=================================

Can you please check MYSQL and PHP are using the same timezone? This sometimes happens when both are running on different timezones.

You can find a solution for similar sorts of issues here.


How can I (on page 2) show First Name of an Existing Contact - static (on page 1) without dragging it to page 2? The First Name must also show on page 1 (and page 3/4/5/6 etc). If I'd just have two pages I could show Existing Contact on page 1 (display name) and then show First Name on page 2 but I've got 3/4/5/6/7/8 pages

First Name is an input[readonly] field - just a handrail to remind the parents which child's info they are updating to e.g. get the allergies and the busing filled out correctly.

Only easy 'option' I can see thus far is to put First Name (of Student 1) in a Fieldset Student 1 (on page 1). Then add a Fieldset Student 1 (on page 2) - and move the custom fields from Student 1 that need to go to page 2 (healthcare / allergy fields in this case) into that. Same for page 3 (selecting busing options). Etc. But then the parents have to remember who Student 1 (2/3/4) is all the way through.

Any ideas on how one could re-show Existing Contact fields on a next page? I've been thinking about perhaps creating a Student Name field in each of the custom data sets for contact type Student - and then PHP populate that with = First Name (or Display name) - make them readonly etc - pull these into the Webform - and they'd always 'travel' to any page with the rest of the fields in their dataset. But that would look a bit odd on the Student's CiviCRM Contact summary page.

I could not see a way to get tokens working in webform conditionals - so I've worked it out with a hook_form_alter hook. It's like building your own token.
On page 2 create a fieldset:
Label = STUDENT1TOKEN - Health
Field Key = student1token

Then in code you can replace your token: STUDENT1TOKEN with any value that has already been submitted on page 1 of this specific webform.
Dependence on field_key is not great - in a next pass I should probably just scan for STUDENT1TOKEN in all fieldset titles, [and then of course STUDENT2TOKEN, STUDENT3TOKEN, STUDENT4TOKEN].
function webform_civicrm_mystuff_form_webform_client_form_342_alter(&$form, &$form_state, $form_id) {
  // if we're on page2...
  if ($form['details']['page_num']['#value'] == 2) {
    if (isset($form_state['input']['submitted']['layoutbox_students']['civicrm_3_contact_1_fieldset_fieldset']['civicrm_3_contact_1_contact_first_name'])) {
      $student1_first_name = $form_state['input']['submitted']['layoutbox_students']['civicrm_3_contact_1_fieldset_fieldset']['civicrm_3_contact_1_contact_first_name'];
      $text_fieldset_title = $form['submitted']['student1token']['#title'];
      $new_fieldset_title =  str_replace('STUDENT1TOKEN', $student1_first_name, $text_fieldset_title);
      $form['submitted']['student1token']['#title'] = $new_fieldset_title;
    }
  }
}

End result: your CiviCRM contact's name in a fieldset label on the next page!


Can we control what contact name links to on reports? We have a lot of "Contact Reports" set up and in some of them the contact name links to the contact record but in others it links to another report.

I can't see what it is that influences this. Is it configurable?

This is not configurable out of the box - but I really don't like when clicking on a name in a report doesn't bring you to the contact record.  For that reason, I've written an extension called "No Drill Down", which modifies any report that would normally bring you to a Contact Detail or Contribution Detail, and instead brings you to the contact record.  You can find it here.


SCA/PSD2 compliant payment processor What is the current  SCA/PSD2 compliant  payment processor available, other than stripe?
Having lot of issues with stripe recently and not being so reliable and looking for an alternative.

Note: SCA compliance is a requirement of the EU Revised Directive on Payment Services (PSD2) on payment service providers within the European Economic Area, described here https://en.wikipedia.org/wiki/Strong_customer_authentication

Be sure to update to the latest version of the stripe extension, quite a few things changed with SCA...

But for what it's worth, works fairly reliably for us

As for your question:

Paypal is SCA compliant (mostly because everything happens on their website, so they manage the confirmation step).

... but if you aren't keen on stripe, you might like paypal even less ;)

Good luck


Why does CiviMail 'track click through' redirect to incorrect URLs? I seem to be having a problem that a number of people are running into that I'm hoping we can solve. When I sent out emails using the "track click through" enabled, I end up with URLs that direct to white screens.

What should direct to http://www.mysite.com/contribute/

instead directs to this url, which gives a white screen.

http://www.mysite.com/wp-content/plugins/civicrm/civicrm/extern/url.php?u=191&qid=5085

We're running
Wordpress 4.3.1
CiviCRM 4.6.6

thoughts? suggestions? Would it help to post the actual site urls? Needless to say as this is a fundraising email, I've got a development director in the other room melting down over this, so any help would be greatly appreciated. Thanks!

Devin, your description is eerily similar to a problem I had on our Drupal site.  Without track click through, things were fine.  Once those were enabled, no dice.

For our situation (CiviMail - when Track Click Throughs is enabled, links result in a white screen with warnings), it turns out it was due to a PHP setting issue.  Jon G's answer explains the why.  Richard's answer explains how we fixed it.

Hope this helps!


Error when importing contacts I'm getting the following import error message when trying to import contacts:

Invalid value for field(s): Geo code 1

Can anyone please explain?

thanks

It seems to mean you are trying to import the latitude (or longitude, never remember) of your contact. Do you really have a column that contains that?

Sometimes, the suggestion to map your columns in the csv file and the fields in civi aren't correct, check that you aren't trying to import a completely unrelated "code" column into that "geo code +" field.

Your easiest bet to see what's the expected format of each of the fields is to export a few contacts from civi and include these fields, so you can see how you need to format them on your own file.


How to re-process failed recurring contributions after updating card info? With the current "fast" expiration of credit cards, and the rampant infiltration of card number theft in the US, card information is constantly being updated.  Unfortunately, it generally happens only after a recurring gift has failed.  We've got the new card info entered using the process as posted here:

Editing Recurring Contributions without user login

However, this does not re-process the current month's transaction that just failed and triggered the, currently manual, process of getting the card info updated.  How are others updating the card information and then re-attempting to process the current month's giving?

It seems like a simple "if the card has been updated and is recurring and has failed in the past 30 days, then rerun the contribution attempt."  However, simple logic and actual programming are worlds apart.

CiviCRM 4.7, Wordpress, Authorize.net

Payment processors handle failed installments differently - currently, Authorize.net will not attempt to re-process a failed installment, but other payment processors might. Also, updates to credit card information can occur proactively without having missed an installment, so the re-process action should be user driven and separate from the card update action (the latest version of the iATS extension allows for the ability to process a contribution for the card on file specifically for this scenario). We have a bit of custom code that allows you to to link a one-time credit card transaction to the recurring contribution ID - it works exactly the same way as linking a contribution to an online contribution page under the "Additional Details" section of the record contribution screen (i.e. there is a select box that will show the recurring contributions based on the contact for whom the contribution is being recorded, by selecting an option from the list, it includes the recurring contribution ID in the values inserted into civicrm_contribution upon clicking "Save").

Hope this helps,
Tamar


How do I find the mails belonging to a particular mailing by looking at the SQL tables? I've the dump of civicrm_mailing_event_delivered table. It has 3 fields - id, event_queue_id and timestamp.

By looking at this table, how do I find the mails belonging to one particular mailing? Why is it wrong to assume that every mail in a mailing is sent at the same time? When I do Administer->Settings->Schedule Jobs-> Send Scheduled  mailings -> Execute now, it sends all the mails in the mailing at the same time.

Try the civicrm_mailing_recipients table - mailing_id tells you which Mailing they relate to. Is that what you are after?


How can I hide or modify page name This might more be a Drupal rather than a CiviCRM question but how do I hide or modify the name of a page like in this example? It's CiviCRM home page here.

If you just want to hide on that particular page one option is to add this in css/extras.css

body.page-civicrm-dashboard div#tabs-wrapper h1 {
  display: none;
}


Error when trying to connect to civicrm from gmail using civigmail chrome extension by vedaconsulting: Error unsupported response type I am having trouble getting the civicrm gmail chrome extension to work. I am using the intructions here https://vedaconsulting.co.uk/civigmail-chrome-extension. When I click on the "connect civi" button that is added to my gmail page I get an oauth login page for my site but after entering in the correct information the following error flashes across the top of my screen.

CiviCRM 4.7.17
Civicrm ext: Gmailapi 1.0-alpha1
Chrome: 57.0.2987.133
Chrome ext: CiviGmail 0.2.1

Error message

error: unsupported response type
error description: implicit grant type not supported
state: null

Any help on this would be appreciated

Regards
Steven

I was able to get the oauth login to work by checking "Allow the implicit flow" on the basic settings for the oauth2 server I setup.

/admin/structure/oauth2-servers/manage/[server-name]


Need historical address information I inadvertently changed an address on a contact and need to change it back to it's previous address.  How do I find historical address information?

This is only possible if you have "detailed logging" enabled.  If not, you'll need to restore a backup copy of your database (to a test server!) and do a comparison.

You can check to see if you have detailed logging enabled at Administer menu » System Settings » Misc, under Logging (see screenshot).  If you do NOT have this enabled, please read the logging documentation before enabling it.  If you have shared hosting, you may not be allowed to turn this on; if you run CiviCRM on your own server or VPS, then you should have no problem.

If you DO have detailed logging enabled:

Go to the contact record with the changed address.
Click the Change Log tab.
Find the change that corresponds to the date that the address was changed and click Update next to it.
You should see before-and-after results.


Cron breaks after upgrading PHP I'm running CiviCRM 4.5.5, Having recently upgraded to WordPress 4.9.5 and PHP 5.6 (mailing was flawless just prior to this). Latest scheduled mailing failed to initiate, and a URL method test of cron.php generated the following error:

Parse error: syntax error, unexpected 'clone' (T_CLONE), expecting '(' in /.../wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php(207) : eval()'d code on line 1

Is there any simple way to fix this? (After the time it took to set CiviCRM up several years ago, I'm reluctant to upgrade--I'm a volunteer, not a tech.)

As PHP develops, some code that used to work in older versions fails in newer versions.  The CiviCRM code gets updated to accommodate those changes - but obviously if you don't upgrade you don't get those fixes.

Your fix is to downgrade the version of PHP, then upgrade CiviCRM, then upgrade PHP again.  You can find a table of supported PHP vs CiviCRM versions in the Administration Guide

If you need help upgrading see Find an Expert  (including me!)


Contact Management - Best practices for couples and households What are the best practices for storing couples and households?
Currently, every contact is an individual and a household is created for couples and families only.
This causes two undesirable outcomes.

1) When creating labels, if I select the 'merge all contacts of the same household' option, the children are also included in the label. I just want the parents.

2) When making PDF letters for all my contacts, I only want 1 letter per household but I end up with one for each spouse.

How do you avoid this situation?

We have been going over this a lot with my fundraising team, trying to find a happy medium. When generating labels or PDF letters for one per household, be sure to create labels with only households. Then, you can even create a smart group that consists of individuals that are also part of a household and exclude that group from the rest of the "individuals" mailing list so that you don't get labels with both households and the same people individually.

Every time someone proofs the labels for duplicate members of the household, they should mark it up and have someone change the data in the CRM to add them to a household.


How to add menu item and content How do I add a new menu item (i.e. after the standard item Contacts, Members, Administration etc) and page which would contain a login to our mail. (Mail will display on this page (the new menu)).

Someone can point me in the right direction?

in the menu->Administrater->Customize data and Screen->Navigation (civicrm/admin/menu), you can edit the menu and add entries


Contribution Confirmation Page Issue in Joomla after upgrade Friends
I have upgraded a few Joomla sites to the new 5.37.2 version. Now on all sites, the contribution confirm page does not work. Irrespective 'Go Back' or 'Confirm Contribution' is clicked; you are immediately redirected to the home page. When I disable / deselect this confirmation page in the setup, the contribution gets recorded with no issue.
Thanks :)
Sri

After a long search and resetting paths and clearing cache and checking the .setting files 100s of times the issue was not with the site URL vs the .setting URLS being different aliases as pointed by many of the answers found; it was a damn malware!! 3 sites with the same phishing link in the defines.php in the includes folder. Who would have guessed that. Ths submissions were attempted to be redirected and civi pushes it back to the home page.
As always curse the virus and malware creators!!


How do I reclassify a contact to be a household when it has been created as an organisation? Some of our household contacts have been wrongly inputted as organisations and I would like to alter the classification of the contact to make it a household rather than an organisation and vice versa.....

Helen, Welcome to CiviCRM stack exchange. The Contact Editor extension provides UI to change contact types.


Why do links in system PCP welcome emails fail? I am using 4.6.3 on D7. I have set up PCP campaign associated with a contribution page. Contribution page is active (no end date). The user creates a page successfully, but they do not create a password in process of creating the PCP, even though the profile I am using in the PCP tab requires a user login.

So, they can't log back in after successfully creating the page.

When the user gets their system-generated PCP Welcome email, they are provided links to "login to your account" and "Click this link and follow the prompts". These fail (get page not available message in Chrome).

I looked at the system template for the email. Looks good.

Any thoughts about the problem would be helpful! Thanks!

I think you may have two different issues here.  I left a comment for one.

As for the lack of account signup - go to www.yoursite.org/admin/config/people/accounts (or, if you have standard Drupal menus, Configuration menu > People > Account Settings.  Under Registration and cancellation, Who can register accounts - ensure that the value is set to "Visitors" or "Visitors, but administrator approval is required".  If it's set to "Administrators Only", the account signup won't appear on the profile.


HTTP ERROR 500 for New Mailing after SendGrid SMTP Relay setup I've set up SendGrid in order to better understand issues we are having with our newsletters. In the Settings -Outbound Mail, I am able to Save and Send Email. However, when I go to Mailing > New Mailing, I get: This page isn’t working www.oursitename.org is currently unable to handle this request. HTTP ERROR 500

More often than not, I find 500 errors to be server errors where I need my host's help with it. It could be that a php setting is not high enough, such as memory allocated or execution time on a script. I also get it when I am running into a security issue on the server. Usually tech support has me try the process while they are working with me so they can see the server logs in real time. They just need your IP address first so that they can follow along.

What CMS are you using? If it's Drupal, I can tell you real quick how to find your PHP settings. Not sure if it is in the same place in the other systems.


HowTo: crmApi get rows with date between I want to get all memberships with start date between '2016-01-01' and '2016-06-01' using crmApi(). Here's my code that's not working:

  angular.module('angularmemberships').config(function($routeProvider) {
  $routeProvider.when('/memberships', {
    controller: 'AngularmembershipsMembershipsCtrl',
    templateUrl: '~/angularmemberships/MembershipsCtrl.html',

    resolve: {
      memberships: function(crmApi) {
        return crmApi('Membership', 'get', {
          sequential: true,
          rowCount: 100,
          start_date: ['2016-01-01', '2016-06-01'],
          sort: 'start_date DESC',
        });
      },
    }
  });
}
);

If I specify single date (start_date: '2016-01-01') it works (returns rows fot that date), but how do I get rows for a date range?

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

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


After upgrade to 4.7.23., icons do not show (Civicrm on WordPress) (SOLVED) As you can see in the picture below, icons do not show. They are missing on all pages, also on buttons. This does not change after emptying cache and rebuilding the menu. I've also checked the resource URL, and it seems to be correct. Do you have any idea, what might be the problem?
Thanks a lot in advance and best regards!!

Following my comment - You need to provide existing path in the resource url and directories page. Click the help icon to see the values of diferent global variables that you can make use of(civicrm.files, etc).

You can override these values in civicrm.setting.php file according to your paths. More info at https://civicrm.stackexchange.com/a/19498/245


Entity Relationship Between Grant and Case I'm exploring Civicrm for a client that processes emergency grants for individuals with medical, and other issues.  There is a process to fill out forms which often requires follow-up in the workflow.

For the architecture, I plan to use grants (and the grant application extension) to collect and approve grant applications (since this is designed with financial accounting in mind) but also create a case and activities to manage the application process (followup, approval, etc.).

There is a close entity relationship between the grant application and the Case.  Since civicrm does not (yet) have entity relationship or lookup custom fields, does anyone have a suggestion of how to approach this relatively simple requirement?  Basically, Grants and Cases would each have a reciprocal field to connect each other.

I'm sure the "answer" will require creating an extension (would prefer to avoid maintaining it).  I could also do this in Drupal with entities / views / rules but wondering if there are any other clever approaches.

If you are using Drupal as your CMS then one option would be to set-up a webform that simultaneously opens a case and a grant (yes, webforms can do both at once). In that case the webform submission itself could serve as the link between the two, or you could make a more explicit link via custom fields.


CiviCase tab not showing up on contact summary When I open a case with a contact, the case tab does not show up on their contact summary. The case exists I can edit it through the case dashboard and it creates the correct relationships. I did a smarty debug and there's no tab info for case, so it's not just 'hiding'. I also tried on more than one contact, and more than one contact sub type, no dice.

Any ideas why the case tab doesn't populate? Or where I can go poking to figure it out.

(I'm running civic 4.6.4 on WP 4.4.4)

Check the display preferences (Admin > Customize .. > Display Prefs) and make sure for Viewing Contacts that Cases is selected


Membership Status not updating beyond Grace to Expired The Grace status is set to end 2 years after Membership End Date. At that point the Expired status should kick in. The Grace status is activated correctly at Membership End Date, but that status is NOT ending at the "after 2 years" mark.
The Scheduled Job for updating membership status is executing OK.
Some of our memberships are now 3 years or more past their End Date - does the system recognise those old dates and update status accordingly? Or should these be manually overwritten?

It sounds like there's a misconfiguration of your Membership Status Rules.
Please review them at Administer menu >> CiviMember >> Membership Status Rules.  Pay special attention to the Grace and Expired rules, especially to the Start Date Adjustment and End Date Adjustment.
If you're not sure how to interpret what you're seeing, feel free to edit your question to include screenshots.


What is the status of CiviBooking for CiviCRM 4.6.x Currently CiviBooking works for the LTS of 4.4.x. We are taking a look at this for 4.6.x so putting it up as a question to track progress

We are pleased to announce CiviBooking 1.5 is finally released!

This version brings compatibility with:

CiviCRM 4.5.x (not actively maintained)
CiviCRM 4.6.x
CiviCRM 4.7.x

It also contains a new permission structure for managing bookings.

Please feel free to get in touch if you have any question or encountered any issue. We will be actively maintaining the issue queue.

Updates:

CiviCRM 4.6+ compatibility
CiviBooking Permissions
Improved consistency of permission structure for managing bookings
Improved CiviCRM version compatibility
Improved menu handling
Fixed day view criteria
Fixed additional charge modal problem

The new version of the extension can be downloaded here


Add Custom Field to Core Field Group I'd like to add a custom field to the "core" demographics fieldgroup: the place of birth. I created a custom field, but I can't figure out, how to put it into demographics fieldgroup. Is it possible to do somehow?

Thanks.

You can use JS to move custom field from custom group accordian to demographics accordian.

https://docs.civicrm.org/dev/en/latest/framework/resources/

https://docs.civicrm.org/dev/en/latest/standards/javascript/


Search by date removed from group I need to rebuild some groups where all the members were removed by the link between CiviCRM and Mailchimp. I have found the ability to list all members of a group who have ever been removed from that group, but I also need to be able to filter this by the date they were removed. Is there any way to search for members of a group who were removed on a specific date?

I'm not sure if this functionality exists from the UI or API. I think it's not.

A quick recall says that this info is being stored in civicrm_subscription_history table where contact_id, group_id, status(Added or Removed) and date(the one when the action was triggered) can be viewed.


can an event have activities asssociated with it? Looking to use CIVICRM as an event scheduler with "activities" associated with an event.  Similar to class scheduling for a day long seminar.

Event Attendees would sign up for 1 or more activities within the event.

Please advise!

CiviCRM lets you create price sets, which can be used to create an event sign-up with all kinds of different selections, such as workshops in different time slots. You'd create a price set field for each time slot, and the field would be set up with as many options as you needed to choose from. There can be a price associated with each different selection, or they can be "free"/zero dollar, or some combination.


How to create Drupal view to show CiviEvents and Drupal Events I'm trying to create a view to show both CiviEvents and Drupal Events filtered by dates.

I can create a Drupal view to show Drupal Events fields and I can create a view to show CiviEvent fields but I can't create a view to show both.
Am I missing something obvious here or is it not possible due to the two databases.

We are using Drupal 7 and civicrm 4.7.24. We have seperate databases and have the CiviCRM Entity module installed.

I don't think you are missing anything obvious. They are completely different Entity Types so you can't do this in a single view.

This is a constraint of Views.

If you were to create a Drupal node linked to each CiviEvent (using CiviCRM Entities) then you would be able to display all items as 'content' and provide links to the Info and Registration pages from that.

There has been some good documentation about doing that by skvare.com


CiviDesk's Google Apps Sync Extension I'm considering using CiviDesk's Google Apps Sync extension with CiviCRM 4.7 to update my domain's Directory. Since the information page (https://civicrm.org/extensions/google-apps-sync) is a bit old and light on details, I'd like to ask this community a few questions:

It was compatible as of civicrm 4.3. Is anyone using it with later versions?
On initial use, does it empty and replace your existing Google Apps Directory, add to it, or synchronize both databases.

I've also asked CiviDesk these questions and will update this post if I hear from them.

I haven't heard back from CiviDesk, but I did go on github and find version 1.1 which claims compatibility with CiviCRM 4.5. I felt like that was close enough to my 4.7.3 for me to take the leap. I initially got a bunch of errors (see list below the break), but they are not persistent.

My Results

Success. The only errors I've spotted were due to my contacts data having undesirable unicode characters. Once corrected (By editing the table civicdesk_sync_googleaps) the next cron run or forced execution puts it back to work.

What to expect in your Google Apps Directory when the sync happens:

Wait 24-48 hours for the first results to appear. You can blame Google for that.
Pre-existing contacts are not updated or deleted. New contacts will be ADDED to the Google Apps Directory. On subsequent runs, these newly-added contacts should update as CiviCRM does (I base this on the fact that the extension records Google's own contact ID for what I can only assume will be future use).
Added contacts will be populated with Name, Organization, Job Title, Email, and a link to their CiviCRM profile. As far as I can tell, mailing addresses are NOT synced.
The default sync speed it 50 contacts per cron run. I cranked mine up to 100 with no ill effects.

That's about it. I'm including error messages below for searchability reasons for the community--I'm not expecting anyone to offer fixes especially since they were just one-time errors.

-- Just error messages below. Avoid reading further if they make you sleepy. --

Notice: Undefined index: child in _cividesk_insert_navigationMenu() (line 58 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/cividesk.ext.php).

Notice: Undefined index: oauth_email in CRM_Admin_Form_Setting_GoogleApps->_checkOAuth() (line 142 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: oauth_key in CRM_Admin_Form_Setting_GoogleApps->_checkOAuth() (line 142 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: oauth_secret in CRM_Admin_Form_Setting_GoogleApps->_checkOAuth() (line 142 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: domain in CRM_Admin_Form_Setting_GoogleApps->_checkOAuth() (line 144 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: domain in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 44 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: oauth_key in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 58 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: oauth_secret in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 63 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: last_sync in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 74 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: processed in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 75 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).

Notice: Undefined index: oauth_email in CRM_Admin_Form_Setting_GoogleApps->_checkOAuth() (line 142 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: oauth_key in CRM_Admin_Form_Setting_GoogleApps->_checkOAuth() (line 142 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: oauth_secret in CRM_Admin_Form_Setting_GoogleApps->_checkOAuth() (line 142 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: domain in CRM_Admin_Form_Setting_GoogleApps->_checkOAuth() (line 144 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: domain in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 44 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: oauth_key in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 58 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: oauth_secret in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 63 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: processed in CRM_Admin_Form_Setting_GoogleApps->buildQuickForm() (line 75 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined variable: resetStr in CRM_Admin_Form_Setting_GoogleApps->postProcess() (line 124 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/CRM/Admin/Form/Setting/GoogleApps.php).
Notice: Undefined index: processed in civicrm_api3_job_googleapps_sync() (line 184 of /home/mysite/public_html/sites/default/files/civicrm/upload/com.cividesk.sync.googleapps-1.0/api/v3/Job/GoogleappsSync.php).


Membership status rules query This is a follow-up from a previous question that we couldn't find a resolution for (Membership status rules not updating statuses).
We have three status rules once a membership has not been renewed - Grace, Lapsed and Not Renewed. 'Not Renewed' is an extension of Lapsed and we consider it more permanent than lapsed and cannot target those members again unless they get in touch due to data protection/spam etc.
The issue was that membership status of those members more than 3 months past end date did not get updated to 'Not renewed' and stayed at lapsed.  Thought this was maybe just a limitation of the number of 'lasped' membership status you could have.  However, checking today, I see a small number of membership statuses have updated to 'not renewed'. In all cases, there was a failed PayPal transaction so the contribution is still pending.
Able to add pictures of the rules this time for clarity. Anyone have any ideas what we're doing wrong?
Thanks for your time :-)

Sorry I thought I'd answered previously but I'm 99% this is down to the fact that once a membership status becomes ended the automated rules then wont touch it. So the first status of type ended in theory would be the one that gets applied and any subsequent ones wouldn't be something that automatically gets moved on. I'm 99% thats the issue your facing, a previous question asked if CiviRules could be used to change membership statuses (which it cant yet), your case is probably one that fits a CiviRules status change I think. Let me know if you prove the theory!


Drupal CiviCRM Menu not full length (shoreditch and otherwise) I upgraded three sites today.

Site 1 - Already had Civi 5.6 - updated to Drupal 7.60 and Shoreditch (SD) Alpha26. Result: CiviCRM menu is not full length.

Site 2: Updated from SD 25 to 26 - and to Drupal 7.60 - No issues - Was civi 5.3, upgraded to 5.6 - Result: Civi menu is not full length.

Site 3: Updated to Civi 5.6 and SD 26 - Wordpress site - no issues.

I do not think this is a Shoreditch issue, rather there is a menu issue between Civi 5.6 & Drupal 7.6.

Could this be related to this Drupal 8 change?

This isn't directly related to the Drupal 8 change but instead is related to a change to the civicrm-drupal7.js file.

The JS is forcing the CiviCRM menu to 97% width - to allow for the Drupal admin toolbar's shortcut bar toggle element. It doesn't however account for sites which don't use the core toolbar module or styling or sites which don't use the toggle element.

A fix for this issue has been committed to CiviCRM (located here) and should be merged in to 5.8 at the latest.

The release summary documentation is worth reading and provides a high level overview of how releases are managed and what kinds of changes are (generally) included/accepted at which stages.


Somehow our summary fields got a old version of sumfields.php. What's the best way to get the current versions? The triggers weren't enabled and I tried to get them enabled.  Couldn't seem to.  Tried uninstalling and reinstalling still didn't work.  Dug into it and found it was getting an error when trying to copy the summary fields data from the temp table into the custom fields table.  The error was violating a constraint.  Debugged it a bit and found that it was creating a row with a null contact_id.  Dug into that and found that sumfields.php was doing an outer join incorrectly.  I figured that couldn't be current code and looked at the latest and greatest and found that sumfields.php file was different from ours.  Sadly, there are no version numbers or anything on that file so it's hard to tell what version it is.

The info files says it's version 3.1.3.  I guessing the last upgrade somehow messed this up.

So the question is what's the best way to get current.  Is it to just replace all the files in the custom_ext with the current ones or is it to uninstall and delete those files or maybe change the info so it thinks it older so I'll prompt for upgrade.

I ended up just changing the version number in the info file to 3.1.0.  Then on the Manage Extensions page it then said there was an upgrade.  Hit upgrade and everything was good.


noob query : Importing contacts and membership I am going to freshly import data from excel into civiCRM. I have some contact related information like addresses, educational info, etc and also membership data like membership date, enrolled by whom, member center etc.

what are all my possibilities and their pros/cons?

Upload contact info in a separate excel and then should I upload membership info in a separate excel with the unique ID mentioned in membership excel?
upload both contact and membership together (if possible)?
Any other methods?

Contact records must exist before you import membership data. If you want to import membership data for contacts that do not yet exist in CiviCRM, you will first need to import the Contact data. Make sure the contact data has an External ID so you can include this External ID with your membership data to associate these records with the related contacts. If you are importing membership data for contacts that already exist, then you will need the Internal Contact ID or the fields from your Unsupervised Duplicate Matching Rule to associate the related membership data with the correct contact.

Your import membership data file MUST contain both Membership Type and Start Date. The membership types listed must exactly match the membership types set up by your CiviCRM Administrator. The start date should use the date format specified for your CiviCRM installation. If your import file does not contain these fields then you will not be able to import it.

You must import membership data for different contact types separately. Importing files with more than one contact type will not work. (You must import new memberships and renewals separately also.)

https://docs.civicrm.org/user/en/4.7/membership/manual-entry-of-memberships/


How to enable "Contribution note" field while recording Contribution in the backend? "Contribution Note" field seems only available thru Profile. Although it looks like a civicrm core component. I did not create this using custom fields. How Can I enable it as part of other contribution related record.

Once used this field on Online contribution page, it appears in view contribution like this

This is a default field already related with contribution

when creating a contribution just look for "Additional Details" profile where you can find "Notes" add a value to it you will get the same result

Also you can find the field values in the DB table called "civicrm_note"


Error You do not have sufficient permission to transfer/cancel this participant If "Allow self-service cancellation or transfer" is enabled on an event, there is a link to the event self-service page contained in the registration confirmation email. When a user clicks on this link, they receive the following message on our site:

"Error You do not have sufficient permission to transfer/cancel this participant."

My questions: Is there a permission which allows anonymous users following the link to self-service the registration? Or is this functionality only available to logged-in users?

Jason, Welcome to stackexchange. Sorry for the problem you facing. There is no specific permission required to cancel your registration and neither the user should be logged in. However the url should have correct parameter i.e contact checksum. eg

http://www.domain.org/civicrm/event/selfsvcupdate?reset=1&pid=53&cs=7f51ab615c6bdcb785d1947e122b1c14_1548964126_inf

If the cs is invalid then you will get above error. So please check if the url is correct and hopefully not encoded.

HTH

Pradeep


Why do multiple shortcodes on a single wordpress page not working? I saw that this issue was resolved in version 4.6 (which I am on) but for some reason when I add shortcode for a contribution page followed by another shortcode for a membership signup (to enter their personal info etc), the page reverts to two hyperlinks (says: "find out more") and if I click on them it brings me to separate pages. I want both to display on the same page. What am I doing wrong?

You're not doing anything wrong JDM - it's just that Civi itself is unable to do this. The shortcode "teaser" is the next best thing, i.e. a way to show that Civi content exists and offering a way to navigate to the Civi content.


CiviCRM Home Menu Blank - Drupal 7 Thank you for looking at my question.

I am a Drupal and Civi newbie.

When I installed CiviCRM the CiviCRM menu appears in the menu bar however, there are no dropdowns. When I click on it the page appears blank and the "configure your dashboard button does nothing". The pages are there when I type in the url but the links dont show up in the menu.

I have:

Uninstalled and reinstalled,
Cleared caches,
Confirmed the site/default folder is writable,
Confirmed CIVICRM_UF_BASEURL,
Moved menu to Management--Admin,
Disabled and re-enabled,
Installed the Admin Menu module.

How do I get the menu to appear properly?

Thank you for your help.

P.S. received this error also which may be related to menus: Fatal error: Unsupported operand types in /home/xxx/public_html/xxx/modules/system/system.module on line 2134

UPDATE

Heres the debugging console text: imgur.com/a/nEcTD

civicrm?reset=1:46 Mixed Content: The page at 'https://beta.myblackmarket.uk/civicrm?reset=1' was loaded over HTTPS, but requested an insecure stylesheet 'http://fonts.googleapis.com/css?family=Lato:300,400,700,900,400italic'. This request has been blocked; the content must be served over HTTPS.
civicrm?reset=1:50 Mixed Content: The page at 'https://beta.myblackmarket.uk/civicrm?reset=1' was loaded over HTTPS, but requested an insecure stylesheet 'http://fonts.googleapis.com/css?family=Playfair+Display:900'. This request has been blocked; the content must be served over HTTPS.
yM1bINZq:7 Uncaught TypeError: $ is not a function
civicrm:447 Uncaught TypeError: CRM.$ is not a function
civicrm:699 Uncaught TypeError: CRM.$ is not a function
webform_civicrm_forms.js:403 Uncaught ReferenceError: jQuery is not defined
civicrm?reset=1:1 Mixed Content: The page at 'https://beta.myblackmarket.uk/civicrm?reset=1' was loaded over HTTPS, but requested an insecure script 'http://maps.google.com/maps/api/js?sensor=true'. This request has been blocked; the content must be served over HTTPS.

This sounds like a Javascript error - please check out this guide to troubleshooting Javascript errors in CiviCRM.  Feel free to update the question with more info if this gets you further to a solution.

Also - that fatal error sounds like it's related to Drupal core.  I'd fix that before trying to get CiviCRM working - it's much harder to fix a system broken in two places than one!


Participant wants to cancel Event I have a customer who wants to send a hashed link in an e-mail reply (or anything else that will do the trick) to a participant so that they can cancel their registration for an event without having to phone or send an e-mail.
We use profiles in the Events.
We use CivicRM 4.6.12

I know this is over a year old, but I think it deserves an update. In 4.7, functionality has been added to allow for user self-service cancelation. When enabled for an Event (on the online registration tab), it sends a cancel or transfer link in the confirmation email. See https://issues.civicrm.org/jira/browse/CRM-16761


Financial Account cannot be change to non deductible This seems like a core issue, possible with 4.7, but I cannot find under https://lab.civicrm.org/groups/dev/-/issues

Once a Financial Account has been marked as deductible, it cannot be changed back to non-deductible.

To reproduce:
Edit a non deductible Financial Account
Check box for "deductible?"
Save
On the Financial Accounts screen, the account will now show as Deductible
Edit the same Financial Account (which is now deductible)
Uncheck box for "deductible?"
Save
On the Financial Accounts screen, the account will not have changed

This is a core bug and have reported issue at https://lab.civicrm.org/dev/financial/issues/28  and also submitted fix at https://github.com/civicrm/civicrm-core/pull/12500

Can you please try after applying the patch from here?

If the patch works without any error than please comment on the PR as it would help for PR to get merge quickly into core.

HTH

Pradeep