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