I've made some changes to our membership structure and will be creating new memberships for a significant number of contacts. I'd like to keep the old memberships for completeness and have created a new status of "Transferred" to distinguish them from normally Expired or Cancelled. I can set the status with a bulk update on the records, but I can't see a way to set the Status override field in the bulk update (it doesn't appear as an option in profiles) and I am worried that the automatic membership status check will change them to Expired.

Using CiviCRM 5.26.2

1 Answer 1


You could do that with the API:

$result = civicrm_api3('Membership', 'get', [
  'sequential' => 1,
  'status_id' => "Transferred",
  'options' => ['limit' => 0],
  'api.Membership.create' => ['id' => "\$id", 'is_override' => 1],

(Find all memberships with status 'Transferred' and set override)

Or in Explorer: API Explorer image

If you can adjust your membership status rules to avoid using status override, that would be preferable but in this case your Transferred status only applies to some membership types.

  • I don't think I'm comfortable with the API, but I can that this will work and look at how I might use this in future, when I have learnt a bit more.+
    – Mick Kahn
    Feb 4, 2021 at 22:04
  • I can't do this with membership status rules as it doesn't apply universally. The criteria for for being transferred can't be determined within CiviCRM. Its not event specific to certain membership types. Its not actually a one off exercise and people can also transfer back. But as in future they will all be done as one-offs the override mechanism works fine. Its just the initial batch where I want to use the bulk update.
    – Mick Kahn
    Feb 5, 2021 at 15:21

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.