# Question
Title: WordPress Contribution Page Submission Not Working
I have a web site hosted on IIS (6.2) with PHP 7.1.3 with WP 5.2.3 and Civicrm 5.17.4. My contribution forms are not submitting (it does not proceed to the confirmation page or get actually submitted). To clear off that it is not My Theme or the Other plugins that are playing up, I have installed a fresh copy of WP / Civicrm and used the WP 2019 default theme and created a sample contribution form to test.

The test form does not work either. Already tried resetting cache and paths and providing more rights to the web folder. Anyone else facing the same issue or if able to help will highly appreciate!

# Answer
> 1 votes
Have you checked your Civicrm logs? Would be the best place to start. See what civicrm is complaining about.

---
Tags: wordpress
---


# Question
Title: 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.

# Answer
> 2 votes
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.

1. A server-side CLI script may chug through the entire queue without any timeouts.
2. 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.

---
Tags: import, documentation
---


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

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

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

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

# Answer
I had this in an upgrade scenario when I forgot to clear my templates\_c folder. Clearing that folder solved the issue.
> 1 votes

---
Tags: error, install, symfony
---


# Question
Title: From email address not changing per user
When we send emails, the person receiving the email can reply to the sender, and it has the correct name of the sender, but the email address it says the email is from isn't the sender. My name is Helen. My colleague's name is Clare. Clare sends an email from her user account. The receiver gets an email from 'Clare \< helen@....\> The 'from email address' options contains all the correct names and emails. Any help would be massively appreciated!

# Answer
> 1 votes
In addition to the emails shown in the **Mailings menu » From Email Addresses**, you can also use the email address associated with the user you're logged in as. I would check Clare's record to see what emails are there; it sounds like your email might be present on Clare's record.

If you want to restrict users to ONLY use emails avilable in **Mailings menu » From Email Addresses**, you can go to **Administer menu » System Settings » Outbound Mail** and set *Allow mail from logged in contact* to **No**. Note that in older versions of CiviCRM I believe this option is located somewhere in **Administer menu » CiviMail**.

---
Tags: email
---


