CiviCRM/WordPress

From Freephile Wiki
Jump to navigation Jump to search

eQuality Technology setup CiviCRM on top of WordPress for Coastal Trails Coalition in order to substantially improve operations.

CiviCRM gives us all benefits and capabilities of a large commercial CRM and donor management system completely free of licensing costs. CiviCRM allows non-profits to benefit from an integrated solution for donor management, events, bulk email, etc. substantially increasing their effectiveness as compared to managing a variety of non-

So, what in particular did I need to do in order to setup CiviCRM, and test or convert operations? This article with explore and document that effort.

Installation[edit | edit source]

The instructions are well-written and easy to follow [1].

Some of the help content from `wp civicrm --help`

  wp civicrm install
  ===============
  Command for to install CiviCRM.  The install command requires that you have downloaded a
  tarball or zip file first.
  Options:
  --dbhost            MySQL host for your WordPress/CiviCRM database. Defaults to localhost.
  --dbname            MySQL database name of your WordPress/CiviCRM database.
  --dbpass            MySQL password for your WordPress/CiviCRM database.
  --dbuser            MySQL username for your WordPress/CiviCRM database.
  --lang              Default language to use for installation.
  --langtarfile       Path to your l10n tar.gz file.
  --site_url          Base Url for your WordPress/CiviCRM website without http ( e.g.
  mysite.com )
  --ssl               Using ssl for your WordPress/CiviCRM website if set to on ( e.g.
  --ssl=on )
  --tarfile           Path to your CiviCRM tar.gz file.

On DreamHost, I logged in to my control panel and created a new database called coastal_crm The only downside was that the very popular "JetPack" plugin for WordPress is listed as incompatible with the CiviCRM plugin. So I disabled the JetPack plugin.

After initial install[edit | edit source]

Once the software in in place, there are a large number of things to review and configure. Luckily there is a configuration checklist (You can visit it at any time navigating to Administer -> Administration Console -> Configuration Checklist.)

  1. Configure a mail account. I used info@ GMail account. You use the imap.gmail.com domain, and SSL
  2. "Localization" - set the default State for new contacts (since 99.99% of CTC contacts will be Massachusetts)
  3. "Components" - I have not yet enabled Grant, Case or Campaign. The defaults are Contribute, Pledge, Member, Event, Mail, Report
  4. "Display Preferences" CKEditor is default.
  5. "Address Settings" We can register with the USPS to use their address info tools api to ensure good address data. I took 'Country' off the display since it's not useful.
  6. "Mapping and Geocoding" - I opted for geocoding from Yahoo and OpenStreetMaps as the mapping provider.
  7. "Search Settings" - I kept the defaults, but enabled full-text search in innoDB tables
  8. "Misc" - I did not install wkhtmltopdf or enable PDF receipts. I disabled the "powered by" footer. I setup the reCAPTCHA keys that I already signed up for earlier.
  9. "Contact Types" - defaults to Household, Individual, Organization
  10. "Outbound Email" - using mail() at the moment. Works.
  11. "From Email Addresses" - info@ Do we want more?
  12. "Payment Processor" - None
  13. "System Workflow Templates" - Default. There are a ton of message templates (grouped as "System Workflow Messages") that can be customized for particular interactions such as Contributions, Events, Memberships, Tell-A-Friend. There are still more templates for "User-driven Messages" designed for usage like Newsletters.

The next few items on the Checklist have to do with Organizing your Contacts. So, it's wise to review "Organizing Your Data" before you begin.

Organizing Your Data[edit | edit source]

The "Organizing Your Data" guide covers these topics:

  • Overview
  • Mapping your data
  • Contacts
  • Groups and tags
  • Smart groups
  • Activities
  • Relationships
  • Custom fields
  • Profiles

Emailing[edit | edit source]

See the manual for everyday tasks.

Developer Summit video

  1. CiviCRM 4.6 for WordPress

Video[edit | edit source]

Need links to good videos.

Upgrading[edit | edit source]

Before doing any upgrades, login to the site with Admin rights so that you can get a session token, and be able to test

Using WP-CLI to upgrade plugins[edit | edit source]

  1. go to the document root
    cd /var/www/html
  2. update all the plugins with wp-cli
    sudo -u www-data wp plugin update --all

Using WP-CLI to upgrade CiviCRM[edit | edit source]

wp civicrm upgrade
  ==================
  Take backups, replace CiviCRM codebase with new specified tarfile and upgrade database by
  executing the CiviCRM upgrade process - civicrm/upgrade?reset=1. Use civicrm-restore to
  revert to previous state in case anything goes wrong.

Traditional-style procedure[edit | edit source]

sudo su -
/home/greg/bin/backup.db.sh wordpress
# set some variables
docroot=/var/www/html
pluginroot="$docroot/wp-content/plugins"
config=/var/www/html/wp-content/uploads/civicrm/civicrm.settings.php
templates=/var/www/html/wp-content/plugins/files/civicrm/templates_c/
# make sure you have a backup of your civicrm.settings.php file
cp $config ~/civicrm.settings.php.bak
backup=/tmp/html.backup
mkdir $backup && chown www-data:www-data $backup
sudo -u www-data cp -ar /var/www/html $backup
package=https://download.civicrm.org/civicrm-5.3.0-wordpress.zip
wget $package
rm -rf $pluginroot/civicrm && sudo -u www-data unzip $package -d $pluginroot
rm -rf $templates/
# upgrade the database by visiting the URL in your browser
/admin.php?page=CiviCRM&q=civicrm/upgrade&reset=1

# test and then cleanup or revert
rm $(basename $package)
rm ~/civicrm.settings.php.bak
rm -rf $backup
  1. There is an issue on GitHub discussing simplifying the instructions down to the "essentials for routine installs"; with notes about edge cases. https://github.com/civicrm/civicrm-sysadmin-guide/issues/52#issuecomment-404952171