PluginProbe
The Innovative Form Builder – IvyForms / 1.5
The Innovative Form Builder – IvyForms v1.5
1.5.1 1.5 1.4.1 1.4 trunk 0.1.2 0.2 0.2.1 0.3 0.3.1 0.4 0.5 0.6 0.6.1 0.6.1-backup 0.6.1.1 0.7 0.8 0.8.1 0.8.2 0.9 0.9.1 1.0 1.1 1.1.1 All 27 releases
← All changes | backend/src/Controllers/Settings/GetAllSettingsController.php +35 -1 1.4 → 1.5 View file →
@@ -86,10 +86,22 @@
86 86 [
87 87 'connected' => class_exists('AmeliaBooking\Plugin') || defined('AMELIA_PATH')
88 88 ]
89 89 ),
90 - // Future categories can be added here
90 + 'square' => array_merge(
91 + $allSettings['integrations']['square'] ?? ['enabled' => false],
92 + [
93 + 'connected' => ! empty($allSettings['payment']['square']['connected']),
94 + ]
95 + ),
91 96 ],
97 + 'payment' => [
98 + 'square' => self::sanitizeSquareSettingsForFrontend(
99 + is_array($allSettings['payment']['square'] ?? null)
100 + ? $allSettings['payment']['square']
101 + : []
102 + ),
103 + ],
92 104 ];
93 105
94 106 /**
95 107 * Filter to allow Pro plugin to add additional settings data
@@ -104,6 +116,28 @@
104 116 return new WP_REST_Response([
105 117 'message' => BackendStrings::getSettingsStrings()['all_settings_retrieved'],
106 118 'data' => $organizedSettings
107 119 ], 200);
120 + }
121 +
122 + /**
123 + * @param array<string, mixed> $squareSettings
124 + * @return array<string, mixed>
125 + */
126 + private static function sanitizeSquareSettingsForFrontend(array $squareSettings): array
127 + {
128 + $defaults = [
129 + 'connected' => false,
130 + 'merchantId' => '',
131 + 'merchantName' => '',
132 + 'locationId' => '',
133 + 'locationName' => '',
134 + 'currency' => '',
135 + 'disconnectedByWebhook' => false,
136 + ];
137 +
138 + $merged = array_merge($defaults, $squareSettings);
139 + unset($merged['accessToken'], $merged['refreshToken']);
140 +
141 + return $merged;
108 142 }
109 143 }