private function wf_crm_admin_form::buildContributionTab in Webform CiviCRM Integration 7.4
Same name and namespace in other branches
- 7.5 includes/wf_crm_admin_form.inc \wf_crm_admin_form::buildContributionTab()
Contribution settings
1 call to wf_crm_admin_form::buildContributionTab()
- wf_crm_admin_form::buildForm in includes/
wf_crm_admin_form.inc - Build admin form for civicrm tab of a webform
File
- includes/
wf_crm_admin_form.inc, line 994 - Webform CiviCRM module's admin form.
Class
- wf_crm_admin_form
- @file Webform CiviCRM module's admin form.
Code
private function buildContributionTab() {
$this->form['contribution'] = array(
'#type' => 'fieldset',
'#title' => t('Contribution'),
'#group' => 'webform_civicrm',
'#description' => t('In order to process live transactions for events, memberships, or contributions, select a contribution page and its billing fields will be included on the webform.'),
'#attributes' => array(
'class' => array(
'civi-icon-contribution',
),
),
);
$fid = 'civicrm_1_contribution_1_contribution_contribution_page_id';
$this->form['contribution'][$fid] = $this
->addItem($fid, $this->fields['contribution_contribution_page_id']);
unset($this->sets['contribution']['fields']['contribution_contribution_page_id']);
$this
->addAjaxItem('contribution', $fid, 'sets');
$page_id = wf_crm_aval($this->data, 'contribution:1:contribution:1:contribution_page_id');
if ($page_id) {
$page = wf_civicrm_api('contribution_page', 'getsingle', array(
'id' => $page_id,
));
}
if (!$page_id || empty($page['financial_type_id'])) {
return;
}
// Make sure webform is set-up to prevent credit card abuse.
$this
->checkSubmissionLimit();
// Add contribution fields
foreach ($this->sets as $sid => $set) {
if ($set['entity_type'] == 'contribution' && (empty($set['sub_types']) || in_array($page['financial_type_id'], $set['sub_types']))) {
$this->form['contribution']['sets'][$sid] = array(
'#type' => 'fieldset',
'#title' => $set['label'],
'#attributes' => array(
'id' => $sid,
'class' => array(
'web-civi-checkbox-set',
),
),
'js_select' => $this
->addToggle($sid),
);
$this
->addDynamicCustomSetting($this->form['contribution']['sets'][$sid], $sid, 'contribution', 1);
if (isset($set['fields'])) {
foreach ($set['fields'] as $fid => $field) {
$fid = "civicrm_1_contribution_1_{$fid}";
$this->form['contribution']['sets'][$sid][$fid] = $this
->addItem($fid, $field);
}
}
}
}
// LineItem
$num = wf_crm_aval($this->data, "lineitem:number_number_of_lineitem", 0);
$this->form['contribution']['sets']["lineitem_1_number_of_lineitem"] = array(
'#type' => 'select',
'#title' => t('Additional Line items'),
'#default_value' => $num,
'#options' => range(0, 9),
'#prefix' => '<div class="number-of">',
'#suffix' => '</div>',
);
$this
->addAjaxItem("contribution:sets", "lineitem_1_number_of_lineitem", "lineitem");
for ($n = 1; $n <= $num; ++$n) {
$fs = "contribution_sets_lineitem_{$n}_fieldset";
$this->form['contribution']['sets']['lineitem'][$fs] = array(
'#type' => 'fieldset',
'#title' => t('Line item !num', array(
'!num' => $n,
)),
'#attributes' => array(
'id' => $fs,
'class' => array(
'web-civi-checkbox-set',
),
),
'js_select' => $this
->addToggle($fs),
);
foreach ($this->sets['line_items']['fields'] as $fid => $field) {
$fid = "civicrm_1_lineitem_{$n}_{$fid}";
$this->form['contribution']['sets']['lineitem'][$fs][$fid] = $this
->addItem($fid, $field);
}
}
}