PluginProbe
Bubble Menu – Floating Button Menu with Sticky Navigation / 4.1.1
Bubble Menu – Floating Button Menu with Sticky Navigation v4.1.1
trunk 1.3 2.0 2.2 2.2.1 3.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1 3.1.1 4.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.1 4.1.1
bubble-menu / classes / Admin / Settings.php

Settings.php in Bubble Menu – Floating Button Menu with Sticky Navigation 4.1.1, at classes/Admin/Settings.php

184 lines 4.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace BubbleMenu\Admin;
4
5 defined( 'ABSPATH' ) || exit;
6
7 use BubbleMenu\WOWP_Plugin;
8
9 class Settings {
10
11 public static function init(): void {
12
13 $pages = DashboardHelper::get_files( 'settings' );
14 $options = self::get_options();
15 $checked = $options['setting_tab'] ?? 1;
16
17 echo '<h3 class="wpie-tabs">';
18 foreach ( $pages as $key => $page ) {
19 $class = ( absint( $checked ) === $key ) ? ' selected' : '';
20 echo '<label class="wpie-tab-label' . esc_attr( $class ) . '" for="setting_tab_' . absint( $key ) . '">' . esc_html( $page['name'] ) . '</label>';
21 }
22 echo '</h3>';
23
24 echo '<div class="wpie-tabs-contents">';
25 foreach ( $pages as $key => $page ) {
26 $file = DashboardHelper::get_folder_path( 'settings' ) . '/' . $key . '.' . $page['file'] . '.php';
27 echo '<input type="radio" class="wpie-tab-toggle" name="param[setting_tab]" value="' . absint( $key ) . '" id="setting_tab_' . absint( $key ) . '" ' . checked( $key, $checked, false ) . '>';
28 if ( file_exists( $file ) ) {
29 echo '<div class="wpie-tab-content">';
30 require_once $file;
31 echo '</div>';
32 }
33 }
34 echo '</div>';
35
36 }
37
38 public static function save_item() {
39
40 $verify = AdminActions::verify( WOWP_Plugin::PREFIX . '_settings' );
41
42 if ( ! $verify ) {
43 return false;
44 }
45
46 if ( empty( $_POST['submit_settings'] ) ) {
47 return false;
48 }
49
50 $id = isset( $_POST['tool_id'] ) ? absint( wp_unslash( $_POST['tool_id'] ) ) : 0;
51
52 $settings = apply_filters( WOWP_Plugin::PREFIX . '_save_settings', '' );
53
54 $removes = [ 'wpie_buttons_settings', '_wp_http_referer', 'submit_settings' ];
55 $keys_flipped = array_flip( $removes );
56 $settings = array_diff_key( $settings, $keys_flipped );
57
58 $data = [
59 'title' => isset( $_POST['title'] ) ? sanitize_text_field( wp_unslash( $_POST['title'] ) ) : '',
60 'status' => isset( $_POST['status'] ) ? 1 : 0,
61 'mode' => isset( $_POST['mode'] ) ? 1 : 0,
62 'tag' => isset( $_POST['tag'] ) ? sanitize_text_field( wp_unslash( $_POST['tag'] ) ) : '',
63 'param' => maybe_serialize( $settings ),
64 ];
65 $formats = [
66 '%s',
67 '%d',
68 '%d',
69 '%s',
70 '%s'
71 ];
72
73 if ( empty( $id ) ) {
74 $id_item = DBManager::insert( $data, $formats );
75 } else {
76 $where = [
77 'id' => absint( $id ),
78 ];
79 DBManager::update( $data, $where, $formats );
80 $id_item = $id;
81 }
82
83 wp_safe_redirect( Link::save_item( $id_item ) );
84 exit;
85
86 }
87
88 public static function deactivate_item( $id = 0 ): void {
89
90 $verify = AdminActions::verify( WOWP_Plugin::PREFIX . '_deactivate_item' );
91
92 if ( ! $verify ) {
93 return;
94 }
95
96 $id = isset( $_GET['id'] ) ? absint( $_GET['id'] ) : $id;
97
98 if ( ! empty( $id ) ) {
99 DBManager::update( [ 'status' => '1' ], [ 'ID' => $id ], [ '%d' ] );
100 }
101
102 }
103
104
105 public static function activate_item( $id = 0 ): void {
106 $verify = AdminActions::verify( WOWP_Plugin::PREFIX . '_activate_item' );
107
108 if ( ! $verify ) {
109 return;
110 }
111
112 $id = isset( $_GET['id'] ) ? absint( $_GET['id'] ) : $id;
113
114 if ( ! empty( $id ) ) {
115 DBManager::update( [ 'status' => '' ], [ 'ID' => $id ], [ '%d' ] );
116 }
117
118 }
119
120 public static function deactivate_mode( $id = 0 ): void {
121 $verify = AdminActions::verify( WOWP_Plugin::PREFIX . '_deactivate_mode' );
122
123 if ( ! $verify ) {
124 return;
125 }
126
127 $id = isset( $_GET['id'] ) ? absint( $_GET['id'] ) : $id;
128
129 if ( ! empty( $id ) ) {
130 DBManager::update( [ 'mode' => '' ], [ 'ID' => $id ], [ '%d' ] );
131 }
132
133 }
134
135 public static function activate_mode( $id = 0 ): void {
136 $verify = AdminActions::verify( WOWP_Plugin::PREFIX . '_activate_mode' );
137
138 if ( ! $verify ) {
139 return;
140 }
141 $id = isset( $_GET['id'] ) ? absint( $_GET['id'] ) : $id;
142
143 if ( ! empty( $id ) ) {
144 DBManager::update( [ 'mode' => '1' ], [ 'ID' => $id ], [ '%d' ] );
145 }
146 }
147
148 public static function get_options() {
149
150 $id = isset( $_REQUEST['id'] ) ? absint( $_REQUEST['id'] ) : 0;
151
152 if ( empty( $id ) ) {
153 return false;
154 }
155
156 $action = isset( $_REQUEST['action'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['action'] ) ) : 'update';
157 $result = DBManager::get_data_by_id( $id );
158
159 if ( empty( $result ) || empty( $result->param ) ) {
160 return false;
161 }
162
163 $param = maybe_unserialize( $result->param );
164 $param['title'] = $result->title;
165 $param['status'] = $result->status;
166 $param['mode'] = $result->mode;
167 $param['tag'] = $result->tag;
168 if ( ! empty( $param ) ) {
169 $param['id'] = $id;
170 }
171
172 if ( $action === 'duplicate' ) {
173 $param['id'] = '';
174 $param['title'] = '';
175 }
176
177 return $param;
178 }
179
180 public static function option( $name, $option ) {
181 return $options[ $name ] ?? '';
182 }
183
184 }