PluginProbe
OttoKit: All-in-One Automation Platform / 1.0.12
OttoKit: All-in-One Automation Platform v1.0.12
1.1.38 1.1.37 1.1.36 1.1.35 1.1.34 1.1.33 1.1.32 1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.9 trunk 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.19 1.0.20 All 124 releases
suretriggers / src / Controllers / SettingsController.php

SettingsController.php in OttoKit: All-in-One Automation Platform 1.0.12, at src/Controllers/SettingsController.php

149 lines 4.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * SettingsController.
4 * php version 5.6
5 *
6 * @category SettingsController
7 * @package SureTriggers
8 * @author BSF <username@example.com>
9 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
10 * @link https://www.brainstormforce.com/
11 * @since 1.0.0
12 */
13
14 namespace SureTriggers\Controllers;
15
16 use SureTriggers\Traits\SingletonLoader;
17
18 if ( ! class_exists( 'SettingsController' ) ) :
19
20 /**
21 * SettingsController
22 *
23 * @category SettingsController
24 * @package SureTriggers
25 * @author BSF <username@example.com>
26 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
27 * @link https://www.brainstormforce.com/
28 * @since 1.0.0
29 */
30 class SettingsController {
31
32 use SingletonLoader;
33
34 /**
35 * SettingsController constructor.
36 *
37 * @return void
38 */
39 public function __construct() {
40 add_action( 'wp_ajax_st_save_settings', [ $this, 'save_settings' ] );
41 add_action( 'wp_ajax_st_settings_ajax_button', [ $this, 'ajax_button_clicked' ] );
42 add_action( 'st_settings_clear_cache_clicked', [ $this, 'clear_cache' ] );
43 }
44
45 /**
46 * Save settings
47 *
48 * @return void
49 */
50 public function save_settings() {
51 $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
52
53 if ( ! $nonce || ! wp_verify_nonce( $nonce, 'st-nonce' ) ) {
54 wp_send_json_error();
55 }
56
57 $settings_json = sanitize_text_field( wp_unslash( isset( $_POST['settings'] ) ? $_POST['settings'] : '' ) );
58 $settings = json_decode( $settings_json, true );
59 $saved_settings = OptionController::get_option( 'st_settings' );
60
61 if ( ! empty( $saved_settings ) && is_array( $saved_settings ) ) {
62 $settings = array_merge( $saved_settings, $settings );
63 }
64
65 do_action( 'st_settings_save_before', $settings );
66 OptionController::set_option( 'st_settings', $settings );
67 do_action( 'st_settings_saved', $settings );
68
69 wp_send_json_success();
70 }
71
72 /**
73 * Ajax button clicked
74 *
75 * @return void
76 */
77 public function ajax_button_clicked() {
78 $nonce = isset( $_POST['nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['nonce'] ) ) : '';
79
80 if ( ! $nonce || ! wp_verify_nonce( $nonce, 'st-nonce' ) ) {
81 wp_send_json_error();
82 }
83
84 $button_name = sanitize_text_field( wp_unslash( isset( $_POST['button_name'] ) ? $_POST['button_name'] : '' ) );
85 $button_value = sanitize_text_field( wp_unslash( isset( $_POST['button_value'] ) ? $_POST['button_value'] : '' ) );
86
87 do_action( 'st_settings_ajax_button_clicked', $button_name, $button_value );
88 do_action( "st_settings_{$button_name}_clicked", $button_value );
89
90 wp_send_json_success();
91 }
92
93 /**
94 * Clearing cache
95 *
96 * @return void
97 */
98 public function clear_cache() {
99 delete_option( 'suretrigger_options' );
100 }
101
102 /**
103 * Get form fields
104 *
105 * @return array[]
106 */
107 public static function get_fields() {
108 return [
109 'dashboard' => [
110 'title' => __( 'General', 'suretriggers' ),
111 'current' => true,
112 'sections' => [
113 [
114 'title' => __( 'General Settings', 'suretriggers' ),
115 'subtitle' => '',
116 'fields' => [
117 [
118 [
119 'type' => 'ajax-button',
120 'name' => 'clear_cache',
121 'value' => 'yes',
122 'label' => __( 'Clear Cache', 'suretriggers' ),
123 'description' => __(
124 'By clicking here, your current connection with the SureTriggers for this site will be set to default',
125 'suretriggers'
126 ),
127 'confirmation' => [
128 'required' => true,
129 'title' => __( 'Clear Cache', 'suretriggers' ),
130 'message' => __( 'Are you sure to clear cache?', 'suretriggers' ),
131 ],
132 'message_pending' => __( 'Clearing the cache', 'suretriggers' ),
133 'message_done' => __( 'Cache cleared', 'suretriggers' ),
134 'redirect_after_click' => true,
135 'redirect_url' => admin_url( 'admin.php?page=suretriggers' ),
136 ],
137 ],
138 ],
139 ],
140 ],
141 ],
142 ];
143 }
144 }
145
146 SettingsController::get_instance();
147
148 endif;
149