It seems like premiums only work on the minimum amount, without regard for other settings. Is there a way to get around this? I see the EFF has this option, but their contribution page seems not to be generated by CiviCRM anymore.

1 Answer 1


I just came across this question and we have solved a similar problem a few years ago, i.e. we want to count the total value of recurring contributions (e.g. a $10 recurring should count as much as a $120 one time).

What we do is to rewrite the function used for computing the premium amount. The javascript is in templates/CRM/Contribute/Form/Contribution/PremiumBlock.tpl (copied in a custom extension).

Simply adding the following to the function get_amount do the trick :

var isrecur = $('.is_recur_radio-section input:checked').val();
if (isrecur == 1) amount = amount * 12;

I suppose it's possible to add some more complex logic.

The fact that we need to update a core template file is not ideal for maintenance but it's a rather small change so it's easy to keep track of it and re-apply the change when we upgrade CiviCRM.

EDIT 2021-03-22

The solution above is not enough: there is validation in CRM/Contribute/Form/Contribution/Main.php that require adjustment.

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.