PluginProbe ʕ •ᴥ•ʔ
Advanced Database Cleaner – Optimize & Clean Database to Speed Up Site Performance / 4.2.0
Advanced Database Cleaner – Optimize & Clean Database to Speed Up Site Performance v4.2.0
4.2.0 trunk 1.0.0 1.1.0 1.1.1 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0 1.3.1 1.3.5 1.3.6 1.3.7 2.0.0 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.1.0 4.1.1
advanced-database-cleaner / includes / endpoints / class-adbc-users-meta-endpoints.php
advanced-database-cleaner / includes / endpoints Last commit date
class-adbc-automation-endpoints.php 3 months ago class-adbc-common-endpoints.php 4 months ago class-adbc-cron-jobs-endpoints.php 3 months ago class-adbc-general-cleanup-endpoints.php 3 months ago class-adbc-info-endpoints.php 3 months ago class-adbc-logs-endpoints.php 3 months ago class-adbc-options-endpoints.php 3 months ago class-adbc-post-types-endpoints.php 3 months ago class-adbc-posts-meta-endpoints.php 3 months ago class-adbc-settings-endpoints.php 3 months ago class-adbc-tables-endpoints.php 3 months ago class-adbc-transients-endpoints.php 3 months ago class-adbc-users-meta-endpoints.php 3 months ago
class-adbc-users-meta-endpoints.php
186 lines
1 <?php
2
3 // Exit if accessed directly
4 if ( ! defined( 'ABSPATH' ) )
5 exit;
6
7 /**
8 * ADBC Users Meta Endpoints.
9 *
10 * This class provides the endpoints (controllers) for the users meta routes.
11 */
12 class ADBC_Users_Meta_Endpoints {
13
14 /**
15 * Get the users meta list.
16 *
17 * @param WP_REST_Request $filters_request The request with the filters.
18 * @return WP_REST_Response The list of users meta.
19 */
20 public static function get_users_meta_list( WP_REST_Request $filters_request ) {
21
22 try {
23
24 $filters = ADBC_Common_Validator::sanitize_filters( $filters_request );
25 $rest_response = ADBC_Users_Meta::get_users_meta_list( $filters );
26 return $rest_response;
27
28 } catch (Throwable $e) {
29
30 return ADBC_Rest::error_for_uncaught_exception( __METHOD__, $e );
31
32 }
33 }
34
35 /**
36 * Edit scan results of users meta.
37 *
38 * @param WP_REST_Request $request_data The request with the users meta to edit.
39 * @return WP_REST_Response The response.
40 */
41 public static function edit_scan_results_users_meta( WP_REST_Request $request_data ) {
42
43 try {
44
45 return ADBC_Scan_Utils::edit_scan_results( $request_data, 'edit_scan_results_users_meta', 'users_meta' );
46
47 } catch (Throwable $e) {
48
49 return ADBC_Rest::error_for_uncaught_exception( __METHOD__, $e );
50
51 }
52 }
53
54 /**
55 * Delete users meta.
56 *
57 * @param WP_REST_Request $request_data The request with the users meta to delete.
58 * @return WP_REST_Response The response.
59 */
60 public static function delete_users_meta( WP_REST_Request $request_data ) {
61
62 try {
63
64 // Verify if there is a scan in progress. If there is, return an error to prevent conflicts.
65 if ( ADBC_VERSION_TYPE === 'PREMIUM' && ADBC_Scan_Utils::is_scan_exists( 'users_meta' ) )
66 return ADBC_Rest::error( __( 'A scan is in progress. Please wait until it finishes before performing this action.', 'advanced-database-cleaner' ), ADBC_Rest::BAD_REQUEST );
67
68 $validation_answer = ADBC_Common_Validator::validate_endpoint_action_data( "delete_users_meta", "users_meta", $request_data );
69
70 // If $validation_answer is not an array, it means that the validation failed and we have an error message.
71 if ( ! is_array( $validation_answer ) )
72 return ADBC_Rest::error( $validation_answer, ADBC_Rest::BAD_REQUEST );
73
74 $cleaned_users_meta = $validation_answer;
75
76 if ( ADBC_Settings::instance()->get_setting( 'prevent_taking_action_on_wp_items' ) === '1' ) {
77
78 $cleaned_users_meta = ADBC_Hardcoded_Items::instance()->exclude_hardcoded_items_from_selected_items( $validation_answer, 'users_meta', "wp" );
79
80 if ( ADBC_VERSION_TYPE === 'PREMIUM' )
81 $cleaned_users_meta = ADBC_Scan_Utils::exclude_r_wp_items_from_selected_items( $cleaned_users_meta, 'users_meta' );
82
83 if ( empty( $cleaned_users_meta ) )
84 return ADBC_Rest::error(
85 __( 'The selected user meta could not be deleted because they belong to WordPress core and are protected.', 'advanced-database-cleaner' ),
86 ADBC_Rest::BAD_REQUEST,
87 0,
88 [
89 "message_links" => [
90 [
91 "text" => __( 'Check setting', 'advanced-database-cleaner' ),
92 "tab_id" => "settings",
93 "anchor_id" => "other_settings",
94 "setting_id" => "prevent_taking_action_on_wp_items"
95 ]
96 ]
97 ]
98 );
99 }
100
101 $not_processed = ADBC_Users_Meta::delete_users_meta( $cleaned_users_meta );
102
103 // Delete the users meta from the scan results
104 if ( ADBC_VERSION_TYPE === 'PREMIUM' ) {
105 $users_meta_names = array_column( $cleaned_users_meta, 'name' ); // Create an array containing only the users meta names.
106 ADBC_Scan_Utils::update_scan_results_file_after_deletion( 'users_meta', $users_meta_names, $not_processed );
107 }
108
109 if ( count( $cleaned_users_meta ) < count( $validation_answer ) )
110 return ADBC_Rest::success(
111 __( 'Some user meta was deleted successfully; others were skipped because they belong to WordPress core and are protected.', 'advanced-database-cleaner' ),
112 count( $not_processed ),
113 [
114 "message_links" => [
115 [
116 "text" => __( 'Check setting', 'advanced-database-cleaner' ),
117 "tab_id" => "settings",
118 "anchor_id" => "other_settings",
119 "setting_id" => "prevent_taking_action_on_wp_items"
120 ]
121 ]
122 ]
123 );
124
125 return ADBC_Rest::success( "", count( $not_processed ) );
126
127 } catch (Throwable $e) {
128
129 return ADBC_Rest::error_for_uncaught_exception( __METHOD__, $e );
130
131 }
132 }
133
134 /**
135 * Count the total number of big users meta in all sites.
136 *
137 * @return WP_REST_Response The response.
138 */
139 public static function count_big_users_meta() {
140 try {
141 return ADBC_Rest::success( "", ADBC_Users_Meta::count_big_users_meta() );
142 } catch (Throwable $e) {
143 return ADBC_Rest::error_for_uncaught_exception( __METHOD__, $e );
144 }
145 }
146
147 /**
148 * Count the total number of users meta that are not scanned.
149 *
150 * @return WP_REST_Response The response.
151 */
152 public static function count_total_not_scanned_users_meta() {
153 try {
154 return ADBC_Rest::success( "", ADBC_Users_Meta::count_total_not_scanned_users_meta() );
155 } catch (Throwable $e) {
156 return ADBC_Rest::error_for_uncaught_exception( __METHOD__, $e );
157 }
158 }
159
160 /**
161 * Count the total number of duplicated users meta.
162 *
163 * @return WP_REST_Response The response.
164 */
165 public static function count_duplicated_users_meta() {
166 try {
167 return ADBC_Rest::success( "", ADBC_Users_Meta::count_duplicated_users_meta() );
168 } catch (Throwable $e) {
169 return ADBC_Rest::error_for_uncaught_exception( __METHOD__, $e );
170 }
171 }
172
173 /**
174 * Count the total number of unused users meta.
175 *
176 * @return WP_REST_Response The response.
177 */
178 public static function count_unused_users_meta() {
179 try {
180 return ADBC_Rest::success( "", ADBC_Users_Meta::count_unused_users_meta() );
181 } catch (Throwable $e) {
182 return ADBC_Rest::error_for_uncaught_exception( __METHOD__, $e );
183 }
184 }
185
186 }