PluginProbe
Booktics – Appointment Booking Calendar for Service Businesses / 1.0.28
Booktics – Appointment Booking Calendar for Service Businesses v1.0.28
1.0.29 1.0.28 1.0.27 1.0.26 1.0.25 1.0.24 1.0.23 1.0.22 1.0.21 1.0.20 1.0.19 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.2 1.0.3 All 31 releases
← All changes | core/settings/controllers/settings-controller.php +39 -0 1.0.23 → 1.0.28 View file →
@@ -1,8 +1,12 @@
1 1 <?php
2 2
3 3 namespace Booktics\Settings\Controllers;
4 4
5 +if ( ! defined( 'ABSPATH' ) ) {
6 + exit;
7 +}
8 +
5 9 use Booktics\Abstracts\Base_Rest_Controller;
6 10 use Booktics\Services\Schedule_Manager;
7 11 use Booktics\Settings\Settings;
8 12 use WP_Error;
@@ -120,8 +124,9 @@
120 124 $settings['reschedule_restriction'] = empty( $settings['reschedule_restriction'] ) ? (object) array() : $settings['reschedule_restriction'];
121 125 $settings['custom_reschedule_status'] = empty( $settings['custom_reschedule_status'] ) ? (object) array() : $settings['custom_reschedule_status'];
122 126 $settings['cancellation_restriction'] = empty( $settings['cancellation_restriction'] ) ? (object) array() : $settings['cancellation_restriction'];
123 127 $settings['stripe_addon_install_status'] = 0;
128 + $settings['woocommerce_install_status'] = 0;
124 129
125 130 $settings = apply_filters( 'booktics_format_setting_response', $settings );
126 131
127 132 return $settings;
@@ -164,8 +169,39 @@
164 169 $minutes = absint( $params['pending_reservation_timeout'] );
165 170 $params['pending_reservation_timeout'] = $minutes > 0 ? $minutes : 10;
166 171 }
167 172
173 + // Only the two known destinations are accepted for the post-checkout page.
174 + if ( isset( $params['wc_thankyou_page'] ) ) {
175 + $params['wc_thankyou_page'] = in_array( $params['wc_thankyou_page'], array( 'woocommerce', 'booktics' ), true )
176 + ? $params['wc_thankyou_page']
177 + : 'woocommerce';
178 + }
179 +
180 + /**
181 + * Last chance to clean the settings payload before it is stored.
182 + *
183 + * Settings::update() writes what it is handed, so a feature adding a
184 + * structured key of its own sanitizes it here. schedule, custom and
185 + * holiday are not in $params: Schedule_Manager has already saved them.
186 + *
187 + * @since 1.0.26
188 + *
189 + * @param array $params Settings payload from the request.
190 + */
191 + $filtered = apply_filters( 'booktics_settings_update_params', $params );
192 +
193 + if ( ! is_array( $filtered ) ) {
194 + _doing_it_wrong(
195 + __METHOD__,
196 + esc_html__( 'The booktics_settings_update_params filter must return an array.', 'booktics' ),
197 + '1.0.26'
198 + );
199 + $filtered = $params;
200 + }
201 +
202 + $params = $filtered;
203 +
168 204 Settings::update( $params );
169 205
170 206 $settings = Settings::get();
171 207 $settings = apply_filters( 'booktics_rest_settings', $settings );
@@ -188,8 +224,11 @@
188 224 'currency_price_separator',
189 225 'enable_stripe_payment',
190 226 'enable_paypal_payment',
191 227 'enable_local_payment',
228 + 'enable_woocommerce_payment',
229 + 'wc_show_billing_fields',
230 + 'wc_thankyou_page',
192 231 'stripe_publishable_key',
193 232 'show_end_time',
194 233 'calendar_locale',
195 234 'allow_customer_rescheduling',