I’m looking for an elegant way of implementing a joining fee for new members. The joining fee is different for each membership type and is payable in addition to the normal annual membership fee. After the first year the member should be able to renew at the normal rate, preferably without an administrator needing to change anything. The CMS is Joomla.

Some of the suggestions that I’ve seen (https://forum.civicrm.org/index.php?topic=29226.msg125372#msg125372 and https://forum.civicrm.org/index.php?topic=27362.msg121121#msg121121) involve the use of different sign-up and renewal contribution pages, with each using a different price set. I’ve tried that but the “(Not Xyz User, or want to do this for a different person?)” link can turn a renewal page into a new member signup page. (The organisation has valid use for renewing for someone else, e.g. other household members, so disabling this for everyone wouldn’t be a good idea, if that’s even possible.)

Other info that may be relevant:

  • At present the organisation’s rules require new member applications to be in writing & signed, so at least for now I will probably need to prevent online signups altogether
  • The membership period is fixed (1 January to 31 December); a 50% discount applies to the membership fee—but not the joining fee—from 1 July to 31 December.
  • If a member does not pay the membership for a whole year and wants to re-join then the joining fee is payable again.
  • Hi Andrew - is the "Joining Fee' really a one-time only Fee. if i stop paying my membership fee for 5 years, and then start paying again, do i need to pay the Joining Fee a second time?
    – petednz - fuzion
    Oct 11, 2015 at 20:57
  • Good point. In fact the joining fee would be payable a second time if the membership is not paid for 1 year. Oct 11, 2015 at 21:12
  • Did you get this sorted out? I'm looking for a similar "elegant" solution. Thanks! Mar 11, 2020 at 22:26
  • What is not 'elegant' about the answer by myself (bounced off Sanjay's) about using negative discounts given that the multiple discount issue (which may not be an issue for you anyhow) has also been resolved i believe per civicrm.stackexchange.com/questions/27253/…
    – petednz - fuzion
    Mar 11, 2020 at 23:26
  • Richard I can't add anything at the moment. I didn't find a solution at the time other than having to program an extension (which may not be necessary now) and I set it aside for the time being. Mar 16, 2020 at 5:14

2 Answers 2


You could include the joining fee in the membership fee, and then give an automatic discount (joining fee amount) for renewals (requires testing).

Or, some custom code could be written to remove the joining fee field/amount if the user is a member.

In both these scenarios the user will need to be logged in.

  • Would this approach also work in the backend for offline signups and renewals? (I'm also keen to not make things too complex for the admin volunteers who process them manually.) Is custom code the only option I have rather than using any built-in features? Oct 11, 2015 at 23:39
  • Please do some testing of the discount method (front end and back end) and let us know how you get on. If that doesn't work, custom code is likely to be needed (I can't think of another out-of-the-box method of doing this). Oct 12, 2015 at 14:12

I think Sanjay is pointing you in a useful direction. Take a look at CiviDiscount which allows you to set discounts for memberships with conditions such as - if you have Membership Type or Status.

I think CiviDiscounts can also work with negative discounts if it makes sense to apply that to the 'new' membership, rather than applying it to the renewals. But recommend you give it a try.

  • I forgot about negative discounts - yes they do work (last time I tried). So the answer is actually very simple. Just charge a negative discount to anyone who's not a member! Oct 12, 2015 at 13:29
  • Hmm - you can't apply an automatic discount to someone who's not a member, discounts are for existing members. Oct 12, 2015 at 13:50
  • That's correct, the automatic discount can't be applied to non-members only. Unless it's possible with the advanced filter--but I haven't been able to look at that yet. Actually I'm having trouble getting the automatic discounts to work at all, it looks like possibly the "Automatic discount for Membership Statuses" field is not being saved when the discount is edited. Oct 12, 2015 at 21:08
  • 1
    Andrew - Try your testing on demo.civicrm.org - If you have problems with Automatic Discounts, ask a question here and/or report a bug at issue/civicrm.org Oct 14, 2015 at 11:48
  • Good to have it pointed out that this Extension is on the demo site. Perhaps we need a bit more explanation on the demo sites that some Extensions are enabled by default. (not that people read documentation!)
    – petednz - fuzion
    Oct 14, 2015 at 23:01

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.