[#6] Make contribution status configurable per payment method

This commit is contained in:
Jens Schuppe 2019-08-30 10:33:30 +02:00
parent 17589ef616
commit 7ff6381ad8
4 changed files with 64 additions and 3 deletions

View file

@ -44,6 +44,14 @@ class CRM_Twingle_Form_Profile extends CRM_Core_Form {
*/
protected static $_paymentInstruments = NULL;
/**
* @var array
*
* A static cache of retrieved contribution statuses found within
* static::getContributionStatusOptions().
*/
protected static $_contributionStatusOptions = NULL;
/**
* @var array
*
@ -238,6 +246,14 @@ class CRM_Twingle_Form_Profile extends CRM_Core_Form {
static::getPaymentInstruments(), // list of options
TRUE // is required
);
$this->add(
'select',
$pi_name . '_status',
E::ts('Record %1 donations with contribution status', array(1 => $pi_label)),
static::getContributionStatusOptions(),
TRUE
);
}
if (CRM_Twingle_Submission::civiSepaEnabled()) {
@ -613,6 +629,36 @@ class CRM_Twingle_Form_Profile extends CRM_Core_Form {
return self::$_paymentInstruments;
}
/**
* Retrieves contribution statuses as options for select form elements.
*
* @return array
*
* @throws \CiviCRM_API3_Exception
*/
public static function getContributionStatusOptions() {
if (!isset(self::$_contributionStatusOptions)) {
$query = civicrm_api3(
'OptionValue',
'get',
array(
'option.limit' => 0,
'option_group_id' => 'contribution_status',
'return' => array(
'value',
'label',
)
)
);
foreach ($query['values'] as $contribution_status) {
self::$_contributionStatusOptions[$contribution_status['value']] = $contribution_status['label'];
}
}
return self::$_contributionStatusOptions;
}
/**
* Retrieves active groups used as mailing lists within the system as options
* for select form elements.