-
Notifications
You must be signed in to change notification settings - Fork 2
/
webform_paymethod_select.theme.inc
97 lines (88 loc) · 2.93 KB
/
webform_paymethod_select.theme.inc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
/**
* Returns HTML for the webform component if payment options are displayed.
* @param array $variables
* - element: the placeholder element with the following special keys:
* - #title: The component name.
* - #payment_description
* - #selected_payment_methods: Enabled payment methods (pmids) for this
* component.
* - #currency_code: Code of the selected currency.
* - #line_items: An array of payment_line_items.
* - #payment: The payment object.
*
* @ingroup themeable
*/
function theme_webform_paymethod_select_component(&$variables) {
$element = &$variables['element'];
$children = element_children($element, TRUE);
$output = '';
foreach ($children as $key) {
$output .= drupal_render($element[$key]);
}
return $output;
}
/**
* Returns HTML for the webform component if there is already a payment with
* a successful status.
*
* @param array $variables
* An associative array containing:
* - element: the placeholder element with the following special keys:
* - #title: The component name.
* - #payment_description
* - #selected_payment_methods: Enabled payment methods (pmids) for this
* component.
* - #currency_code: Code of the selected currency.
* - #line_items: An array of payment_line_items.
* - #payment: The payment object.
*
* @ingroup themeable
*/
function theme_webform_paymethod_select_already_paid(&$variables) {
$element = &$variables['element'];
$payment = $element['#payment'];
$render = array(
'#theme_wrappers' => array('fieldset'),
'#title' => t('Payment made.'),
'#description' => t('The payment has been processed successfully.'),
);
return render($render);
}
/**
* Returns HTML for the webform_paymethod_select form_builder placeholder.
*
* @param array $variables
* An associative array containing:
* - element: the placeholder element with the following special keys:
* - #title: The component name.
* - #payment_description
* - #selected_payment_methods: Enabled payment methods (pmids) for this
* component.
* - #currency_code: Code of the selected currency.
* - #line_items: An array of payment_line_items.
* - #payment: The payment object.
*
* @ingroup themeable
*/
function theme_webform_paymethod_select_placeholder(&$variables) {
$element = &$variables['element'];
$render = array(
'#theme_wrappers' => array('fieldset'),
'#title' => $element['#title'],
);
$pmids = array_keys(array_filter($element['#selected_payment_methods']));
$methods = array();
foreach (entity_load('payment_method', $pmids) as $pm) {
$methods[] = $pm->title_specific;
}
if (!$methods) {
$methods[] = t('No payment method is enabled at the moment. Please enable at least one.');
}
$render['payment_methods'] = array(
'#theme' => 'item_list',
'#title' => t('Enabled payment methods'),
'#items' => $methods,
);
return render($render);
}