PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.16.1
GiveWP – Donation Plugin and Fundraising Platform v2.16.1
4.16.5 4.16.4 4.16.3 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 years ago Template.php 4 years ago Utils.php 6 years ago
Template.php
94 lines
1 <?php
2 namespace Give\Helpers\Form;
3
4 use Give\Form\Template\LegacyFormSettingCompatibility;
5 use Give\Helpers\Form\Template\Utils\Frontend;
6
7 /**
8 * @since 2.7.0
9 */
10 class Template {
11 /**
12 * This function will return selected form template for a specific form.
13 *
14 * @param int $formId Form id. Default value: check explanation in ./Utils.php:103
15 *
16 * @return string
17 * @since 2.7.0
18 */
19 public static function getActiveID( $formId = null ) {
20 return Give()->form_meta->get_meta( $formId ?: Frontend::getFormId(), '_give_form_template', true );
21 }
22
23 /**
24 * Return saved form template settings
25 *
26 * @param int $formId
27 * @param string $templateId
28 *
29 * @return array
30 * @since 2.7.0
31 */
32 public static function getOptions( $formId = null, $templateId = '' ) {
33 $formId = $formId ?: Frontend::getFormId();
34 $template = $templateId ?: Give()->form_meta->get_meta( $formId, '_give_form_template', true );
35 $settings = Give()->form_meta->get_meta( $formId, "_give_{$template}_form_template_settings", true );
36
37 $settings = $settings ?: [];
38
39 // Exit if admin did not have any settings.
40 // New donation form does not have any setting saved.
41 if ( ! $settings ) {
42 return $settings;
43 }
44
45 // Backward compatibility for migrated settings.
46 // 1. "Introduction -> Primary Color" move to "Visual Appearance -> Primary Color"
47 // 2. "Payment Amount -> Decimal amounts" move to "Visual Appearance -> Decimal amounts"
48 self::handleOptionsBackwardCompatibility( $settings );
49
50 return $settings;
51 }
52
53 /**
54 * Save settings
55 *
56 * @sinxe 2.7.0
57 * @param $formId
58 * @param $settings
59 *
60 * @return mixed
61 */
62 public static function saveOptions( $formId, $settings ) {
63 $templateId = Give()->form_meta->get_meta( $formId, '_give_form_template', true );
64 $template = Give()->templates->getTemplate( $templateId );
65 $isUpdated = Give()->form_meta->update_meta( $formId, "_give_{$templateId}_form_template_settings", $settings );
66
67 /*
68 * Below code save legacy setting which connected/mapped to form template setting.
69 * 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.
70 *
71 * Note: We can remove legacy setting compatibility by returning anything except LegacyFormSettingCompatibility class object.
72 */
73 $legacySettingHandler = new LegacyFormSettingCompatibility( $template );
74 $legacySettingHandler->save( $formId, $settings );
75
76 return $isUpdated;
77 }
78
79 /**
80 * @since 2.16.0
81 *
82 * @param array $settings
83 */
84 public static function handleOptionsBackwardCompatibility( &$settings ) {
85 if ( ! isset( $settings['visual_appearance'] ) ) {
86 $settings['visual_appearance']['decimals_enabled'] = $settings['payment_amount']['decimals_enabled'];
87 $settings['visual_appearance']['primary_color'] = $settings['introduction']['primary_color'];
88 } else {
89 $settings['payment_amount']['decimals_enabled'] = $settings['visual_appearance']['decimals_enabled'];
90 $settings['introduction']['primary_color'] = $settings['visual_appearance']['primary_color'];
91 }
92 }
93 }
94