Wordpress Compatibility with a Civi system currently installed on Drupal

What you're describing is difficult - but not impossible - to do.  CiviCRM has a table (civicrm_uf_match) that matches a CiviCRM contact to the corresponding CMS user id - which is pretty difficult to line up if you have multiple CMSes!  There's also settings in civicrm.settings.php that define the CMS, which is necessary for, e.g, creating a URL that's correctly formatted for the CMS in question.

You might want to see if just passing form data from Wordpress to CiviCRM meets your needs.  If you're absolutely committed to the path you're suggesting, a good place to start is here.


You may want to move log tables from main database to specially created database via settings in civicrm.settings.php.  Of course, new empty database has to be created first. After that please find this in civicrm.settings.php:

/**
 * CiviCRM Logging Database
 *
 * Used to point to a different database to use for logging (if desired). If unset defaults to equal CIVICRM_DSN.
 * The CIVICRM_DSN user needs to have the rights to modify the below database schema and be able to write to it.
 */
if (!defined('CIVICRM_LOGGING_DSN')) {
  define('CIVICRM_LOGGING_DSN', CIVICRM_DSN);
}

when replace

  define('CIVICRM_LOGGING_DSN', CIVICRM_DSN);

to

  define('CIVICRM_LOGGING_DSN','mysql://DBUSER:DBPASSWORD@DBHOST/LOGS_DBNAME?new_link=true');

not sure if "new_link=true" is needed though. This automagically moves all LOG_ tables from the main database to  new database. Thus all LOG_ tables in main database could be deleted; main database is clean now and could be moved to new server (guess it's worth making same trick at new server). In theory, there could be some performance benefits as well, but not sure.


I can only speak in generalities, as I use Drupal instead of WordPress. So some of these things might be in a different spot. You'll need to go to wherever WordPress has its permissions and set them there. It's possible that they have it set up so that all the permissions go through the main site or that they are individual to each site.

Here's where I turn on error handling on my install.

Some options will tell you they are not recommended on a live site. That is because they slow down your site and may show errors to the general public. Usually if I am having issues, I will turn them on temporarily so that I can get the errors to show and then turn it off once I am done.

The extension not being found is likely due to one of two things:

The site is pointing to the wrong place for extensions.
Permissions for the files. I get this when I am logged in as root to the server, but the files need to be "owned" by the user assigned to the account.


CIVICRM Update to 5.13.5 triggers 'CiviCRM requires PHP 7.0.0' on PHP56

Had to move just to 5.13.4 as that is the last 'supported' version.  5.13.5 doesn't but no information is given to suggest it's incompatible on patch notes.

Will test and move it up from this version :).


Just a clarification first: Parsing is different from geocoding. If all you want is to get lat and long values filled in then regular google geocoding works without parsing.

If you really want parsing, then you might be able to do it with hook_civicrm_post and when $objectName == 'Address' you can parse and adjust the address there.

Note that just for display of zip before city you can alter that at Administer - Localization - Address Settings, but you probably have already seen that, and it doesn't rearrange the edit form, just for viewing and labels.


What this extension provides is the ability to deliver access control via Relationships.

Hence if you make Relationship Type xxx a permissioned relationship and then make JOHN a manager for MYCO, and if MYCO has permissioned relationships for Mary and Bob, and you set CiviCRM permissions so that people with Role of Manager to not view/edit ALL contacts then John will be able to only see Mary and Bob, and not other contacts who have no relationship to MYCO


Troubleshooting SELECT Privileges Issue with Drupal 9 Views Integration

For me and a few other users, with Civi & Drupal in separate databases, this was solved by comment #4 on Views integration error on D9:

Try removing the back ticks ... '`' from the prefix information in the settings.local.php

(or settings.php in my case.)
If it's not working for you with Civi & Drupal in the same database, assuming you've removed the code that you pasted into the settings file, maybe try Jon G's solution at How to get CiviCRM Views to work in Drupal 8 with separate CiviCRM database.


What is the purpose of the active / disabled buttons for campaigns?

This is so that you can temporarily or permanently remove a campaign from being selected. If you have say 30 campaigns and 20 of them are completed, you don't really want them cluttering up the drop down lists when you create events etc. You only want the active campaigns.


Update: Mandrill has introduced this language in their Terms of Service:

If you use Mandrill to send bulk emails, in violation of our Acceptable Use Policy, then we may charge you at the comparable MailChimp pricing tier or terminate your account.

See Blog Post: Alternatives to Mandrill

---- Previous Answer ----

I've communicated with MailChimp and I'm told that CiviCRM users do not need to pay by the number of contacts they have.

MailChimp counts subscribers as contacts in their system that you would send bulk emails to. But CiviCRM sends each contact an individual email. MailChimp see this as transactional emails not bulk emails.

