PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.2.2
Adminify – White Label, Admin Menu Editor, Login Customizer v4.2.2
4.3.1 4.3.0 4.2.26 4.2.25 4.2.24 4.2.23 4.2.22 4.2.21 4.2.20 4.2.19 4.2.18 4.2.17 4.2.16 4.2.15 4.2.14 4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 4.1.17 All 164 releases
adminify / Libs / adminify-framework / functions / actions.php

actions.php in Adminify – White Label, Admin Menu Editor, Login Customizer 4.2.2, at Libs/adminify-framework/functions/actions.php

193 lines 6.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php if ( ! defined( 'ABSPATH' ) ) { die; } // Cannot access directly.
2 /**
3 *
4 * Get icons from admin ajax
5 *
6 * @since 1.0.0
7 * @version 1.0.0
8 *
9 */
10 if ( ! function_exists( 'adminify_get_icons' ) ) {
11 function adminify_get_icons() {
12
13 $nonce = ( ! empty( $_POST[ 'nonce' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'nonce' ] ) ) : '';
14
15 if ( ! wp_verify_nonce( $nonce, 'adminify_icon_nonce' ) ) {
16 wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'adminify' ) ) );
17 }
18
19 ob_start();
20
21 $icon_library = ( apply_filters( 'adminify_fa4', false ) ) ? 'fa4' : 'fa5';
22
23 ADMINIFY::include_plugin_file( 'fields/icon/'. $icon_library .'-icons.php' );
24
25 $icon_lists = apply_filters( 'pxlbsadminify_field_icon_add_icons', adminify_get_default_icons() );
26
27 if ( ! empty( $icon_lists ) ) {
28
29 foreach ( $icon_lists as $list ) {
30
31 echo ( count( $icon_lists ) >= 2 ) ? '<div class="adminify-icon-title">'. esc_attr( $list['title'] ) .'</div>' : '';
32
33 foreach ( $list['icons'] as $icon ) {
34 echo '<i title="'. esc_attr( $icon ) .'" class="'. esc_attr( $icon ) .'"></i>';
35 }
36
37 }
38
39 } else {
40
41 echo '<div class="adminify-error-text">'. esc_html__( 'No data available.', 'adminify' ) .'</div>';
42
43 }
44
45 $content = ob_get_clean();
46
47 wp_send_json_success( array( 'content' => $content ) );
48
49 }
50 add_action( 'wp_ajax_adminify-get-icons', 'adminify_get_icons' );
51 }
52
53 /**
54 *
55 * Export
56 *
57 * @since 1.0.0
58 * @version 1.0.0
59 *
60 */
61 if ( ! function_exists( 'adminify_export' ) ) {
62 function adminify_export() {
63
64 $nonce = ( ! empty( $_GET[ 'nonce' ] ) ) ? sanitize_text_field( wp_unslash( $_GET[ 'nonce' ] ) ) : '';
65 $unique = ( ! empty( $_GET[ 'unique' ] ) ) ? sanitize_text_field( wp_unslash( $_GET[ 'unique' ] ) ) : '';
66
67 if ( ! wp_verify_nonce( $nonce, 'adminify_backup_nonce' ) ) {
68 die( esc_html__( 'Error: Invalid nonce verification.', 'adminify' ) );
69 }
70
71 if ( empty( $unique ) ) {
72 die( esc_html__( 'Error: Invalid key.', 'adminify' ) );
73 }
74
75 // Export
76 header('Content-Type: application/json');
77 header('Content-disposition: attachment; filename=backup-'. gmdate( 'd-m-Y' ) .'.json');
78 header('Content-Transfer-Encoding: binary');
79 header('Pragma: no-cache');
80 header('Expires: 0');
81
82 echo wp_json_encode( get_option( $unique ) );
83
84 die();
85
86 }
87 add_action( 'wp_ajax_adminify-export', 'adminify_export' );
88 }
89
90 /**
91 *
92 * Import Ajax
93 *
94 * @since 1.0.0
95 * @version 1.0.0
96 *
97 */
98 if ( ! function_exists( 'adminify_import_ajax' ) ) {
99 function adminify_import_ajax() {
100
101 $nonce = ( ! empty( $_POST[ 'nonce' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'nonce' ] ) ) : '';
102 $unique = ( ! empty( $_POST[ 'unique' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'unique' ] ) ) : '';
103 // phpcs:ignore WordPress.Security.NonceVerification.Missing -- nonce verified below before any data is processed.
104 $data = ( ! empty( $_POST[ 'data' ] ) ) ? wp_kses_post_deep( json_decode( trim( wp_unslash( $_POST[ 'data' ] ) ), true ) ) : array(); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- each field is sanitized individually by the framework's per-field sanitize handlers.
105
106 if ( ! wp_verify_nonce( $nonce, 'adminify_backup_nonce' ) ) {
107 wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'adminify' ) ) );
108 }
109
110 if ( empty( $unique ) ) {
111 wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid key.', 'adminify' ) ) );
112 }
113
114 if ( empty( $data ) || ! is_array( $data ) ) {
115 wp_send_json_error( array( 'error' => esc_html__( 'Error: The response is not a valid JSON response.', 'adminify' ) ) );
116 }
117
118 // Success
119 update_option( $unique, $data );
120
121 wp_send_json_success();
122
123 }
124 add_action( 'wp_ajax_adminify-import', 'adminify_import_ajax' );
125 }
126
127 /**
128 *
129 * Reset Ajax
130 *
131 * @since 1.0.0
132 * @version 1.0.0
133 *
134 */
135 if ( ! function_exists( 'adminify_reset_ajax' ) ) {
136 function adminify_reset_ajax() {
137
138 $nonce = ( ! empty( $_POST[ 'nonce' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'nonce' ] ) ) : '';
139 $unique = ( ! empty( $_POST[ 'unique' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'unique' ] ) ) : '';
140
141 if ( ! wp_verify_nonce( $nonce, 'adminify_backup_nonce' ) ) {
142 wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'adminify' ) ) );
143 }
144
145 // Success
146 delete_option( $unique );
147
148 wp_send_json_success();
149
150 }
151 add_action( 'wp_ajax_adminify-reset', 'adminify_reset_ajax' );
152 }
153
154 /**
155 *
156 * Chosen Ajax
157 *
158 * @since 1.0.0
159 * @version 1.0.0
160 *
161 */
162 if ( ! function_exists( 'adminify_chosen_ajax' ) ) {
163 function adminify_chosen_ajax() {
164
165 $nonce = ( ! empty( $_POST[ 'nonce' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'nonce' ] ) ) : '';
166 $type = ( ! empty( $_POST[ 'type' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'type' ] ) ) : '';
167 $term = ( ! empty( $_POST[ 'term' ] ) ) ? sanitize_text_field( wp_unslash( $_POST[ 'term' ] ) ) : '';
168 // phpcs:ignore WordPress.Security.NonceVerification.Missing -- nonce verified below before any data is processed.
169 $query = ( ! empty( $_POST[ 'query_args' ] ) ) ? wp_kses_post_deep( wp_unslash( $_POST[ 'query_args' ] ) ) : array(); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- each field is sanitized individually by the framework's per-field sanitize handlers.
170
171 if ( ! wp_verify_nonce( $nonce, 'adminify_chosen_ajax_nonce' ) ) {
172 wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid nonce verification.', 'adminify' ) ) );
173 }
174
175 if ( empty( $type ) || empty( $term ) ) {
176 wp_send_json_error( array( 'error' => esc_html__( 'Error: Invalid term ID.', 'adminify' ) ) );
177 }
178
179 $capability = apply_filters( 'adminify_chosen_ajax_capability', 'manage_options' );
180
181 if ( ! current_user_can( $capability ) ) {
182 wp_send_json_error( array( 'error' => esc_html__( 'Error: You do not have permission to do that.', 'adminify' ) ) );
183 }
184
185 // Success
186 $options = ADMINIFY_Fields::field_data( $type, $term, $query );
187
188 wp_send_json_success( $options );
189
190 }
191 add_action( 'wp_ajax_adminify-chosen', 'adminify_chosen_ajax' );
192 }
193