/**
* Define default MembershipType Id.
+ *
* @var int
+ *
+ * @deprecated unused
*/
public $_defaultMemTypeId;
$memtypeID = NULL;
if ($this->_priceSetId) {
- if (($this->isMembershipPriceSet() && !$this->isDefined('CurrentMembership')) || $this->_defaultMemTypeId) {
+ if ($this->isMembershipPriceSet()) {
$selectedCurrentMemTypes = [];
foreach ($this->_priceSet['fields'] as $key => $val) {
foreach ($val['options'] as $keys => $values) {
$opMemTypeId = $values['membership_type_id'] ?? NULL;
$priceFieldName = 'price_' . $values['price_field_id'];
$priceFieldValue = CRM_Price_BAO_PriceSet::getPriceFieldValueFromURL($this, $priceFieldName);
- if (!empty($priceFieldValue)) {
+ if (!empty($priceFieldValue) && !$this->isDefined('RenewableMembership')) {
CRM_Price_BAO_PriceSet::setDefaultPriceSetField($priceFieldName, $priceFieldValue, $val['html_type'], $this->_defaults);
// break here to prevent overwriting of default due to 'is_default'
// option configuration or setting of current membership or
// The value sent via URL get's higher priority.
break;
}
- elseif ($opMemTypeId &&
- !empty($this->getExistingMemberships()[$opMemTypeId]) &&
+ if ($opMemTypeId &&
+ // @todo - maybe use the defined renewable membership to avoid lifetime memberships.
+ !empty($this->getExistingMembership($opMemTypeId)) &&
!in_array($opMemTypeId, $selectedCurrentMemTypes)
) {
CRM_Price_BAO_PriceSet::setDefaultPriceSetField($priceFieldName, $keys, $val['html_type'], $this->_defaults);
$memtypeID = $selectedCurrentMemTypes[] = $values['membership_type_id'];
}
elseif (!empty($values['is_default']) && !$opMemTypeId && (!isset($this->_defaults[$priceFieldName]) ||
- ($val['html_type'] == 'CheckBox' && !isset($this->_defaults[$priceFieldName][$keys])))) {
+ ($val['html_type'] === 'CheckBox' && !isset($this->_defaults[$priceFieldName][$keys])))) {
CRM_Price_BAO_PriceSet::setDefaultPriceSetField($priceFieldName, $keys, $val['html_type'], $this->_defaults);
$memtypeID = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceFieldValue', $this->_defaults[$priceFieldName], 'membership_type_id');
}
}
$this->applyFilter('__ALL__', 'trim');
+ $this->assign('showMainEmail', !empty($this->_ccid));
if (empty($this->_ccid)) {
if ($this->_emailExists == FALSE) {
$this->add('text', "email-{$this->_bltID}",
['size' => 30, 'maxlength' => 60, 'class' => 'email'],
TRUE
);
- $this->assign('showMainEmail', TRUE);
$this->addRule("email-{$this->_bltID}", ts('Email is not valid.'), 'email');
}
}
private function buildPriceSet($form) {
$validPriceFieldIds = array_keys($this->getPriceFieldMetaData());
$form->assign('priceSet', $form->_priceSet);
+ $this->assign('membershipFieldID');
// @todo - this hook wrangling can be done earlier if we set the form on $this->>order.
$feeBlock = &$form->_values['fee'];
$this->assign('hasExistingLifetimeMembership', TRUE);
continue;
}
- $this->define('Membership', 'CurrentMembership', $membership);
+ $this->define('Membership', 'RenewableMembership', $membership);
$memType['current_membership'] = $membership['end_date'];
if (!$endDate) {
$endDate = $memType['current_membership'];