So (I'm told) that CiviCRM users can sign up for the lowest tier, $10/mth plan and send emails to as many contacts as they want. On top of the MailChimp fee, users will also need to pay the Mandrill fees, $20 per 25K emails.

So if someone sends under 25K emails per month they would pay $30/mth.

Update: I also noticed this: https://mandrill.zendesk.com/hc/en-us/articles/217467117

Am I required to import/move my Mandrill recipient data into a MailChimp list?

The number of Mandrill blocks purchased each month doesn’t need to match the number of subscribers in your MailChimp plan. The core functionality of Mandrill isn’t changing at this time, and the recipients of your transactional emails sent through Mandrill are not required to be subscribers in your MailChimp account. Any paid monthly MailChimp plan will satisfy the new requirements.


Your database settings don't appear to be correct. All green, but still error!

UPDATE: It looks like at the present time you will need to make a small hack to get the installer to be happy. The "does the server exist check" does NOT use the username/password and merely tries to connect as anonymous (https://github.com/civicrm/civicrm-core/blob/5.16.2/install/index.php#L1038). On azure this returns an error 9002, as opposed to the usual 1045 which gets skipped by the next line.

So you should be able to temporarily change that line to

$conn = $this->connect($server, 'username@server', 'your password');

and then after install you can change it back. I don't have an azure database to test if that is sufficient, but just doing a command line test it returns the usual error 1045 so should work.

See also CiviCRM on Azure Not Finding the Server

Based on your screenshot it looks like you have a "control character" as the first character of your server name, which usually happens when you copy and paste from a website page. i.e. a character that isn't actually a letter but might be a tab or non-ascii character.

In any case the error says it can't find mysql on that server, so check that the server name is correct.


How do i set up registration for multiple workshops?

You can setup workshops as price fields within a price set. Setup the field with your choices, make the price $0 & uncheck the 'Display amount' box. They will show up as line items on the registrant's receipt at $0 cost.

Another option is to make them custom fields for participants and add them to a profile.

I find reporting is more is more robust when you use fields in a price set.

Hope this helps.


prefix Mister Misses in another language

I think it should be possible to import prefixes (such as Madame or Monsieur) but you need to make sure that the prefixes are created in CiviCRM before you import the data (/civicrm/admin/options/individual_prefix?reset=1).

Also, the Labels in CiviCRM need to be exactly as those in the column of your import file.

Or do you want to import greetings (email or postal greetings)? I am not sure, if this is possible because they are usually generated.

You could try to use something like this for generating a greeting depending on the prefix (just enter it here: /civicrm/admin/options/email_greeting?reset=1):

{capture assign=c}{contact.communication_style}{/capture}{capture assign=p}{contact.individual_prefix}{/capture}{if $p=="Madame"}Chère{else}Cher{/if}{ }{if $c=="Familiar"}{ }{contact.first_name}{else}{$p}{ }{contact.formal_title}{contact.last_name}{/if}

CiviCRM would the create an appropriate greeting depending on the communication style (formal or familiar) and the prefix. Please note that for this approach you need to have smarty enabled.


Advanced Search: Proximity search fails; returns "We could not geocode the destination address."

Proximity search worked fine for me in 4.7.11 and 4.7.10.  Proximity search is available on the demo if you select a geocoding provider (Administer menu » System Settings » Mapping and Geocoding).

I'd advise checking/changing your system's geocoding settings.  If that doesn't work, please update the question with the settings that aren't working, this is likely specific to your settings.


Landing page and events for organisational member

Profiles can be used to display fields about contacts publicly and can therefore be used to create a Member Directory. There is an explanation of how to do this here. Steps include setting the Profile to "Limit listings to a specific group" so you first create a Group that contains your 'members'. But doing this for the 'organisation' related to the individual who is doing the updating has some limitations iirc.

You can also give your Contacts access to their 'dashboard' provided they have a Permissioned Relationship over that contact. This can give them access to edit more information about their organisation - but from memory the fields available are not easily modified either eg to include a Description, or Logo (hopefully someone points to an easier solution).

Looks like you are not using Drupal, so the following is an answer for for others who might find this question.

In Drupal all of this becomes much easier. Webform-CiviCRM is your friend as it can allow one user update any fields about their related organisation.

Views gives many options for then displaying this info, though another approach entirely is to use the civicrm node reference module to link content (nodes) with the civicrm record of the Organisation, and then use that to not only pull civi data for that Organisation on to 'their' node, but also details about who their Secretary or President etc might be. Example of this can be seen here


You can use Import contact screen to add contact in a group. On preview page of import i.e 3rd page, the screen provides ability to add imported contacts into group. Selecting group from the dropdown would add contact(s) to group.

HTH

Pradeep


Which payment processors support refunding payments from within CiviCRM?

I know it's not helpful for figuring out who did it in the past, but in-app refunds is a feature that Alice has written for TSYS that we'll be including in the next major version.  There is some coordination that needs to happen on how CiviCRM treats refunds, because if the payment hasn't settled, you're really voiding it rather than refunding it.  CiviCRM doesn't distinguish the two, so we want to be sure that reconciliation isn't a mess.


Export activities and the activity target contact

I think petednz's comment is a good one - but you can also use the Activity Report from the Reports menu.


qfKey are always invalid when returning from payment processor in contribution

This usually happens when you have

Browser cookies disabled
CiviCRM cache cleared when users is on payment processor gateway and doing payment.
User is created at the time of submitting contribution and causes session to clear.


dedupe rule using birth date is not working using drupal

This sounds odd since it should not be CMS related. I tested on dmaster - set up a DoB based rule, it worked

Link is below but will be removed when site next rebuilds in a few hours

https://dmaster.demo.civicrm.org/civicrm/contact/dedupefind?reset=1&action=update&rgid=8

Is it possible you made an error setting up your Rule?


If you're getting a 403 error on the image, that's not a Resource URL error but a file permission error.

Right-click the line with the image that isn't loading and select "Open in New Tab".  Reloading this new tab will make it quicker to test changes.
Check the following (report back here if necessary):
The user that your web server runs under;
The user PHP runs as (if it's different);
The owner of the file that's not loading;
The file permissions of the file that's not loading.
Also check for any .htaccess files in the image folder or any parent folders, and your web server logs.

Between these, you should find your problem.  Be mindful that there's both the immediate problem to fix, and also the root cause that led to this situation.
The file owner is going to be your PHP user, but the web server user is the one accessing it.  So either a) they're different users (which is OK, but makes the other variables above relevant) or b) there's a .htaccess file in place.


Problem with membership on behalf of orgnization


What's best practice in terms of handling Gift Aid within CiviCRM

You are correct - the Veda extension is for submitting the Gift Aid application to HMRC and the Compucorp one does the rest. It's a shame this isn't better documented. Be careful of the version of the Compucorp one though, as I don't believe the one of the Civi extensions page works with 4.6 - get a working version from Git here


Go to /admin/people/permissions and look for the CiviReport permissions.


When should I use activities vs. events?

Jon -

If you use events to track your attendance, you actually get the benefit of both (since event registrations also generate activities).  :-)  Depending on your version of Civi (which unfortunately you didn't specify), you may be able to create your event as a recurring event.  You could then import your attendance lists (assuming of course all your attendees are already in Civi; if not, then you'll need to import the contact info first, then import the participant records).

My thought is that if you go ahead and go the route of events, you're already situated to take online registrations down the road if that becomes a need, and/or to register people in advance and then send scheduled reminders.  I think that going the activity route might work quite well in the short term, but prove limiting in the long run as your needs and use of Civi evolve.

Hope this helps,
Lesley


CiviCRM selectively generating receipts/invoices for contribution pages

You could consider using the Transaction Mail extension as this creates an Activity for all such outgoing mail

or

since receipts are presumably going out because you have selected a civi Contribution page that has Receipting turned on why not BCC yourself on that


A short bit of custom code could take care of this (using the hook_civicrm_preProcess hook I think).  It would need to check if the current page is your "sign-up" contribution page, and if it is, make sure that the user is currently logged in.  If not, it would redirect to wherever you need.

Not positive this code is perfect, but it should get you pretty darn close...

function hook_civicrm_preProcess($formName, &$form) {

  $form_id = 7;   // set this to the specific form_id you wish to limit access to
  $redirect_path = 'home';  // set this to the url to redirect to if not logged in

  if ($formName == "CRM_Contribute_Form_Contribution_Main" && $form->_id == $form_id) {
    if (!user_is_logged_in()) {
      drupal_goto($redirect_path);
    }
  }

}


Can invoices be sent to and cc'd to multiple contacts?

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'".


How do I find all my Smart Groups, as a type?

Curious as to what your use case for this is.

This is currently not part of group search. I suspect its an easy modification to add a checkbox to group search to include (or exclude) smart groups (along with any other criteria mentioned)

The DB query changes to enable this is relatively easy (column saved_search_id is NULL / NOT NULL)

lobo


How do mixed AND and OR in CiviRules Conditions work?

They do not. You can only use a combination of AND or a combination of OR, you can not mix them.

If you want a complicated condition you might contemplate building you own condition, documentation on how to can be found here: https://docs.civicrm.org/civirules/en/latest/create-your-own-condition/


It is a 'dropdown option' which you can find via Admin > Customise > Dropdown options, or via Admin > System Settings > Option groups

eg

http://dmaster.demo.civicrm.org/civicrm/admin/options/website_type?reset=1


How do I add a search box to our website?

Discuss this with OneEach Technologies (your hosting partner/provider). You likely don't have permissions needed to make the changes you want without their support.


How much time it will take to build CiviCRM from scratch by single person?

All of it? Probably 10 years.

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


How to set contact name during Drupal's user registration?

By default CiviCRM comes with a profile called 'Name and Address' which is set to be used for User Registration. First Name and Last Name fields in this profile are, again by default, set as required fields. So when a site visitor goes to user/register they need not only to provide a username/email address/password, but they also see the fields exposed in the Name and Address profile and must provide First/Last name. Maybe you've disabled or removed this profile? Or you can create a new profile that's used for user registration.


This is an opinion-based question, but for a better experience for your users, I would use the "Some Chapter" version for your group name, rather than the code. In the back end, groups are all stored as numbers anyway. And using a human-readable version means that you don't have to deal with extra training or documentation to translate your codes for new users.


CiviCRM on Wordpress - Suppressing 'Administer' Menu items

Some of the menus will change based on the permissions you set for each user role in WordPress Access Control under 'Administer>User and Permissions>Permissions (access control)'

Then under 'Administer>Customize Data and Screens>Navigation Menu' you can set permissions for each menu item by right clicking on the item and selecting edit.

You should be able to get the menus setup for each role as you need them. May take a bit to tweak it.

Hope this helps.


How can I redirect users to the contact dashboard after login?

Your best bet with Drupal is to use the Rules module.  I think you also need to have CiviCRM Entity installed to get the proper tokens.

Add a new Rules Component:

Component Plugin: Action Set
Name the component (e.g.: Fetch CiviCRM ID of logged in user)
You only need one variable, choose CiviCRM > CiviCRM Contact (may need the CiviCRM Entity module for this step).  Give it a label (e.g.: Contact) and a machine name (e.g. civi_contact).  For usage, leave it on Parameter.

For the actions in the Action Set:

Add new action (1):

Entities > Fetch Entity by Property (not one of the many possibilities listed under CiviCRM headings)
Value: User
Property - Value: CiviCRM Contact
For Value - Data Selector, choose whatever the machine name of your Variable above is (e.g. civi-contact).
Limit the result count to 1.
Save

Add new action (2):

System > Page redirect
Specify your URL - you should now be able to use the [your-machine-name:id] token (e.g. [civi-contact:id]) to fill in the logged in user's Civi Contact ID.
Save

Then create a new rule

Reacts on Event: User > User has logged in
Add a condition: User > User has role(s); specify which role(s)
Set actions: use the Rules component that you just created (all the way at the bottom of the list).

Lastly, clone the rule component and rule as much as you need depending on how many different roles are going to different places.


Any experiencing errors upgrading to 4.7.9, related to 'CRM-16189 Financial account relationship'

Actually I found it was the FK changes in 4_7_8 in FourSeven.php in conjunction with the 4.7.8.mysql.tpl were crashing server.  By commenting out all 4.7.8.mysql.tpl and then manually running these after upgrade complete, there were no crash/hang.


If a contact is in Trash (because they were merged) but the person with matching details fills in Membership what is a good outcome

I'd expect the Contact in Trash to be ignored by the dedupe rules, so if the dedupe rules don't match a (non-Trash) contact then a new one would be created.

If you add the Contact B .nz address as an extra email on Contact A then with the right dedupe rule you could avoid repeated new contacts.


I'm not entirely clear on the meaning of "as the user select the donor", but it sounds like you're trying to add some additional fields to a contribution form. This can be done with Profiles, which in CiviCRM amount to a collection of fields, which can be used in a number of ways, including adding them to Contribution page or Event registration form.

A summary of steps for your use case would be something like this (more information is available in the CiviCRM User and Administrator Guide -- from which I've borrowed heavily -- here: https://book.civicrm.org/user/current/organising-your-data/profiles/):

1. Create a profile:

Go to: Administer > Customize Data and Screens > Profiles and click on Add  Profile.
Profile Name: Give the profile a meaningful name.
Used For: Check the "CiviContribute" check box.
Order: Leave blank; this setting will be populated automatically and is not relevant for this use case.
Pre-form Help and Post-form Help: These fields allow you to write text that appears either before or after your Profile to guide people in filling out forms.
Is this CiviCRM Profile Active?: This box is checked automatically and should be left as such; later on, if you want to take a Profile out of use in your organization, you can edit the Profile and un-check the box.
Click "Save" to create the profile.  This will save your settings and open up a form to add a field to the profile.

2. Add fields to the profile:

Now that you have a profile, it needs fields.

(If you're not already on the "New Profile Field" form) Go to: Go to: Administer > Customize Data and Screens > Profiles, and find the profile you've created; click its "Fields" link, which will open the "CiviCRM Profile Fields" page for this profile; click the "Add Field" button on this page, which will open the "New Profile Field" form.
Set field options as you wish:
Field Name: Choose the record type where your desired field appears from the - select - dropdown menu. This will bring up a secondary dropdown menu listing all available fields for that record type. Choose the field you want to add to your Profile.
Field Label: This is the field label that will display on all uses of your Profile. It is prefilled with the default field label. However, the default field labels are often confusing for users of your forms, so you can rewrite them here. For example, the Postal Code field can be renamed Zip Code if your audience is more familiar with that term.
Required?: Check this box to make this required anytime the Profile is used. This is most useful when you want to make sure that certain information (e.g., First Name, Last Name, Email) is always included in a form submission.
View Only?: Check this box to allow users to view but not edit this field.
Visibility: Set to "User and User Admin only". This ensures that other visitors to the form can't view any data from the database.
Field Pre Help and Field Post Help: These fields allow you to write text that appears in the user interface to guide people in filling out forms. Field pre help appears inline. Field post help will create a small help bubble which when clicked appear in a help overlay.
Order: You can use this field to control the order in which fields display in the Profile. Lower numbers are displayed ahead of higher numbers. I recommend leaving this as-is, and adjusting field order on the "CiviCRM Profile Fields" page for this profile.
Active?: Leave this box checks to ensure that the field appears when the Profile is used; you can un-check it later if you wish to prevent a specific field from appearing in the profile.
Click Save and New to add more fields to the Profile, or Save if you have no more fields to add.

3. Add the profile to the Contribution page:

In the Contribution page configuration, navigate to the "Include Profiles" tab.
Here you'll find two settings: "Include Profile (top of page)" and "Include Profile (bottom of page)".  Select your new profile in either one of these, to have your profile displayed at top or bottom of the contribution page.
Click "Save" to save the configuration.

After this, you can modify the profile configuration as needed; changes to profile settings, changes to field settings, or addition, removal or disabling of fields, will all be reflected in the contribution page.  You can also add one profile to as many contribution pages or event registration forms as you wish.


Getting volunteer role in to email template

If you need something in a token that isn't a default token, you may need to create a custom token. Here's an earlier post with some example code. (You would switch out the logic that searches for the Drupal username with some logic that pulls the Volunteer Role from CiviCRM and inserts it into the token.)


Changing a recurring contribution with multiple line items

The 1.6.x branch of the iATS extension is using contribution repeattransaction API -> to get the details of the contribution and its line items that need to be repeated;

If a recurring contribution has lineItems associated with it - we don't allow updating it in the GUI:

You can (as you noted) update this in the backend -> however -> repeattransaction API will continue to use the lineItems associated with the first contribution in a recurring series as the 'template';

Best solution in this case is to start a new recurring series -> with both the correct total amount and the correct break down; Two ways to do this:

1) ask the donor to initiate a new series on an online contribution page;

2) since you have the iATS customer token -> you can use phpMyAdmin to set up a new series - and attach the token to this. It's tricky in that you will need to touch a number of tables -> and possibly bookkeeping entries as well (if you care about those);


Try updating the file perms of the new extension and then clearing cache :)