# Question
Title: Any new functionality to sync smart groups to Drupal roles?
When last I checked CiviGroup Roles Sync did not work with Smart Groups. Has this changed with later versions (I'm on 5.17).

There were some workarounds discussed back in 2017.

# Answer
> 1 votes
It works just fine for us. We are on Civi 5.8 and Drupal 7.x.

---
Tags: drupal, roles, civigroup, sync
---


# Question
Title: How to allow a user to edit certain Civi contact records without seeing others
I've been asked by a client if one of their members can be allowed to create and edit records for prospects (ie people who may or may not go on to become actual members).

The first part - creating a simple data entry form as a profile - was easy to do. I can give the member unique access to a webpage which contains that form. But what I'm not sure about is record editing. Does the member need to have access to Civi itself? I created a 'Prospect Admin' ACL and assigned it to the member through a Prospect Admin Group. But I'm not sure where we go from here. Is it possible to set it up so the member is able to access and edit prospect records without being able to edit the WordPress site?

Any advice would be welcome!

# Answer
> 4 votes
There are a couple of different ways you can go about this.

* One would be to grant access to CiviCRM, and the bare minimum WordPress access needed to actually get into CiviCRM. You would remove the "View all CiviCRM contacts" permission from this role (also "Edit all CiviCRM contacts") and then they only have access to contacts based on their ACL. This method gives the member access to the CiviCRM interface.
* The second method is conjecture based on a similar technique I've used with Drupal Webform-CiviCRM integration - but I'm guessing you could use a contact reference widget on Caldera Forms CiviCRM to let a (privileged) member pull up and edit existing records. This is a bit more work, but lets you limit the interface that the member sees to the relevant fields.

If you go with the first approach, consider the Contact Layout Editor extension to give the member(s) a more limited view of the CiviCRM interface, so they can't view/edit fields/tabs they ought not to.

# Answer
> 2 votes
Rather than using ACLs, another approach would be to use the ACLs the Permissioned Relationships extension provides - https://civicrm.org/extensions/relationship-permissions-acls

If when cfreating contacts, you also set up the Relationship, then you can give access to the backend such that the restricted users will only see the Contacts they have a permissioned relationship with.

This can be further extended by allowing second degree permissions. (If the second degree permissions is checked then on admin/misc screen)

May be useful to you

---
Tags: wordpress, profile
---


title: 503 Error with large CSV import

text:
# Question
Title: 503 Error with large CSV import
I’m hoping to use CiviCRM to manage campaign contacts for voters across many counties and need to upload BOE data to do it. It’s about 210 MB in total, but I have it broken up into CSVs under 30 MB each. Unfortunately, I keep running into a 503 error when I try to use the import wizard with my smallest file (around 3 MB).

I’m using CiviCRM 5.17.4 on Joomla 3.9.12. I’ve increased Joomla’s session timeout and added a bit of code to civicrm\_settings.php, following a tip on this guide: https://wiki.civicrm.org/confluence/display/CRMDOC/Importing+Data

I know uploads of this size are a tall order; is there anything that I’m missing or anything else that can be done? There are about a million registered voters here and I don’t think uploading them 4,000 at a time is feasible.

EDIT: If this goes unanswered and someone else runs into the same problem, you can whip up a BAT file to cut up CSVs for you.

https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/

# Answer
> 2 votes
That's almost certainly a timeout issue - you can increase your timeout in `php.ini`, but I wouldn't use the UI at all for a million contacts. Consider using a command-line import, where there should be no timeouts.

There are several approaches you can take.

* Use the command-line API CSV import. This is pretty solid but you need to import each file multiple times - once for contact data, once for postal addresses, once for phone, once for email. If you script it, it's not bad. I often use Hitachi Kettle to do this.
* Use the Data Processor plugin and the REST API. There's a recent blog post detailing this approach (using Hitachi Kettle actually). This lets you import each file once. However, the REST API is going to do something like 10 records/second, command-line import is far faster but requires command-line access to the server.
* Write your own PHP script so you don't need to break the data up.

---
Tags: joomla, import, data-import
---


title: Data privacy for test environments

text:
# Question
Title: Data privacy for test environments
I'm looking to script the standup of a development environment...specifically, a dev environment that I can allow devs to work in without them seeing personal or sensitive information about our clients.

* Partly this is because some of our devs are also our clients and I don't want them to see their fellow clients' information.
* Partly it is because some of our devs are all over the world and I feel I owe it to our users who share their very personal details to protect that information.

My thinking on how to achieve this goes something like this:

*System Stuff*

* Use docker with buildkit to jumpstart a Drupal / Civi environment
* Pull latest code / themes / modules from our prod site and push it into docker
* Dump latest prod database for Drupal and Civi and push that into docker
* Make changes to configuration. e.g. stripe keys, SMTP, etc.

*Privacy Stuff - CiviCRM*

* Replace all first and last names with random words
* Replace all street addresses with random words. Leave postal codes and states.
* Replace all phone numbers with random numbers.
* Delete all sensitive activities (e.g. our custom ones where we collect personal information), or replace the activities' data with random data
* Replace all email addresses with test addresses

*Privacy Stuff - Drupal*

* Replace all webform submissions with random information, at least for those with private info

I fully expected there to be something already out there in our community that I could use for the CiviCRM privacy stuff, but it doesn't seem to be the case.

* Do any of you have suggestions for existing tools or scripts?
* What do you do for allowing 3rd party developers to work with your CiviCRM instance?

Thanks

PS: Why do this instead of just put in some test users? We categorize our users in various ways so creating, say, 5 test users of each type is becoming increasingly cumbersome. Also, it is helpful to be able to test against real data such as our set of historical events, user event registrations, and so on. I figured writing one anonymization script would be easier than writing and maintaining a script that creates realistic test data. But tell me if you think I'm going about this wrong!

# Answer
You should check out the Anonymizer extension.

A word of warning - make sure that outgoing email is disabled! You don't want any of your CiviRules etc. being triggered and sending out emails. I saw a colleague who had CiviCRM WordPress Profile Sync installed, which meant that changing the email address in Civi changed the email in WordPress - which sent out a "your email address has been changed" message to everyone who had a login...
> 0 votes

---
Tags: contacts, privacy
---


title: How can I delete all CiviCRM Campaigns?

text:
# Question
Title: How can I delete all CiviCRM Campaigns?
How can I delete all CiviCRM Campaigns without having to delete one at a time? I have over 500 of them. Is there a way to do this with the API explorer?

# Answer
> 5 votes
Yes, you can do that with chaining in API Explorer:

```
$result = civicrm_api3('Campaign', 'get', [
  'sequential' => 1,
  'options' => ['limit' => 0],
  'api.Campaign.delete' => ['id' => "\$value.id"],
]);

```

# Answer
> 2 votes
The API Explorer will only delete one at a time, unfortunately.

If you have command-line access, `cv` is a nice way to access the API to do this. You can run a command line: `cv api Campaign.delete id=1`.

Sometimes if I'm feeling lazy and I don't want to code something to mass delete, I'll do the following:

* Open a spreadsheet program.
* In column A, start filling in numbers: 1, 2, 3.
* Select those cells and then drag. LibreOffice Calc, Google Sheets and Excel all know that you want to continue the series. Continue until you have however many rows you need (in your case, over 500).
* In Cell B1, put the following formula:

```
="cv api Campaign.delete id=" & A1

```
* Copy/paste that down all of column B. The end result is that you'll have 500+ lines that will each delete a single campaign.
* Copy Column B, then paste it into a command line terminal.

---
Tags: civicampaign
---


# Question
Title: Where in the CiviCRM codebase do css and js resources get output for an AJAX url or snippet?
I'm trying to debug a Drupal/CiviCRM integration issue where js/css resources that are added in an extension are not getting output. I think it should get output as part of a form snippet that's getting loaded via ajax, and I can see that the code here: https://github.com/civicrm/civicrm-core/blob/master/CRM/Core/Resources.php manages the code interface that allows extensions to add in their css and js, but I can't figure out at what point all the added js/css gets output. And I care because for the code I'm working with (webform civicrm), it isn't getting output.

Presumably there's some core code somewhere that grabs the structured data via something like:

```
$resource = CRM_Core_Resources::singleton()

```

And then converts the $resource object into html for output?

In the case I care about I want my css/js added to the end of a form that's being loaded via ajax, and the code seems to support this via the isAjaxMode method.

# Answer
I haven't found the answer to this question, but I can avoid it instead.

These functions:

```
CRM_Core_Resources::singleton()->addScriptUrl()
CRM_Core_Resources::singleton()->addScriptFile()
CRM_Core_Resources::singleton()->addStyleFile()

```

all generate html that gets stored for later output, which is smart most of the time, so it can do some more processing (e.g. weeding out duplicates and/or compressing, whatever).

But if you look in the CRM\_Core\_Resources object, you can instead use the internal functions to generate the html and then manually add it to the html region that's going to get output in the ajax call.

Here's a patch that solved this for me, as an example.

https://github.com/iATSPayments/com.iatspayments.civicrm/commit/6441cd5dee2ee0163330cceb95b0ce4e3ae37fa8

Just adding js to the html being loaded doesn't always fire the functions that might get fired it was loaded with the original page, so you do have to pay attention to that.
> 2 votes

---
Tags: webform-civicrm, javascript
---


title: Error When Upgrading To 5.17

text:
# Question
Title: Error When Upgrading To 5.17
Wordpress install. Deleted out the CiviCRM folder like many times before. Reinstalled the new one. Get the following error: Error Details

> An error of type E\_COMPILE\_ERROR was caused in line 834 of the file /home/xxxxx/public\_html/wp-content/plugins/civicrm/civicrm.php. Error message: require\_once(): Failed opening required 'CRM/Core/ClassLoader.php' (include\_path='.:/opt/alt/php72/usr/share/pear')

# Answer
It's complaining about not being able to open `CRM/Core/ClassLoader.php` Does that file exist? Are the permissions correct to allow the webserver to read that file?
> 1 votes

# Answer
Another possibility is that you forgot to copy your civicrm.settings.php file into the new plugins/civicrm folder. See the docs at https://docs.civicrm.org/sysadmin/en/latest/upgrade/wordpress/
> 1 votes

---
Tags: wordpress, civicrm-home
---


# Question
Title: Donor set recurring start date on a Drupal Webform Contribution Integration
Drupal 7.67 Civi 5.13.4 iATSPayments

I have a webform for our contribution page. I just realized that with a civi Contribution Page I can allow donors to set the start date for their recurring donation. But that does not seem to be an option in the Webform settings.

Can I create a form component that uses the proper key to allow me to set this up in my webform?

# Answer
> 1 votes
The short answer is:

*No*.

Unfortunately Webform CiviCRM integration does not currently support selecting the start date for a recurring contribution.

The longer answer is that it would not be impossible nor incredibly complex to add this field as a supported option for the CiviCRM integration to allow you to expose this option via Webform & CiviCRM.

# Answer
> 1 votes
On a CiviCRM Contribution page - the select Future start date of a Recurring Contribution is added by our iATS Payments Extension (Configuration for it lives on the iATS Settings page).

Because it’s payment processor specific (it requires ability to tokenize a card) I’ve not created a field for it in Webform CiviCRM module.

Having said that - here’s what you can do: 1. configure your webform such that you end up creating a $1 recurring series. 2. on your webform collect the preferred date and amount. 3. manually edit the recurring series to transact on the donor’s prefered date (next scheduled contribution date) and set the amount.

---
Tags: webform-civicrm, recurring-contributions, iats
---


title: Check numbers in reports

text:
# Question
Title: Check numbers in reports
My client took great pains to record check numbers and payment amounts and wants to produce an event payment report which includes the check numbers associated with each registration. I can get everything in the report except the check numbers. I have confirmed that the check numbers are entered, they just aren't appearing the report. I've done this with standard reports and extended reports and the output is roughly the same. They need this report for their board. Any ideas of how we get there from here?

I did look at Bookkeeping report doesn't record check number for financial account/type but I'm not sure that it's the same issue and that item was never resolved that I see.

# Answer
> 1 votes
A workaround might be to run the contribution detail report filtering to event fees and select columns Source and Check Number, then do an excel vlookup() to cross-reference Source against the Event name in the event participants list (which I'm guessing is the report you're looking at).

---
Tags: civievent, civicontribute, civireport, contributions
---


# Question
Title: /civicrm-stable/5.17.5/civicrm-5.17.5-l10n.tar.gz does not download
I am trying to download version 5.17.5 via SourceForge.

civicrm-5.17.5-drupal.tar.gz downloads, but /civicrm-stable/5.17.5/civicrm-5.17.5-l10n.tar.gz does not.

# Answer
Why not get it from https://civicrm.org/download that seems to work OK
> 1 votes

---
Tags: localisation, core
---


# Question
Title: Is there a way to use the same webform for anonymous submission and for back office queries, i.e. hide existing contact box for anonymous
I've created fairly length webform that we use for registration and getting interest. People can either fill it out online or via a paper form that the back office then enters.

For the back office I want the existing contact box so they can query up existing contacts. For anonymous users that box is confusing as they can't do anything with it.

Is there a way to change the behavior and visibility of that box based upon role.

Right now I have two almost identical webforms.

We also use the same webform as a link in email with the cid and key for users to update their info.

# Answer
> 2 votes
In your webform, add a hidden field called Role

* set the default value to the token `[current-user:roles:first]`
* set the type to 'Hidden element' (Secure value looks like it should work but didn't in my test.)

Then on the Conditionals tab add the rule:

```
If Role is anonymous user
then Contact1: Existing Contact isn't shown

```

# Answer
> 2 votes
All you should have to do is edit the webform component field. Go to the 'Private' checkbox and tick it. Then only users who can access the field will be people who can access the webform results, which should only be your back office staff.

---
Tags: webform-civicrm
---


# Question
Title: Very New To Cron - Setting Up Schedule Jobs with Dreamhost
I'll try to be as thorough as I can while getting straight to the point. I am brand new to the idea of using WP-CLI, SSH, and Scheduled Cron jobs. Everything is Greek to me, so I am in desperate need of help.

I'm trying to remove the System Network Error that's triggered because scheduled cron jobs aren't set up on CiviCRM (v5.17.2).

The site is hosted on Dreamhost (shared server). I tried following the help documentation on CiviCRM's website (https://docs.civicrm.org/sysadmin/en/stable/setup/jobs/). I've completed steps one and two. The only scheduled job api that's active is the default version check job. The log came back with a "success" message when I executed it manually.

With step 3, I tried the WP-CLI method since it's a WordPress site. I tried multiple combinations. I wasn't sure exactly *how* to call the job.version\_check api. The instructions said to have a path to wp-cli, so I assumed that it would be to the folder in the plugin. When I did, I got back a message saying "this is a directory", which I assume was good and it would work (although, I wasn't sure what I was calling since there's just the "civicrm.php" file in the folder). Reading further in the article, I though I was to have it point to the "cli.php" or the "cron.php" files in the bin directory of the plugin. Each time, I would get a "permissions denied" message. I would change the permissions of the files and I would get "no such file or directory" and "command not found" messages, along with the "permissions denied" message.

When I got the "this is a directory" message, I moved on to step 4 and created a scheduled cron job using Dreamhosts' cron scheduler. I would still get back "permissions denied" messages. So, I read this article (https://civihosting.com/blog/how-to-make-a-cron-job-for-civicrm/) and created a .sh file. After it was all said and done, this was the last message I got:

```
sh: /home/dh_6x6vh8/civicron.sh: /bin/sh^M: bad interpreter: No such file or directory

```

Now, I'm stuck and I have no idea what to do or what I'm doing. I'm sorry for such a long explanation, but I wanted to make sure I was thorough without being too lengthy (which I did more, but it's a long story... if your interested in full details, please reach out). If there's a wonderful person in this system who can help me, please understand that I'm very new with cron jobs/SSH/CLI/etc, so whatever instructions you give, you'll have to talk to me like a little kid. Thank you so much for your help!

# Answer
I just set it up with dreamhost shared hosting. I went into cron jobs in my dreamhost control panel and added a new job. under command to run I put "/usr/bin/php /home/DREAMHOST-USER/EXAMPLE.COM/wp-content/plugins/civicrm/civicrm/bin/cli.php -u WP-USER -p WP-USER-PASS -e Job -a execute" Obviously leave out the quotation marks and change all the sections in CAPITAL letters
> 2 votes

# Answer
Welcome to SE! The error includes `/bin/sh^M: bad interpreter`. The `^M` part suggests you created the file on a Windows machine and copied it to your Linux server. Linux and Windows have different conventions for marking the end of a line. See this for more explanation.

For are many ways to fix that. If you have ssh to the Linux box try running this to convert the line endings:

```
dos2unix /home/dh_6x6vh8/civicron.sh

```

There are many other reasons why your cron job might not be working but this should get you past the 'bad interpreter' problem.
> 0 votes

---
Tags: wordpress, cron, cron-job
---


# Question
Title: Can't view "Public View" of "Scheduled and Sent Messages" as a Super User admin in CiviCRM. Incorrect URL being constructed
(Joomla 3.9.8)
(Civi 5.14.1)

When signed in as a Super User in CiviCRM, I am getting an error when trying to view the "Public View" of "Scheduled and Sent Messages" for Civi Mailings.

The error message I get is:
`You do not have permission to access this page.`

One thing I noticed is that my url loses 'administrator' when clicking "View Public View" and instead looks like this:
`index.php?option=com_civicrm&task=civicrm/mailing/view&id=413&reset=1`

If I manually remove index and replace it with administrator the url works:
`administrator/?option=com_civicrm&task=civicrm/mailing/view&id=413&reset=1`

I checked the Global Configuration in Joomla for `CiviMail: view public CiviMail content` and it is indeed allowed for a Super User, but it still does not work. The only way to get the 1st, Civi generated url to work is to set `CiviMail: view public CiviMail content` to enabled for all the public. I don't want that.

So my idea was to go into Civi's core, find out where this url is being created and change the `index?` part of the url to `administrator`. I am not sure where to find this. Does anyone know where this url is being constructed? If there is a better way of doing this, I would like to know as well.

# Answer
This may or may not be related, but there is an ongoing issue relating to when `/administrator` is included in the path. See https://lab.civicrm.org/dev/joomla/issues/5 for details.
> 2 votes

---
Tags: civimail, joomla, permissions
---


# Question
Title: Adding Field to Advanced Search CIviCRM Contribution
I'm trying to add Notes field to the advanced Contribution search so that I can do wildcard search on the basis of notes but the DAO throwing error: "unknown column", as it's not able to locate civicrm\_note table.

Here's my extension file

```
function MyExtension_civicrm_buildForm($formName, &$form) {
    if ($formName == 'CRM_Contribute_Form_Search' || $formName == 'CRM_Contact_Form_Search_Advanced') {
        $form->add('textarea',
          'contribution_note',
          ts('Note'),
          ['rows' => 4, 'cols' => 40],
          FALSE,
          array('class' => 'crm-form-textarea')
        );
    }
}

```

Custom template file

```
<tr>
  <td>
    {$form.contribution_note.label}<br />
    {$form.contribution_note.html}
  </td>
</tr>

```

After debugging I found the query is not making a join to civicrm\_note table. Here is the query I got on debugging.

```
SELECT civicrm_contribution.id, contact_a.id as contact_id, contact_a.contact_type as `contact_type`, contact_a.contact_sub_type as `contact_sub_type`, contact_a.sort_name as `sort_name`, civicrm_contribution.id as contribution_id, civicrm_contribution_recur.id as contribution_recur_id, civicrm_contribution.contribution_status_id as `contribution_status_id`, civicrm_contribution.campaign_id as `contribution_campaign_id`, civicrm_contribution.receive_date as `receive_date`, civicrm_contribution.total_amount as `total_amount`, civicrm_contribution.currency as `currency`, civicrm_contribution.thankyou_date as `thankyou_date`, civicrm_contribution.source as `contribution_source`, civicrm_contribution.is_test as `is_test`, civicrm_contribution.is_pay_later as `is_pay_later`, civicrm_product_en_CA.id as product_id, civicrm_product_en_CA.name as `product_name`, civicrm_product_en_CA.id as `contribution_product_id`, civicrm_contribution.financial_type_id as `financial_type_id` FROM civicrm_contact contact_a LEFT JOIN civicrm_contribution ON civicrm_contribution.contact_id = contact_a.id LEFT JOIN civicrm_contribution_recur ON civicrm_contribution.contribution_recur_id = civicrm_contribution_recur.id LEFT JOIN civicrm_contribution_product ON civicrm_contribution_product.contribution_id = civicrm_contribution.id LEFT JOIN civicrm_product_en_CA ON civicrm_contribution_product.product_id =civicrm_product_en_CA.id WHERE ( civicrm_note.note = 'check' AND civicrm_contribution.id != 0 ) AND (contact_a.is_deleted = 0) GROUP BY civicrm_contribution.id ORDER BY `receive_date` desc, `contact_a`.`id` LIMIT 0, 50;

```

Do I require to use QueryObject hook to override the BAO ?

Also, if I use "note" as the field name instead of "contribution\_note", it's doing the lookup for notes associated with the contact rather than contribution notes.

# Answer
> 1 votes
If you go to search - custom search - fulltext search, it already searches this field. Does that fit your needs?

# Answer
> 0 votes
Maybe I am missing something but couldn't you create a regular CiviCRM custom field and make it searchable? This should also make it available in search masks.

---
Tags: civicontribute, advanced-search
---


# Question
Title: Is there a way with webforms when submitting a new entry to have it only save the stuff that was actually touched by the user?
I have a webform that has a lot of custom fields. These fields should probably have been set up as boolean but they weren't. They each have one checkbox, which results in a "Y" being saved in the table.

This works great for new entries, but if an anonymous user who has already submitted the form then goes and submits it again, maybe they decided they now also want to volunteer for X, all the things they selected the first time gets wiped out or really overwritten with a null unless they select all the same things again. (The form is set to match existing contacts based upon first, last and email)

Fields that aren't check boxes work this way. If you leave the address or phone number blank it doesn't overwrite what's already there.

So I'd like it to not save any check box the user didn't touch.

# Answer
> 3 votes
If there is information that you don’t want people to override/edit - you probably want move to towards issuing Drupal User Accounts - so you can start creating forms that are serving purposes like Update My Profile, Update My Volunteer Shifts, Update My Conference Registration. When a user is logged in - Webform CiviCRM module can display current information stored for that contact and it’s immediately clear they are overriding/editing or adding.

---
Tags: webform-civicrm
---


title: Disabled activity still auto-populates

text:
# Question
Title: Disabled activity still auto-populates
I've disabled certain activities that we do not want to keep track of (Record merged, for instance). Yet, when I merge a record, the activity is still automatically created. How can I prevent this from cluttering up our Activities tab in the future?

# Answer
Since that activity type is sort of a system type and is marked Reserved to discourage editing it, I don't think there is currently a way. Since you must have disabled it in the database outside the UI you might be ok with a workaround involving some coding. You might be able to write a little extension to use hook\_post to delete activities of those types after they get created: https://docs.civicrm.org/dev/en/latest/hooks/hook\_civicrm\_post/
> 1 votes

---
Tags: activities, automation
---


# Question
Title: cron job stops running after upgrade to 5.17.4
After upgrading to CiviCRM 5.17.4 under Joomla the cron jobs that had worked happily before stopped. They didn't seem to be giving any error, but CiviCRM reported that they had failed to run. We using Cpanel and have the following command line:

```
php <path>/administrator/components/com_civicrm/civicrm/bin/cli.php -s https://<url>-u <user> -p <password> -e Job -a execute

```

Any suggestions. We have tried running cron.php, but that, in its current form, doesn't handle parameters when run from the command line.

Has anyone else seen the issue?

# Answer
> 1 votes
After much trial and error, this command line seems to work in the Cpanel cron environment:

wget -q -t 1 'https:///administrator/components/com\_civicrm/civicrm/bin/cron.php?name=&pass=&key='

instead of php trying to run cron.php.

---
Tags: cron-job
---


# Question
Title: How to update changes in a custom base Mosaico template?
We've developed our own Mosaico base template for use in CiviCRM. We've made some changes to the base template and updated the template file on our site, however, when trying to use the modified base both new and existing templates aren't updated with our new style tweaks.

Is there a way to flush Mosaico so it re-reads and uses the updated base template?

# Answer
> 2 votes
When i was building custom templates, clearing browser cache mostly worked. My favorite is to use Ctrl+Shift+R.

And in the UI - I would try creating new template from the base.

An already saved template may not reflect your changes, because saved blocks also store css information and may not use the new one. However any new blocks or deleting a save block and re-creating might work.

Also keep an eye on console for any JS errors before and after your changes. Sometimes even simple css changes break the knockout js, and may not reflect.

Hopefully that helps.

---
Tags: mosaico
---


# Question
Title: Contact URL image display in civiCRM 5.12.4
I'm using civicrm v5.12.4

a while back I made this post. - Upgrade from 5.10 to 5.12 contact images no longer appearing

As I was having issues with contact images displaying. It seemed the issue I was having then was that I was developing locally, with a locally created SSL certificate.

The Contact Images are really important to this project and so I got some hosting with a ssl certificate and set up wordpress and civicrm

I installed it originally on a hosting platform without enforcing Https. Then I enforced https and found I needed to edit the civicrm.settings.php file and replce all instances of http:// in the file, to make the site work.

Now, everything seems to be working smoothly, with the exception of contact images. I'm not getting any error messages, the images are just displaying as broken image icons.

This happens whether I try to attach an image via the edit contact civicrm pages or a profile page.

Does any one have tips for how I could trouble shoot this?

# Answer
> 1 votes
I managed to get this working. I did a clean install of everything,

Followed the wordpress civicrm install instructions for clean URLS

Enforced SSL using the siteground hosting built in tools

Enforced SSL in civicrm

Then in the wordpress permalinks settings removed any reference to index.php.

Not totally sure whether this combination of things was essential or what caused the issue in the first place. But the key was removing index.php from the wordpress permalinks. It was interrupting a lot of civicrm pages

---
Tags: images, ssl
---


# Question
Title: Changing the price of a Membership in a Price Set does not transfer to a Webform
I am using CiviCRM 5.13.4 and Drupal Webform 7.x-4.20.

I am using the Webform to collect payments for Membership. The price of the available Membership Types is set up using a Price Set, which is called up by a Contribution Page, which itself is called up by the Webform.

When I change the price in the Price Set the amount charged by the Webform does not alter. If I open the Contribution Page directly in CiviCRM (as a test) it shows the new price, but the Webform still shows the old one.

I wish to retain the price setting in a single place, to avoid possible operational problems and inconsistencies, and the Price Set seems to logical way to do this. It there some other action needed to make it take effect, or is this a bug?

With thanks.

# Answer
It turns out that the Webform is not picking the price up from the Price Set at all, but from the 'Minimum Fee' field of the Membership Type record. Even if the Minimum Fee is blank (NULL in the database) the Webform picks up zero rather than going to the Price Set. (I had forgotten that the Minimum Fee was set (or even existed)).

In fact, not clear why I need Price Sets at all - will save a level of complexity if I can do away with them.

Tony
> 1 votes

# Answer
Have you added the 'Membership Fee' field to the webform under the memberships section?

Believe this will stop prices from being pulled from Civi.

Otherwise should pull across automatically as far as I am aware.
> 1 votes

---
Tags: civimember, webform-civicrm, price-sets
---


# Question
Title: Stripe plugin not finding js and css files on contribution page
Wordpress and Civicrm hosted on siteground.com

This is the first ever install I've tried of the Stripe payment processor plugin. (version 6.1.5 on wordpress)

Ensured MJWShared (v0.4.4) was first installed.

When viewing a contribution page with a stripe payment processor attached - the javascript files cannot be found in (404 error in the console.)

The files exist, but when looking at the Stripe Payment Processor extension in the civicrm extension manager the Local Path listed is

/home/customer/www/\[myurl.com\]/public\_html/wp-content/uploads/civicrm/ext/com.drastikbydesign.stripe

and in the console - it is trying to retrieve the js and css files (civicrm\_stripe.js, elements.css) using the path below as a base.

https://\[myurl.com\]/home/customer/www/\[myurl.com\]/public\_html/wp-content/uploads/civicrm/ext/com.drastikbydesign.stripe

Has anyone come across this before? or have I done something stupid?

# Answer
> 2 votes
After seeing this question Civi 5.9 not serving extension javascript in WP 5

I put an absolute path in the resource URL in Administer \> System Settings \> Resource URL

and the issue was fixed.

---
Tags: wordpress, stripe, payment
---


# Question
Title: Prefill webform with civicrm activity data
I want to prefill a webform with data from a specific CiviCRM activity in order to edit the activity using the webform. I want to do this by having an "Edit" link in a Drupal View of CiviCRM activities. These activities may or may not be associated with a case, so let's assume they aren't. I've turned on "Update Existing Activity" in the webform for all of the statuses.

Can someone confirm that I can do this, and if so, what is the proper form of the URL for the link in the view? I've tried a bunch of different ones and can't seem to get it.

# Answer
> 7 votes
Below please find some screenshots to illustrate how to do this:

**1. This is a View of Activities.** Each Activity has an Update button \[that's a Global: Custom Text field -\> Text Update; Rewrite results: Output this field as a link -\> to the webform URL with `case-worker-form?cid2=[contact_id]&aid=[id]` and bootstrap classes btn to make it a button\] -\> the URL that is constructed is `case-worker-form?cid2=41218&aid=19153`

**2. The webform case-worker-form -\> receives this data.** That form is set up such that cid1 = the logged in user (the social worker); cid2 = the client; aid = activity id of the activity to be updated;

**3. Let's edit the subject e.g. -\>**

**4. Result:**

**5. Note the Webform just has Update Existing Activity set to None** (as we're matching by aid)

**Add on:** I've double checked that this is (still) working on our latest webform civicrm 5.x

```
root@f4d0afb6c36d:/var/www/html/sites/default/modules/webform_civicrm# git log
commit 76b444bf5192ddf4663a0222540684a230d8e39e
Merge: b54ddfd ef2a518
Author: Karin Gerritsen <KarinG>
Date:   Thu Sep 12 11:24:26 2019 -0600
    Merge pull request #251 from colemanw/rel7
    Use api to retrieve relationship data

```

**Add - on config notes:**

* ensure your views field is configured such that commas are stripped from cid and aid before passing them into the webform
* ensure your webform is configured to allow an activity of the type you want updated -\> setting it to -user select- will ensure that

# Answer
> 2 votes
Having "Update Existing Activity" setting turned on, prefills the form with the matching activity based on Type and Status. In case of multiple activities, it prefills/updates the first one.

Adding '&activity1=activityID' in your webform url, irrespective of the 'Update Existing Activity' setting, will prefill and update the activity (with id=activityID).

In case of revisioning you might need to provide latest activity ID in url or it might not work. Think you could have some custom code or configuration in view to fetch the latest activity id for a contact, to make it work.

# Answer
> 0 votes
This should work but is a bug in the latest version of Webform CiviCRM. Will open a ticket. (Update) Webform requires that the form is configured a certain way on the civicrm tab for activities in order to load the activity. It appears that at least 1 contact on the form needs to be set as a participant on the webform for the autoload to work. nb. I'm going to investigate further if other combinations will or will not work.

---
Tags: drupal, webform-civicrm, activities, drupal-views
---


title: Sometimes can't save content

text:
# Question
Title: Sometimes can't save content
There have been multiple instances of this situation in multiple installations of CiviCRM. Details for the incident that has prompted this post:

* CiviCRM 5.16.2 on Wordpress 5.2.3
* Using Firefox 69 and Edge (can't find version)

Attempting to record a refund to a contribution and when pressing "Record Refund", the CiviCRM spinner runs forever and the refund is never saved. Attempts to complete the transaction in Edge and Chrome also fail in the same way. Would appreciate some guidance on where to look for problems.

# Answer
Check the logs as first port of call.

Do you have customised files / templates? If so, this would be a good place to start.

Test it without your customisations.
> 0 votes

# Answer
Thanks for the reminder about the logs. The CiviCRM logs had nothing in this case, but the apache error log showed (after a little digging and web searching) that I was missing the bcmath module for php. I expect that my similar problems will reveal other php errors and will start tracking them down. Thanks again
> 1 votes

---
Tags: wordpress, civicontribute
---


title: GoDaddy Compatability

text:
# Question
Title: GoDaddy Compatability
I am handling membership (about 600 dues-paying members) for a small "shoestring" non-profit using spreadsheets and it is a pain. We have a GoDaddy hosted website (cheapest economy plan) using WordPress. It looks like CiviCRM may be a good choice for us. Will it work if added to our existing GoDaddy environment or will we need a larger, more powerful server? Sorry, I don't have or understand all the technical specifications. :-(

# Answer
I would say that it will probably be ok, but I wouldn't add it to your existing public-facing site. I would setup a subdomain for it and not install any other plugins, allow account creation or use it in a public way (except for CRM tasks like event registration, etc.)

Exploits of WordPress via plugins and themes are common, especially with the default permissions in a shared hosting environment like you describe. Keeping good backups is enough mitigation of this for a regular website, but you will have people's private information in this database, so you need to be much more careful. Personally, I wouldn't be eager to do it, but if you have no other option, it is possible, just keep it separate from your main website.
> 1 votes

---
Tags: hosting
---


# Question
Title: CiviCRM Error - type E_ERROR was caused in line 550
I've got a wordpress site using CiviCRM and recently got an alert email indicating a technical issue identified on the site. Error details is listed below. I've googled for similar issues but went nowhere. Wondering if anyone has come across this or similar ? Any advice will be much appreciated.

# Error Details

```
An error of type E_ERROR was caused in line 550 of the file /public_html/wp-content/plugins/civicrm/civicrm/vendor/symfony/filesystem/Filesystem.php.
Error message: Uncaught Symfony\Component\Filesystem\Exception\IOException: A temporary file could not be created. in /public_html/wp-content/plugins/civicrm/civicrm/vendor/symfony/filesystem/Filesystem.php:550
Stack trace:
#0 /public_html/wp-content/plugins/civicrm/civicrm/vendor/symfony/filesystem/Filesystem.php(598): Symfony\Component\Filesystem\Filesystem->tempnam('/home/...', 'CachedCiviConta...')
#1 /public_html/wp-content/plugins/civicrm/civicrm/vendor/symfony/config/ResourceCheckerConfigCache.php(138): Symfony\Component\Filesystem\Filesystem->dumpFile('/home/...', '

```

# Answer
> 1 votes
This error is telling you that due to a filesystem (IO) error the system could not save a temporary file.

This could be due to:

* Hardware issues with the storage medium.
* No free disk space available.
* Incorrect/insufficient permissions to save files in the location required.

You should check that the webserver/PHP user has permission to write to the location which will be in the full logs in your installation's ConfigAndLog folder in the CiviCRM files directory.

---
Tags: wordpress
---


# Question
Title: Fixed - Why can't I display some Civi contact fields through CivCRM Entity in Drupal 8?
I've got a development site running using Drupal 8.7.7/Civi 5.17.5 and CiviCRM Entity. I want to set up some Views to display Civi data. Some fields are being displayed fine (e.g. first name, last name), but other fields from the contact record appear to be empty, when I know, by looking at the CiviCRM contact records, that these fields are populated.

As an example, I want to display the Birth Date field. I have nearly 200 records where this field is populated.

If I look at the CiviCRM Entity display of the contact record (e.g. www.example.com/civicrm-contact/xxx (where xxx is the contact ID) I can see some of the fields in the contact record but not Birth Date, despite the fact that www.example.com/admin/structure/civicrm-entity/civicrm-contact/display indicates that this field is not disabled.

How can I get CiviCRM Entity, and Views to display this field correctly?

# Answer
Graham - I've reproduced that. Not seeing the date of birth field either. Seeing lots of other dates though. Not sure what's going on. Could you please open an issue here: https://github.com/eileenmcnaughton/civicrm\_entity/issues

**Update:** this is now top of the list for D8CE.

**Updated:** this is fixed now as of https://github.com/eileenmcnaughton/civicrm\_entity/pull/190
> 5 votes

# Answer
No idea about the Drupal 8 setup but maybe be worth checking, have you got the Views integration prefixes in your setting file?

Should find them under: `/civicrm/admin/setting/uf?reset=1`

Read more: https://docs.civicrm.org/sysadmin/en/latest/integration/drupal/views/
> 0 votes

---
Tags: civicrm-entity, drupal-8
---


title: Scheduled Reminder are Blank

text:
# Question
Title: Scheduled Reminder are Blank
Civi 5.14 on WordPress 5.2.3

A large chunk of our membership scheduled renewal reminders are arriving to the member's inbox completely blank. It is apparently not all of them, as I ran a test membership and I received my reminder email with no problems, but more than 500 of our members have received blank scheduled reminder emails this year and their memberships are now expired as a result to this.
This problem makes no sense to me and I do not know where to look for a solution. Has anyone else experienced this? Did you find a solution?

# Answer
> 1 votes
Are you using both the HTML and plain text formats? Some email clients or user preference will pick the plain text version and if you don't have the content there, it will be blank for these people.

---
Tags: scheduled-reminders
---


# Question
Title: outbound mail smtp password gets corrupted on wordpress
I have a CiviCRM on WordPress site and every now and again - maybe once every few months - without me doing anything obvious, the **SMTP password** gets corrupted in **Settings - Outbound Mail**.

I'm not sure what is causing this to happen. This is the only site I have that it is happening on. Any ideas?

# Answer
> 1 votes
I might have found the answer while browsing https://docs.civicrm.org/sysadmin/en/latest/requirements/#php-extensions.

> PHP Mcrypt \[is\] required for SMTP credentials and other credentials in the database. If you add Mcrypt on after running CiviCRM for a while you will need to re-save your passwords to the database. \[... php7.2\] does not support mcrypt and if mcrypt is not installed the smtp password (if entered) will need to be re-saved once you update your php version to 7.2.

I'm reasonably sure that this happened to me multiple times on the same time (that has only been upgraded to php7.2 once) but it certainly feels like a pointer in the right direction.

---
Tags: wordpress, civimail
---


title: GDPR Data Privacy Policy

text:
# Question
Title: GDPR Data Privacy Policy
In the framework of setting up our Data Processing Register, could you kindly provide us with your Data Privacy Policy, please ? Thank you

# Answer
> 4 votes
CiviCRM -as the software- doesn't have a privacy policy, because it doesn't hold any personal data.

Your specific instance of that software, as installed on your server or hosted by one of your provider does store personal data. Check with your provider if they have a privacy policy.

However, the privacy policy depends on what personal data you collect and what your organisation does with it, so you are likely to have to adjust based on your own unique way of using CiviCRM.

While you detail that, may I suggest you to look at how your CiviCRM might be connected to other providers, for instance to process the credit card donations or to send your emails? you will need to check what personal data of your contacts you share with them to let them perform the service, and clearly explain that in your privacy policy.

And lastly, we found the easiest way to be GDPR compliant is to be enforce data minimisation, eg only collect the data you need and know/explain why you collect it (and get consent!). For instance, are you really calling your contacts? if not, it's probably simplier and safer to remove the phone field.

Good luck!

---
Tags: gdpr
---


# Question
Title: Mass Deleting Scheduled and Sent Mailings, Drafts, etc
DB has grown so huge and it started to cause problems with sending mass mailings. I want to delete old mass mailings, the sent ones and the drafts, etc. Is there away to do it in one click instead of deleting each and everyone individually?

# Answer
This does not exist in the UI currently. However, it does seem like a good idea to have a script that deletes OR archives mailings that are greater than N months / years old. So i'd recommend writing a api job that does the needful.

Approx steps would be:

a. Create a new delete/archive mailing job taking parameters like list of ids or mailing delivered before date XXX

b. Check and ensure that the mailing delete api deletes all the right tables. Most of the deletion is done by mysql via cascaded relationships. At a quick glance, the api delete does not seem to handle file attachments

c. Use the API from item b to implement the scheduled job

Please do share your extension so others can benefit
> 7 votes

# Answer
You can try this extension **Delete Old Bulk Mailings for CiviCRM** (https://github.com/jitendrapurohit/nz.co.fuzion.deleteoldbulkmailings) which provides some new API calls.

You can either use the API in a script or you can use the command line tool **cv** (https://github.com/civicrm/cv). The README provides some good examples on how to use it.
> 3 votes

# Answer
I don't think it is likely that old mailings would cause troubles with sending a CiviMail. They would use up disk space which would likely manifest other problems when disk space ran low or was exhausted.

It's more likely that a problem sending a mass mailing is due to growth in your list size, and that sending to more recipients is causing your server to run out of memory. Can you describe the symptoms of the problems you are having when sending?

It's still going to be a good idea to create ways to deal conveniently with continual growth of disk space by old mailings.

If it turns out the issue is RAM usage for sending CiviMails, then you can tune the throttling of sending.

Certain email integrations may also be implemented to send a CiviMail by sending a single email for delivery to a synchronised list held on an external server, which would offload from your CiviCRM server virtually all of the load of sending. But I'm not confident about this. It's not true of our Mandrill extension but could be true of the MailChimp or Constant Contact ones. I don't think it is true of the CiviSMTP service.
> 1 votes

# Answer
I like this idea. For reference, one of my bigger installs has the following sizes of the 4 biggest files in mysql (in MB). So removing the corresponding activities (or maybe only some of the associations) is probably a good idea also.

```
110592  civicrm_mailing_event_delivered.ibd
151552  civicrm_mailing_recipients.ibd
188420  civicrm_activity_contact.ibd
266240  civicrm_mailing_event_queue.ibd

```
> 0 votes

---
Tags: civimail
---


# Question
Title: This transaction cannot be processed. The merchant's account is not able to process transactions
I am getting this error message in Paypal (Live transaction) My sandbox (testing) working alright

> This transaction cannot be processed. The merchant's account is not able to process transactions.

Any help is much appreciated

Also we do have previous question similar to this issue but was 2 years old. PayPal Website Payments Pro: This transaction cannot be processed. The merchant's account is not able to process transactions

Thanks in Advance \`

# Answer
> 2 votes
@Bobs thanks - I found out that only for upgraded Account Paypal Pro works - I did manage to change to Paypal standard and it works - Thanks

---
Tags: payment-processor, paypal
---


title: Civicrm Upgrade to 4.7.23

text:
# Question
Title: Civicrm Upgrade to 4.7.23
I am planning to upgrade civicrm from version 4.2.9 to 4.7.23. For this can I directly upgrade it from 4.2.9 to 4.7.23? Or any other version I have to upgrade first and then to move to 4.7.23. Please suggest me steps for this.

Thanks in advance.

# Answer
Yes. But make sure you are on 4.2.9, because

> "If you are starting from a version prior to 4.2.9 you should upgrade to the latest 4.2 version as an interim step, as the latest version does not contain upgrade code going back that far."

and

> "You can make big jumps in one upgrade (e.g. 4.5.2 to 4.7.20) without needing to apply all the upgrades in between."

The above quotes are from, and see more at: https://docs.civicrm.org/sysadmin/en/latest/upgrade/ .
> 1 votes

---
Tags: webform-civicrm
---


# Question
Title: Why do I get `(Object) CRM_Contact_Page_DashBoard` at ~/dashboard?
I'm running Civi 5.19.alpha1 locally, installed using `buildkit` with `drupal-clean` on my laptop running Ubuntu 19.04.

So I just manually installed or updated a bunch of Drupal modules (I started off just wanting to install `webform-civicrm` and ran down the rabbit hole of other required modules).

I now see only `(Object) CRM_Contact_Page_DashBoard` at `http://localhost:7979/civicrm/dashboard`.

I also see this message at `http://localhost:7979/`:

`hook_civicrm_pageRun called. This hook is called before a CiviCRM page is rendered. Note that this does not execute on every CiviCRM page in the general sense. CiviCRM's pages are classified as either 'Forms' or 'Pages', and this only runs on pages classified as 'Pages'. If you are not sure if a particular page is a Page, test it by adding some temporary debug code to /CRM/Utils/Hook.php`

I've run `drush updb` and get `No database updates required`, `drush cvupcfg` and get `Config successfully updated`.

Been Googling around, looked in Civi docs, checked StackExchange, not figured out the problem yet.

I could and maybe just should go back and uninstall/delete the modules I just installed, of course, but prefer to not have to re-install later.

UPDATE: see the answer below. I had enabled the Drupal `civicrm_developer` and `Devel` modules, though of course, I did not have to, to enable the `webform_civicrm_integration` module. I was enabling other Drupal modules that looked useful.

# Answer
> 2 votes
It sounds like you enabled the `civicrm_developer` Drupal module. I would disable that.

---
Tags: drupal, dashboard
---


# Question
Title: Drupal Views + Multiple CiviCRM relationships of same type
I see many stack exchange questions about views & relationships but none like this.

A person may attend many schools in his/her lifetime.

Contact A "is a student at" Contact B (college, active relationship)

Contact A "is a student at" Contact C (high school, expired relationship)

Contact A "is a student at" Contact D (middle school, expired relationship)

I need a view that displays all Organization names of schools where the contact type is "is a student at" whether active or not.

This screen recording may better explain and shows my progress thus far: https://drive.google.com/file/d/1\_gkXbYn-Kdg8G-8JDfbz7J96ELvt\_Gon/view?usp=sharing

# Answer
It appears the View you are using is starting from the entity CiviCRM Relationship. This is unusual in my experience. I would be building a View based on Contacts and then adding the Related Contacts by using the View Relationships to pull them in.
> 2 votes

---
Tags: drupal-views, relationships
---


title: Contribution Report includes TIME

text:
# Question
Title: Contribution Report includes TIME
I'm creating a Contribution Report, Contribution Details. I include check the boxes for both Date Received and Receipt Date. The results for both include the time as well as the date. When I export it to a CSV file, there's the Time tagged on. In my Excel file, the Time lurks. Formatting the column doesn't delete the data but merely hides it. When I create a Merge Document in Word, the time appears and I can't delete it.

I don't want the TIME. Anywhere!

I have gone under Administer, Customize Data and Screens, then to Date Format and deleted the Time codes and left the Day, Year and Month codes. And I've gone to Administer \> Localization \> Date Formats and deleted the various codes various Time - and SAVED. Returning to those screens shows that Time is turned off.

What can I do to delete Time from my report?

Peter Keller

# Answer
I took a look into this today because I thought this would be an easy fix. It's not really.

What IS easy is to get the Receive Date to respect the Date Format settings like you describe. If you know how to patch CiviCRM, you can find the patch I just wrote here.

However, this raises a bigger issue - there's only one Date Format for "Complete Date and Time", and most folks use that for letters to donors. So it defaults to something like "October 3rd, 2019 11:15am". My patch changes the report to output in this format.

However, I doubt that's what most people want from this report! Most folks want to be able to sort by date, and changing this report would be counterproductive to them.

That leaves us with two other options:

* Instead of using Contribution Details report, instead do an export of Contributions. If you don't like the format, the Format Date Column in Extension will solve this for you.
* Fix this in Excel with a formula. See my screenshot below for an example. My "Date Received" is column E, so I created a new column with the formula `=LEFT(E2,10)` in cell H2 and then pasted it down.

In the longer term, it might make sense for CiviCRM to differentiate between multiple date/time formats - one for public display, one for sorting purposes.
> 3 votes

---
Tags: custom-fields
---


# Question
Title: Civirule - Action : force override status
Is it possible to override permanently a status from 'pending' to 'new' with a civirule ?

CiviCRM doesn't do it automatically (issue I can't fix until now) and it would avoid me to do it manually every time a new member paid with credit card :-(

I can identify the right status :

> Contact has Membership of Status and Type : Membership type Est l'un de Adhésion annuelle & Membership status Est l'un de Pending

but I don't find out how to override the status

have a great day

Guillaume

# Answer
> 0 votes
I reckon you should be able to do that with CiviRules but I am not sure if the action already exists? If not, you can create your own actions, documentation: https://docs.civicrm.org/civirules/en/latest/create-your-own-action/

---
Tags: civirules
---


# Question
Title: Are there Realease Notes when a new Release is published?
There is a new Civi release about every fortnight (or even less) (currently 5.18.1).

Updating one's configuration at every release is painful and risky (you may have regressions) ; but it can also be very useful (bug fixes, ans enhancements).

So, it would be very useful to know what changes are brought by a new release.

... which is the usual purpose of Release Notes.

I could not find such assciated release notes. Are there any ? If yes, where can we find them ?

# Answer
You should find release notes for all versions linked from https://civicrm.org/blog/tags/release (this page is linked from the download page). Maybe they haven't added in the latest yet: 5.18.0 not there either

https://lab.civicrm.org/dev/core/blob/master/release-notes.md links to all the release notes including 5.18.0 and 5.18.1
> 4 votes

---
Tags: upgrade
---


title: Can not find Civicrm.settings.php

text:
# Question
Title: Can not find Civicrm.settings.php
Excuse me I am new to Civicrm and got stuck, I installed Civicrm-drupal from github, I wanted to check if the configurations are correct so I ran the command "civix civicrm:ping", but I got this exception:

\[Exception\]
Failed to locate civicrm.settings.php. By default, this tool searches the p
arent directories for a standard CMS (Drupal, WordPress, etal) and standard
civicrm.settings.php. Symlinks and multisite configurations may interfere.
To customize, set variable CIVICRM\_SETTINGS to point to the preferred civi
crm.settings.php.
civicrm:ping

I searched for this exception and found out that I need to change the directory where the civicrm.settings.php is, and usually it is in this path: sites/default/civicrm.settings.php.

Now the problem is that I can not find Civicrm.settings.php anywhere, not in the above path nor anywhere.

Please advise me.

Regards

# Answer
> 6 votes
Normally you don't install from github you would get it from https://civicrm.org/download and then follow the instructions at https://docs.civicrm.org/sysadmin/en/latest/install/drupal7

If you are looking to do *development* it might be easiest to start here instead: https://docs.civicrm.org/dev/en/latest/tools/buildkit/

---
Tags: drupal, civicrm.settings.php
---


# Question
Title: How to embed or attach a list of contacts in an email?
My users want to send an email from Civi that will have a particular group of contacts embedded in it or as an attachment. The group is featured in a report, so emailing the report seems like the solution, but they want to preface the report with some words. How to embed or attach the contact list or report into an email sent from Civi? This is using Drupal so perhaps Views is an option?

# Answer
Sounds like you're looking for CiviCRM Views Token.

This is a Drupal module which allows you to place a token in your CiviMail that will be replaced with the output of a Drupal View.

To use it:

* Install and enable CiviCRM Views Token
* Build your view of contacts in Drupal - keep the output simple, eg a table or an unformatted list.
* In your CiviMail edit screen, look for "Configured Drupal View" in the token selector.
* Place the desired view in your email, eg `{civicrm_views_tokens.viewcontactlist}`
> 1 votes

---
Tags: drupal, email, civireport, drupal-views
---


# Question
Title: How do I update CiviVolunteer, from the UI or from the command line?
I'm running Civi 5.19.alpha1 with Drupal locally. I have CiviVolunteer 4.7.31-2.3.1, which is the latest release listed on GitHub, from June 2018.

I want to update to the latest stuff in the repo, which I believe fixes a bug.

I don't see a way to do that in the Admin UI.

I've tried

`git pull https://github.com/civicrm/org.civicrm.volunteer.git`

from my ext directory at

`~/buildkit/build/drupal-clean/web/sites/default/files/civicrm/ext`

and I get

`fatal: refusing to merge unrelated histories`.

# Answer
> 2 votes
You will need to

* Go into your extension dir and remove the civivolunteer code that was installed with your buildkit.

Then git clone their master (to get the latest).

Then go to the Manage Extensions page to check if there are any prompts for database updates.

Then disable a small other extension and re-enable it. Or just enable another new extension via the Manage Extensions page. This will trigger managed entity updates.

---
Tags: drupal, extension, civivolunteer, upgrade
---


# Question
Title: Error "Cannot unset string offsets" exporting using custom field mapping
I'm running civiCRM 5.17.5 under Joomla 3.9.12

When I select a specific smart group with a saved field mapping for export, and select "Exclude contacts with "do not mail" privacy, no street address, or who are deceased.",

I get the error (note the error doesn't appear if I don't select Exclude contacts...):

`Error#8247
message => string(27) "Cannot unset string offsets"string => string(0) ""
code => 0
file => string(102) "/home/fcwm/public_html/administrator/components/com_civicrm/civicrm/CRM/Export/BAO/ExportProcessor.php"
line => 176
trace => array (20)
previous => NULL` `Cannot unset string offsets
.../administrator/components/com_civicrm/civicrm/CRM/Export/BAO/ExportProcessor.php:176
171 public function setAdditionalFieldsForPostalExport() {
172 if ($this->getRequestedFields() && $this->isPostalableOnly()) {
173 $fields = ['is_deceased', 'do_not_mail', 'street_address', 'supplemental_address_1'];
174 foreach ($fields as $index => $field) {
175 if (!empty($this->getReturnProperties()[$field])) {
176 unset($field[$index]);
177 }
178 }
179 $this->additionalFieldsForPostalExport = array_fill_keys($fields, 1);
180 }
181 }`

This error wasn't occurring prior to upgrading to 5.17.5

It doesn't happen with all my Saved field mappings, just one of them (but one I've been using for a few years without issue).

# Answer
> 2 votes
This was fixed in today's release (5.18.1)

# Answer
> 0 votes
To me this looks like a typo in the code and line 176 should be `unset($fields[$index])` (plural fields).

https://lab.civicrm.org/dev/core/issues/1292

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

Note that to trigger it you have to check that checkbox and also have one of the affected fields in your export mapping, like "Street Address".

---
Tags: smartgroups, export
---


title: CiviContribute Disappeared

text:
# Question
Title: CiviContribute Disappeared
We were on version 5.12 of Civi with WP 5.1.2 when I noticed our Donate page didn't work. After digging I noticed the CiviContribute was missing from the Components page. We upgraded to civi 5.18 and still no CiviContribute:

Any way to fix this? Thanks

# Answer
What is civisubmit? It looks like contribute has been renamed.
> 2 votes

# Answer
User error! I turned on CiviSubmit (Contribution) and now it works. I guess sometime we put the word replacement in not sure how the Component got turned off though.

I removed the Word Replacement and turned on CiviContribute and tested the donation page ok!
> 2 votes

---
Tags: civicontribute
---


title: Fatal error on Export in 5.18.1

text:
# Question
Title: Fatal error on Export in 5.18.1
I just updated to 5.18.1 to resolve a bug caused when selecting " Exclude contacts with "do not mail" privacy, no street address, or who are deceased." But now I have a new issue:

I set up an export with a saved field mapping. Under Merge Options I select "Merge All Contacts with the Same Address". I then click \[Continue\], accept my existing saved field mappings, and click \[Export\]. I then see a fatal error message.

In error logs, I see the following, which I think is failing because of the extra comma after *is\_deceased VARCHAR(16),* :

```
CREATE TABLE `civicrm_tmp_d_export_e92589f8a1e163117ff1d83e45c03029`(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
prefix_id VARCHAR(255),
first_name VARCHAR(64),
last_name VARCHAR(64),
suffix_id VARCHAR(255),
street_address VARCHAR(96),
supplemental_address_1 VARCHAR(96),
city VARCHAR(64),
state_province VARCHAR(64),
postal_code VARCHAR(64),
country VARCHAR(64),
preferred_language VARCHAR(5),
organization_name VARCHAR(128),
custom_32 VARCHAR(255),
home_phone_phone VARCHAR(32),
email VARCHAR(254),
custom_31 VARCHAR(255),
groups TEXT,
middle_name VARCHAR(64),
nick_name VARCHAR(128),
display_name VARCHAR(128),
tags TEXT,
deceased_date VARCHAR(32),
do_not_mail VARCHAR(16),
is_opt_out VARCHAR(16),
addressee VARCHAR(255),
postal_greeting VARCHAR(255),
email_greeting VARCHAR(255),
street_name VARCHAR(64),
household_name VARCHAR(128),
civicrm_primary_id VARCHAR(16),
master_id VARCHAR(128),
state_province_id VARCHAR(255),
postal_greeting_id VARCHAR(16),
addressee_id VARCHAR(16),
is_deceased VARCHAR(16),
,
PRIMARY KEY(id),
INDEX index_street_address(street_address),
INDEX index_household_name(household_name),
INDEX index_civicrm_primary_id(civicrm_primary_id) ) ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci

```

Anyone else experiencing this? If not, any ideas why I would?

# Answer
Yes I think you're right. This one seems to be an issue with the combination of "Merge All Contacts with the Same Address" and using Selected Fields instead of primary fields.

I'll put up another ticket: https://lab.civicrm.org/dev/core/issues/1302

Fix looks like it will be in 5.18.2 https://github.com/civicrm/civicrm-core/pull/15452
> 1 votes

---
Tags: smartgroups, export
---


# Question
Title: Import Contribution failing, how to fix?
Receiving following error in drupal when importing contribution from a csv. Is there a quick fix for this?

> Error: Class name must be a valid object or a string in CRM\_Import\_Parser-\>parsePseudoConstantField() (line 565 of /home/webadmin/public\_html/cmm/sites/all/modules/civicrm/CRM/Import/Parser.php).
>
> Notice: Undefined index: bao in CRM\_Import\_Parser-\>parsePseudoConstantField() (line 563 of /home/webadmin/public\_html/cmm/sites/all/modules/civicrm/CRM/Import/Parser.php).

These are the fields I am trying to import

* ContactID
* Total Amount
* Financial Types
* 1 Custom field (I have imported this custom fields previously)
* Eligible for giftaid (giftaid extension) (I have imported this previously)
* Received Date
* Contribution Source

# Answer
This patch fixed the problem. Thanks to @skherraz

https://lab.civicrm.org/dev/core/issues/1269
> 0 votes

---
Tags: drupal, civicontribute, contacts, custom-fields, error
---


# Question
Title: Searching based on members that have a twitter website address
Is there a way via the advanced search query to return all contacts that have a twitter website address entered?

Currently the only search item appears to just be "Your website" but I cannot see anywhere that just gives the twitter option.

I would have thought that there would be a drop down somewhere in the search criteria. Essentially we just want it the search results to list all contacts that have a twitter social media address listed.

Thanks as always for your help.

........................

Hi, Ive gone through some search build options but it still doesn't seem to pull through any contacts as required. Please see the attached images - One of the contact showing the contact type (Community Group) and the Twitter Website field. The other images are examples of the Search Build criteria

enter image description here

# Answer
> 1 votes
When you say "return all groups" I presume you mean return all contacts, as I don't see a way to associate a website with a group, but please clarify. From what I can see, there doesn't seem to be an option to search on website at all in Advanced search, but I think you can achieve what you want in Search Builder with

```
record type: contact
field: website
operator: like (or maybe a more precise regex)
value: twitter.com

```

---
Tags: search, advanced-search, social-media
---


# Question
Title: "System Status: Error" I updated to CiviCRM 5.12.0 hosted on WordPress internally on a QNAP TS-251+ Server. Where do I go from here?
```
System Status: Error
Cron Not Running (CiviCRM Homepage says "Loading...)
Configure Default Mailbox (CiviCRM Homepage says "Loading...)
Complete Setup (CiviCRM Homepage says "Loading...)
MySQL utf8mb4 Support (Server charset: UTF-8 Unicode (utf8))
PHP Out-of-Date (Unavoidable)
Remote Profiles Enabled (CiviCRM Homepage says "Loading...)
View details and manage alerts

```

I know why the PHP is out of date. QNAP refuses to update their firmware. We use PHPMyadmin.

I see suggestions aiming at editing this or that, but don't know what to use to edit. We are hosting internally and I setup everything, but I do not know how to restore the settings and database. I am adept at searching through folders and putting preconfigured pieces in place, but this is like thinking 4 moves ahead in chess for me. I struggle at 3.

Any assistance is greatly appreciated.

# Answer
I have not used a QNAP for this, but have in other contexts. You might be able to install entware ( https://www.qnapclub.eu/en/qpkg/556 ) and use that to install php7.1 or similar QPKG from entware's repo
> 1 votes

# Answer
I have learned a lot about CiviCRM and I almost have it working. I followed so many directions that I am not sure where it got to the point that it is. I will post another question, since I am past this issue.
> 0 votes

---
Tags: wordpress, upgrade, civicrm.settings.php
---


# Question
Title: How can you edit the end date for an auto-renew membership?
I am working on a website that has the option for members to pay for membership by direct debit (via GoCardless). This is working fine but occasionally we have an issue where a member pays by direct debit and also by card. We refund the card payment to the member but the membership end date is incorrect and we are unable to edit it.

The membership is annual so if a member signs up by both direct debit and card the two payments will add two years to the end date (e.g. it will be 2021 rather than 2020). So, after we refund the card payment we want to also edit the end date to change it to 2020. Unfortunately, we are unable to do this.

Normally, you can edit the end date, as shown below:

It appears that if the membership is set as auto-renew and linked to a recurring payment then CiviCRM doesn't allow you to edit the end date. I presume this is a deliberate 'feature' but in our case it is preventing us from correcting the end date.

How can we edit the end date in these circumstances?

CiviCRM 5.7.6 on WordPress

# Answer
I've raised this as issue #1126 in GitLab. From the discussion, it appears that this was implemented as a 'feature' in the past but it is unclear why this was necessary. Hopefully this issue will be resolved at some point in the future but this may take some time as we need to ensure that it won't cause a regression for existing users.

As a workaround in the meantime, this issue can be resolved by either by making some minor changes to a core file or creating an extension that undoes the core behaviour and makes the fields editable.

The relevant core file is CRM/Member/Form/Membership.php. The class in this file checks to see if the membership is related to a recurring contribution. If so, it prevents users from editing certain fields by freezing them. To prevent this behaviour you can simply search for and comment out the lines with 'freeze' in them.

These are the relevant lines:

* line 217: `$this->entityFields['end_date']['is_freeze'] = TRUE;`
* line 584: `$sel->freeze();`
* line 611: `$statusOverride->freeze();`

Obviously, do some testing on a copy of your site before implementing this to make sure it doesn't cause any issues!

# Update 19 October 2019

A fix has been merged into CiviCRM core (PR #15540) that fixes this issue for the end date field. This fix should be included in CiviCRM 5.20.

A separate issue (#1331) has been raised in Git Lab for the other fields that are also frozen (Membership Organisation, Membership Type, Membership Status).

# Update 23 March 2020

A fix for the Membership Organisation, Membership Type and Membership Status has been merged into core (PR #16609). This fix should be included in CiviCRM 5.25
> 4 votes

# Answer
An interesting workaround is you can make a profile that includes the membership end date for bulk updating memberships, then edit the membership end date there, and save. It won't throw an error. Not sure what the unintended consequences may be.
> 2 votes

# Answer
You can probably still change it via the API - specify the new end date on the existing membership, but that may have unintended consequences.

How did you do the refund? What status is the contribution? Maybe changing the end date should be part of the refund process.
> 1 votes

# Answer
If you disable auto-renew on the membership record, this will allow you to edit the end date. Once you have changed the end date, if you then enable auto-renew again.
> 0 votes

---
Tags: civimember, recurring-contributions, auto-renew
---


# Question
Title: can't sort search result table by column when the column shows a custom field
this has me stumped, and wondering if anyone else has encountered it.

I have a profile search results page where the result table includes both standard fields and custom fields.

I am able to sort the table successfully on the standard fields by clicking the arrows/column headers, but the custom fields column sort fails. I see one of two errors:

1. If I click the up/down arrows next to the column header text, a popup "Network Error Unable to reach the server. Please refresh this page in your browser and try again." appears, and a 500 server error is registered in the web server error log.
2. If I click the column header text, I get a 404 page with the error message "Class name must be a valid object or a string"

You can see this in action live at https://www.fawco.org/index.php?option=com\_civicrm&task=civicrm/profile&force=1&gid=18&reset=1&crmRowCount=100&Itemid=388 ("Name" and "Country" are default fields, "FAWCO Region" is a custom field.)

Per my testing:

* Search itself works properly.
* There are no errors in the CiviCRM log or the Joomla log.
* Joomla and CiviCRM debug modes have not shown any errors.
* web server logs report as described above, 500 for the sort request via arrow, 404 for the sort request via text.
* Adding and removing different default and custom fields to the results makes no difference: default columns consistently work and custom consistently fail.

System is Joomla 3.9.10 with CiviCRM 5.15.1.

Has anyone seen this before, or could someone give me a hint where I could start troubleshooting?

# Answer
For 5.15.1 you can add these lines just before line 6373 in CRM/Contact/BAO/Query.php.

```
if (empty($fieldSpec['bao'])) {
  continue;
}

```

There will also be a similar workaround put into 5.18.2 when it is released. https://github.com/civicrm/civicrm-core/pull/15454
> 1 votes

---
Tags: joomla, search-results
---


# Question
Title: Integration with a swipe card check-in system?
Our charity currently operates a manual check in system for users of our facilities. We are considering installing a swipe-card automated system at the gate. Can this be integrated with Civi CRM so we know who has checked in when. No payment is taken at check in.

# Answer
> 1 votes
Not exactly the same but for a similar way of automating check-in take a look at https://civicrm.org/extensions/qr-code-checkin

---
Tags: civimember
---


# Question
Title: For events that require participant approval, where do I change the pop-up message?
We have a free event that requires participant approval. We are manually approving and sending confirmations to those who are allowed to attend, however there's some confusion because a message pops-up during the process that says they will receive an email to complete their registration, and that doesn't happen (we don't need it since there's no payment and we've already collected all information). We already have this option turned off, but the message is confusing registrants. Where do I find this message to edit/override it?

Screenshots of the message below, which displays on the Confirmation page and the Thank You page:

# Answer
Sounds like a job for grep. Use `grep -r "Once approved, you will receive" templates` in your civicrm folder, and it will tell you it's templates/CRM/Event/Form/Registration/Confirm.tpl. Similarly grep'ing for the other one it's in ThankYou.tpl in the same folder.
> 2 votes

# Answer
On the 'Online Registration' tab of the Event configuration is an option to select "Send Confirmation Email"

Sounds like you want to set that to No.

However I think that will still result in an onscreen messaging saying "Your registration has been processed successfully." which sounds like it would still be incorrect.

If this is the only event running you might be able to use Word Replacement to try overwriting that. Otherwise it would require a tweak to the template I think
> 1 votes

---
Tags: civievent
---


# Question
Title: Setting primary email and phone upon contact update
We want to update a bunch of contacts with e-mail adresses and phone numbers, for which previously these did not exist. The import works fine, as a result the contacts now have a Home (for example) e-mail and phone, but these are not set as the Primary ones. Because of this, the new e-mails and phone numbers do not show up in reports, and cannot be used in contact search. Only when I view one of the updated contacts, click into the Email field and then, without changing anything, press Save, the email is set to Primary.

It appears that when the contact is first created, in case there is no e-mail or phone, the Primary flag is not set. During contact update, the address/phone is updated, but the Primary flag is left missing. Is it possible to set the e-mail and phone to Primary during import if these did not exist previously?

We're currently using CiviCRM 4.7.14.

# Answer
> 3 votes
That sounds like a bug - can you confirm you ran the import via the CiviCRM GUI?

On fixing this for you - do you have access (or work with someone) who has - to phpMyAdmin or MySQL?

# Answer
> 0 votes
I've had the this same issue for at least a couple years now. I created this extension to "fix" the issue. It looks for related records (phone,email,address) of a contact and when none, or more than one are set to primary it sets just one to primary. Uses the sites default location type for primary.

https://github.com/proexchange/com.pesc.primaryfix

---
Tags: import, primary
---


# Question
Title: iATS recurring payments: "mismatched contact id for the customer code"
During some auditing of membership payments earlier today, we found an interesting error message on one of our members:

> iATS Payments Recurring Contribution (id=*nnn*) Errors: Recur id *nnn* is has a mismatched contact id for the customer code.

There's one of these messages per day for the last week or so. The original payment did go through, we can see that on both sides (Civi and iATS). The errored attempts aren't getting sent through to iATS (which is probably a good thing).

* How do I go about finding the details of the recurring payment so I can compare both sides? I've found what is likely the customer record on the iATS side, but that's only showing me the customer code.
* Alternately, what exactly is being compared and found wanting here, and how possibly did it get messed up?

Thanks in advance for any assistance!

# Answer
> 3 votes
Table civicrm\_iats\_customer\_codes does not have the correct Customer id to match what iATS has on file. This is likely because you edited or merged the customer at some point and something got messed up in the process. You can use the iATS web portal to view what customer code (I know you said you found it already--but the next person might not know where to find it) iATS has associated with that donation. You can look under reports for the donation or in the Virtual Terminal for the customer name. You can use the API Explorer to find what civi has for the iATS customer id in the civicrm\_iatscustomer\_codes table. I used the settings below to find what customer ID is currently in Civi. Locate the invoice id associated with the failed transactions. Then search for that. Click the Execute button and search for "cstc": "AXXXXXXXX",in the returned data. WARNING; you can change your data via the API so poke around in there with caution. Generally a Get action should be safe but create, edit, or replace actions will make changes.

To fix the problem you will need to change the Customer Code for that entry in your civicrm\_iats\_customer\_code table so it matches what iATS. iATS does not let you edit the customer code at their end so you have to do it on the civi end.

# Answer
> 3 votes
This sanity test and message is generated within the extension during the recurring payment job, as a precaution before talking to the iATS server. It doesn't depend on the customer record saved on the iATS server, and changing that won't have any effect.

For details see line 240 of this file: https://github.com/iATSPayments/com.iatspayments.civicrm/blob/1.6.2/api/v3/Job/Iatsrecurringcontributions.php

The extension itself saves the id of the original contact that signs up and saves it in the table, and compares it before generating/running a recurring contribution. When you merge contacts, it should update the contact id in the iats table, so merging will not normally generate this issue.

A more likely source of the problem is if you've been doing some kind of import of your recurring contribution data and not setting the contact id correctly.

To correct it, you just need to update the cid field in the table civicrm\_iats\_customer\_codes to match the corresponding contact for the recurring contribution.

There is also an email address in this table which is sometimes useful as a reference to help you track down the real donor - looking at the record on the iATS server might also help if you need a name, etc.

---
Tags: recurring-contributions, iats
---


title: Contribute Form on Multiple WP sites

text:
# Question
Title: Contribute Form on Multiple WP sites
Total noob here.

My client has installed CIVI on their Wordpress Site, Site 1, using the CIVICRM WP plugin which they are using to collect contributions. They have three other WP sites, different servers, where they'd like to collect contributions using the same database as Site 1.

Is this possible? If so, what is the best way to go about this? Is there a way to embed the CIVI contribute form on other sites?

Thank you for your help!

# Answer
Check out remote form. https://github.com/progressivetech/net.ourpowerbase.remoteform I use it on my WordPress site. It's very clean and nice. If this answer helped please mark this as answered. Thank you.
> 6 votes

---
Tags: wordpress
---


# Question
Title: Anonymous user can't view CiviCRM user dashboard in WordPress
I have a wordpress page with a user-dashboard shortcode embedded in it (`[civicrm component="user-dashboard" hijack="0"]`). When logged in, it works fine. When using a private window (and a user id and checksum) I get told I must be logged in to view the page.

I assumed that I had forgotten to set the permission for anonymous users and the user-dashboard, but it seems I have that set correctly:  I assume I'm missing something else obvious, but web searches (including this database) have revealed nothing. I would love an answer or even a suggestion of where to look.

Based on the suggestion below, I've added some debug code to the user-dashboard:

```
  public function __construct() {
parent::__construct();
echo "<!-- " . CRM_Core_Permission::check('access Contact Dashboard') . " -->\n";
if (!CRM_Core_Permission::check('access Contact Dashboard')) {
  CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/dashboard', 'reset=1'));
}

$this->_contactId = CRM_Utils_Request::retrieve('id', 'Positive', $this);
$userID = CRM_Core_Session::singleton()->getLoggedInContactID();

echo "<!-- userID:" . $userID . " -->\n";
$userChecksum = $this->getUserChecksum();
echo "<!-- userChecksum:" . $userChecksum . " -->\n";

```

I was somewhat surprised to see that the checksum and cid aren't making it there:

```
<!-- 1 -->
<!-- userID: -->
<!-- userChecksum: -->
<div id="crm-container" class="crm-container" lang="en" xml:lang="en">

```

Now, this is a Wordpress page, not a civiCRM page, but I assumed that since there is a shortcode to add the user-dashboard, that these values would come through as well. Am I deluded in thinking this?

For completeness, here is the (slightly redacted) url: https://mywebsite.com/workshop-registration/?aca11184e16a867aeee5f317ab706f58\_1570552008\_1440&cid=2

I also tried this one just in case: https://mywebsite.com/workshop-registration/?cs=aca11184e16a867aeee5f317ab706f58\_1570552008\_1440&cid=2

# Answer
> 2 votes
So, to close the loop on this, the answer is this:

1. inside WP, but outside CiviCRM, the checksum and cid need to be identified on the GET string as cs and id respectively
2. inside CiviCRM, the checksum stands alone (no separate variable, though it seems to work as cs too) and the client id must be cid as id is used for other purposes in CiviCRM.

I discovered no way to cleanly pass these values through a page. I used a PHP insertion plugin to Wordpress to extract the values from the $\_GET global array and pass them back into the page.

Thanks to Demerit in helping me figure this out.

---
Tags: wordpress, user-dashboard
---


# Question
Title: Guidance Needed on using CiviCRM API + PayPal to Complete Membership Contribution Payment
I'm at a total loss on how to make this work.

I am using the CiviCRM API to create a contact, create a membership for that contact, and even create a contribution if that person selects `check`, marking it to be paid later.

However, I cannot figure out how to pass a credit card through the API, using the PayPal integration to process the card payment and create the resulting contribution marking the membership as paid and active. None of the API resources have a parameter for card details that I could find, and I couldn't find anything on using the API to actually process payments.

Any tips? Thanks!

# Answer
> 1 votes
Although I have no experience with PayPal I would expect that the payment processor makes sure the payment details get passed on, AFAIK there is no API for credit card details nor is it required! Perhaps this might give you some clues: https://docs.civicrm.org/dev/en/latest/extensions/payment-processors/

---
Tags: civicontribute, api, payment-processor, paypal
---


# Question
Title: View out of office responses from contacts
Following mailings is there a way to view out of office responses from contacts. If the mailing is via Mail Chimp you get out of office responses into your inbox but on Civi you only get the number of bounce backs. From what I can see Civi assumes the mailing has been delivered but we cannot establish if an out of office has been returned and therefore cannot keep our contact lists up to date.

Any assistance with this would be appreciated, thank you.

# Answer
> 1 votes
All the bounces, including the out-of-office responses, are saved. They're not accessible through civi, but for bounce processing you did have to configure an e-mail inbox somewhere.

So just login in there and see what's available. E-mails in the main inbox folder are the unclassified ones (should be few — end up as Syntax error in the civimail report), while everything else will be in subfolders. There is no further division, so you can't just see out-of-office bounces, but not let's say, "quota full" or "invalid account". Wading through the mails can get annoying fast, even when searching with the server return codes.

However, I don't think you really need to do it. Looking at the bounce inbox is good now and then to see if any extra classification rules are needed (to reduce the unclassified mail amount) or if you're looking for the full email response for a particular contact (the database only stores a truncated version that may lack the server response), for example why it thought your e-mail was spam.

But all this bouncing around is tracked by civi. Contacts aren't disabled after one failed delivery; most of the rules require 3 such failures and then the "no bulk mail" setting gets enabled. The out-of-office one falls under the laxest of conditions, so last time I checked, it had to fail 15 times before a contact would be determined pointless to continue delivering to.

If your question instead is about people switching jobs, then yes, you'd have to look at the emails. Depending on where you are, you can't just subscribe random new people though (GDPR).

---
Tags: mailing
---


title: Annual Donor Report

text:
# Question
Title: Annual Donor Report
I would like to setup a report where I can see each donor's total donations by year, where each column would be a different year and the corresponding total, and each row would be each donor. Please help !

# Answer
> 6 votes
This type of report is called a "pivot table". There's a report that will do what you want in the Extended Reports extension. If you don't have that installed, do the following (or ask your administrator):

* Go to **Administer menu » System Settings » Extensions**.
* Click the **Add New** tab.
* Search for *Extended Reports* in the extension list and click the corresponding **Download** link.

Note that if your CiviCRM is out of date, you may not see this extension, or you may get an older version that doesn't have this report.

Once the extension is downloaded:

* Go to **Reports menu » Contribution Reports**.
* Click the **New Contribution Report** buton.
* Click the **Extended Report - Contribution Pivot Chart** link.
* In the **Select Row Fields** drop-down, choose **Contact Name**.
* In the **Select Column Header** drop-down, choose **Breakdown by Year**.
* Press **View Results**.

That should give you what you're looking for - see an example below (this is a demo site without much data, yours will most likely look better). You can save this report in the **Actions** drop-down.

---
Tags: civireport, custom-reports, donations
---


title: Civicrm upgrade from 4.2.9 to 4.7.23

text:
# Question
Title: Civicrm upgrade from 4.2.9 to 4.7.23
I am upgrading 4.2.9 to 4.7.23. But while database upgrade i got error as "Found installation canary. This suggests that something went wrong with tracking installation process. Please post to forum or JIRA". As I researched, I deleted the table "civicrm\_install\_canary" but again the table creating dynamically. I didn't get any solution. Please help me.

Thanks in advance.

# Answer
> 1 votes
If you're getting an installation canary error, that means you tried upgrading once and it failed - and then when you upgraded a second time, you got the installation canary error. The original error is the "true" error. You can probably ffind it in your ConfigAndLog logs. However, you should restore your pre-upgrade backup before attempting another upgrade. Fixing a broken upgrade is a very advanced topic.

---
Tags: civicrm.settings.php
---


# Question
Title: Network error unable to reach the server - wordpress
Recently I got the error "Network error unable to reach the server" in my wordpress website's dashboard while accessing CiviCRM. I have php 7.0 verson. How can I resolve this issue.

# Answer
> 1 votes
Issue is resolved now...it was base url without www in civicrm.setting file.

---
Tags: wordpress
---