$this->_params['payment_processor_id'],
($this->_mode == 'test')
);
- $this->assign('credit_card_exp_date', CRM_Utils_Date::mysqlToIso(CRM_Utils_Date::format($this->_params['credit_card_exp_date'])));
- $this->assign('credit_card_number', CRM_Utils_System::mungeCreditCard($this->_params['credit_card_number']));
- $this->assign('credit_card_type', CRM_Utils_Array::value('credit_card_type', $this->_params));
}
$this->_params['ip_address'] = CRM_Utils_System::ipAddress();
- self::formatCreditCardDetails($this->_params);
+ $valuesForForm = self::formatCreditCardDetails($this->_params);
+ $this->assignVariables($valuesForForm, ['credit_card_exp_date', 'credit_card_type', 'credit_card_number']);
+
foreach ($this->submittableMoneyFields as $moneyField) {
if (isset($this->_params[$moneyField])) {
$this->_params[$moneyField] = CRM_Utils_Rule::cleanMoney($this->_params[$moneyField]);
*
* @param array $params
*
- * @return void
+ * @return array An array of params suitable for assigning to the form/tpl
*/
public static function formatCreditCardDetails(&$params) {
+ if (!empty($params['credit_card_exp_date'])) {
+ $params['year'] = CRM_Core_Payment_Form::getCreditCardExpirationYear($params);
+ $params['month'] = CRM_Core_Payment_Form::getCreditCardExpirationMonth($params);
+ }
if (!empty($params['credit_card_type'])) {
$params['card_type_id'] = CRM_Core_PseudoConstant::getKey('CRM_Core_BAO_FinancialTrxn', 'card_type_id', $params['credit_card_type']);
}
$params['year'] = CRM_Core_Payment_Form::getCreditCardExpirationYear($params);
$params['month'] = CRM_Core_Payment_Form::getCreditCardExpirationMonth($params);
}
+
+ $tplParams['credit_card_exp_date'] = isset($params['credit_card_exp_date']) ? CRM_Utils_Date::mysqlToIso(CRM_Utils_Date::format($params['credit_card_exp_date'])) : NULL;
+ $tplParams['credit_card_type'] = CRM_Utils_Array::value('credit_card_type', $params);
+ $tplParams['credit_card_number'] = CRM_Utils_System::mungeCreditCard(CRM_Utils_Array::value('credit_card_number', $params));
+ return $tplParams;
}
/**
/**
* Send email receipt.
*
- * @param CRM_Core_Form $form
+ * @param \CRM_Core_Form $form
* instance of Contribution form.
* @param array $params
* (reference ) an assoc array of name/value pairs.
$form->_bltID
));
- $date = CRM_Utils_Date::format($params['credit_card_exp_date']);
- $date = CRM_Utils_Date::mysqlToIso($date);
- $form->assign('credit_card_type', $params['credit_card_type'] ?? NULL);
- $form->assign('credit_card_exp_date', $date);
- $form->assign('credit_card_number',
- CRM_Utils_System::mungeCreditCard($params['credit_card_number'])
- );
+ $valuesForForm = CRM_Contribute_Form_AbstractEditPayment::formatCreditCardDetails($params);
+ $form->assignVariables($valuesForForm, ['credit_card_exp_date', 'credit_card_type', 'credit_card_number']);
}
else {
//offline contribution
$this->_params['tax_amount'] = $this->get('tax_amount');
$this->_useForMember = $this->get('useForMember');
- if (isset($this->_params['credit_card_exp_date'])) {
- $this->_params['year'] = CRM_Core_Payment_Form::getCreditCardExpirationYear($this->_params);
- $this->_params['month'] = CRM_Core_Payment_Form::getCreditCardExpirationMonth($this->_params);
- }
+ CRM_Contribute_Form_AbstractEditPayment::formatCreditCardDetails($this->_params);
$this->_params['currencyID'] = CRM_Core_Config::singleton()->defaultCurrency;
}
$processorParams['state_province'] = CRM_Core_PseudoConstant::stateProvince($params["billing_state_province_id-{$this->_bltID}"], FALSE);
$processorParams['country'] = CRM_Core_PseudoConstant::country($params["billing_country_id-{$this->_bltID}"], FALSE);
- $processorParams['month'] = $processorParams['credit_card_exp_date']['M'];
- $processorParams['year'] = $processorParams['credit_card_exp_date']['Y'];
+ $processorParams['month'] = CRM_Core_Payment_Form::getCreditCardExpirationMonth($processorParams);
+ $processorParams['year'] = CRM_Core_Payment_Form::getCreditCardExpirationYear($processorParams);
$processorParams['subscriptionId'] = $this->getSubscriptionDetails()->processor_id;
$processorParams['amount'] = $this->_subscriptionDetails->amount;
- $updateSubscription = $this->_paymentProcessor['object']->updateSubscriptionBillingInfo($message, $processorParams);
+ $updateSubscription = $this->_paymentProcessor['object']->updateSubscriptionBillingInfo('', $processorParams);
if (is_a($updateSubscription, 'CRM_Core_Error')) {
CRM_Core_Error::displaySessionError($updateSubscription);
}
list($donorDisplayName, $donorEmail) = CRM_Contact_BAO_Contact::getContactDetails($this->_subscriptionDetails->contact_id);
$tplParams['contact'] = array('display_name' => $donorDisplayName);
- $date = CRM_Utils_Date::format($processorParams['credit_card_exp_date']);
- $tplParams['credit_card_exp_date'] = CRM_Utils_Date::mysqlToIso($date);
- $tplParams['credit_card_number'] = CRM_Utils_System::mungeCreditCard($processorParams['credit_card_number']);
- $tplParams['credit_card_type'] = $processorParams['credit_card_type'];
+ $tplParams = array_merge($tplParams, CRM_Contribute_Form_AbstractEditPayment::formatCreditCardDetails($processorParams));
$sendTemplateParams = array(
'groupName' => $this->_subscriptionDetails->membership_id ? 'msg_tpl_workflow_membership' : 'msg_tpl_workflow_contribution',
else {
throw new CRM_Core_Exception(ts('A payment processor configured for this page might be disabled (contact the site administrator for assistance).'));
}
+ }
+ /**
+ * Assign an array of variables to the form/tpl
+ *
+ * @param array $values Array of [key => value] to assign to the form
+ * @param array $keys Array of keys to assign from the values array
+ */
+ public function assignVariables($values, $keys) {
+ foreach ($keys as $key) {
+ $this->assign($key, $values[$key] ?? NULL);
+ }
}
/**
}
// For legacy reasons we set these creditcard expiry fields if present
- if (isset($params['credit_card_exp_date'])) {
- $params['year'] = CRM_Core_Payment_Form::getCreditCardExpirationYear($params);
- $params['month'] = CRM_Core_Payment_Form::getCreditCardExpirationMonth($params);
- }
+ CRM_Contribute_Form_AbstractEditPayment::formatCreditCardDetails($params);
// Assign IP address parameter
$params['ip_address'] = CRM_Utils_System::ipAddress();
$this->_bltID
));
- $date = CRM_Utils_Date::format($params['credit_card_exp_date']);
- $date = CRM_Utils_Date::mysqlToIso($date);
- $this->assign('credit_card_exp_date', $date);
- $this->assign('credit_card_number',
- CRM_Utils_System::mungeCreditCard($params['credit_card_number'])
- );
- $this->assign('credit_card_type', $params['credit_card_type']);
+ $valuesForForm = CRM_Contribute_Form_AbstractEditPayment::formatCreditCardDetails($params);
+ $this->assignVariables($valuesForForm, ['credit_card_exp_date', 'credit_card_type', 'credit_card_number']);
+
// The concept of contributeMode is deprecated.
$this->assign('contributeMode', 'direct');
$this->assign('isAmountzero', 0);
$form->_bltID
));
- $date = CRM_Utils_Date::format($form->_params['credit_card_exp_date']);
- $date = CRM_Utils_Date::mysqlToIso($date);
- $form->assign('credit_card_exp_date', $date);
- $form->assign('credit_card_number',
- CRM_Utils_System::mungeCreditCard($form->_params['credit_card_number'])
- );
- $form->assign('credit_card_type', $form->_params['credit_card_type']);
+ $valuesForForm = CRM_Contribute_Form_AbstractEditPayment::formatCreditCardDetails($form->_params);
+ $form->assignVariables($valuesForForm, ['credit_card_exp_date', 'credit_card_type', 'credit_card_number']);
+
$form->assign('contributeMode', 'direct');
$form->assign('isAmountzero', 0);
$form->assign('is_pay_later', 0);