Latest 'Note' field is not being used in the "Profiles - Admin Notification" email template

Rather than using "Notes", consider creating an activity instead - and instead of using Profiles, use Caldera Forms with CiviCRM integration to create the Activity.

There are several advantages, including those I mention here, but also that you won't get the wrong "note", or pollute your notes data with information that's not really a note.


Newsletter signup - add straight to group

Yes, it is possible to add contacts directly to a group in civicrm using the civi webform integration module, see documentation here https://www.drupal.org/node/1615380 and scroll to the section on Groups and Tags

select civicrm on the webforms tab, and scroll to the section that says Groups and Tags


How to start with CiviCRM and creating an extension to add Contact Tab in PCP

You can find instruction on how to create an extension in the CiviCRM documentation here: https://wiki.civicrm.org/confluence/display/CRMDOC/Create+an+Extension

I would recommend you first think about:

what hooks are you going to use (check https://wiki.civicrm.org/confluence/display/CRMDOC/Hook+Reference)
what API calls are you going to need
do you need to create new pages, forms, reports or API's?


Memberships have three primary dates, the join date (member since), start date and end date. The join date is the date the contact first signed up for a membership with your organisation. Unless it is altered manually it will never change from that first value. The start date is the date the current continuous period of membership began. The end date is the last day of the current membership.

Examples for a 12 month membership:

Mary joined on 1/1/2011 and has always paid her annual membership fees when they are due  She will have a member since date of 1/1/2011 and a start date of 1/1/2011 as she has been continuously financial since 1/1/2011.
Peter joined on 1/1/2011. At the end of 2011 he let his membership lapse.  He rejoined on 1/1/2014 and has paid his membership fess regularly since then  when they are due.  He will have a member since date of 1/1/2011 but a start date of 1/1/2014 as he has been continuously financial only since 1/1/2014.

So your member who joined in 2012 (presumably for 1 year)  but didn't renew until 2016 should have member since = 1/1/2012 and start date = 1/1/2016.

The exact search filters you need to use depend on the duration of your memberships, whether they are fixed or rolling (rolling makes it much more difficult) and what hapens if they join on, say, 1 October rather than on 1 January.

Assuming a fixed 12 month membership that always start on 1 January you can find all contacts who joined previously, are currently financial(2016) but weren't financial last year (2015) by using Advanced Search with membership filters:
 - member since "To" date of 1/1/2014 (no need to set "From" date)
 - start date "From" date of 1/1/2016 (no need to set "To" date)

This won't work if you have modified the membership settings somehow (perhaps by setting member = yes for the expired membership status), or if this is a new CiviCMR install and the old membership data wasn't imported correctly.


Can the Xero accounting package be integrated with CiviCRM?

There has been some integration work undertaken by Fuzion and is available in this extension. General functionality:

create contacts in Xero based on them being created (or having had a contribution or recurring contribution) created in CiviCRM. You can configure which of those 3 will cause them to be created in Xero
update contacts in Xero based on the contact or contact details having been updated in CiviCRM
adds a link to the contact summary to the Xero record
adds a link from the contact summary to the contact's transaction history in Xero
creates invoices in Xero based on contributions in CiviCRM (and adds a link in CiviCRM)
where a pending contribution has a payment matched in Xero the CiviCRM contribution is updated (which participant records, memberships etc also being updated & emails sent as configured)
where a contribution is voided or cancelled in Xero it can also be cancelled in CiviCRM

The extension cannot be downloaded through the UI (intentionally) as it defintely requires someone technically savy to be involved in setting it up & maintaining it. You can see much of what is possible at this blog post


parse error in civicrm_handler_relationship_relationship.inc since upgrade to 4.6.11

I just hit this error, too. It's in 4.6.11 and 4.6.12. It appears to be fixed in 4.7.1.

Line 56 in the file is the culprit. It should be

'#description' => t('Choose to limit this relationship to one or more specific types of CiviCRM relationship.'),

Here's the commit that fixes it.


CiviRules: Is there a trigger that can be used if a groupcontact is deleted?

If it is not in the list it does not exist yet :-). As long as the pre hook is used in the group delete it should not be hard to add. Are you in a position to check this and add it?


In the screenshot above -> I don't see any double charges. Every Contribution in the screenshot belongs to a different recurring series (the id = numbers are different).
As far as at the same time on the same day -> if cron has not run for some time on your site -> then this is exactly what you would see. Every recurring series that has a next_scheduled_date in the past would be due as soon as iATS Payments Recurring Contributions (Daily) is triggered by your system cron.
As far as double charges -> there are safe guards in place for that -> it can really only happen if that cron job is triggered by two crons at the same time and/or if you have a production and a development set up and you have cron running on both.
PS - Make sure you are on the latest iATS Extension update (1.7.4)
On timing -> which recurring contribution series should create a new contribution  to be submitted for processing to iATS -> is solely governed by the Next Scheduled Contribution Date in the Recurring Series Record.
In this report -> /civicrm/report/com.iatspayments.com/recur?reset=1 you can filter Next Scheduled Contribution Date -> next week so see what's going to happen next week. For this client -> they will have two series transact on April 09 and one on April 10.

It sounds like your recurring series definitions/dates are not in line with your membership dates.
Also very important - do not switch ON Recurring within your iATSpayments.com account itself as then you have both civicrm and iats trying to control the schedule of your payments.
So go into one of your recurring series records (for example id = 578 you have in your second screenshot) -> and view all variables re: time -> i.e. next scheduled date + frequency


Is there an easy way to add YTD giving to receipts?

Install Jamie McClelland's Summary Fields extension - see here - and insert Total Contributions this Year as a token.


Is there a way to change the Pending (Pay Later) payment method?

I also found that workaround!  This is an ongoing pain point, see https://lab.civicrm.org/dev/financial/issues/37 for a related issue.

In short - until a few years ago, a Contribution record was just that - a contribution.  Now it's more of an "obligation to pay", and Payment records are where the actual money is recorded.

So "payment method" (and "check number") don't belong on contributions - they belong on payments.  Until this is fixed, your workaround is as good as it gets.  Fortunately, there's general agreement on this direction, and the financial subsystems are currently being rewritten to make future changes easier and more testable.


If a civicase is reopened why isn't the Case Coordinator (and other roles) reinstated?

A JIRA issue is now filed at https://issues.civicrm.org/jira/browse/CRM-21815 which provides this change into core.

Patch is at https://github.com/civicrm/civicrm-core/pull/11736 which should be a part of 4.7.32 release.


You can use api explorer(civicrm/api) to disable the reserved profile

or if you have access to database then run sql to update the profile

UPDATE civicrm_uf_group SET is_active = 0 WHERE id = 10;


I believe the difference maker here is the CiviCRM Entity module.  I have two Civi installs, one with it installed and one without.  The install that has CiviCRM Entity has "CiviCRM Email: On Hold" as a field, just like Catorghans' answer indicates.  The install that does not have the module only has the Email fields listed in your screenshot.

If you are able to install the module, Mark, I think you will find your solution.  It is an excellent module that exposes a significant number of data fields to Drupal and Views.  Out of the box only certain fields are exposed to Drupal as usable fields.


You can use a combination of CiviCRM WordPress Profile Sync (which provides 2-way sync between WordPress profiles and CiviCRM contact details) and CiviCRM WordPress Member Sync to achieve this.

Have a look at the docs for CiviCRM WordPress Member Sync to see how you can use the Groups or Members plugin to restrict access to WordPress content for your members.

A simple Membership Contribution page in CiviCRM is all that's required to enable sign-ups - with the added benefit that you don't have to enable the WordPress setting that means "Anyone can register".


Pulling a Report of Donors with More than One Donation, Not Recurring

For those who might not already know Summary Fields extension can give you info like 'how many' donations, and i expect via Search Builder you could then drill down to '> 1' on that field to find just those who have contributed more than once


One Time Login URL not Received : Looking for a Spare Solution

If you have shell access and drush - then you can generate a one time user login link using

