Caldera Forms CiviCRM (CFC) for Donations and Membership

2018-10-10 06:19
Written by
danaskallman - member of the CiviCRM community - view blog guidelines

Tadpole has been working with Andrei Mondoc, the developer of CFC, to extend the availability of processors to support memberships. Since memberships typically use Price Sets, this work also allows for Donations that use Price Sets and Line Items within a contribution page. This work was supported by the Seismological Society of America, whose membership structure includes special subscriptions options and access to gated content based on their Membership Type. (For a more detailed description of the SSA project, see this case study).
The following processors were required to accomplish the goal: Membership, Line Item, and Order. These new processors allow us to (1) create a form for each Member Type (e.g., Regular, Student, Life), (2) present the respective subscription options and (3) update Member Status to allow access to subscriptions and "members only" content.


Subscriptions were set up in CiviCRM as a Member Type, so we needed the ability to have multiple Membership records added to CiviCRM during the registration process -- that is, records for the specific member type (Regular, Student, etc.) and each subscription the member selected. The Membership processor adds these functionalities:

  • Ability to have free or paid memberships
  • A choice to renew an existing membership (maintain what happens when using a contribution page) or create a new membership record each time
  • If new memberships are added each year (as opposed to renewals), a selection can be made for either associating by organization or member type to apply the earliest join date
  • Association to the contact processor
  • Map to the member type
  • Membership fields Member Since, Membership Start Date, Membership Expiration Date, Source, Campaign and Number of terms (custom fields for Membership entity are also supported).
    CFC Membership Processor

Line Items

The line item processor allows for the contribution details to be mapped, so the membership and contribution records are linked. If using it with a membership, a relationship between each processor will need to be added using the {system generated token} created with each member processor that's added. Additionally the line item processor allows for one or more contribution details to be recorded, one line item for each contribution item. These are essentially the line items in price sets.
CFC Line Item Processor with Membership
CFC Line Item Processor with Contribution


The order processor is where all the details of a payment are connected, meaning it creates the contribution record with all the line items. Similar to the membership's relationship to the line item, each line item needs to be added to the order processor using the {sytem generated token} that gets created with each line item processor used. One thing to note is that the order processor should go after the payment processor. If using Stripe, for example, the fee and transaction ID will be added to the contribution record.
CFC Order Processor

Data Fields

To bring it all together we needed a few new special fields that provides the ability to use the Auto-complete or Bulk/Insert option. These allow us to map our CiviCRM data fields when setting up the Caldera form fields so that we have the appropriate values in our form. This is what was required:

  • Special field for Contact Reference, to allow a member to select existing organization in the database as their employer (Household and Contact Reference custom fields are also supported)
  • Price Set and contribution page Line Items and
  • Payment method types, to allow for "Pay Later" to be used conditionally alongside credit card payments
    Lastly, to make this all work, three pull requests were contributed to Caldera Forms. Therefore Caldera Forms 1.7.3 or higher is required to include the fixes for this to work a bit more smoothly. However, this version has not been released yet. Until that time, there's a fork of the plugin or us this .zip download that can be downloaded and installed for use today.
    Even though this development focused on a specific use case, the development of these processors was done in a way that provides the site administrator or implementor a huge amount of flexibility in how a form is setup and data is mapped to CiviCRM.
    You can find updated documentation and a tutorial for getting a membership form setup on your website here.


Wonderful enhancements to Caldera Forms!

Thanks for contributing these generic enhancements to the community. It will make using WordPress more feasible for more end user organizations.

So at this point it looks like it should not be too much effort to add support for event registrations with line items!

Thanks again for the support tadpole provides to those using CiviCRM with WordPress!