# Question
Title: Unable to get Contact ID to display in Custom Field
Been stuck on this for the past few days I want to set a default value for a custom field in a contribution. The Custom fields are associated by Financial Types, I intend to show the current contact id of the person the contribution is being submitted for in a custom field. I tried doing this originally within the CustomDatabyType.php file.

```
class CRM_Custom_Form_CustomDataByType extends CRM_Core_Form {

  public function setDefaultValues() {
    $contact_id = CRM_Core_Form::getContactID();
    $defaults = [];
    $defaults['custom_224_-1'] = $contact_id;
    CRM_Core_BAO_CustomGroup::setDefaults($this->_groupTree, $defaults, FALSE, FALSE, $this->get('action'));
    return $defaults;
  }
}

```

To Clarify the reason i want the contact ID for the user i am submitting the form for is because i want to display that contacts 'Employer' in a custom field. I have tried the following:

```
CRM_Utils_Request::retrieve('cid', 'Positive');
$form->getContactID();
$form->_contactID;

```

The issue i am having is that is the above lines of code work if i associate it to a field within the contribution form but if i associate it to a custom field it will show the contactID of the user submitting the form not the user of whom the form is being submitting for.

I have also tried to do this via a custom buildForm hook:

```
function dfi_civicrm_buildForm($formName, &$form) {

    if ($formName == 'CRM_Contribute_Form_Contribution' || $form == CRM_Core_Action::ADD) {
        $thisContactID = $form->_contactID;
        $defaults['custom_224_-1'] = $thisContactID;
       $form->setDefaults($defaults);
    }
}

```

I hope i have been clear and i would really appreciate your help.

Thanks

---

An Idea i have had is to set the ContactID within a field in the 'Contribution section' use getVar to get the value of the field and then assign that value to the custom field.

Is this possible?

# Answer
I was able to figure this out using the following code:

```
        $getSessionArray = CRM_Core_Session::singleton()->get('CRM_Utils_Recent');
        $thisContactID = $getSessionArray[0]['id'];

```
> 3 votes

---
Tags: contacts
---


# Question
Title: Stripe Authorises payment before form validation causing problems
CiviCRM 5.17.4 Drupal 7.67 Stripe 6.2.2

Our problem is we have a fairly complicated booking form with quite a few required fields and a stripe payment option.

When a client opts to pay by stripe, but then selects to continue before filling in all required fields, Civi of course warns that not all info has been entered and does not continue but Stripe will authorize the payment and it appears in the stripe dashboard as an uncaptured payment.

Some people simply don't notice the incomplete fields warning and abandon the booking.

They then complain that the money has been taken from their account despite not completing the booking. (From their point of view this is correct as Civi scheduled jobs only cancels uncaptured payments after one day) and they (or we) have no confirmation of the booking (which again is correct because they didn't complete the booking)

Is this behaviour right? We would far prefer it if Stripe didn't authenticate payments if required booking fields were not filled in..

# Answer
I believe this is correct behaviour.

The flow with Stripe is slightly opaque due to the complexity of maintaining a level of PCI compliance while using a CiviCRM form for payment.

The credit card part of the form is actually an iframe hosted with Stripe (that's what allows for the PCI compliance trick), which will take the credentials and test them by trying put a hold on the contribution amount, and then it'll pass back to the form a one-time "token" that can then be used to complete (capture) the payment.

That completion is only performed after the form is submitted, so it needs to have a reliable hold on the funds.

If you want the uncaptured hold to be release earlier, you can likely submit a PR and/or run the scheduled job more often.
> 3 votes

---
Tags: stripe
---


# Question
Title: Create new contact sub-type when extension is installed
I'm building a new extension using civix and buildkit. I need to create a new ContactType (sub-type of individual) on install (if it doesn't already exist). I know how I would do it, but I'd prefer to do it in accordance with CiviCRM's standards. What's the correct way to do this?

# Answer
> 5 votes
A contact subtype is an "entity" - it exists as a record in the civicrm\_contact\_type table. So that means you can use the "managed entity" approach described here:

https://civicrm.org/blog/totten/api-and-art-installation

and documented here:

https://docs.civicrm.org/dev/en/latest/hooks/hook\_civicrm\_managed/

You could instead implement the install hook (https://docs.civicrm.org/dev/en/latest/hooks/hook\_civicrm\_install/) and manually test for the existence of the contact type and create it if not (more details in Demerit's answer below).

# Answer
> 1 votes
If you mean which api functions to call to create/update/delete the type, as a general rule you look in api explorer (available via the admin menu in civicrm under Support -\> Developer) to see if there's something there (which shows there is ContactType -\> create), and if had turned out there wasn't anything you could look in the core code to see how civi does it when you do it from the UI.

If you're asking which hooks to use it would be hook\_civicrm\_install / uninstall / enable / disable. In install/uninstall you create/delete the type, in enable/disable you set `is_active` to 1 or 0. In uninstall you might not want to delete the type if there are existing contacts with that type.

---
Tags: developer, civix
---


# Question
Title: Cache SqlGroup.php expiration_date-value not Positive
Installed civicrm 5.20.1, Windows10, WP 5.3.. Install errors flag civicrm\_cache.expiration\_date, set in CRM/Utils/Cache/SqlGroup.php, in update and insert queries as FROM\_UNIXTIME(%5) and FROM\_UNIXTIME(%3) respectively, but no valid numeric arg values are supplied for expired\_date like for created\_date b/c $expires at line 133 isn't getting set correctly.

# Answer
> 1 votes
I replaced line 133 -134 in SqlGroup.php with this: $ttl1 = microtime(1); $expires = strtotime($ttl1) + self::DEFAULT\_TTL;

---
Tags: civicrm-entity
---


# Question
Title: How to remove an old email link from an event page
I have created a new event page and on the online registration page I have entered the 'Confirm From email' address that I want to use. However, when someone registers for the event the confirmation email is being sent to a different email address that was used for an event in 2018. This alternative email address was listed as disabled on the 'From email addresses' list and I have since deleted it but messages are still being sent to it from this new event page. I can't find anywhere in the CiviCRM system where this email address exists to change or delete this association with the event page. Where can I look to edit or delete this association?

# Answer
Thank you for your help. I have now fixed the problem- it was hiding on a profile page for conference registrants in the advanced settings section at the bottom of the page (which I had missed!)
> 4 votes

# Answer
I can think of three possibilities. Let's call the email address that is erroneously receiving these emails the "mystery email address".

1. Your payment processor is configured with the mystery email address for notification. If this is the answer, then the emails you are getting would be not from CiviCRM and you'll probably be able to see that from the contents.
2. When creating the event, you copied/cloned the previous event, and the address was somehow carried along in a field that you're no longer seeing.
3. One of the email addresses that is being notified (correctly) has been configured to automatically forward a copy to the mystery email address.

To further diagnose the issue, take a look at the email headers of one of the emails that you received to the mystery email address. It will show you some details about which address is was originally sent to, as well as where it originated from.
> 3 votes

---
Tags: civievent
---


# Question
Title: mismatch between journal and contribution transaction ID
Love iATS and Civi!

That aside, we're experiencing an issue where some transactions have a mismatch as stated in title.

In the SQL Database I'll browse the 'civicrm\_iats\_journal' table and find the transaction record and I'll see something like 'AC13AA7R'

Then, on the civi contribution record, I'll see this in the transaction ID field: 'A1FA1CC2:1574381880' i.e. a different ID altogether.

Curiously, the invoice ID matches in the contribution 'Invoice Reference' field, in the iATS online journal, and Civi's '`civicrm_iats_journal`' table. So I'm 99.9% sure it's the same transaction.

# Answer
> 2 votes
It’s 100% the same transaction. iATS reported they had an issue with Transaction ID numbering sequence for a portion of Nov. I’ll copy paste the Email thst went out to Partners:

Dear Valued Partner, Please be advised that if your environment takes postbacks and/or runs morning download journals from the iATS system, your clients may have recently been impacted by duplicate transaction records caused by a logic error in creating and assigning iATS transaction ID's. When did the issue occur? From November 18th to December 2nd . Has the issue been resolved? Yes. Our development team has identified the root cause and made the necessary coding changes to correct any duplicate iATS transactions importing into your environment. We can confirm that this was due to our logic in creating/assigning iATS transaction ID’s and did not impact the number of transactions charged to account holders. This has been corrected and should not occur again, but as always, please keep us informed if you see any instances of this occurring. What should you do? There is no update needed on your part to correct the coding in order prevent this in the future. Clients are free to delete the duplicate iATS transaction from the environments without worry of impact. Note, clients should check the iATS portal to confirm which iATS transaction was processed and which one was the duplicate needing to be deleted. If you have any additional questions, or should you need assistance in identifying these duplicate transactions, we are happy to assist you, or our mutual clients directly. They can reach out to our iATS Customer Care team for assistance with this process at iatscs@iatspayments.com or via phone at 1-888-955-5455 Option 1. Sincerely,

---
Tags: iats
---


# Question
Title: After 5.18.4 Upgrade, Cases are Missing from the List
After Drupal 7.67 and CiviCRM 5.18.4 upgrades, when you click on add a case, the correct screen opens, you can enter data, then save, and the number of cases showing in the constituent summary is incremented, but no new cases show up in a list to be managed. This was previously, for several years on prior versions, working correctly, Also, even for existing cases, the activity dropdown list is not being populated, although they have worked in the past and the Activity Type Options are correctly setup.

So now, in short, the number of cases in the Contact Summary is correct, such as 2 for a certain client, but when you click on the Cases tab, only 1 case appears. CiviCRM was no upgraded to 5.19.0 and the problem persists.

Examining the Case data directly in the database shows no clear reason for this. Furthermore the options for activity\_type for the CiviCase component are also in the database and match those of a fresh install.

Has anyone run into this or can you suggest other things I can do to troubleshoot?

# Answer
The issue here was missing XML files. If you run an upgrade and accidentally override the CiviCase XML configuration files, then this will happen.

The solution is to put back those files and CiviCRM may pick them up and import them into the database. If not, you may need to manually copy and paste the XML definitions into the `civicrm_case_type` table.
> 1 votes

---
Tags: civicase
---


title: How to reuse Preferred language select?

text:
# Question
Title: How to reuse Preferred language select?
There is the ***Preferred language*** field in ***Communication Preferences*** which allows to choose the contact's preferred language.

However when I try to create custom fields for a contact's second, third language, I don't find ***Language*** as a choice among the other ***Data and Input Field Types*** What would be the recommended way to make the language select like in ***Preferred language*** available for re-use in custom fields?

With all the languages in a select field defined and available somewhere, what I try to avoid here is that I need to re-enter all these languages by hand for my custom fields.

# Answer
I had this need today, and wrote a general version of the extension @ñull wrote above. This lets anyone take advantage of this feature without knowing how to code: https://lab.civicrm.org/extensions/languagecustomfield
> 4 votes

# Answer
In CiviCRM, custom fields have the ability to re-use options from another custom field, but not from a core field like *Preferred Language*. So this is not currently possible via the UI.

2 Solutions come to mind, both using small amounts of custom code:

1. Write a short script that uses the api to fetch all languages and then copy them into the options of one of your custom fields. Then re-use those same options in 3rd, 4th language fields.
2. Write a tiny extension that implements hook\_civicrm\_customFieldOptions and populates those options dynamically by outputting the languages in the system.
> 3 votes

# Answer
My solution for this was to

1. Setup Field with Alphanumeric and Select Properties, assigning it to any existing option set.
2. Directly in the Database: Find Table: "civicrm\_option\_group" In that table find the option group you are trying to use (e.e: Languages). Take note of that row's "id".
3. Directly in the Database: Find Table: "civicrm\_custom\_field" In that field find the field you created in Step 1.
4. In the row of that field, edit the column: "option\_group\_id" to the id number you notated in Step 2.

This worked for me when trying to use the Languages list.
> 3 votes

---
Tags: custom-fields
---


title: Civicrm invoice number reset

text:
# Question
Title: Civicrm invoice number reset
We have activated the contribute form within our CIVI.

We wondered: with the arrival of the new year, when there will be the need to restart from 1 with the invoice numbering, do we have to do some operation or will the system restart automatically?

Regards

# Answer
> 1 votes
It will not restart automatically, the requirement to restart from 1 (with a year somewhere in the invoice number?) is depending on countries AFAIK :-)

So what you need to do first thing in the new year is navigate to Administer\>CiviContribute\>CiviContribute Component Settings and update the invoice prefix (and the credit notes prefix if you need that too).

---
Tags: civicontribute, invoice
---


title: Preventing Concurrent Activity Creation

text:
# Question
Title: Preventing Concurrent Activity Creation
I want to use CiviCRM in a new project right now. In this project, it is necessary to assume an activity. So before creating an event for xxx individual registration, this xxx individual transaction must undertake. No one else who has taken over the registration and who has the authority to open a record in Joomla / CiviCRM on this individual until the transaction (new activity) completes.

Here's the story. Only joomla users can access CRM. When a person is interviewed, a Phone Call activity is created for this. If there is a need for additional support, the shared e-mail address of the related team is added to the Assigned section. Since there is more than one person from the common e-mail address, more than one person can make transactions at the same time. I want to prevent anyone else from taking action on this record by doing something like (assume) after viewing the CiviCRM Record in this mail.

If this is possible, I would like to know how to do this, or if there is an add-on created before.

# Answer
> 1 votes
By "complete", I'm assuming you are talking about the status of the activity?

You will need to develop an extension to implement your specific workflow, as there isn't anything in civi preventing having multiple activities with various status and your workflow seems to be specific enough that it's unlikely someone else has done and shared something similar.

The safest point is probably as a pre hook, ie before saving an activity, check that the required other activities with the expected status are there.

However, it this would be a sub-optimal user experience, as a user might start creating the activity without realising it will not be possible to save (because of the pre-hook).

So you should probably alter the display of the contact (as it seems to be the main path to create a new activity) and add a message/change color/add a warning message "this contact is reserved because activity bla has the status..."

Please do share if you implement it, it might help others, at least as inspiration and starting point.

# Answer
> 0 votes
Hi @xavier We agree partially. I have used this process on a CRM system called Mi4Biz. I don't have any coding information to do what you say. My knowledge of English is not enough to explain this situation more clearly. I write here with Google Translete. He often makes different meanings. So I'm using the example in almost every questions statement.

Let me give you another example. Welcome Team, Sales Team and Confirmation Team as 3 gutup Think.

The Welcome Team opens a recording when a call is made. If a payment is to be received from the interviewee, it directs it to the Sales Team. It records the activity in the Assigned field by typing the group into the E-mail address.

Now he went to this activity as an e-mail to everyone in the mail group. One of them should be quick to call back and get paid. However, everyone has the possibility to call the person at the same time. There is also the possibility that everyone can create an activity at the same time. Therefore, the first person who enters the activity record or wants to do the operation first must lock the record so that no one else can create the activity. After the person in this Team makes the sales search, the Confirmation Team records the group e-mail address in the Assigned section.

Thanks to the e-mail to the team to check the registration of one of them to confirm the process and if any product is out. In this way, no one's job is interfering with the other and the process is prevented at the same time.

I hope GoogleTranslate has translated properly. :)

