PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.0.48
OttoKit: All-in-One Automation Platform v1.0.48
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 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.47 1.0.48 1.0.49 1.0.50 1.0.51 1.0.52 1.0.53 1.0.54 1.0.55 1.0.56 1.0.57 1.0.58 1.0.59 1.0.60 1.0.61 1.0.62 1.0.63 1.0.64 1.0.65 1.0.66 1.0.67 1.0.68 1.0.69 1.0.7 1.0.70 1.0.71 1.0.72 1.0.73 1.0.74 1.0.75 1.0.76 1.0.77 1.0.78 1.0.79 1.0.8 1.0.80 1.0.81 1.0.82 1.0.83 1.0.84 1.0.85 1.0.86 1.0.87 1.0.88 1.0.89 1.0.9 1.0.90 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
suretriggers / src / Controllers / SettingsController.php
suretriggers / src / Controllers Last commit date
AuthController.php 2 years ago AutomationController.php 3 years ago EventController.php 3 years ago GlobalSearchController.php 2 years ago IntegrationsController.php 2 years ago OptionController.php 3 years ago RestController.php 2 years ago RoutesController.php 3 years ago SettingsController.php 3 years ago
SettingsController.php
149 lines
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