CRM_Member_PseudoConstant::membershipType(NULL, TRUE);
civicrm_api3('membership', 'getfields', ['cache_clear' => 1, 'fieldname' => 'membership_type_id']);
civicrm_api3('profile', 'getfields', ['action' => 'submit', 'cache_clear' => 1]);
+ Civi::cache('metadata')->clear();
}
/**
/**
* Get membership Types.
*
+ * @deprecated use getAllMembershipTypes.
+ *
* @param bool $public
*
* @return array
/**
* Get membership Type Details.
*
+ * @deprecated use getMembershipType.
+ *
* @param int $membershipTypeId
*
* @return array|null
}
}
+ /**
+ * Cached wrapper for membership types.
+ *
+ * Since this is used from the batched script caching helps.
+ *
+ * @throws \CiviCRM_API3_Exception
+ */
+ public static function getAllMembershipTypes() {
+ if (!Civi::cache('metadata')->has(__CLASS__ . __FUNCTION__)) {
+ Civi::cache('metadata')->set(__CLASS__ . __FUNCTION__, civicrm_api3('MembershipType', 'get', ['options' => ['limit' => 0, 'sort' => 'weight']])['values']);
+ }
+ return Civi::cache('metadata')->get(__CLASS__ . __FUNCTION__);
+ }
+
+ /**
+ * Get a specific membership type (leveraging the cache).
+ *
+ * @param int $id
+ *
+ * @return mixed
+ * @throws \CiviCRM_API3_Exception
+ */
+ public static function getMembershipType($id) {
+ return self::getAllMembershipTypes()[$id];
+ }
+
}