drush uli USERNAME
Check the Site Name - make sure there are no non alphanumeric characters in it (they end up in the From and we’ve seen Postfix having issues parsing it). Update: specifically : in Site Name (as in admin/config/system/site-information - caused major issues;
Reputation: if email from your server arrives for some but not for others then that suggests a reputation issue - a server along the way has marked it as spam; use mxtoolbox.com to check if your domain is blacklisted somewhere.


Custom fields of type text not displaying in filter tab of reports (CiviCRM for Drupal 5.5.1)

I had the same problem. I tried to create a custom field (String data type) and checked it as searchable but it didn't appear in Filters tab.

Checking and debugging the code I found the function addCustomDataToColumns() (in /sites/all/modules/civicrm/CRM/report/Form.php) which deals with Custom Fields Data

I noticed that String, StateProvince and Country data type are handled in the same way and this probably makes String data type Field not be visible in Filters tab. See this part of the code of the function mentioned above:

...

switch ($customDAO->data_type) {

...

case 'String':

case 'StateProvince':

case 'Country':

      $curFilters[$fieldName]['type'] = CRM_Utils_Type::T_STRING;

      $options = CRM_Core_PseudoConstant::get('CRM_Core_BAO_CustomField', 'custom_' . $customDAO->cf_id, array(), 'search');

      if ($options !== FALSE) {

        $curFilters[$fieldName]['operatorType'] = CRM_Core_BAO_CustomField::isSerialized($customDAO) ? CRM_Report_Form::OP_MULTISELECT_SEPARATOR : CRM_Report_Form::OP_MULTISELECT;

        $curFilters[$fieldName]['options'] = $options;

      }

      break;

...

}

...

I tried to put some changes in order to handle String data type in this way:

...

switch ($customDAO->data_type) {

...

case 'String':

        // I-Mod Giovanni Dal Mas 17102018: add new code lines for case 'String'
        $curFilters[$fieldName]['type'] = CRM_Utils_Type::T_STRING;

        $curFilters[$fieldName]['operatorType'] = CRM_Report_Form::OP_STRING;

        break;

        // E-Mod Giovanni Dal Mas 17102018

case 'StateProvince':

case 'Country':

...

}

...

With these changes, I can see the String data type field in Filters tab

Best Regards

Giovanni


You're on the right direction, participant notes are intended for this. But as you say, seems there is no way to show this field info on an event report.

Exists an improvement registered on CRM-20236
Include "Note" field of Registration record in event participant reports that would do what you want. If this is important for you and you don't have skills or resources to develop it, maybe Paid issue queue  could be a good way to achieve this.


This is most likely happen on the page load after you press the "Fix Missing Indices" button on the Administration Status page.  A more permanent automated fix is being worked on, but is fairly difficult.  You can see the answer here for how to fix this manually if you're SQL-savvy.


How to keep track of our constituents' nominations/awards

You could use/abuse a new Contact Sub-Type based on Organisation for your awards and use one or more Relationship Type to indicate who got nominated/awarded award with the dates. Or you could use a Contact Reference field rather than a relationship (but you don't get the dates option then).


Membership Expiry Date not advancing after membership payments

Have you confirmed that the Scheduled Job which updates Membership Status is enabled. You have made a bit jump in civi versions and I don't think Scheduled Jobs was around in 4.0.x


You mean with your own CMS? you will mostly have to deal with the authentication and permission system.
look at what is done in civi for WP, J+, Drupal to give you a sense of the scope. I personally would not invest this time for no obvious value, but I would not either "hand code" my site, so YMMV ;)

Good luck!


How can I create branching scripts that a caller can use as part of a membership signup workflow, etc?

Haven't explored this but my first thought is that conditional fields might be an option in webforms.

Based on whether the user checks this box or that box additional fields could appear. I think webform even supports doing multi-page forms and might be able to add those using this method.


Error message given after membership confirmation screen

I received a similar message when trying to create a 'Provides Membership to' relationship. If you go in the civicrm_membership table for that contact ID, you will see that the join_date, start_date and end_date fields are all NULL. Set them to the correct values and it should work.

This does not answer how you got into the situation in the first place, but in several months of running our site I have only seen this once, so I have to believe it's an intermittent problem.


Why is "Billing" location type marked "reserved"?

I think billing location type is used incase of Online membership purchase or registering a event or making donation inshort on forms where payment processor is involved(Billing block). Disabling this might cause issue/problem during submit of such form.

Cheers

Pradeep


Try these, in this order:

Check that the CIVICRM_UF value in civicrm.settings.php has been updated to reflect the changed host CMS
Try visiting /wp-admin/admin.php?page=CiviCRM&q=civicrm/admin/setting/updateConfigBackend&reset=1 to make CiviCRM recognise the shift from Drupal to WordPress
Clear the contents of your civicrm_uf_match table
Apply instructions from Moving an Existing Installation to a New Server or Location to your situation. (This is a huge list of "tricks", only some will apply to your situation.)


That message indicates that the timezone variable is not set for php.  You need to edit the php.ini to indicate your proper timezone in the formay of Europe/Zurich.


Important Event Participants on CiviCRM 4.6.5 no longer supports external ID?

I found the problem: UPDATING events requires Internal ID, but skipping duplicate entries allows for the External ID. (Who knows why!)


Could be done with scheduled reminders
Adminster -> Communications -> Scheduled Reminders

Entity -> Event Name, choose first meeting name.

Enable repetition
Repeat every 7 days until 10 years after event start date

(or something like that).


Contact URL image display in civiCRM 5.12.4

I managed to get this working. I did a clean install of everything,

Followed the wordpress civicrm install instructions for clean URLS

Enforced SSL using the siteground hosting built in tools

Enforced SSL in civicrm

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

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


Getting a two-column dashboard in CiviCRM 5.33+

It autoadjusts to screensize. I suppose you could overwrite the specified widths for css:
https://github.com/civicrm/civicrm-core/pull/19235/files


Upgrading from 4.7.12 to 5.1.2 on Wordpress

Not particularly. We have nursed upgrades through from 4.4 and 4.6 (yes we inherit some shockingly old systems occasionally) without significant problems. On that scale 4.7.12 doesn't seem to be 'such an old version'.

If you backup code and db and give it a try and you hit issues then just roll back and come back on here with some details of problems you encounter.

(Edit to incorporate Ramesh's helpful comment)

Refer this link docs.civicrm.org/sysadmin/en/latest/misc/switch-servers also you can refer to docs.civicrm.org/sysadmin/en/latest/upgrade/drupal7


How to show Civicrm Event in fullcalendar?

There was an Extension built that says it integrates with Drupal FullCalendar
https://civicrm.org/extensions/event-calendar-extension
but it doesn't show a release version for civi since 4.4

Otherwise if you are wanting to do this directly with Drupal Views have you tried enabling the CiviCRM Entity module to see if that can help you?

And there is now a sample View that works with 4.6 with civicrm_entity enabled here


Is there a function or extension that shows one view in a case containing the content of the Summary and Details fields of all activities

The print report link on manage case might satisfy the need to see a comprehensive list in a view. It's not editable though.


Mailchimp Extension - not recognising API key

Looked on the github issues column and found this

https://github.com/veda-consulting/uk.co.vedaconsulting.mailchimp/issues/300

Latest version of mailchimp extension (2.0.1) not necessarily compatible with civi 4.6


How do I get CiviCRM Mailing to submit via the API

Remove the force_rollback block.

What is the result of the civicrm_api3 call?


'DB Error - No Such Table' -- CiviCase in Drupal 7

As confirmed in chat the views hadn't been created and disabling and reenabling civicase at Administer - System Settings - Components fixed it.


Email was sending fine and now has stopped

When using mail() as your mail delivery method, CiviCRM will hand off to PHP's mail() builtin, which in turn usually hands over to a local delivery agent (see also PHP's mail configuration settings).

Unless the WordPress Gmail SMTP plugin does more sleight of hand than I anticipate, it won't get a say in how emails sent via mail() are delivered. WordPress mail plugins typically only get to intercept email routed through WordPress's wp_mail() wrapper. So based on your description (and my assumptions about WP Gmail SMTP), I think what happened is that previously your webserver was able to deliver via mail(), but now it can't.

You can investigate how it did work in the past by comparing the delivery headers of a previous WordPress generated mail (eg new user rego or password reset) with the delivery headers of a previous CiviCRM generated email. I think you'll find that they arrived via different routes.

Why they've stopped arriving is not so obvious. I'd try, in this order -

Check your PHP error log, which may contain more debug info about why mail() failed.
Check your PHP settings (via phpinfo()) to ensure that the mail configuration settings are correct/appropriate.
Check if the emails are being routed to junkmail; perhaps your mail host or the webserver config changed and the emails are being delivered but treated as spam. (Since CiviCRM says mail() failed, I don't think this is your problem.)
Check if the emails are being handled at all by your webserver, by investigating your webserver's mail logs. (How to do this depends on your server / hosting environment, you may need to request access from your hosting provider or contact a technician.)
Verify that your webserver is capable of delivering emails. (Perhaps some configuration changed, or the MTA daemon died and needs restarting.)
Verify your SPF / email configuration. (It looks OK from here, but you might find that your server is routing email over IPv6 and your SPF config doesn't handle this; that could lead to you being flagged as junk.)


CiviCRM Individual Contact Inherits fields from Organisation

CiviCRM offers the option of having a Shared Address but there is no way out of the box to trigger that automatically (that I am aware of).

Depending on how you are adding Contacts if you were using Drupal Webforms or WordPress Caldera forms it would be possible to do this (not certain with WP but def. with Drupal)


How can we run a report that doesn't split records into multiple entries?

I'm going to guess that these fields containing "enquiries/feedback and the outcomes and signposting" are either custom contact fields with multiple entries or activities. In either case, you probably want to use the report grouping feature to group by contact (e.g. by contact id), that would likely get you closer to what you want. If you sort by id or date of these other things, then you might get a nice chronological display per contact.

If you want a fancier display, you'll likely have to write a custom report.


How to show contribution items in CiviReports for Contribution Reports

I believe what you are referring to are line items - if the contributions in question are event contributions, then you can use Extended Report - "Participant Line Items" that will allow you to filter by event, otherwise, Extended Report - "Contributions with Price Set Data" should also show you what you need- but it may take a bit of trial and error, i.e. the report offers several grouping options for line items:

Price Field Label
Price Field Value Label
Line Item Financial Type
Price Field (line item)
Price Field Option (line item)

You'll want to select whatever option(s) you are grouping by as display columns as well as the following columns:

Quantity
Line Total
Unit Price (if interesting)

E.g. Grouping by Price Field Option (line item) will yield the following:

Hope this helps!
Tamar


Countries of US addresses showing up as Foreign in some names

(You're relatively new here BTW so welcome!)  It sounds as though your import sheet did not specify a country, but your site allows for multiple countries and thus multiple states/provinces.  Even if the United States is your default country, I've found that the import routine will pick the first country it finds in the list of countries with similar state abbreviations, rather than hitting the correct one.  The workaround to this is pretty simple; include a column for country in your import and populate it with United States (or the appropriate country).

Hope this helps!


Civicrm - Use profile create mode only works 50% of the time

I was actually able to correct this issue. The problem was: if someone accessed the site with www. in the url it worked fine. If they did it without the www, the form would not submit, but also gave no error.

On the registrar end, I just had it redirect traffic that does not enter www. to the site with www.

I hope that's clear. Thanks


What is the (Long term) strategy for CiviCRM's intergation on CMS?

It's a good question and it has been asked several times over the years. There are pros and cons for both. Up until around v3.0 civi did have a standalone version, and at the time it was felt that supporting that required too much resources, but as you note there's now 5 CMS's and it seems like just as much work.
This post is old but not much has changed except I don't think CiviDesk still offers their version.
For drupal 7 specifically, when drupal 7 itself becomes unsupported civi will probably drop official support for drupal 7, but the community might still unofficially support it for a little longer the same as drupal 6.


Upgrading from 4.6.4 to 4.6.6 returns following error, how to go pass it?

See Failed Upgrade 4.6.4 to 4.6.5 Joomla 2.5 & 3.4. Let us know whether the procedure described there solves the problem.


Password Reset emails being marked as spam

A couple of questions

What CMS are you using?
How do you have your outbound email set up?
Are other emails getting marked as spam?
When you view source of the email, are there any headers inserted by the receiving mail server that let you know why it was marked as spam?

Password reset emails are typically sent by the CMS, not CiviCRM and you will need to make appropriate changes there. Both Drupal (smtp) and WordPress (WP Mail SMTP) have SMTP plugins/modules that allow you to use a 3rd party SMTP server to send email.


Scheduled reminders have stopped working in v.4.7.8

Yesterday, the scheduled reminders started working again!  This was after I had disabled and then re-enabled 'Membership Types' in Administer/Civimember and also upgraded to v 4.7.10
Hope this helps anyone having the same problem.


CiviGroup Roles Sync - workaround for Smart Groups?

Check out my answer to a similar questions:
Syncing Drupal Roles from CiviCRM Smart Groups

I think this is basically the same thing....


Programatically obtaining a Profile's HTML Snippet

Take a look at CRM_UF_Page_Group::profile().

You want to do that except instead of passing gid (the profile id) through the url you'd make it a function parameter, and then what you want is the value of the $profile variable.


Search extension for first name = last name (to purge spam submissions)

Now that I got my computer set up with buildkit, I had a chance to play further with civix and built a simple "first name = last name" search extension to test this out and practice the basics of civix.

If anyone wants to try it let me know how it goes:

https://github.com/CEDC/org.cedc.namename


DB Error: constraint violation when I try to add profiles to contribution page

Can you compare your screen with this page:

http://wp46.demo.civicrm.org/wp-admin/admin.php?page=CiviCRM&q=civicrm/admin/contribute/custom&reset=1&action=update&id=2

(you will need to login as demo / demo)

I suspect its not the same, and most likely there are some javascript errors occuring on your site. You should check the js console when you load the page
Seems like the values submitted (i.e. a 0 for uf_group_id) is not expected and hence u get the mysql error


If with EOL you mean End Of Life - you are mistaken! iATS 1.5.3 is already working for many transaction pathways in 4.7.x - but we will not release an official release until ALL 21 type of transactions, payment processor switches, chq debit img swapping, encrypted swipe is working as it currently is on 4.6.x LTS.

In general before upgrading any site you will really want to check to ensure that ALL extensions that you have enabled have releases for the CiviCRM version you're upgrading to - otherwise you're taking a risk.

A number of sites [from at least 3 CiviCRM partners that I know of and likely more] are already transacting with iATS on 4.7.x - they would have created a staging copy to check that their pathways are working.

So I'm not sure what issues you're running into. Are you using TLS 1.2? Is SOAP enabled? Any clues in the iats log tables? agent code/password correct - and configured properly?

See iATS Extension - README.md file:
9002 Error - if you get this when trying to make a contribution, then you're getting that error back from the iATS server due to an account misconfiguration. One source is due to some special characters in your passwd.

Also: Please have a look at the link http://home.iatspayments.com/Relaunch-SHA256 and check if your environment is compatible.

EDIT: to test if your server environment is indeed TLS 1.2 - go into your CiviCRM -> Payment Processor configuration and edit the URLs from www to www2 - so: e.g.:
https://www2.iatspayments.com/NetGate/ProcessLinkv2.asmx?WSDL
Run a transaction - if this works [if this does not produce a 9002 error] - then your server environment is -not- TLS 1.2


Is there a way of recording/exposing when an activity is added to CiviCRM?

The creation date of an activity is not, by default, stored in CiviCRM.  Depending on what you want to do, you can:

Create a custom field like you suggested, and write an extension that fills in the value on creation.
Create a custom field, then define a MySQL trigger to fill in the date.  This is less portable, but higher-performance.
You can enable binary logging (aka detailed logging) as described here, which will create log_civicrm_activity.  This is the easiest way to record the date - but doesn't give you a good way to expose this data through the UI.


Where is "Unique ID (OpenID)" and how is it used?

OpenID was designed to provided a universal login to all your online accounts.  You can read more about it at http://openid.net/get-an-openid/what-is-openid/ .  It was created in 2005 around the same time as CiviCRM and I think the standalone version of CiviCRM would let you sign in using OpenID. There are modules/plugins that will let people sign into your CMS with OpenID.

As Karin has commented, if this is not a single step, one-time import of data, then you should use External ID to store the identifier from your other application.


As far as your API call there goes...I don't see an 'id' => $row->price_field_id in there.  You'll need to query by id to get the value for each individual price field. I'm not exactly sure what the variable name on the object will be in your case...but the main thing is to query for the individual price fields data by id


CiviCRM Installer doesn't find language files

I got it! I forgot to upload "civicrm_data.de_DE.mysql". I only uploaded the "civicrm_acl.de_DE.mysql" to the sql folder.


Modify the Tags (Categories) Administration page

When we have come to a necessity of Tags Administration page changes, only way we've been able to find, was custom CRM/Admin/Page/Tag.tpl template creation. With more than 2000 tags, it was almost impossible to load the page, so we got rid of some CiviCRM stuff and replace it by "native" Datatable script (CiviCRM uses it anyway, but wraps it into set of features we didn't need at the moment).
This is how it looks now, loads pretty fast and has only information we use (guess Tag Set and Reserved also can be stripped though):

It's CiviCRM 4.6, but guess this part has no significant differences to 4.7
So, you might want to give "custom CiviCRM template creation" a try, most likely you will get there sooner or later, if you continue to use CiviCRM for a long enough :-)


DB Error: constraint violation (WordPress)

Aaron welcome to stack exchange, Can you logout and login again? If its a new install than you contact id might have not set properly in session.


Is is possible to import cases into Civi

As far as I know there is no Import Cases in the UI. So importing into the database would be the solution, but make sure you respect all the data models! You need to add data to civicrm_case, civicrm_case_contact, probably civicrm_case_activity and civicrm_activity and for the roles into civicrm_relationship.


Howto import CAMT053 XML with CiviBanking

Maybe you can try the Belgian format. See https://github.com/Project60/org.project60.banking/blob/6dd79b42941eea6e89ba8e8b6475af418fddb2ad/configuration_database/importer/xml/BE_CAMT53_v2.json  . Some discussion about this file can be found at https://github.com/Project60/org.project60.banking/issues/132 .


I would say: have a look at Events. You'll find a lot of functionality.

You could create an Event Type "Wedding", where you can have custom fields only for "Events" of type "Wedding".

The same can be done for "Baptisms" and "Funerals".

Emails 2 months in advance would be easy.


"Already subscribed to list" message after submitting contribution (Drupal)

Unfortunately, this is a consequence of using the profile to add contacts to a group.  There are a couple of ways to work around this that may be better for your needs:

Make a smart group.  If everyone who makes a contribution should be in a group, why record that information separately from the contribution?  Just make the email list a smart group of all contacts with contributions.
Have people opt in.  Are you certain that donors know they're signing up for the email list?  If not, you really should make that explicit.  You could add the "Group(s)" field to the profile to let people choose among all public groups, or you could add a single checkbox field for someone to say they'd like to subscribe, and you could base a smart group on that.
CiviRules. You may find that you can create a workflow for this step using CiviRules and if it does throw up a warning about the contact already being in the group, at least it is out of public view


Images with text in Message Templates in a multilingual installation

I have found an alternative solution which worked perfectly.

I put the following line in the template (adding the {ts} tag):

{ts}{/ts}

Then modified the language file .mo and added a translation for the string:

msgid ""
msgstr ""

It worked perfectly :)


Do you mean this extension:
https://github.com/zengenuity/civicrm_groupprice/blob/master/info.xml

It's info.xml says it's compatible w/ 4.4 - I think that explains why you're having difficulty to get it to work on a 4.7.x

If this functionality is very important to you - the general guideline is:

contact the author of the extension
check with them on possible plans for an upgrade of the extension to a newer civicrm version
and what kind of funding it may take to get it there


Exporting membership data including chosen price set

If I am not wrong - you have imported data from your previous system to civicrm and started using price set. But you couldn't find the old price set in the new system because you couldn't view membership amount in the membership record --

This problem is due to data import you have civicrm_membership but you haven't created civicrm_membership_contribution records.

while creating contribution records and line item you will be adding price set Id and price field Id correctly. then this will get picked up in civicrm price set


Currently the event needs to be active to use the test drive.

If you have an event listing page, you can uncheck Public event. That way users only see the event if you create a link to it. You should be safe in temporarily making it active for testing.


Can't administer cividiscount afer upgrade to 4.7.7

I was having the same issue (Joomla 3.5/CiviCRM 4.7.8) after a tests on my local install, I found that activating the debug (Administer > System Settings > Debugging & Error Handling), browsing the CiviDiscount loaded. Turned off debug and loaded. Hope this may help.


Drop down labels on front end CiviCRM forms not accessible (With solution!)

Solution is to either patch the ../web/libraries/civicrm/bower_components/select2/select2.js and select2.min.js files

or

WARNING: select2 4.0.12 is not compatible with CiviCRM 5.21. The admin toolbar will disappear if you do the following. Use the patches. Do not bower install select2! ;-):

