PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Helpers / Form / Template.php
give / src / Helpers / Form Last commit date
Template 5 months ago Template.php 4 years ago Utils.php 2 years ago
Template.php
140 lines
1 <?php
2
3 namespace Give\Helpers\Form;
4
5 use Give\Form\Template\LegacyFormSettingCompatibility;
6 use Give\Helpers\Form\Template\Utils\Frontend;
7
8 /**
9 * @since 2.7.0
10 */
11 class Template
12 {
13 /**
14 * This function will return selected form template for a specific form.
15 *
16 * @since 2.7.0
17 *
18 * @param int $formId Form id. Default value: check explanation in ./Utils.php:103
19 *
20 * @return string
21 */
22 public static function getActiveID($formId = null)
23 {
24 return Give()->form_meta->get_meta($formId ?: Frontend::getFormId(), '_give_form_template', true);
25 }
26
27 /**
28 * Return saved form template settings
29 *
30 * @since 2.7.0
31 *
32 * @param string $templateId
33 *
34 * @param int $formId
35 *
36 * @return array
37 */
38 public static function getOptions($formId = null, $templateId = '')
39 {
40 $formId = $formId ?: Frontend::getFormId();
41 $template = $templateId ?: Give()->form_meta->get_meta($formId, '_give_form_template', true);
42 $settings = Give()->form_meta->get_meta($formId, "_give_{$template}_form_template_settings", true);
43
44 $settings = $settings ?: [];
45
46 // Exit if admin did not have any settings.
47 // New donation form does not have any setting saved.
48 if ( ! $settings) {
49 return $settings;
50 }
51
52 /**
53 * Backwards compatibility for forms saved before the Donation Summary was introduced.
54 * @since 2.17.0
55 */
56 if ( ! isset($settings['payment_information'])) {
57 $settings['payment_information'] = [
58 'donation_summary_enabled' => 'disabled', // Disable by default for existing forms.
59 'donation_summary_heading' => __('Here\'s what you\'re about to donate:', 'give'),
60 'donation_summary_location' => 'give_donation_form_before_submit',
61 ];
62 }
63
64 // Backward compatibility for migrated settings.
65 // 1. "Introduction -> Primary Color" move to "Visual Appearance -> Primary Color"
66 // 2. "Payment Amount -> Decimal amounts" move to "Visual Appearance -> Decimal amounts"
67 return self::handleOptionsBackwardCompatibility($settings, $template);
68 }
69
70 /**
71 * Save settings
72 *
73 * @sinxe 2.7.0
74 *
75 * @param $formId
76 * @param $settings
77 *
78 * @return bool
79 */
80 public static function saveOptions($formId, $settings)
81 {
82 $templateId = Give()->form_meta->get_meta($formId, '_give_form_template', true);
83 $template = Give()->templates->getTemplate($templateId);
84 $isUpdated = Give()->form_meta->update_meta($formId, "_give_{$templateId}_form_template_settings", $settings);
85
86 /*
87 * Below code save legacy setting which connected/mapped to form template setting.
88 * Existing form render on basis of these settings if missed then required output will not generate from give_form_shortcode -> give_get_donation_form function.
89 *
90 * Note: We can remove legacy setting compatibility by returning anything except LegacyFormSettingCompatibility class object.
91 */
92 $legacySettingHandler = new LegacyFormSettingCompatibility($template);
93 $legacySettingHandler->save($formId, $settings);
94
95 return $isUpdated;
96 }
97
98 /**
99 * @since 2.16.0
100 *
101 * @since 2.16.2 Accepts parameter "call by value". Pass multiple to arguments to isset to validate whether deprecated settings exist.
102 *
103 * @param array $settings
104 *
105 * @param string $template
106 *
107 * @return array $settings
108 */
109 public static function handleOptionsBackwardCompatibility($settings, $template)
110 {
111 if (isset($settings['visual_appearance'])) {
112 if (isset($settings['visual_appearance']['decimals_enabled'])) {
113 $settings['payment_amount']['decimals_enabled'] = $settings['visual_appearance']['decimals_enabled'];
114 }
115 $settings['introduction']['primary_color'] = $settings['visual_appearance']['primary_color'];
116 } elseif (isset($settings['payment_amount'], $settings['introduction'])) {
117 if (isset($settings['payment_amount']['decimals_enabled'])) {
118 $settings['visual_appearance']['decimals_enabled'] = $settings['payment_amount']['decimals_enabled'];
119 } else {
120 $settings['visual_appearance']['decimals_enabled'] = 'disabled';
121 }
122 if (isset($settings['visual_appearance']['primary_color'])) {
123 $settings['visual_appearance']['primary_color'] = $settings['introduction']['primary_color'];
124 } else {
125 switch ($template) {
126 case 'sequoia':
127 $settings['visual_appearance']['primary_color'] = '#28C77B';
128 break;
129 case 'classic':
130 default:
131 $settings['visual_appearance']['primary_color'] = '#1E8CBE';
132 break;
133 }
134 }
135 }
136
137 return $settings;
138 }
139 }
140