PluginProbe
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.3.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.3.1
4.7.2 4.7.1 4.7.0 4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 All 281 releases
surecart / app / src / Controllers / Rest / SettingsController.php
SettingsController.php
104 lines 3.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace SureCart\Controllers\Rest;
4
5 use SureCart\Models\ApiToken;
6
7 /**
8 * Handle price requests through the REST API
9 */
10 class SettingsController {
11 /**
12 * Index
13 *
14 * @param \WP_REST_Request $request Rest Request.
15 *
16 * @return \WP_REST_Response
17 */
18 public function find( \WP_REST_Request $request ) {
19 return rest_ensure_response(
20 [
21 'object' => 'settings',
22 'api_token' => ApiToken::get(),
23 'uninstall' => (bool) get_option( 'sc_uninstall', false ),
24 'stripe_payment_element' => (bool) get_option( 'sc_stripe_payment_element', true ),
25 'auto_sync_user_to_customer' => (bool) get_option( 'surecart_auto_sync_user_to_customer', false ),
26 'use_esm_loader' => (bool) get_option( 'surecart_use_esm_loader', false ),
27 'slide_out_cart_disabled' => (bool) get_option( 'sc_slide_out_cart_disabled', false ),
28 'load_block_assets_on_demand' => (bool) get_option( 'surecart_load_block_assets_on_demand', false ),
29 ]
30 );
31 }
32
33 /**
34 * Update
35 *
36 * @param \WP_REST_Request $request Rest Request.
37 *
38 * @return \WP_REST_Response
39 */
40 public function edit( \WP_REST_Request $request ) {
41 // save api token.
42 if ( isset( $request['api_token'] ) ) {
43 if ( ! empty( $request['api_token'] ) ) {
44 $validate = $this->validate( $request->get_param( 'api_token' ) );
45 if ( is_wp_error( $validate ) ) {
46 return $validate;
47 }
48 }
49
50 // Update the API token.
51 ApiToken::save( $request['api_token'] );
52
53 // Clear the account cache.
54 \SureCart::account()->clearCache();
55 }
56
57 // update uninstall option.
58 if ( isset( $request['uninstall'] ) ) {
59 update_option( 'sc_uninstall', $request->get_param( 'uninstall' ) );
60 }
61
62 // update stripe payment_element option - used to enable the stripe's legacy card element.
63 if ( isset( $request['stripe_payment_element'] ) ) {
64 update_option( 'sc_stripe_payment_element', $request->get_param( 'stripe_payment_element' ) === false ? 0 : 1 );
65 }
66
67 // update performance option.
68 if ( isset( $request['use_esm_loader'] ) ) {
69 update_option( 'surecart_use_esm_loader', $request->get_param( 'use_esm_loader' ) );
70 }
71
72 // update slide out cart option.
73 if ( isset( $request['slide_out_cart_disabled'] ) ) {
74 update_option( 'sc_slide_out_cart_disabled', (bool) $request->get_param( 'slide_out_cart_disabled' ) );
75 }
76
77 if ( isset( $request['auto_sync_user_to_customer'] ) ) {
78 update_option( 'surecart_auto_sync_user_to_customer', (bool) $request->get_param( 'auto_sync_user_to_customer' ) );
79 }
80
81 // update load block styles on demand option.
82 if ( isset( $request['load_block_assets_on_demand'] ) ) {
83 update_option( 'surecart_load_block_assets_on_demand', $request->get_param( 'load_block_assets_on_demand' ) );
84 }
85
86 return rest_ensure_response( $this->find( $request ) );
87 }
88
89 /**
90 * Validate the token.
91 *
92 * @param string $token The API token.
93 *
94 * @return true|\WP_Error
95 */
96 protected function validate( $token = '' ) {
97 $response = \SureCart::requests()->setToken( $token )->get( 'account' );
98 if ( is_wp_error( $response ) ) {
99 return $response;
100 }
101 return true;
102 }
103 }
104