I have a series of different memberships in CiviCRM, currently with yearly billing for each. Each membership is currently set to auto renew.

The client has requested that a client might pay for these memberships monthly, or quarterly or yearly. I've looked to change the membership to a monthly membership, and using pricesets, enable 3 and 12 months as number of terms.

Unfortunately, as the membership is set to auto renew: "You can include auto-renew membership choices for only one price field in a price set. Another field in this set already contains one or more auto-renew membership options."

The auto renew functionality has been turned on, as the memberships are set to continually renew but not use a payment processor. The records are being exported to another system, which generates the invoices.

Do I need to create monthly, quarterly and yearly options for each membership? Is there a better way to create the one membership, but have flexible pricing options which keep renewing after every period.

Since posting this question I found there is a bug in 4.6 and 4.7 of CiviCRM where you can't create a membership with auto renew in a price set - no matter what - not even one. This should be resolved in 4.7.5 (with about two lines of code). This allows you to keep a single membership and have different renewal periods at the same time.. and keep the reporting simplified, so the membership reporting will continue to show one membership.

https://issues.civicrm.org/jira/browse/CRM-18050 //If price set field is already present with auto-renew option then, it will restrict for adding another price set field with auto-renew option. if ($dao->N == 0) { return 0; }

  • that issue was fixed for 4.7.3. If you are proposing an addition fix to a similar problem, please reopen the issue and comment on it, attaching your patch. Thanks for helping with improving CiviCRM!
    – Joe Murray
    Commented Apr 8, 2016 at 20:08

2 Answers 2


The easiest way is to create three membership one for monthly, Quarterly and yearly which will solve the problem

If you need all the frequency in a single membership then you have to handle this by creating a custom field linked with membership which will hold the frequency value and whenever we create a membership or renew a membership you should calculate the end date of the membership based on the frequency using hooks and update the membership record manually - that should solve the problem - I guess this helps!

  • Thanks. The client doesn't want the membership report to show every different combination of membership though. It's a good default option though.
    – Adam
    Commented Apr 6, 2016 at 22:51

One workaround, not the best, is to create a separate page for each type of membership, and through menus or an overview page direct users to the right one for the type of membership they want to buy.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.