---
Tags: joomla, activities
---


# Question
Title: nativecode=1260 ** Row 60 was cut by GROUP_CONCAT()
After an upgrade from 5.7.x to 5.13.x, a standard contribution/detail report started failing. In the CiviCRM admin log, we see this sql error:

```
nativecode=1260 ** Row 60 was cut by GROUP_CONCAT()

```

Which appears to be getting generated at line 546 of civicrm/CRM/Report/Form/Contribute/Detail.php i.e. creating a temporary table as part of the post processing.

This is a monthly report for credit card contributions, a similar one for ACH/EFT is not failing, so it appears to be some kind of limit issue.

One solution appears to be to update a mysql setting, as noted here: https://stackoverflow.com/questions/7208773/mysql-row-30153-was-cut-by-group-concat-error

On this server (mariadb 10.1), the setting is not specifically configured, and has the default setting: group\_concat\_max\_len = 1024

# Answer
> 1 votes
As an ad-hoc solution, I put

```
CRM_Core_DAO::executeQuery('SET SESSION group_concat_max_len=15000');

```

In the report code, before line 546, and that fixed it.

---
Tags: civireport, mysql
---


# Question
Title: CIVICRM with MYSQL encrypted on ecryptfs
I managed to have CIVICRM (5.15.2 on WP 5.0.7 on Ubuntu 18) running on MySQL (5.7.28) from an encrypted mount via ecryptfs. Currently only the mysql files are in the encrypted mount and it's running a few days now and all seems good. I would like to check whether there are experiences from similar setup and whether there would be issues to anticipate ? Thanks.

# Answer
Linking to your other question which is similar but slightly different since it's about using encryption that's natively supported by mariadb: Civicrm on mariadb with data encryption.

For this question, I have used a similar tool `encfs` once for a **non-civi** setup to put the mysql files on an encrypted partition and it worked fine but the problem I had was the same as in the other post, that it partly defeats the purpose if you have to store the keys/password unencrypted on the same server, or else you can't do unattended reboots. It's a trade-off.
> 0 votes

---
Tags: mysql
---


# Question
Title: packages/Net/UserAgent/Detect/APC.php flagged as malicious by Wordfence Firewall
Our Wordpress firewall Wordfence has flagged packages/Net/UserAgent/Detect/APC.php as possibly a malicious file. Based on past experience, I assume this is a false positive. However, I posted it here in case it is a real problem.

**Filename:** wp-content/civicrm 5.18.3/civicrm/packages/Net/UserAgent/Detect/APC.php

**File Type:** Not a core, theme, or plugin file from wordpress.org.

**Details:** This file appears to be installed or modified by a hacker to perform malicious activity. If you know about this file you can choose to ignore it to exclude it from future scans. The matched text in this file is:

The issue type is: **Suspicious:PHP/antibotInclude.C.7882**

Description: **Inclusion of an antibot file, often used in phishing kits**

# Answer
> 1 votes
What I believe it's flagging based on the "description" line in your post is probably that the UserAgent tool could be used by bad people to get information about a browser, possibly to look for versions or configurations with known security holes to exploit. But it doesn't seem to be used in CiviCRM as far as I can see, and the APC.php subclass file all it does is store the results in the APC cache if you're using that. I wonder if the whole Net/UserAgent folder could be removed from Civi.

UPDATE: It looks like the file will be removed in civi version 5.22: https://github.com/civicrm/civicrm-packages/pull/272

---
Tags: wordpress, php, security
---


# Question
Title: How can I change column width on printed reports
How do I change the width of columns on printed reports. Some columns are too wide and some are too narrow.

# Answer
> 0 votes
Depends whether its a one off report or something that you want to use regularly or for others to use without having to configure. The way I get reports looking how I want them is to export as CSV and then use Excel to set up the layout.

# Answer
> -1 votes
Go to Administer \> Communications \> Message Templates \> System Workflow Messages \> Pick the receipt that you need to edit. Scroll down to the HTML Format box and edit the layout to your liking. Then click save at the bottom.

---
Tags: civireport
---


# Question
Title: How can we view past civievents in the events summary dashboard on civi? we can only see current and future ones
We want to see past events in our civi events dashboard. How can we do this?

# Answer
Welcome to SE! I don't think you can configure the dashboard, but you can get a similar result by using the Event Participants report and searching by event them name and grouping by name. And you can filter by a specific period. You can save this as a new report.
> 1 votes

---
Tags: civievent, dashboard
---


# Question
Title: Can I update the id of an existing OptionValue?
I'm trying to update the ID of an existing OptionValue using API v4. I get "Cannot update the id of an existing OptionValue" error. Is there another way to do that?

# Answer
As said by Jitendra, you cannot update the id via CiviCRM api. The id in civicrm tables are autoincremented and are referenced at many places. If you still want to take risk than you can run a sql query in mysql to update the id of required row in civicrm\_option\_value table.
> 1 votes

---
Tags: api, option
---


# Question
Title: Members Can't Log-In to renew membership
Some of my members are having trouble renewing their membership. When they go to our renewal page, they enter their email and receive a message that says "The username or email you provided do not exist. Please try again." I can see that the email they are entering is the one we have on file in their contact file. What could the problem here be? Is there a setting we need to change in their contact files? This only happens with some members, some renew no problem.

Members enter their email and it should redirect them to a form to pay their fees (auto-filling information from the previous year). For our members with the issue logging in, it doesn't seem to recognize their email at all.

# Answer
> 1 votes
Are you using Drupal? By default Drupal does not allow login by email. But there is a module for that.

---
Tags: civimember
---


