PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.3.1
GiveWP – Donation Plugin and Fundraising Platform v4.3.1
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 / Form / Template / LegacyFormSettingCompatibility.php
give / src / Form / Template Last commit date
Hookable.php 4 years ago LegacyFormSettingCompatibility.php 4 years ago Options.php 3 years ago Scriptable.php 4 years ago
LegacyFormSettingCompatibility.php
147 lines
1 <?php
2
3 namespace Give\Form\Template;
4
5 use Give\Form\Template;
6 use Give\Helpers\Form\Utils;
7
8 /**
9 * Class LegacyFormSettingCompatibility
10 *
11 * @package Give\Form\Template
12 * @since 2.7.0
13 */
14 class LegacyFormSettingCompatibility
15 {
16 /**
17 * Name of key which we are using in field description to connect template setting with legacy setting.
18 *
19 * @var string
20 */
21 public static $key = 'mapToLegacySetting';
22
23 /**
24 * Map legacy setting key name to template function/property from which you will get donation form configuration about different features.
25 *
26 * @var array $mapToTemplateProperty Form settings default values for form template.
27 */
28 private $mapToTemplateProperty = [
29 '_give_display_style' => 'donationFormLevelsStyle',
30 '_give_payment_display' => 'donationFormStyle',
31 '_give_form_floating_labels' => 'floatingLabelsStyle',
32 '_give_reveal_label' => 'getContinueToDonationFormLabel',
33 '_give_checkout_label' => 'getDonateNowButtonLabel',
34 '_give_display_content' => 'showDonationIntroductionContent',
35 '_give_content_placement' => 'getDonationIntroductionContentPosition',
36 '_give_form_content' => 'getDonationIntroductionContent',
37 ];
38
39 /**
40 * @var Template $template
41 */
42 private $template;
43
44 /**
45 * LegacyFormSettingCompatibility constructor.
46 *
47 * @param Template $template
48 */
49 public function __construct(Template $template)
50 {
51 $this->template = $template;
52 }
53
54 /**
55 * Save legacy settings.
56 *
57 * Note: we are using this function internally to store legacy form settings when save form template setting.
58 *
59 * @see src/Helpers/Form/Theme/Theme.php:46 we are using this function in set function.
60 * @since 2.7.0
61 *
62 * @param array $settings
63 * @param int $formId
64 */
65 public function save($formId, $settings)
66 {
67 $alreadySavedLegacySettings = [];
68 $templateOptions = $this->template->getOptionsConfig();
69 $enableDisableValueSet = ['disabled', 'enabled'];
70
71 foreach ($templateOptions as $groupId => $group) {
72 foreach ($group['fields'] as $field) {
73 // Continue if setting is not map to legacy setting.
74 if ( ! isset($field[self::$key])) {
75 continue;
76 }
77
78 Give()->form_meta->update_meta($formId, $field[self::$key], $settings[$groupId][$field['id']]);
79 $alreadySavedLegacySettings[] = $field[self::$key];
80 }
81 }
82
83 if ($remainingSettings = array_diff(array_keys($this->mapToTemplateProperty), $alreadySavedLegacySettings)) {
84 foreach ($remainingSettings as $metaKey) {
85 $value = property_exists($this->template, $this->mapToTemplateProperty[$metaKey]) ?
86 $this->template->{$this->mapToTemplateProperty[$metaKey]} : // Get value from property.
87 $this->template->{$this->mapToTemplateProperty[$metaKey]}(); // Get value from function
88
89 // Convert boolean value to enable and disabled.
90 if (is_bool($value)) {
91 $value = $enableDisableValueSet[absint($value)];
92 }
93
94 Give()->form_meta->update_meta(
95 $formId,
96 $metaKey,
97 $value
98 );
99 }
100 }
101 }
102
103 /**
104 * Migrate existing legacy form settings.
105 * Note: Only for internal use. This function can be removed or change in future
106 *
107 * @since 2.7.0
108 */
109 public static function migrateExistingFormSettings()
110 {
111 // Only migrate settings for existing form when editing.
112 if ( ! isset($_GET['action']) || 'edit' !== give_clean($_GET['action'])) {
113 return;
114 }
115
116 $formId = absint($_GET['post']);
117
118 if ( ! Utils::isLegacyForm($formId)) {
119 return;
120 }
121
122 if (Give()->form_meta->get_meta($formId, '_give_legacy_form_template_settings', true)) {
123 return;
124 }
125
126 $mapToSetting = [
127 'display_style' => '_give_display_style',
128 'payment_display' => '_give_payment_display',
129 'reveal_label' => '_give_reveal_label',
130 'checkout_label' => '_give_checkout_label',
131 'form_floating_labels' => '_give_form_floating_labels',
132 'display_content' => '_give_display_content',
133 'content_placement' => '_give_content_placement',
134 'form_content' => '_give_form_content',
135 ];
136
137 foreach ($mapToSetting as $newSetting => $oldSetting) {
138 if ($value = Give()->form_meta->get_meta($formId, $oldSetting, true)) {
139 $settings['display_settings'][$newSetting] = $value;
140 }
141 }
142
143 Give()->form_meta->update_meta($formId, '_give_form_template', 'legacy');
144 Give()->form_meta->update_meta($formId, '_give_legacy_form_template_settings', $settings);
145 }
146 }
147