Move the select2 folder out of bower_components and run:

$ bower install select2

to get latest version of select2 (4.0.12 as of this writing) , which is accessible. I've not fully tested the latest version of select2, but it seems to be behaving on our stage server.

Patching existing select2 is the only option until regression testing is done by the CiviCRM folks, unless you want to patch latest version of select2 to fix toolbar issue.

Do this!:
patches (if you want to keep current version of select2)...

select2.js.patch:

--- select2.js.original 2020-01-24 13:55:52.164674038 +0000
+++ select2.js  2020-01-24 13:56:20.955011734 +0000
@@ -2269,7 +2269,7 @@

             // add aria associations
             selection.find(".select2-chosen").attr("id", "select2-chosen-"+idSuffix);
-            this.focusser.attr("aria-labelledby", "select2-chosen-"+idSuffix);
+            this.focusser.attr("aria-labelledby", "s2id_autogen"+idSuffix);
             this.results.attr("id", "select2-results-"+idSuffix);
             this.search.attr("aria-owns", "select2-results-"+idSuffix);

select2.min.js.patch:

--- select2.min.js.original 2020-01-24 13:53:46.859556059 +0000
+++ select2.min.js  2020-01-24 13:54:48.440139669 +0000
@@ -124,7 +124,7 @@
         null!==s&&this.container.css("width",s)}}),A=k(R,{createContainer:function(){var t=e(document.createElement("div")).attr({"class":"select2-container"}).html("   &#160;   <input class='select2-focusser select2-offscreen' type='text' aria-haspopup='true' role='button' />

              <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input' role='combobox' aria-expanded='true'       aria-autocomplete='list' />

")
         return t},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.focusser.prop("disabled",!this.isInterfaceEnabled())},opening:function(){var t,s,i
         this.opts.minimumResultsForSearch>=0&&this.showSearch(!0),this.parent.opening.apply(this,arguments),this.showSearchInput!==!1&&this.search.val(this.focusser.val()),this.opts.shouldFocusInput(this)&&(this.search.focus(),t=this.search.get(0),t.createTextRange?(s=t.createTextRange(),s.collapse(!1),s.select()):t.setSelectionRange&&(i=this.search.val().length,t.setSelectionRange(i,i))),this.prefillNextSearchTerm(),this.focusser.prop("disabled",!0).val(""),this.updateResults(!0),this.opts.element.trigger(e.Event("select2-open"))},close:function(){this.opened()&&(this.parent.close.apply(this,arguments),this.focusser.prop("disabled",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus())},focus:function(){this.opened()?this.close():(this.focusser.prop("disabled",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus())},isFocused:function(){return this.container.hasClass("select2-container-active")},cancel:function(){this.parent.cancel.apply(this,arguments),this.focusser.prop("disabled",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus()},destroy:function(){e("label[for='"+this.focusser.attr("id")+"']").attr("for",this.opts.element.attr("id")),this.parent.destroy.apply(this,arguments),P.call(this,"selection","focusser")},initContainer:function(){var i,n,o=this.container,a=this.dropdown,r=L()
-        this.opts.minimumResultsForSearch<0?this.showSearch(!1):this.showSearch(!0),this.selection=i=o.find(".select2-choice"),this.focusser=o.find(".select2-focusser"),i.find(".select2-chosen").attr("id","select2-chosen-"+r),this.focusser.attr("aria-labelledby","select2-chosen-"+r),this.results.attr("id","select2-results-"+r),this.search.attr("aria-owns","select2-results-"+r),this.focusser.attr("id","s2id_autogen"+r),n=e("label[for='"+this.opts.element.attr("id")+"']"),this.opts.element.on("focus.select2",this.bind(function(){this.focus()})),this.focusser.prev().text(n.text()).attr("for",this.focusser.attr("id"))
+        this.opts.minimumResultsForSearch<0?this.showSearch(!1):this.showSearch(!0),this.selection=i=o.find(".select2-choice"),this.focusser=o.find(".select2-focusser"),i.find(".select2-chosen").attr("id","select2-chosen-"+r),this.focusser.attr("aria-labelledby","s2id_autogen"+r),this.results.attr("id","select2-results-"+r),this.search.attr("aria-owns","select2-results-"+r),this.focusser.attr("id","s2id_autogen"+r),n=e("label[for='"+this.opts.element.attr("id")+"']"),this.opts.element.on("focus.select2",this.bind(function(){this.focus()})),this.focusser.prev().text(n.text()).attr("for",this.focusser.attr("id"))
         var l=this.opts.element.attr("title")
         this.opts.element.attr("title",l||n.text()),this.focusser.attr("tabindex",this.elementTabIndex),this.search.attr("id",this.focusser.attr("id")+"_search"),this.search.prev().text(e("label[for='"+this.focusser.attr("id")+"']").text()).attr("for",this.search.attr("id")),this.search.on("keydown",this.bind(function(e){if(this.isInterfaceEnabled()&&229!=e.keyCode){if(e.which===U.PAGE_UP||e.which===U.PAGE_DOWN)return g(e),t
             switch(e.which){case U.UP:case U.DOWN:return this.moveHighlight(e.which===U.UP?-1:1),g(e),t

Hope someone finds this useful :-)

Neil Davis

Developer

National Federation of the Blind


Mailchimp Integration pushing but not pulling

To clarify, the following activity on MailChimp is communicated immediately (within several seconds) via WebHook (this does not happen during the push sync):

Any users that unsubscribe themselves in MailChimp will have the Do not email flag set in their CiviCRM Communication Preferences
If a contact is removed from a group in MailChimp, then the contact is also removed from the corresponding group in CiviCRM
A new contact who subscribes directly via MailChimp will be added to CiviCRM as a contact within the corresponding mailing list group(s) that they subscribed to
Changes to contact names in MailChimp will be updated in the corresponding contact record in CiviCRM

If you have completed webhook the steps listed in the documentation, make sure you resubscribe yourself directly on MailChimp first, then:

Verify whether the "Mailchimp: Allow Webhook Posts" permission has been toggled for the Anonymous User role:

  Navigate to Administer > Users and Permissions > Permissions (Access Control)
  Click on the "[CMS Name] Access Control" hyperlink (e.g. "Drupal Access Control")
  Use CTRL+F to find "Webhook" > toggle the permission for the Anonymous user role if it is not toggled
  Click the Save button

Confirm MailChimp Group Settings:

  If using the Membership Sync, toggle the option to "Ensure list's webhook settings are correct at MailChimp when saved"
  If using the Interest Sync, toggle the option of "Subscribers are able to update this grouping using MailChimp"

If you made any changes to the above settings, test again by removing yourself from a group and/or unsubscribe yourself directly from MailChimp, then navigate to your contact record in CiviCRM (or refresh after a couple of seconds if you are already there):

If you removed yourself from a group, then click on your Groups tab to see that you were removed by API from the corresponding group in Civi
If you unsubscribed yourself entirely, then the DO NOT EMAIL flag should be toggled on your contact record

Hope this helps!


Error: DateTimeZone::__construct: Unknown or bad timezone (7200)

I have a similar setup running Drupal 6 and CiviCRM 4.7.25. My system also showed System Status: Critical and no messages. The issue was is that it first attempts to set the time zone and if that fails it doesn't output any further messages for some reason.

In CiviCRM version 4.7.25 you can use the API console to run the System.check action by visiting http://sitename/civicrm/api#explorer and choosing Entity System and action check to repeat this test while you edit the files.

The fix is to fix the time zone problem which inherits from the Drupal 6 user and sets (in my case) an invalid time zone string which creates this issue.

For instances with Drupal 6, it uses the method CRM_Utils_System_Drupal6::getTimeZoneString() which retrieves the time zone from the user's timezone member in the database, which in my case is the offset in seconds, or a string -14400 for Eastern Time.

The problem is the DateTimeZone code which converts this into a database time zone string supports offsets in hours, not seconds, so I added this code to detect and adjust the values, use at your own risk:

--- Drupal6.php (revision 4843)
+++ Drupal6.php (working copy)
@@ -754,6 +754,9 @@
     // Note that 0 is a valid timezone (GMT) so we use strlen not empty to check.
     if (variable_get('configurable_timezones', 1) && $user->uid && isset($user->timezone) && strlen($user->timezone)) {
       $timezone = $user->timezone;
+     if (is_numeric($timezone) && $timezone % 3600 === 0 && abs($timezone) >= 3600) {
+         $timezone = intval($timezone / 3600);
+     }
     }
     else {
       $timezone = variable_get('date_default_timezone', NULL);

Once I patched this, the check step works correctly and I can review the further messages we're getting. Another trick here, by the way, is to update CRM_Utils_Check::CHECK_TIMER in sites/all/modules/civicrm/CRM/Utils/Check.php to a small number while you're debugging, otherwise the checks update only once a day.

As always, use best practices when working on production systems and back up all source files before modifying them.

The other possible place to look is in the Drupal variables table for the named value date_default_timezone which is used if the user does not have a time zone configured.


Unsure if I just broke my database with a custom field

You haven't said what field type you were using, but I think you should probably be using a note field rather than an alphanumeric. My understanding is that the note field isn't stored as fixed length.


State/Province dropdown is empty since update to 4.6.10

This problem has been resolved.. The civicrm_state_province table was empty. dumb of me not to check this, How it got empty is a mystery tho...


How do I add a new table to my extension?

What I did for the sepa extension is a bit of a hack, but worked ok:

write the xml schema files, as you have them on the (development version) core and run xml/phpGencode.php to generate the dao, that you then copy into the extension folders and voila, you got the tables ready to use (for a few more lines, you got the api files, worthwhile IMO)

The process is now detailed in our developer book


Clearing the Civi cache doesn't work? It should.


CiviEvent - capturing billing information, interaction (or not) with contacts

When you say registration, do you mean "of membership"?

If it's just registration of being part of your organisation, perhaps attach it to an activity of type "Registration" on the contact.

However, your message concerned me. In general CiviCRM isn't used for credit card information - there are a lot of laws surrounding how that information is stored. Tangentially, you should also read: https://en.wikipedia.org/wiki/Payment_Card_Industry_Data_Security_Standard

In general we would advocate using a dedicated payment processor extension and only storing transaction Ids in Civi.


DB Error: no such field On Event Registration

This is because of a missing field in the contribution log table. See the following question and answer for next steps:
How can I deal with a missing or corrupt binary ("advanced") log table?

So if you don't care about existing logs, you should just be able to turn logging off then back on, otherwise that post gives some more advice.

For either step, I'd suggest backing up your database first just in case something gets more corrupted.


Event with multiple days - multiple choices

The feature you're looking for is called price sets - in combination with the "multiple register participants" feature.

Set up the price set with Events menu » New Price Set.  See screenshot 1 below.
Once you save the price set, you'll new to create a price field.  Configure it similarly to screenshot 2 below.
If the annual meeting also has a cost, or there are other optional items, add those as additional price fields.
When configuring the event, on the Fees tab, change Price Set to the price set you just configured.  Note that this will replace your existing pricing, so make sure it's added to the price set.
On the event's Online Registration tab, check the Register multiple participants? checkbox.

That's it!  When someone registers for an event, they'll select how many people (see screenshot 3) and fill in the info for themselves (including payment info).  Then when they continue, they'll get a page for each of the next registrants where they can select individually (screenshot 4).  Screenshot 5 is my confirmation page, where you can see I've signed up three people with different options and collected all their names.


How do I configure Webform and CiviCRM for event registration including optional donation

I understand what you’re trying to do.

Try set it to Donation. That will make your Contribution level financial type = Donation - but looking at the lineItems within that you should see two lineItems: 1) Financial Type associated with the CiviCRM Event Page for the Event monies and 2) the Financial type Donation for the extras;

That’s how it works for Memberships and top-up optional Donations (for sure - doing that on a number of projects). The Financial Type for the Member $ is what is defined in the Membership Type Config settings.

If this does not work like that for Event registrations - I think it should (it should pull the Financial Type from the Event config); One should be able to have one Contribution with three lineItems - each with a different financial type:

Member Dues
Donation
Event Fees

The first two in combo are working for sure. I’ve not yet tried other combinations.

Keep me posted on what you find.


Display CiviCRM Price Set end date in view

If you install the CiviCRM Entity Views Extras module you will be able to add a Views relationship to access the price field fields in your view


How to trouble-shoot 'critical error' while merging duplicates?

I'll dig deeper in another post, but as far as this problem was concerned, I used print and var_dump to trace the problem to

public static function getReferencesToTable
.
.
.
$links = $daoClassName::getReferenceColumns();

'crashes' because one of the classes was NULL.

While I work on WHY, I got around the crash with a simple:

if ( $daoClassName != NULL)

wrapper.


Has anyone every had to limit the number of memberships (of a specific type) that can be sold?

This sounds more like civiEvents would work better. You can limit the number of spots(attendees) and even have waitlists. You could set your price set up to be a recurring contribution for the Event.


How to develop extension that relies on libs brought in by composer

Approaches

There are a few different patterns one could follow in connecting Civi extensions with composer:

(Broad scope) Site build via composer: The entire web site is defined with a custom composer.json file. It doesn't matter what kind of dependency you need to pull in (CMS, CMS module, CMS theme, CRM, CRM extension, PHP library, CSS library, etc), it's all brought in through the same tools/workflows.
(Medium scope) Use composer for the extensionDir: Civi has a special folder (e.g. sites/default/files/civicrm/ext) for storing downloaded extensions. We could keep this folder but manage it differently -- e.g. rewrite CRM_Extension_Downloader as a wrapper for composer.
(Narrow scope) Intra-extension dependency: If one particular extension requires a particular library, then the extension could have its own copy of composer.json and vendor/. The final zip file would embed vendor/.

Site build via composer

IMHO, this is the holy-grail. It's consistent with the architecture of PHP and composer, and it resolves problems that afflict dependency-management in Drupal (libraries/ guffaw!) and CiviCRM (dependencies guffaw!) and probably Joomla/WordPress.

It's worth drilling down on the architecture concern for a moment. Civi is deployed as a PHP app which shares a runtime with another PHP app. In PHP, the runtime can only load one version of a library -- e.g. you can load Guzzle v5.0 XOR v5.1 but not both, so it's important to pick a version of Guzzle that is acceptable to all libraries/modules/extensions. When using composer in narrow/piecemeal fashion, it doesn't get the full list of libraries/modules/extensions, so it cannot help you pick a version of Guzzle that satisfies the overall system. You're more likely to suffer from hidden version-conflicts (if, e.g., a Drupal module loads Guzzle v5.0 while your Civi extension loads Guzzle v5.1).

The main challenge is that many of the relevant systems (Drupal, Joomla, WordPress, Civi, etc) predate composer and have some impedance mismatch with composer (e.g. composer lacks a GUI; Drupal has multisite PHP loading; post-install hooks work differently). Getting these communities to switch is a major undertaking.

I think there are some fairly clear steps we can take toward supporting this model, but your question was really aimed at a different approach...

Intra-extension dependency

No one controls enough of the ecosystem to quickly switch a critical-mass of site-building to composer. And this version-conflict stuff may sound theoretical. In fact, you can get some mileage out of piecemeal dependency management. (Case in point: civicrm-*.tar.gz ships with its own bundled copy of vendor/!) And your comments indicate an interest in this approach.

Unfortunately, you're basically on-your-own to make this work. Loosely, I'd try:

In the myextension.git repo, add a composer.json file which lists any dependencies. Use .gitignore to avoid committing vendor/. In myextension.php, use require_once __DIR__.'/vendor/autoload.php';.
When registering your extension on civicrm.org, do not specify a Github URL. Neither github.com nor civicrm.org is smart enough to build your releases automatically.
Setup a CI tool which monitors your git repo and publishes the final zip archive. As a very loose example, I publish the civix.phar file with Jenkins (job, script). You could write a similar script to run composer install, zip, and then publish the final file.
Whenever you want to publish a new release, login to civicrm.org and manually create a new release node (with suitable info.xml and download URL).

Unfortunately, there is a risk that your dependencies will conflict with others'. There's not a whole lot you can do about this... except pick obscure dependencies that aren't likely to conflict.

(In theory, if you know that your extension and the conflicted one never use the conflicted dependencies within the same page-request, then you could do some fiddly bits in the class-loading to only load the correct one. But in a powerful system like Drupal/Civi, it's really hard to provide this guarantee, and the other party may not play-along.)


How to use existing scheduled email function programmatically in extensions?

you need to create an API in order to use schedule jobs

look for table called civicrm_job and make an similar entry for the newly created API and this will create an entry in schedule jobs

you can create an Extension first and then API in the Extension find the below link http://wiki.civicrm.org/confluence/display/CRMDOC/Create+a+Module+Extension

if you need more help please let me know


Correct means to update Drupal Node after user submits a donation

That looks correct, though I have some suggestions for improvement:

Your first step is "retrieve contribution from civicrm database".  The contribution is already going to be stored in $objectRef, so that should be unnecessary.
If you want to avoid coding, you can probably accomplish this with the Drupal Rules and civicrm_entity module.


As kainuk mentioned, you don't have the right syntax for the json field, i needs to be json= instead of json:

http://www.mysite.com/wp-content/plugins/civicrm/civicrm/extern/rest.php?entity=Contact&action=create&api_key=(myAPIkey)&key=(mySiteKey)&json={“contact_type":"Individual","first_name":"Tester","last_name":"Yolanda"}

(it needs to be post, not get for all operations like create that modify the database)

and I would strongly recommend you to do rest over an encrypted connection (https instead of http), otherwise you risk having your keys being read by someone else than civi

X+


It's under Administer - Customize Data and Screens - Display Preferences where it says "Contact Search". It has probably been unchecked.


Searching/filtering by the date a contact was added to a group

I have a report for this on Github.
EDIT: Ignore comments below; this report works on modern versions of CiviCRM, and Laryn's improvements are now part of my extension.


How to access Financial Items through API?

I don't think their is a separate API for creating Financial Item records - this gets created whenever an contribution and line_item is been created

so, you can write an API for creating financial_item also make sure you make an entry in entity_financial_item

or you can create these records manual using CRM_Financial_BAO_FinancialItem::add() which will create new financial item


Can CiviContribute and CiviGrant work together?

You may be able to get what you want by using a Campaign for each 'donation' and then you can mark other entities with that.

Also worth noting that if CiviGrant doesn't quite match your use case, other users have switched to just using Activities, or CiviCase to create their own custom 'grant' workflow.


The only option i feel is running a query that will switch the primary address from work to home for a set of contacts in a group.

Add imported address contact in a group X.
Update is_primary to NULL for all address for contacts in a group X.
Update is_primary to TRUE for home address for contacts in a group X.

HTH

Pradeep


There are installation instructions on the CiviHR github page.


Normally membership type organization dropdown will be empty. so, please type a space and wait for the search - which will list you all contact in the list

For more reference please read the below documentation

Create new membership type:
https://wiki.civicrm.org/confluence/display/CRMDOC21/Membership+Types

Create new organization:
https://wiki.civicrm.org/confluence/display/CRMDOC42/Create+New+Organization+Contact

Create new financial type:
https://wiki.civicrm.org/confluence/display/CRMDOC/Configure+Financial+Types

Create financial account:
https://wiki.civicrm.org/confluence/display/CRMDOC/Configure+Financial+Accounts

These above document should help you in creating new membership type - if you need more help please let me know so i will give a screen shot of all the above

I guess this helps!!!


This problem is not to do with CiviCRM.

My server defaults to using ipv6 but this is not configured. Therefore when CiviCRM tries a file_get_contents('http...') it is timing out. This vexed me for a while because on the command line wget works fine; I thought I had disabled ipv6 on the server, but turns out file_get_contents doesn't know about that.

Sorry for the non-question! I only saw this happening with CiviCRM. FYI it is triggered by the occasional CiviCRM security checks (which ironically, I recently asked another question about). I don't know when these are triggered; but they are triggered about once a day per user and again if a Drupal user is added.

EDIT

This is not an IPv6 issue, as I originally thought. I now believe it's a problem/quirk of using apache2-mpm-itk as with this worker I get the problem but with the default worker I do not.

I can confirm that this is/was a bug in the Apache MPM ITK module.

For Debian Jessie users, you can get a fix by:

deb http://mirrors.linode.com/debian/ jessie-proposed-updates main

into /etc/apt/sources.list, and then running

apt update && apt install libapache2-mpm-itk
systemctl restart apache2.service

Apparently this fix will make it into Jessie 8.2, too.


Multiple Payment Processing account in Civicrm

You can add as many payment processors as you'd like and tie those to unique contribution pages: https://docs.civicrm.org/sysadmin/en/latest/setup/payment-processors/#setup-and-configuration.

However, the real question is reporting requirements. What are they? Are these non-profits all under a parent non-profit? If not, then they should have their own installation of Civi so they can easily get their financial reporting right. The likelihood of incorrect reporting is high if you tried to shoehorn multiple orgs in one Civi.

If they are related, you could create a campaign for each organization and track the finances separately. Or use financial accounts: https://docs.civicrm.org/user/en/latest/contributions/key-concepts-and-configurations/#financial-accounts.


Minimum Fee for Membership Types won't save

After spending time to resolve this across several days and working with our site administrator to troubleshoot we figured it out. The site administrator was able to confirm that the values were being stored in the database, so it was probably something to do with formatting.

I eventually discovered that the display rules were configured wrong. It was configured as follows:

Monetary Amount Display: %c %a

Monetary Value Display: %c

As I understand it, the formatting rules here are nested. When you're trying to display currency, it first looks to "Monetary Amount Display" to figure out how to display the value. In the case above, it was telling it to display the currency symbol with %c followed by the amount with %a.

The second field, "Monetary Value Display" contains the rules for displaying the value requested by %a. With the example above, the rules were to show the currency symbol for the value, which was invalid, so it chose not to show values at all.

I corrected the setting as follows:

Monetary Value Display: %!i

This instructs CiviCRM to display the value using the localization rules specified earlier in the form but to suppress the currency symbol. We don't need it, since we're adding a currency specific symbol in the "Monetary Amount Display" field.

I hope my frustration will save someone else some pain later on!


CiviMail was sending mails, now it isn't

I had exactly the same problem.. emails going out fine for months then BAM! nothing other than an error. I fixed it by updating our SparkPost API Key.


You could do something like CRM_Core_DAO::executeQuery("SELECT LAST_INSERT_ID()");. If your needs are simple that seems like the easiest.

Probably to do it "right", you would use civix generate:entity. See https://docs.civicrm.org/dev/en/latest/extensions/civix/#generate-entity

Then you could do things in an object-y way, like:

$myclass = new MyClass();
$myclass->field1 = 'foo';
$myclass->field2 = 'bar';
$myclass->save();
// Then the inserted id is automatically in $myclass->id (assuming your auto_increment field is called 'id'


Should I disable extensions prior to upgrading CiviCRM?

In general, I'd recommend no.

Some extensions - literally - may not be reinstallable if they aren't qualified for that version of Civi.

My recommendation: TAKE BACKUPS!!! Then don't disable extensions and just go ahead with the upgrade.


Wrong compiled [civicrm.files] variable in Resources URL

This usually happens when your site directory is using symbolic link. To fix the variables you will need to make sure that the docroot specified in apache/ngnix config should match exactly with $civicrm_root and CIVICRM_TEMPLATE_COMPILEDIR in civicrm.settings.php.

Try updating if its different and clear CiviCRM cache.

Cheers

Pradeep


Please see -> What is the recommended/supported version of Webform CiviCRM module for Drupal 7?
First step would be to move to the supported version for D7WFC -> 7.x-5.x
Your error message tells me you're on 7.x-4.x
https://github.com/colemanw/webform_civicrm/blob/7.x-4.x/includes/utils.inc#L910


CiviCRM for Outlook - Invalid Credentials

I'm not a civi expert by any means, but thought I would share my experience - I had a similar issue, and it turned out to be a firewall issue - civi was hosted on a machine on the net, and my Outlook client was on our corporate network. When I was connected to our company network, I would get that error. When I took the machine home and tried connecting there - it worked fine.

Other things that got me to start with - in the URL path, make sure you have the trailing / on the path   (check by copying the url and trying to access the url in a browser), and make sure you're using the correct site key from the civicrm.settings.php file

Hope something here helps!


For us, there were a couple of changes that made this to work. First, in the database, the civicrm activity_date_time type was modified to be a timestamp. This made it so that when CiviCRM saved the date and time it was stored in the database as UTC once the Drupal timezone was also set to UTC (but users are able to select their own timezone and it behaves appropriately). According to developers in the CiviCRM IRC, this change can be made for any CiviCRM date time type. We also set our OS time to UTC. With just these changes, the Calendar View was still not displaying correctly because it was being adjusted twice. To fix that, we set tz_handling to 'none' in the function civicrm_date_views_fields in civicrm.views.inc.

Hope it helps somebody else!


Pay later option on 4.7.2 using Stripe doesn't work - throwing error

The problem is with the Stripe payment processor.

The javascript file in stripe needs to be updated because the name of the payment processor changed in 4.7 from "payment_processor" to "payement_processor_id".

The Stripe Extension does not yet have a 4.7 branch to push these changes to.


How can people view which mailing lists they're subscribed to?

Have a look at the CiviCRM Tokens wiki page: http://wiki.civicrm.org/confluence/display/CRMDOC/Tokens

I think the one you'll be most interested in is {action.subscribeUrl} which provides a link to view and subscribe to any public mailing lists.

You could also build a profile with the groups field in it and sent it out via a checksum token. This will link the details to their record and allow them to update. This is useful if you want them to be able to update other information at the same time.

Full details on the checksum token at the bottom of the wiki page.


Is there a way for a user to verify themselves when following a checksum link?

I dont remember this session at CiviCon London. By any chance, are you referring to the email address validation on unsubscribe (the user has to enter their email address to unsubscribe)

I suspect the way the above would need to be done, would be:

a. Take the user to a different validate and confirmation page.

b. On confirmation, send the user to the real profile edit page

c. Add a hook to the profile edit page to ensure that any user coming here  has come via the confirmation page


Found out that the query for creating Support menu [parent item] didn't get executed. Had to run the sql query manually. This fixed the menu issue.

vim civicrm/sql/civicrm_navigation.mysql +605

INSERT INTO civicrm_navigation
    ( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight )
VALUES
    ( @domainID, NULL, 'Support', 'Support', NULL, '',  NULL, '1', NULL, 110);


Search Builder is broken (Civi 5.4.0 / Drupal 7.59)

best to compare with dmaster.demo.civicrm.org/civicrm/contact/search/builder?reset=1 i think as that will be running on latest code for certain (to avoid reporting a bug that has already been fixed)


Can you create a dedupe rule to include individual and organisation details

The short answer is no. Dedupes for individuals and oranisations are handled separately in Civi.

I'm assuming (and feel free to correct me if I'm wrong) you've got an event booking profile for an individual which includes the current employer field.

From Manage events list. Find the event in question.
From the configure options at the RH side of the screen select configure, then online registration.

Under the heading Registration Screen you'll find links to the profiles used to gather contact details. Check the Organisation Name field to see how it is configured. Frequently this uses the current employer field from the contact record.

Soenthing like this

Civi will apply the specified dedupe rule to the new individual details and match as required.

There won't be a dedupe rule specified for the organisation so Civi will apply the Organisation- Unsupervised Rule (Default setting for any situation where members of the public are adding contact details)

From Contacts> Find and Merge Duplicate Contacts
Scroll down to the Organisation, Unsupervised rule. Edit the rule to check how it is configured.

If your organisation- unsupervised rule is anymore complicated than match by organisation name only. Civi will decide there is not enough info to match, and then create a duplicate organisation.

If you have permissions you can edit the rule to match on the Organisation Name only field

If your matching rule is name only, you may still get duplicate organisations in a "Judean People's Front/ People's Front of Judea" scenario. As different users may record their organisation name in a non standard fashion.

Hope this helps.


What is the correct way to import fields with line breaks?

I believe if your csv includes a "real" line break (not a backslash and an "n" but the actual line-break character) then it will be imported as such.


How do I delete an option group (civicrm_option_group)

If it's safe (AFAIK if the option group isn't part of an extension or the core, doesn't contain any option values, isn't used by any custom fields) you can delete it using the API explorer or a drush command.

On the 'Option Groups' screen, each group has a link to its page of options, of the form https://www.example.org/civicrm/admin/optionValue?gid=94&reset=1 where the group ID is 94.

While logged in with privileges to the webserver directory, in sites/default, do:

drush cvapi OptionGroup.delete id=XX

Or go to civicrm/api/explorer, choose OptionGroup / delete, and add &id=XX (where XX is the group ID) to the end of what looks like a URL string below those options, and click Go.


PayPal Website Payments Pro: This transaction cannot be processed. The merchant's account is not able to process transactions

The ability to do a Direct Payment transaction is what you get with PayPal Pro, as I understand it (i.e. allows you to host the payment page on CiviCRM).

But you do likely want to update to the latest 4.7.x, I have heard of issues with PayPal, though not this drastic.


Recurring contributions on paypal pro - undefined index

I'm guessing you aren't using the most recent version of CiviCRM (4.7.27). In the current version of this file, that line has been replaced with:

$args['totalbillingcycles'] = CRM_Utils_Array::value('installments', $params);

The CRM_Utils_Array function is meant to prevent missing indices or variables that aren't even arrays from throwing warnings. (https://issues.civicrm.org/jira/browse/CRM-13288).

I have no idea when the change in the code happened (what version/date).

I suggest you upgrade your CiviCRM. It looks like it would be relatively harmless to update the code manually, in this case.


Emailing people who didn't open a campaign

One option is to put all the contacts that opened the mailing into a group. Then when you setup the next mailing in recipients include the group from the previous mailing and exclude the new group of contacts who opened it.


Very New To Cron - Setting Up Schedule Jobs with Dreamhost

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