# Question
Title: Menus disappear on update to 5.20.2 (Wordpress)
* Wordpress 5.3.1 (on Siteground)
* \[upgrading from CiviCRM 5.19.2 to\] CiviCRM 5.20.1/2

Apart from a (quite lengthy) list of templates that might be affected by the db upgrade, this process goes as expected. But upon reloading, I lose the CiviCRM menus and get, instead, the weird mile-long mess at the bottom of the page.

I can confirm a 404 error on the crm-menubar css, and I can also see that the path to that file has changed from the previous installation. The previous path had been:

> www.mysite.org/public\_html/wp-content/uploads/civicrm/persist/contribute/dyn/crm-menubar.blahblah.css

in version 5.20.2, it is:

> www.mysite.org/home/user\_directory/www/mysite.org/public\_html/wp-content/uploads/civicrm/persist/contribute/dyn/crm-menubar.blahblah.css

So I've changed the $civicrm\_root (in the settings file) to:

> /home/user\_directory/www/mysite.org/public\_html/wp-content/plugins/civicrm/civicrm/

But I'm still getting the 404.

I have:

* double checked the directory permissions (though it isn't clear why these might have changed)
* cleaned up the caches and updated the paths
* read about a whole lot of similar cases, here

This isn't (yet) a crisis or anything, but I do keep reverting back to the previous version, as it's a lot pleasanter to deal with (though the security warnings are working as they should, and I'd really like to get this patch).

I suspect that this is related to resource URLs, but I'm not sure what additional steps to take.

# Answer
The definition of $civicrm\_root was indeed the problem; in my settings.php (which had been working for a while) the path used Siteground username (as does DocumentRoot), whereas this should be replaced by the generic 'customer.'

How I got there:

It was obvious that something was wrong with the Resource URL, but I couldn't figure it out (as the comments should make clear). So I reverted to 5.19.2, made a full-site backup, and then uninstalled CiviCRM completely: plugins/civicrm, uploads/civicrm, and the db. Then ran a fresh install to autogenerate a new settings.php file, which I downloaded.

Then I restored the full-site backup & ran the CiviCRM update as normal, except that I put the newly-generated settings.php file in place before upgrading the db. This worked, fortunately, and the only difference between the settings files was the one described above.
> 4 votes

# Answer
Can you make sure the directory path defined for $civicrm\_root of your site matches with DocumentRoot mentioned in your apache2/nginx conf setting. They should match with each other.

The other option is to set 'CiviCRM Resource URL' in Resource url setting to http://www.mysite.org/public\_html/wp-content/plugins/civicrm/civicrm/
> 1 votes

---
Tags: wordpress, upgrade, menu, resource-urls
---


title: How to create new Relative Date Filter?

text:
# Question
Title: How to create new Relative Date Filter?
I've stumbled across the options in **Administer - System Settings - Option Groups** and I read somewhere that you can create new ones.. so I tried using the syntax of existing options:

eg Previous 2 calendar years = "previous\_2.year"
so I tried Previous 3 calendar years = "previous\_3.year"

but that didnt work- just returned empty results (tried lots of others and they all did the same)

any clues please?

# Answer
Certain ones can work by just adding option values, but I don't think everything. For example @andy-clark you can do prior 6 months as "ending\_6.month" which is supported by the default clause here https://github.com/civicrm/civicrm-core/blob/5.20.2/CRM/Utils/Date.php#L1660

Take a look through that function to get an idea of what works, in particular the default clauses in each section.
> 3 votes

---
Tags: search, dates
---


title: Geocoding Provider Error

text:
# Question
Title: Geocoding Provider Error
Contributions have been processed correctly so far, but when clicking on continue in both Paypal and Redsys (credit card) the following error appears (both Live and Test)

**php\_network\_getaddresses: getaddrinfo failed: Name or service not known**

```
Array

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

    [code] => 0
    [message] => php_network_getaddresses: getaddrinfo failed: Name or service not known
    [mode] => 16
    [debug_info] =>
    [type] => PEAR_Error
    [user_info] =>
    [to_string] => [pear_error: message="php_network_getaddresses: getaddrinfo failed: Name or service not known" code=0 mode=callback callback=CRM_Core_Error::handle prefix="" info=""]
)

```

backTrace

```
#0 / ...  /modules/civicrm/CRM/Core/Error.php(182): CRM_Core_Error::backtrace()
#1 [internal function](): CRM_Core_Error::handle(Object(PEAR_Error))
#2 / ...  /modules/civicrm/packages/PEAR.php(931): call_user_func((Array:2), Object(PEAR_Error))
#3 / ...  /modules/civicrm/packages/PEAR.php(566): PEAR_Error->PEAR_Error("php_network_getaddresses: getaddrinfo failed: Name or service not known", 0, 16, (Array:2), NULL)
#4 / ...  /modules/civicrm/packages/Net/Socket.php(156): PEAR->raiseError("php_network_getaddresses: getaddrinfo failed: Name or service not known", 0)
#5 / ...  /modules/civicrm/packages/HTTP/Request.php(737): Net_Socket->connect("query.yahooapis.com", 80, NULL, NULL, NULL)
#6 / ...  /modules/civicrm/CRM/Utils/Geocode/Yahoo.php(127): HTTP_Request->sendRequest()
#7 / ...  /modules/civicrm/CRM/Core/BAO/Address.php(387): CRM_Utils_Geocode_Yahoo::format((Array:13))
#8 / ...  /modules/civicrm/CRM/Core/BAO/Address.php(144): CRM_Core_BAO_Address::fixAddress((Array:13))
#9 / ...  /modules/civicrm/CRM/Core/BAO/Address.php(120): CRM_Core_BAO_Address::add((Array:13), TRUE)
#10 / ...  /modules/civicrm/CRM/Core/BAO/Location.php(69): CRM_Core_BAO_Address::create((Array:34), TRUE, NULL)
#11 / ...  /modules/civicrm/CRM/Contact/BAO/Contact.php(348): CRM_Core_BAO_Location::create((Array:34), TRUE)
#12 / ...  /modules/civicrm/CRM/Contact/BAO/Contact.php(1897): CRM_Contact_BAO_Contact::create((Array:34))
#13 / ...  /modules/civicrm/CRM/Contribute/Form/Contribution/Confirm.php(2066): CRM_Contact_BAO_Contact::createProfileContact((Array:35), (Array:14), "7327", (Array:0), NULL, "Individual", TRUE)
#14 / ...  /modules/civicrm/CRM/Contribute/Form/Contribution/Confirm.php(594): CRM_Contribute_Form_Contribution_Confirm->processFormSubmission("7327")
#15 / ...  /modules/civicrm/CRM/Core/Form.php(423): CRM_Contribute_Form_Contribution_Confirm->postProcess()
#16 / ...  /modules/civicrm/CRM/Core/StateMachine.php(160): CRM_Core_Form->mainProcess()
#17 / ...  /modules/civicrm/CRM/Core/QuickForm/Action/Next.php(61): CRM_Core_StateMachine->perform(Object(CRM_Contribute_Form_Contribution_Confirm), "next", "Next")
#18 / ...  /modules/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Contribute_Form_Contribution_Confirm), "next")
#19 / ...  /modules/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Contribute_Form_Contribution_Confirm), "next")
#20 / ...  /modules/civicrm/CRM/Core/Controller.php(351): HTML_QuickForm_Page->handle("next")
#21 / ...  /modules/civicrm/CRM/Core/Invoke.php(312): CRM_Core_Controller->run((Array:3), NULL)
#22 / ...  /modules/civicrm/CRM/Core/Invoke.php(86): CRM_Core_Invoke::runItem((Array:15))
#23 / ...  /modules/civicrm/CRM/Core/Invoke.php(54): CRM_Core_Invoke::_invoke((Array:3))
#24 / ...  /modules/civicrm/drupal/civicrm.module(454): CRM_Core_Invoke::invoke((Array:3))
#25 [internal function](): civicrm_invoke("contribute", "transact")
#26 / ... /web/includes/menu.inc(527): call_user_func_array("civicrm_invoke", (Array:2))
#27 /... /web/index.php(480): menu_execute_active_handler()
#28 {main}

```

I need help. Anyone got any ideas?

Thks

# Answer
> 3 votes
Like William says, the error is due to the geocoding, which may even be happening after the contribution completes. Your system is trying to geocode with the domain http://query.yahooapis.com/ which no longer has a dns entry.

Chances are you are running a very old version of CiviCRM and need to upgrade it, but in any case, you can just remove geocoding in Administer -\> System Settings -\> Mapping and Geocoding, i.e. this path:

/civicrm/admin/setting/mapping?reset=1

You could install the new geocoding extension at some point, but I'd think your priority would be to get rid of the errors.

# Answer
> 0 votes
Thank you very much for your quick response. My Geocoding Provider was Yahoo, I have changed it to Google and it has worked again. I will have to update CIVI to a more new version (4.7.4).

Thanks again!

---
Tags: payment-processor
---


title: Filter Contacts by Email Domain

text:
# Question
Title: Filter Contacts by Email Domain
I'm trying to filter my contacts so I can easily identify a subset of those from the same organisation in order to fill in the relationships side of the CRM. I have a custom report to view all contacts, but there's no filter option for the e-mail heading of data.

Would this need to be done as a separate report perhaps?

e.g: E-mail is equal to "@shsc.nhs.uk"

# Answer
> 3 votes
This can be done via the search function, doing a search for the e-mail domain will yield all contact results matching that domain, which you can then bulk select and from the Actions menu add a relationship to an organisation.

---
Tags: wordpress, contacts
---


title: Menu bar issues and resource url?

text:
# Question
Title: Menu bar issues and resource url?
Our menu bar is currently missing. We are on WP 5.2.3 and Civicrm 5.15.1 I managed to get CiviCRM Admin Utilities installed and that makes the site workable, but i would like to get the menu working. This is what I currently see.  I am not sure if I am on the correct track, but I saw on some forums that this could be related to the resource url.

My resource url currently is . Is that correct?

I have tried cleaning up the Caches and resetting the paths, but when i reset the paths it says that my civicrm userFrameworkResourceURL is overriden in civicrm.settings.php

My Resource URL is pointing to wp-content/plugins/civicrm/civicrm. My civicrm.settings.php file is sitting in /wp-content/upload/civicrm/civicrm.settings.php.

Is my resource url correct? or what should the Resource url point to?

Sorry for what is probably a silly question, i'm not even sure if this is part of the issue.

# Answer
> 1 votes
If unsure about settings I normally double check them against the relevant sandbox -\> https://wpmaster.demo.civicrm.org/ (or dmaster for drupal).

My post upgrade checks for a missing civicrm menu are:

1. Clear Caches - Twice
2. Delete all files and directories inside templates\_c (Usually located at directory that \[civicrm\_files\] points at. Unless this is overridden in civicrm.settings.php)
3. Rebuild Menu's

(Note for wordpress the wordpress civicrm admin utilities you mention provides handy links to these, plus more -\> https://wordpress.org/plugins/civicrm-admin-utilities/)

Drupal: http://example.com/civicrm/menu/rebuild?reset=1

WordPress: http://example.com/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fmenu%2Frebuild%3Freset%3D1

Joomla: https://example.com/administrator/?option=com\_civicrm&task=civicrm/menu/rebuild?reset=1

(adapted from Joe Murray's answer on How to run triggerRebuild URL)

4. Check the Browser console for Javascript errors. Extensions (Shoreditch for example) if not kept up-to-date can cause problems if they are overriding files, or expecting specific code that has changed in core. This can lead to the menu not showing. Probably not relevant to you - but for Drupal for example if the setting to combine and compress js files into one is selected then often a completely unrelated error can cause havoc else where. Turn off any aggregation.

Incorrect resource url: This warning is triggered if the following file can't be resolved. "CiviCRM Resource URL"/packages/jquery/css/images/arrow.png (Should be located at https://example.com/wp-content/plugins/civicrm/civcirm//packages/jquery/css/images/arrow.png If you see the "arrows" in you civicrm menu then this is a false positive. If you can't see your menu that doesn't really help sorry. From memory there have been some false positives for this warning in a recent install.

Additionally you possibly want to think about upgrading to the latest version of civicrm as there have been a few security releases since your version was released. As well as being insecure, if you are not running the latest version you run the risk that the problem you are having was a core bug that has since been fixed.

# Answer
> 0 votes
I can't say that I know *why* this is happening, but the menu often disappears for me each time I upgrade CiviCRM to 5.17.x or beyond. I realise your CiviCRM version is a bit older, but perhaps my fix will work for you too:

I find that the CiviCRM menu reappears consistently if I visit the "Settings - Resource URLs" page (which you have a partial screenshot of) and simply hit "Save".

# Answer
> 0 votes
I don't know if it helps, but some time between CiviCRM 5.11 and 5.15.1 a new setting for menu permission was introduced with one of the options being "none - disable menu". Its in Administer \>\> Customize Data and Screens \>\> Display Preferences, but to get to it you will need to use http://yourdomain.org/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Fsetting%2Fpreferences%2Fdisplay&reset=1 as you obviously can't use the menu to get there.

Would be useful to know whether it just suddenly disappeared or if this was after an upgrade or something.

# Answer
> 0 votes
Your resource URL, 'https://name/wp\_content/plugins/civicrm/civicrm
is exactly what I have, and it works. In one case I ended up basically re-installing Civicrm after saving the database, etc. Civicrm complained about 'incorrect resourceUrl' but it worked, I got a menu, built correctly. Re: trailing slash, inside civicrm.settings, civicrm\_root will be defined as 'your home folder/name/wp\_content/plugins/civicrm/civicrm/' with the trailing slash

---
Tags: wordpress, menu, resource-urls
---


# Question
Title: Where does CiviCRM store Merge 'history'?
After Merging Contacts -\> dig up a Contact in the Trash bin and you'll see something like:

Where does CiviCRM store this information? How does it track which Contact is merged with which Contact?

# Answer
> 6 votes
An activity gets recorded when you merge and it looks up the target contact via that.

Use `$winnerContact = civicrm_api3('Contact', 'getmergedto', ['contact_id' => $contactId])`.

See also https://github.com/civicrm/civicrm-core/blob/5.20.2/api/v3/Contact.php#L1275

---
Tags: contacts, duplicate-contacts
---


# Question
Title: Stripe/GoCardless Payment Processor payouts - Accounts reconciliation
I understand this isn't strictly CiviCRM, but it's more a question to the community in how they work with the payouts of the popular payment processors Stripe & GoCardless.

As I understand it, both payment processors group income and payout at a certain frequency as a single payment to a bank account.

As part of our annual accounts submission, we have to show income separation between membership & donations. At the moment, that requires us to go back into Stripe or GoCardless admin UI once we receive our monthly bank statement and try and piece together how much of that payout was membership vs donations that month. Once that's done, we then can correctly input and tag it in our bookkeeping software (Sage in this case).

Is there an easier or more streamlined way to handle this?

Apologies if this is too far removed from CiviCRM subject matter and thus needs to be removed.

Any input would be greatly appreciated.

# Answer
> 3 votes
The most common approach to reconciliation is to update contributions within the CRM with the identifier from the payment processor. For Stripe we have a few approaches, our most recent is the payout reference from Stripe is automatically pulled back into CiviCRM. This allows the finance departments to run a payout report from both systems and reconcile. This has proved to be a very reliable and streamlined process. With GoCardless it's not possible to do an automated process unless you have the pro version with access to their APIs. You can perform a similar function by updating contributions in CiviCRM using the GoCardless data.

The key to a streamlined process is finance being able to easily find all the transaction which make up the transaction into their bank account, which involves some flow of information back from the payment processor into the CRM. The unfortunate part of this is all of the payment processors have varying levels of APIs and data to access.

---
Tags: payment-processor, stripe, payment, gocardless
---


title: Importing VCF files

text:
# Question
Title: Importing VCF files
I’ve got a client with a fair number of Contacts on his personal computer in VCF format. I’m curious if anyone has looked at importing VCF files into CiviCRM?

# Answer
> 3 votes
It's not a direct answer, but this looks like a pretty quick and suprisingly awesome way to convert to csv:

https://www.hostpapa.com/knowledgebase/convert-vcf-files-csv-email-contacts/

EDIT: in case above link goes bad:

In windows all users have a `C:\users\your name\Contacts` folder. If you navigate there in windows explorer the ribbon gives you an import button which then allows you to import the vcf files. Then you can export them as csv.

---
Tags: import
---


# Question
Title: Confirm From Email Error in Configure Event
I get this error while in the Configure Event -\> Online Registration tab and trying to enable the Send Confirmation Email feature:

Warning: idn\_to\_ascii() expects parameter 3 to be integer, string given in /home2/nymissionary/public\_html/administrator/components/com\_civicrm/civicrm/packages/HTML/QuickForm/Rule/Email.php on line 58

A screenshot is shown below. I need your help so I can use this feature.

~ Ron

# Answer
> 2 votes
It looks like this issue has been reported and fixed here: https://lab.civicrm.org/dev/core/issues/1469

With this patch https://github.com/civicrm/civicrm-packages/pull/271.patch

To apply.

First make up a backup of the file.

Then option one - if you have command line access you would want to

navigate to

/home2/nymissionary/public\_html/administrator/components/com\_civicrm/civicrm/packages/

Download the patch using wget

wget https://patch-diff.githubusercontent.com/raw/civicrm/civicrm-packages/pull/271.patch

This will create a file called 271.patch

Then you want to apply the patch using the patch command

patch -p1 \< 271.patch

( What this does

1. use the patch command
2. strip off the first 1 bit of the path when searching for the files (in this case the a and the b from a/HTML/QuickForm/Rule/Email.php b/HTML/QuickForm/Rule/Email.php )
3. and read in the file you downloaded to get the instructions on what to do.

)

In this case it looks like a pretty simple patch that you could do manually if you were more comfortable.

Again make a backup of the file then edit the file: HTML/QuickForm/Rule/Email.php

Then look at https://patch-diff.githubusercontent.com/raw/civicrm/civicrm-packages/pull/271.patch

What you want to do is add any line (without the +) that starts with a plus and remove anything with a minus.

You want to add the code between the lines without the pluses above and below so the first chunk will go in about line 37.

after

class HTML\_QuickForm\_Rule\_Email extends HTML\_QuickForm\_Rule {

but before // switching to a better regex as per CRM-40

Then the second bit you just need to swap

$part = idn\_to\_ascii($part, 0, INTL\_IDNA\_VARIANT\_UTS46); for $part = self::idn\_to\_ascii($part);

If you get any errors after saving just revert to your backup.

---
Tags: civievent
---


title: Importing Gift Aid records

text:
# Question
Title: Importing Gift Aid records
I am moving our memberships over to CiviCRM and we have a few thousand active members. I have implemented the Gift Aid extension and I would like to import Gift Aid records for all the existing customers. Can someone recommend a process for this or help me with api calls. I am happy to write php code but I can't identify which api calls are necessary. Thanks for any help

# Answer
You can import Gift Aid records with **Import Contacts**, but as they are as they are multi record fields, you have to use the ... option which is hidden away. You need to click on the **?** help for Import Records, which, at the end, gives you a link to the **Import Multi-value Custom Data** screen. Obviously you have to get your data into a suitable csv file to import and will have to add the contact id to match to the contact record (but easy enough with an export of all contacts and a lookup - checking duplicate names) or use external id if you have used one for the import of contact data.
> 3 votes

---
Tags: gift-aid-extension
---


# Question
Title: Need Input on Use of an Aggregation in the Data Processor Extension
I need to create a report with a list of all donors, the total that they've contributed over the last 12 months, when their last membership expired, and a couple contact items like email address. (If they meet a certain minimum contribution amount, I need to give them a 12-month membership.) I'm using the Data Processor extension on a WordPress site (everything is up to date).

I have the overall data processor created, with data sources, output, fields, and a filter for 12 months worth of contributions. But right now it is giving me one row for each individual contribution and membership expiration (apparently a Cartesion product query). This seems to suggest that I need to aggregate the contribution Total Amount and Membership Expiration Date.

How can I do that? Adding an aggregate field is fairly straightforward: just select the field you want to add. There are no other options. Yet it doesn't seem to do any aggregation.

My Google-fu has let me down finding any documentation about aggregation fields in data processor beyond a mention of the feature.

How can I get an aggregation to work? Or am I misunderstanding what aggregation does? How can I accomplish what I need?

I suspect that an aggregation may not work with the membership expiration date. If not, how can I see in the report whether they are a current member?

Thanks!

# Answer
> 4 votes
Use the summary fields extension here:

```
https://civicrm.org/extensions/summary-fields

```

It will create some custom fields and calculate the totals, minimums etc. values that you are trying to generate on the fly. That way you don't have to do all those joins. Aggregation is hard.

# Answer
> 2 votes
This is not necessarily an answer on the aggregate field but a potential workaround may be running the 'Top Donors' report with the criteria set to your requirements and then adding those contacts to a group. You should then be able to use that to find contacts that are in the top donors group but have no current membership (or whatever other membership criteria you select) via the 'Find Members' search function. Maybe this helps and will get you the data you need.

# Answer
> 2 votes
So, to elaborate a bit on my comments with the solution I arrived at. I used summary fields, relying on the built-in Total Contributions in the Last 12 Months field.

Then I created a smart group called Membership Candidates that contains everyone who donated the threshold amount in the last 12 months.

Then I used a group I already had called Current Members.

Finally I created a smart group that includes Membership Candidates and excludes Current Members (and another one, Organizations), and that gives me the list I needed. It doesn't display the 12-month donation total or the last membership expiration, but that turns out not to matter.

Thanks, everyone!

---
Tags: civimember, contributions
---


title: How is case end date set?

text:
# Question
Title: How is case end date set?
I've just found this on one site. I have some (not all) cases of a given case type. There case status is set to a "closed" status. But the case does not have an end date.

I cannot find a way to update the case end date from the manage case screen.

This seems to effect cases where status was changed between July 17 and October 18 Cases amended before and since have an end date recorded

Cases with other closed statusses all have end dates as expected.

I guess I can find the related case status change activities, and then manually adjust the case end dates from cpanel (only a dozen or so cases affected).

Just left scratching my head, is all.

# Answer
Do you have a profile defined that has case status in it? Possibly somebody did a case search and then chose Update Multiple Cases from the actions dropdown. A test on dmaster.demo shows this doesn't update the end date automatically or file a change case status activity on the case.

You could also change the status without the end date from the api explorer, but I doubt your users did that.

Another possibility is you have no case status defined that has "Status Class" set to 'Closed'. Under Administer - CiviCase - Case Statuses. In the database this is the grouping field in the civicrm\_option\_value table.
> 2 votes

# Answer
I think if you resave the status it will update the case end date. On Manage case screen click on pencil icon just next to 'Status: Resolved'. Save the form without doing any changes.(Please check the activity date time field under Activity Details if it has correct date).

Cheers

Pradeep
> 2 votes

# Answer
The case end date can be reset by clicking the pencil icon on case status. As Pradeep says re-save the Case Status change activity leaving the case status as Closed (creates a new change case status activity) But before you do that open the Activity detail section and change the date of the activity to the new Case End date required.
> 1 votes

---
Tags: civicase
---


# Question
Title: Can't find my extension option under administer>System settings
I installed CiViCRM on WordPress and imported a Drupal CiViCRM database into it. everything seemed to work well. Just that I'm getting few errors such as **Unknown extension: org.civicoop.civirules.** **Error loading module file (). Please restore the file or disable the module**

I want to fix those errors. I wanted to access the extension option under administer\>System settings but can't find the option to add or remove extensions. Hope you could help me fix this issue. I am using CiviCRM 4.7.27 on WordPress

Thank you

# Answer
> 2 votes
The extensions need code files that are not in your database, but your imported database will have a table called civicrm\_extension with a list of the installed extensions.

So it will expect every extension in that table to be present (code files) in the correct spot. Obviously that is not the case. You need to either re-install these extensions OR also copy the extension directory from your source installation. Does that make sense?

# Answer
> 1 votes
From the information you've given, it sounds like you should simply need to re-install the Civirules extension from scratch.

From the extensions page, select Add New to find the list of available but not yet downloaded extensions, you can sort them alphabetically by clicking "Extension Name (Key)". Then find Civirules and click Download.

Civirules should now be in your downloaded Extensions, and if not already enabled should give you an option to Install.

---
Tags: extension, civirules, modules
---


# Question
Title: After upgrading to 5.20.0 - unable to edit or enter contact email addresses- "Email is not valid."
Just upgraded from 5.19.2 to 5.20.0. Upgrade appeared to run through without a hitch.
Joomla! 3.9.13, php 7.3.12, mySQL 5.7.28
Now, when editing existing email address, or when entering new contact details, saving fails with the following error message:
**Please correct the following errors in the form fields below:<br>Email is not valid.**
There's no corresponding error in the CiviCRM error log. Looks like the email address check isn't working properly. Has anyone else seen this?
\[Edit\] As a temporary solution, I have commented out line 62 of civicrm/CRM/Contact/Form/Edit/Email.php (the line which begins "$form-\>addRule"), but this is obviously only a stopgap.

\[Edit\] Upgraded to 5.20.1 and the problem persists.

\[Edit\] Problem is fixed in 5.20.2. So it was possible to upgrade directly from 5.19.2 to 5.20.2, but to upgrade to any of the intervening releases, the patch is needed. https://github.com/civicrm/civicrm-packages/pull/271.patch

# Answer
Thanks to the comments above, I have edited the packages/HTML/QuickForm/Rule/Email.php file to remove INTL\_IDNA\_VARIANT\_UTS46. Forms with emails on them now work again.

```
Change:
$part = idn_to_ascii($part, 0, INTL_IDNA_VARIANT_UTS46);
to
$part = idn_to_ascii($part);

```

This is how it was in the CiviCRM 5.19.2.
> 1 votes

---
Tags: contacts, email, validation
---


title: System Cron not working

text:
# Question
Title: System Cron not working
I am using Joomla30 as the CMS on a hosted website, so I am unable to access the terminal. I have instead tried your suggested alternative of easycron using a URL to start cron.php (I have confirmed that the url is correct for that file). I have used the POST method and inserted the required parameters. This doesn't work and I get a message "Internal Server Error". The process took 1.5 seconds to return, so it can't be the maximum time limit. The civicrm version is 5.20.0 The service provider provides CWP as the control panel, and their offering on cron is hopeless. Please can you help me? Regards,

Bill

# Answer
Use the log viewer extension (you can install it from the extensions tab if the permissions are setup right, or see here: https://civicrm.org/extensions/civicrm-log-viewer).

It should show you what the error is and point you to what needs fixing.

The fact that it went for the 1.5 seconds suggests it's an issue with a specific one of your jobs, so you could go to your list of system jobs (Administer -\> System Settings -\> Scheduled Jobs) and review the logs of those that are running. Looking at the dates of when they were last run might provide some other clues. You can also manually run them to see if that provides additional clues.

If you're lucky, perhaps you just have a job enabled that shouldn't be enabled.

If you're not lucky, you might have a system configuration problem (e.g. php version, or required php module missing, etc.).
> 1 votes

---
Tags: ui
---


title: SCA/PSD2 compliant payment processor

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

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

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

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

As for your question:

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

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

Good luck
> 1 votes

---
Tags: extension, payment-processor, payment, payment-method
---


title: Upper case in address format

text:
# Question
Title: Upper case in address format
Addresses are printing in upper case even though the data in the table is in title case: i.e. NEW YORK vs. New York

I can't seem to find a setting that will allow labels and address blocks in message templates to be all title case. What am I missing?

thanks

# Answer
> 1 votes
If you use the address standardization functionality with the USPS, it will return all addresses in upper case. This likely isn't your problem as you state the data appears in title, but I think it's worth flagging for those with similar issues.

# Answer
> 0 votes
Some fonts show lower case letters looking like upper case (although slightly smaller), so it might be worth experimenting with another font

# Answer
> 0 votes
Yo @James Bradach and @GrannyKat ! A good answer to this question, and two solutions to the problem, are at
Is there a way to prevent USPS address standardization from making addresses all caps in PDF letters? .

---
Tags: civimember, contacts, addresses, address-labels
---


# Question
Title: Recurring contributions frequency label ("every month") is unstyleable - looks bad
If you set up a contribution page to accept recurring contributions, the label for this option on the page is "I want to contribute this amount FREQUENCY" where FREQUENCY is from the contribution page settings (e.g. every month). The "I want to contribute this amount" part is inside a label tag, while the "every month" is just plain text on the page, not inside any tags, so if a theme changes the label font, this looks terrible. There is also an extra space before "every month" so it looks like this "I want to contribute this amount every month".

Anyone know how to deal with this? The div that this text is all inside has class "content" which is used in other places, so not a great way to deal with this.

# Answer
You can add some css for the label tag that copies the style of the other text. Some margin or padding css on the link tag will take care of the spacing issue. As to the div.content, just be more specific on your selection so it only styles the labels you want to style. You should be able to select deeper than the div.content for those labels Or you might have to start your selection all the way up at the specific page to keep it from impacting the rest of the site.

There is no way around it, you might have to make adjustments in the future if your theme changes (just like you said).
> 0 votes

# Answer
There is a new extension which makes improvements in this area

https://lab.civicrm.org/extensions/pricesetvisibility/tree/master
> 0 votes

---
Tags: contribution-page, recurring-contributions, css
---


# Question
Title: How can I allow donor to edit the amount to pay towards his Invoice
I am sending the donor a link to his dashboard where he can click Pay here to pay an outstanding invoice.

The issue is that once he clicks 'Pay Now' he is forced to pay the total amount of the invoice (Or pending contribution) and cannot edit the amount and make a smaller payment towards his balance due.

Is there a way to allow the donor to edit the amount? Also why are the the words (includes of $0.00) after the amount?

# Answer
> 0 votes
> Also why are the the words (includes of $0.00) after the amount?

I suspect because your site has the Tax/Invoice option turned on but it has not been fully set up

---
Tags: contribution-page, invoice
---


# Question
Title: How to track bounces from Sendgrid in CiviCRM 5.x?
We're set up with CiviCRM and Sendgrid but don't have bounce processing as far as we can tell, and are not sure how to fix that. All information on using the SendGrid api is pretty old and we have no idea if it'll work given the present civi version (that being 5.x rather than the info I'm finding re: 4.x).

For example, the Sendgrid Event notification processor is 4.4, 4.6 and 4.7 only.

# Answer
> 4 votes
OK, found what appears to be the solution: Airmail from AGH Strategies for "Unified CiviCRM bounce event handler for SMTP services", including Sendgrid.

It wasn't in the CiviCRM extensions directory but it's on GitHub and pretty up-to-date, with simple instructions for Sendgrid.

Will update this answer with our experiences.

# Answer
> 0 votes
I am in the same spot. I found this one: https://lab.civicrm.org/extensions/sendgrid

---
Tags: civimail, extension, 5.0
---


# Question
Title: How to set input mask for a custom field
I want to record an identification number (only integer number) and it should only have 14 digits. I am thinking of something like this: '--- --- --- -----'

Is it possible and how? regards, Guillaume

# Answer
> 2 votes
Not in the UI afaik. I would use the validateForm hook in an extension to validate the number of digits? Documentation on the hook is here: https://docs.civicrm.org/dev/en/latest/hooks/hook\_civicrm\_validateForm/

---
Tags: custom-fields
---


# Question
Title: After a CiviCRM update on WordPress the CiviCRM menu has disappeared
In some WordPress configurations, after upgrading from CiviCRM 5.11, the CiviCRM navigation menu bar has disappeared.

# Answer
The problem only happens with certain configuration situations and seems to be related to changes in the asset caching system.

As a quick workaround, you can disable Asset Caching at:
`/wp-admin/admin.php?page=CiviCRM&q=civicrm/admin/setting/debug&reset=1`
> 5 votes

# Answer
Ok I figured out the issue after upgrading to version 5.20.2 (with WP 5.3.2).

If you read the migration document (https://docs.civicrm.org/sysadmin/en/latest/upgrade/wordpress/), it tells you to back up the civicrm.settings.php and restore it after the upgrade. If you do not do that, the civicrm Menu does not appear.
> 1 votes

# Answer
I was battling with this for some time now. Try changing the PHP version. For me 7.1 worked on IIS
> 0 votes

---
Tags: wordpress, 5.0
---


# Question
Title: Unable to insert membership custom field in e-mail using Smarty
I created a custom field set and a custom field used for memberships. Now i would like to insert the data from the custom field into my e-mail template. So i tried to find the custom field id by going to the edit custom field page:

```
?option=com_civicrm&task=civicrm/admin/custom/group/field&reset=1&action=browse&gid=4

```

So i presume that the the id is membership.custom\_4 (???) However when i add another Custom Field in the same group, I also find the same id. So it looks like the id that i find is from the Custom Field Set.

My question/problem is: what is the correct way to find out the custom field id and what is the correct syntax for this membership custom field within Smarty

When using the following code in the e-mail, the mail is not sent and the interface hangs forever. I only use plain text e-mail for testing.

```
{capture assign=lic}{membership.custom_4}{/capture}
{$lic}

```

# Answer
> 1 votes
It depends on which message template you are trying to add token to and method you are using for sending email.

Not all method of sending email renders membership token. If you are successful to render {membership.id} or if you can get membership from smarty then you can use CiviCRM api to render the custom field value for membership based on membership id.

For ref: How to create tokens for custom fields (participant, individual, organisation)

HTH

Pradeep

---
Tags: civimember, custom-fields, smarty
---


# Question
Title: how to set permissions on individual CiviReports (permission options not shown!)?
I wanted to create several reports that are limited to specific CiviCRM ACL roles. But I can't, because when I view the "Access" tab for the report settings, there are no permission fields shown.

According to the docs (https://docs.civicrm.org/user/en/latest/reporting/set-up/#define-report-settings), I should see two fields "Permission" and "ACL Group/Role", but I do not have those on my screen. All other fields are present as shown in the docs.

Have I missed a configuration setting somewhere?

I'm using Joomla 3.9.13 and CiviCRM 5.18.2.

# Answer
> 1 votes
So after doing some research, checking on the Drupal, Wordpress, and Joomla demos, it appears that Permissioning for individual reports indeed does NOT exist in the Joomla implementation. Very disappointing.

# Answer
> 1 votes
If you temporarily change the word Joomla in this line in the code to 'Joomla-temp' or something, does it then work as expected? This seems like an old restriction and maybe at one time Joomla didn't support it.

https://github.com/civicrm/civicrm-core/blob/5.20.2/templates/CRM/Report/Form/Tabs/Instance.tpl#L81

```
{if $config->userFramework neq 'Joomla'}

```

You may also have to do the same here but try just the above first (EDIT: as I look at this line of code it doesn't make any sense anyway - it's always true):

https://github.com/civicrm/civicrm-core/blob/5.20.2/CRM/Report/Form/Instance.php#L122

```
    if ($config->userFramework != 'Joomla' ||
      $config->userFramework != 'WordPress'
    ) {

```

---
Tags: civireport, permissions
---


# Question
Title: How can I allow an anonymous user to generate an email to themself?
I am using CiviCRM with WordPress. I have just learned how to use "contact.checksum" to send an email to a user to safely let them edit their own personal info. I can do that when they sign up for membership, or other events. It's great!

I would like to have on my web site a link or button that allows users to fill in an email address and generate an email to that address (with the checksum link). In other words, "click here to view and edit your data".

Ideally it would then confirm that the email was sent, but mostly I just want "send the checksum email to me please". I have the message template ready, but how to I let the user trigger it?

# Answer
Someone else may have a simpler answer, but here's how I would do it:

* Install the extensions "CiviRules" and "Email API".
* Create a group called "Requested Data Update Email".
* Create an email template with whatever you want, including the checksum.
* Create a rule that when someone is added to the new group, they receive the email you just created.
* Create a profile (or a Caldera form, if you prefer) that requests email, and any other info you like. Configure the profile so that submissions add the person to the new group.
* Optionally, add a second action to your rule to remove the person from the group, depending on whether you want them to be able to request the email multiple times or not.
> 3 votes

---
Tags: wordpress, email, checksum
---


# Question
Title: What would cause Cannot create user, email: invalid!! on an civicrm integrated webform?
When submitting a webform (links below) on our site, an error message is generated: Cannot create user, email: invalid!!

This error message displays for all webforms and for all email addresses, whether it is a valid email address or not.

In only one of the forms listed below should a drupal user be created. The other two forms are only intended to add people to mailing lists.

What should I be looking at to help understand this?

Webform for Mailing list only:

https://www.jewishideas.org/resources-educators

https://www.jewishideas.org/newsletters-0

Webform should be adding a free membership, so a user record is desired:

https://www.jewishideas.org/university-membership

# Answer
> 1 votes
I had the Rules module updated and removed all unused rules(of which we had many), and now the forms are submitting without error

# Answer
> 0 votes
I just made a test submission. The double exclamation point is interesting - that's not a string (`invalid!!`) that appears anywhere in the CiviCRM codebase.

This looks like a Drupal webform - I would check the settings on the webform for that text. After that, it could be a Drupal module, or even a CiviCRM extension, but it's most likely webform-level validation settings.

---
Tags: webform-civicrm
---


# Question
Title: How do I set the default font type and font size in ckeditor configuration?
I'm trying to configure a site so email messages (Contact\>send an email) default to Arial- 12 point.

I can see the CK Editor config options in Display preferences, but am struggling to decipher the linked API documentation.

Anyone give me a clue?

Cheers!

# Answer
Maybe not quite what you are looking for, but I forced font size in a letter by adding a tag in a message template. I had it put it into {literal} {/literal} (to escape the smarty processing if I remember correctly).

If you wanted that to apply more generally, maybe you could put it in a header.
> 1 votes

---
Tags: ckeditor, default-settings
---


title: Upgrade From 5.16.2 to 5.20.x Wordpress

text:
# Question
Title: Upgrade From 5.16.2 to 5.20.x Wordpress
Can I do a straight through upgrade or do I need to do incremental such as 5.16 to 5.17 then 5.18, 5.19, and finally 5.20? I ask as in pre 4.7 I encountered this as I recall when making a larger version jump.

Thanks!

# Answer
Demerit was correct in his answer posted as a comment and it worked great! I followed this procedure:

> For that particular jump I would just go straight. But of course as always do it on a copy of the site first or make a backup that you can restore.
> 1 votes

---
Tags: wordpress
---


# Question
Title: Upgrade fails with CiviCRM_API3_Exception: "API error: Could not delete payment processor type"
In upgrading to 5.20+ an error occured while running the database Case upgrade scripts.

Deletion Error There is a Payment Processor associated with selected Payment Processor type, hence it can not be deleted.

```
CiviCRM_API3_Exception: "API error: Could not delete payment processor type"

#0 /dir/wp/wp-content/plugins/civicrm/civicrm/CRM/Upgrade/Incremental/php/FiveTwenty.php(370): civicrm_api3("CaseType", "create", (Array:9))
#1 /dir/wp/wp-content/plugins/civicrm/civicrm/CRM/Upgrade/Incremental/php/FiveTwenty.php(289): CRM_Upgrade_Incremental_php_FiveTwenty::_processCaseTypeLabelName(FALSE, "7")
#2 /dir/wp/wp-content/plugins/civicrm/civicrm/CRM/Upgrade/Incremental/php/FiveTwenty.php(265): CRM_Upgrade_Incremental_php_FiveTwenty::_changeCaseTypeLabelToName(FALSE)
#3 /dir/wp/wp-content/plugins/civicrm/civicrm/CRM/Queue/Task.php(88): CRM_Upgrade_Incremental_php_FiveTwenty::changeCaseTypeLabelToName(Object(CRM_Queue_TaskContext))
#4 /dir/wp/wp-content/plugins/civicrm/civicrm/CRM/Queue/Runner.php(217): CRM_Queue_Task->run(Object(CRM_Queue_TaskContext))
#5 /dir/wp/wp-content/plugins/civicrm/civicrm/CRM/Queue/Page/AJAX.php(52): CRM_Queue_Runner->runNext(TRUE)
#6 /dir/wp/wp-content/plugins/civicrm/civicrm/CRM/Queue/ErrorPolicy.php(106): CRM_Queue_Page_AJAX::{closure}()
#7 /dir/wp/wp-content/plugins/civicrm/civicrm/CRM/Queue/Page/AJAX.php(54): CRM_Queue_ErrorPolicy->call(Object(Closure))
#8 /dir/wp/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(250): CRM_Queue_Page_AJAX::runNext()
#9 /dir/wp/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(84): CRM_Core_Invoke::runItem((Array:13))
#10 /dir/wp/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:5))
#11 /dir/wp/wp-content/plugins/civicrm/civicrm.php(1465): CRM_Core_Invoke::invoke((Array:5))
#12 /dir/wp/wp-includes/class-wp-hook.php(288): CiviCRM_For_WordPress->invoke("")
#13 /dir/wp/wp-includes/class-wp-hook.php(312): WP_Hook->apply_filters("", (Array:1))
#14 /dir/wp/wp-includes/plugin.php(478): WP_Hook->do_action((Array:1))
#15 /dir/wp/wp-admin/admin.php(254): do_action("toplevel_page_CiviCRM")
#16 {main}

```

# Answer
This looks to be a problem with an entity\_type row of PaymentProcessorType in the civicrm\_managed table.

To show the offending row: select * from civicrm\_managed where entity\_type='PaymentProcessorType';

Remove the offending row: delete from civicrm\_managed where entity\_type='PaymentProcessorType';

Then re-run the upgrade.

After the upgrade was re-run, I had to re-add the offending row for the 'ExtenededReports' extension added reports to show up. Installing the 'CiviCRM Log Viewer' extension without this line also gave the same error of database record already exists. In this instance, this is dealing with a record from the extension 'Authorize.net eCheck.Net'.
> 7 votes

---
Tags: upgrade, database, failure
---


title: 404 Error During Install (Wordpress)

text:
# Question
Title: 404 Error During Install (Wordpress)
I m attempting to install CiviCRM 4.7 in Wordpress. I have all green bars, and have verified multiple times that the database password and user are correct. When I click the "Check Requirements and Install CiviCRM" button, the request processes for about two minutes then returns a 404 error.

I've reached the limits of my knowledge regarding solutions and would appreciate any help you can give. I'm able to poke around under the hood, with clear instructions and step-by-steps, but don't have any specific knowledge/training.

Thanks.

# Answer
> 0 votes
I've been getting this issue too. The only thing I did that got it installed was removing the forced https. The installation finished on a new WordPress install without the ssl cert. Only after installing Civi could I use encryption.

Not sure if it's directly related but that's all I can conclude thus far.

# Answer
> 0 votes
Make sure to enable rewrite and htaccess files. It's needed for long clean URL

---
Tags: wordpress, installation
---


# Question
Title: Feature request: Relate memberships to Groups and have separate access
**Overview**

I have a number of groups. Each group has one or more memberships. With ACL I can discern between the access to the different groups and their contacts. However, when access is granted, the accessor can change all memberships, not only the ones which are related to the group.

**Example use-case**

* Have group Rotterdam and Amsterdam and have separate admins for them.
* Add a contact and add them to groups Rotterdam and Amsterdam.
* Add a membership.

It is now unclear where the membership belongs to and who is allowed to change it.

**Proposed behaviour**

* Click on memberships.
* Add membership.
* Be able to choose and relate the membership from a field populated with the group a contact already belongs to. If left blank (no group selected),fall back to the current behaviour, for compatibility with existing instances.
* Apply ACL to have group admins see and change only their own memberships, depicted by the relationship between the membership and the group.

# Answer
I am afraid to say that this is not possible via UI configuration. You will need to setup ACL via civicrm hook(hook\_civicrm\_aclWhereClause) to grant access for a contact to specific group.
> 0 votes

---
Tags: civimember, groups, acl
---


# Question
Title: Multiple branch/chapter management with various access level of information
I am newbie to CiviCRM.

I an searching for a solution to manage a multiple branches of an organisation with CiviCRM. Multiple branches will be spread across the glob. All the branches should have different types of users.(i.e. Branch Admin,operator etc..).

These branches required to manage their contacts info, membership details, donation details , subscription details.

All the branches data should be visible to admin of head office and all the branch admin/operator should have permission to access their corresponding branch data only.

I have try to implement a this type of structure in CiviCRM with word press. I found a various post to implement this with CiviCRM ACL but it didn't work for me.

If anyone have idea that how should we implement it. Please share with me. It will be a great if you mention about a steps to achieve it. Thanks in advance.

# Answer
> 1 votes
You should use the CiviCRM Multisite with the Multisite Permissioning extension for this, and give each organization their own domain. Within the domain, you can use WordPress roles and/or ACLs to get the various intra-domain roles.

Note that this is NOT a newbie task - multisite CiviCRM is an advanced topic. Consider hiring outside assistance!

# Answer
> 1 votes
Another approach which we have found useful in this scenario is to use the Related Permissions extension which turns Permissions Relationships in to true ACLs and can be used in a multi-tiered approach eg:

**Global Officer** has a permissioned relationship to Global Organisation which has a permissioned relationship to a National Organisation which has a permissioned relationship to Local Organisation which has a permissioned relationship to Local Contacts and hence Global Officer sees all Local Contacts across the globe, as well as any National contacts (if the system allows for contacts that are at national but not local level, eg national 'officers')

Then at the next step down

**National Officer** has a permissioned relationship to a National Organisation which has a permissioned relationship to Local Organisation which has a permissioned relationship to Local Contacts and hence the National Officer sees only/all local contacts that relate to the country.

And going further down the chain,

**Local Officer** has a permissioned relationship to Local Organisation which has a permissioned relationship to Local Contacts and hence the Local Officer only sees their 'local contacts'

# Answer
> 0 votes
You may wish to look at CiviCon a few years back in SF - There were presentations from Colorado Bicycle Coalition that mirrored your scenario - different regional groups that had access to their regional info - and a Master that could overlook all - this was done with Drupal and Civi - good luck

# Answer
> 0 votes
There's now an extension called Custom Permission which handles multi-level branch/chapter permissions.

---
Tags: groups, smartgroups, roles
---


# Question
Title: Any Known Incompatibilities with CiviVolunteer and Other Extensions?
We are getting this error in CiviCRM:

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

```

We are running CiviCRM on Wordpress:

* Wordpress version 5.3.2
* CiviCRM version 5.20.2
* CiviVolunteer version 4.7.31-2.3.1

So everything is up to date. We have these extensions installed, which System Status says are all up to date:

* iATS Payments (com.iatspayments.civicrm) version 1.7.0
* Data Processor (dataprocessor) version 1.0.9
* Summary Fields (net.ourpowerbase.sumfields) version 4.0.2
* Angular Profiles (org.civicrm.angularprofiles) version 4.7.31-1.1.2
* CiviTutorial (org.civicrm.tutorial) version 1.1

Seems weird that the error is occurring on line 0 of Permission.php. Surely CiviVolunteer isn't incompatible with CiviCRM Core, as the error seems to imply???

Thanks!

# Answer
> 0 votes
The answer and patch at Error with CiviVolunteer after upgrading to PHP 7.1 did have the answer after all. Thanks, Jon, for causing me to take a second look at that!

On our WordPress installation, the file is located here:

```
/public_html/wp-content/uploads/civicrm/ext/org.civicrm.volunteer/CRM/Volunteer/Permission.php

```

The patch required changing two lines: the class declaration at the top of the file and the return value of the check function.

I still don't know what it was reporting an error on line zero, but all's well. And I hope that CiviVolunteer gets an update soon that applies the patch! Kudos to Tim Otten for creating the patch.

---
Tags: permissions, civivolunteer
---


# Question
Title: How do I set a "Case Type Category" in the Compucorp CiviCase extension
I see that the Compucorp CiviCase module adds a new "Case Type Category" field to the database. However, I can see no way through the user interface to change it. This means, e.g, that I can't add multiple workflows for the Prospecting extension. Am I missing something? Or is this only available via direct edits to the database?

# Answer
> 2 votes
There was a long discussion about the concept but the key comment is probably this one where it says it's not meant to be in the UI (or at least wasn't on the immediate roadmap) and such categories would be created by other extensions behind the scenes and specific to those extensions: https://lab.civicrm.org/dev/core/issues/630#note\_16827

So it seems that yes at the moment you'd have to do it yourself outside the UI if you want your own categories.

---
Tags: civicase
---


title: Why are all my menus open/garbled?

text:
# Question
Title: Why are all my menus open/garbled?
My menus look like this:

For background: This is Drupal 8. The menus were fine, but I'm porting the site to Pantheon. My Browser dev tools say that all my files (inc. CSS/JS) are loading properly. There are no JS console errors. My non-Pantheon site doesn't have this behavior, though I've had to make changes to the site to make it work in Pantheon (mainly in Composer) but I can't think of what else could cause this.

*Edit:* I compared the actual CSS files - `builder.css` is different on my non-Pantheon site.

# Answer
> 1 votes
This is a symptom of missing the `bower_components` folder, which should be in your CiviCRM module's root folder.

---
Tags: menu, drupal-8, pantheon
---


# Question
Title: Webform with multiple of the same membership
I'm using webform 4.21 on Drupal 7.67 and CiviCRM 5.19.3 and I need to allow somebody to get a membership for multiple organizations.

1. By default there is one membership with 2 prices and the field is required
2. Additional memberships have only 1 price and I want to multiply, from 0 to XX extra memberships with a number field.

How to do I offer the second possibility?

regards, Guillaume

Webform's page

# Answer
In order to multiply/calculate Amounts based on webform fields, try webform\_calculator module: https://www.drupal.org/project/webform\_calculator

We've made some edits to support amounts being calculated over multiple pages - you can find what we're currently using for our projects here: https://github.com/KarinG/webform\_calculator

**How it works**

The module adds a Formula webform component. So you can then configure a CiviCRM Contribution Amount or Membership Fee field to become a field of type Formula and specify the calculation with components.

Here's an example of a Processing Fee (which is a webform civicrm line item):

PS - I'm a bit confused though why you would want to buy multiple Memberships of the same type (in CiviCRM that would just mean multiple terms of one Membership Type) - but if you're looking to do Math the answer I've posted here using our latest webform\_calculator module is the way to go.
> 2 votes

---
Tags: webform-civicrm
---


# Question
Title: Contact Import German Date Format support?
CiviCRM 5.20.2/WP:

My system is using german locale. The contact import does not offer german date format "dd.mm.yyyy", even it is set for birth class in the date settings (dd.mm.yy).

How can I get german date format dd.mm.yyyy supported in the contact importer?

The contact import page only offers these date formats:

* yyyy-mm-dd OR yyyymmdd
* mm/dd/yy OR mm-dd-yy
* mm/dd/yyyy OR mm-dd-yyyy
* Month dd, yyyy
* dd/mm/yy
* dd/mm/yyyy

# Answer
> 2 votes
Maybe, the easiest way is, to open the csv in Excel (or LibreCalc) and do some magic with formulas?

Something like

`=SUBSTITUTE(C9;".";"/")`

Or even much easier: Open the file in Excel (or LibreCalc) and do some search and replace in the column?

That's the way I would do it, if the file isn't to big for Excel and it isn't a work I had to do every day.

---
Tags: contacts, import, dates
---


title: First colums of Form not translated

text:
# Question
Title: First colums of Form not translated
I've a problem with my fr\_FR translation on CiviCRM 5.20.2. for Wordpress.

On forms, the first colums is not translated and some Yes / No in the second column above image).

An idea on the way to slove this issue?

Many thanks by advance!

MG

# Answer
> 1 votes
UPDATE: All the admin forms have now been made available for translation but they aren't all in transifex yet because it only has strings up to version 5.22 as of today and the latest changes will be in 5.23. So it may be a few months before they'll be available in transifex for translation.

---

A while ago the admin forms settings started to get moved to a different subsystem, and a note appears to have been made that they should take translation into account (the last bullet point here https://lab.civicrm.org/dev/core/issues/495#note\_10020), but if you look in the `<civicrm_root>/settings` you can see that some `title` strings in the files are wrapped in `ts()` but some are not. It is of course ironic that the ones in the localization file are not.

Some of the strings on that page are translated, because they are still handled by the previous system, e.g. Monnaies Disponibles, because it's a fancy multiselect widget.

EDIT: After looking closer at https://lab.civicrm.org/dev/translation/blob/master/bin/create-pot-files.sh and the admin screens, it seems like the settings folder isn't included in the files that get scanned. It's just that some strings, like "Recherche de contacts avec autocomplétion" on the search preferences screen, appear to be translated because they are used elsewhere too. So I've posted on the lab ticket to get clarification.

---
Tags: forms, translation
---


# Question
Title: Is there a price field that can be used to charge a percentage as a service fee in a priceset?
In order to add a service fee to prices, one could just add it to the base charge, e.g. if a fee is $20, just charge $20.80 for a 4% fee; but is there a way to add a fee whose value is based on another one? I suspect not, but wanted to check; otherwise it would need to be a custom mod.

# Answer
> 1 votes
Should have looked before leaping - there's an extension named Percentage Price Field. As long as it works, that should work!

# Answer
> 0 votes
Another option if you’re on Drupal is to use Webform CiviCRM module in combination with Webform Calculator module. You can then calculate Payment Processing Fees and add them as a line item.

---
Tags: civievent
---


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

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

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

```

} }

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

Does this make sense?
> 2 votes

---
Tags: option, actions
---


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

Example:

* Correct: Antolović
* CiviCRM prints: Antolovi?

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

Any suggestions?

Tx!

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

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

---

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

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

You can also try this instead:

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

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

```

---
Tags: pdf, printing
---


# Question
Title: Keep getting "invalid email" message on any Civicrm/Joomla operation, such as register new individual or org address, or anything requiring email
Our email address is definitely valid, and everything else seems to set up fine in Civicrm in Joomla, but our org's email address always comes back as invalid.

The only clue we have is that when we became a Civicrm member, we used a different (personal) email address. Is that the problem? Or something else?

We get "Confirm from email error and configure event - civicrm/civicrm/packages/HTML/QuickForm/Rule/Email.php on line 58"

Thanks for any advice!

# Answer
This is fixed in 5.21. If you want to apply the patch now it's a small patch: https://github.com/civicrm/civicrm-packages/pull/271/files

In fact for a quick temporary fix all you need to do is change that line 58 from

`$part = idn_to_ascii($part, 0, INTL_IDNA_VARIANT_UTS46);`

to

`$part = idn_to_ascii($part);`

More info: https://lab.civicrm.org/dev/core/issues/1469
> 1 votes

---
Tags: joomla, email
---


title: lid wel beend maar niet gepresenteerd

text:
# Question
Title: lid wel beend maar niet gepresenteerd
Ik heb gisteren Nick Poelenjee toegevoegd als lid Den Haag. Ik zie hem niet terug bij de lidmaatschappen. Als ik hem opnieuw wil aanmelden dan zegt het systeem hem wel te kennen. Hoe los je dit op

# Answer
> 1 votes
Hoe heb je Nick toegevoegd? Als je de contactkaart in CiviCRM bekijkt dan zie je daar als het goed is een tabje lidmaatschappen staan. Als je daar op klikt dan kan het zijn dat daar een inactief lidmaatschap staat.

Overigens helpt het als je vraag in het engels stelt want dan zijn er meer mensen die je vraag kunnen beantwoorden.

---
Tags: data-import
---


# Question
Title: Can I use {contact.checksum} in membership confirmation receipt
I am using CiviCRM with WordPress 5.3.2.

I've managed to use the {contact.checksum} feature to send folks a link to edit their profile, in a one-off or bulk email.

Now, I would like to include that capability in the membership confirmation receipt. I tried including it in the "Receipt Message", but apparently html isn't allowed there. Should I try to insert it into the relevant system Workflow message?

I would also like to include it in the "Thank you footer" of the contribution (so that users can immediately edit their own data, without waiting for the email. But the link just give error ("No user/contact ID was specified, so the Profile cannot be used in edit mode.") Is there any way to do this?

# Answer
> 1 votes
You can include token in any message template. The system workflow message template doesn't show editor hence you will need to add content in html format. But the normal message template does show ckeditor, if you want to provide a link to a text you can click on button  on ck editor option bar and add url with contact check sum.

Regarding Thankyou footer, its not possible to add tokens as CiviCRM doesn't support it at the moment, however you can certainly achieve this by implementing preProcess() or buildform() hook via extension/plugin/module.

---
Tags: email, checksum
---


# Question
Title: Can invoices be sent to and cc'd to multiple contacts?
I am trying to replicate an existing workflow within CiviCRM. I need to be able to send membership invoices to multiple recipients. An example is:

Subject: Membership invoice To: accounts\_payable@member.com, finance\_director@member.com cc: budget\_holder@member.com, person\_that\_cares@member.com, secretariat@civicrm\_user.com

Ideally this should be a single mail so that each recipient can see the others and whether they are "To" or "cc".

The current "email invoice" in contributions only seems to email the primary billing contact. Is it possible to do what I want?

# Answer
> 1 votes
I wrote an extension to do this called altinvoice. You can set relationship types to receive a copy of the invoice. E.g. "When I invoice this organization, also send a copy to anyone with the relationship type of 'Billing Contact' or 'Site Coordinator'".

# Answer
> 0 votes
If you want to send one by one for multiple email ID - Try this

Use - Find Contribution screen and select the contribution which you want to send - then select email option which should allow you to send multiple email ID - in the same time

I guess this helps !!!

# Answer
> 0 votes
If your goal is to notify a number people that you've invoiced members - how about creating a report \[showing these pending membership contributions\] and then Emailing that report automatically (daily; w/ scheduled job) to all your recipients?

# Answer
> 0 votes
We did some customisation so that the receipt would go out to other emails of the contributing contact - eg because they had a 'billing persons' email on the record of the donor - and they wanted receipts etc to go to both the Donor (primary email) and the billing person

---
Tags: email, invoice
---


title: Paypal PCI Compliance

text:
# Question
Title: Paypal PCI Compliance
Should the Omnipay Paypal checkout option be able to pass Paypal's PCI compliance checks?

I have a client with a Paypal account ( although this is a payments pro account ) which has been limited ( cannot withdraw). They wanted to verify the checkout process etc.

I'm using the latest version of CiviCRM and Paypal Checkout via the omnipay extension. It previously used Payments Pro.

I believe that removes the main part of PCI compliance ( everything is handled on their side). However they have come back to the client saying it was a express checkout payment ( Assume they treat 'express checkout' and 'paypal checkout' as the same thing ) and were passed a document after they said they can't validate it.

Has anyone had any experience with Paypal checkout on Civicrm and passing Paypal's new checks?

I'm not sure whether they are trying to validate a website payments pro solution rather than just Paypal checkout?

Thanks in advance for any help, will be very much appreciated.

# Answer
> 1 votes
Only PayPal can tell you the reasons for an account limitation and the steps required to resolve it.

PCI stands for "Payment Card Industry", and is a standards body that Visa and MasterCard and other payment card providers are part of. They created a set of standards that merchants must meet to be compliant. PayPal does not validate, and is not responsible for, merchant's compliance when handling payment card data directly (e.g. credit card for fields on your website). Merchants accounts who do touch credit card numbers directly (e.g. a Pro integration), and are not compliant, are likely to have their accounts deactivated.

But since you seem to be talking about a regular PayPal Express Checkout payment, which would not involve any payment card data external to PayPal's site, your client's PCI compliance is not relevant at all for this type of payment. Something else is going on with regards to it.

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


# Question
Title: Is there a way to prevent CiviCRM profile fieldsets from nesting inside each other?
I'm working on a site using Drupal 7 with CiviCRM, and I created three CiviCRM profiles and added them to the Drupal user registration/account forms. I was expecting this to add three groups of fields (one with first and last name, one with the address, one with phone numbers) to the form, each with their own title. Which is what it initially appeared to do...

But when I added a bit of styling to the fieldsets — specifically, setting each one off in its own shaded box to make them more visually distinct — to my surprise it turned out that each fieldset was nested inside the previous one! So rather than three boxes in a row, I have a box inside a box inside a box. Needless to say, it doesn't look good.

Why is it structured this way? And is there any way to change it so that the three fieldsets are sequential instead of nested?

BTW, if anyone's curious why I made three profiles instead of just putting all the fields in one, I am trying to have the form visually broken up into small bite-size pieces with friendly titles ("What's your name?", "Where do you live?", etc.) for greater ease of use, which is a priority on this particular site.

Update: I think I've identified that the template that generates this form is /templates/CRM/Profile/Form/Dynamic.tpl, so theoretically it should be possible to make a custom version of it... But having perused the template, I still can't see what in it is making it nest the fieldsets that way! And I have no idea why it would be setup that way in the first place.

# Answer
I'm wondering if using a webform might be a better solution. You could have a paginated webform using webform civicrm, that gets the data into CiviCRM. Then on the webform adnaced, do a redirect to the Drupal registration form with the email address prefilled using the Drupal Prepopulate module.
> 2 votes

---
Tags: drupal, profile, forms, registration
---


title: CiviCRM OG Sync documentation

text:
# Question
Title: CiviCRM OG Sync documentation
The link listed in the CIVICRM panel of `http://www.example.com/admin/modules` is http://wiki.civicrm.org/confluence/display/CRMDOC/CiviCRM+vs.+Organic+Groups. This results in a 404.

The only other documentation I have found is a brief 2013 wiki article. Is anything else available?

# Answer
See https://docs.civicrm.org/sysadmin/en/latest/integration/drupal/#civicrm-organic-groups-sync

I'll look into getting that updated. Thanks for reporting.

https://lab.civicrm.org/dev/drupal/issues/102
> 2 votes

---
Tags: drupal
---