PluginProbe
MainWP Dashboard: Self-hosted WordPress Management for Agencies / 6.2.1
MainWP Dashboard: Self-hosted WordPress Management for Agencies v6.2.1
6.2.2 6.2.1 6.2 6.1.8 6.1.7 6.1.6 6.1.5 6.1.4 6.1.3 6.1.2 6.1.1 6.1 6.0.12 6.0.11 4.6.0.1 5.0 5.0.1 5.0.2 5.0.3 5.0.3.1 5.0.3.2 5.1 5.1.1 5.2 5.2.1 All 155 releases
← All changes | class/class-mainwp-manage-sites-filter-segment.php +32 -31 5.2 → 6.2.1 View file →
@@ -6,8 +6,13 @@
6 6 */
7 7
8 8 namespace MainWP\Dashboard;
9 9
10 +// Exit if accessed directly.
11 +if ( ! defined( 'ABSPATH' ) ) {
12 + exit;
13 +}
14 +
10 15 /**
11 16 * Class MainWP_Manage_Sites_Filter_Segment
12 17 *
13 18 * @package MainWP\Dashboard
@@ -58,25 +63,15 @@
58 63 /**
59 64 * Method render_filters_segment().
60 65 */
61 66 public function render_filters_segment() {
62 - $saved_segments = $this->set_get_manage_sites_filter_segments();
67 + $saved_segments = static::set_get_manage_sites_filter_segments();
63 68 ?>
64 - <div class="three wide middle aligned right aligned column">
65 - <div class="ui middle aligned compact grid">
66 - <div class="eight wide column">
67 - <button class="ui mini fluid button" id="mainwp-manage-sites-filter-save-segment-button" selected-segment-id="" selected-segment-name=""><?php esc_html_e( 'Save Segment', 'mainwp' ); ?></button>
68 - </div>
69 - <div class="eight wide column">
70 - <?php if ( ! empty( $saved_segments ) ) : ?>
71 - <button class="ui mini fluid button mainwp_manage_sites_filter_choose_segment"><?php esc_html_e( 'Load a Segment', 'mainwp' ); ?></button>
72 - <?php else : ?>
73 - <button class="ui mini fluid disabled button"><?php esc_html_e( 'Load a Segment', 'mainwp' ); ?></button>
74 - <?php endif; ?>
75 - </div>
76 - </div>
77 -
78 - </div>
69 + <div class="four wide right aligned column">
70 + <a class="ui mini button" id="mainwp-manage-sites-filter-save-segment-button" selected-segment-id="" selected-segment-name=""><?php esc_html_e( 'Save Segment', 'mainwp' ); ?></a>
71 + <?php if ( ! empty( $saved_segments ) ) : ?>
72 + <a class="ui mini button mainwp_manage_sites_filter_choose_segment"><?php esc_html_e( 'Load Segment', 'mainwp' ); ?></a>
73 + <?php endif; ?>
79 74 </div>
80 75
81 76 <script type="text/javascript">
82 77 jQuery( document ).ready( function( $ ) {
@@ -119,8 +114,9 @@
119 114 action: 'mainwp_manage_sites_filter_save_segment',
120 115 name: seg_name,
121 116 seg_is_not: $( '#mainwp-sites-filters-row #mainwp_is_not_site').dropdown('get value'),
122 117 seg_site_tags: $( '#mainwp-sites-filters-row #mainwp-filter-sites-group').dropdown('get value'),
118 + seg_site_tags_logic: $( '#mainwp-sites-filters-row #mainwp-filter-sites-group-logic').dropdown('get value'),
123 119 seg_site_status: $( '#mainwp-sites-filters-row #mainwp-filter-sites-status').dropdown('get value'),
124 120 seg_site_clients: $( '#mainwp-sites-filters-row #mainwp-filter-clients').dropdown('get value'),
125 121 seg_id:$('#mainwp-manage-sites-filter-save-segment-button').attr('selected-segment-id'),
126 122 });
@@ -136,9 +132,9 @@
136 132 jQuery('#mainwp-common-filter-edit-segment-status').fadeOut(300);
137 133 jQuery( '#mainwp-common-filter-segment-modal' ).modal('hide');
138 134 }, 2000);
139 135 } else {
140 - jQuery('#mainwp-common-filter-edit-segment-status').html(__('Undefined error occured while saving your segment!')).addClass('red');
136 + jQuery('#mainwp-common-filter-edit-segment-status').html(__('Undefined error occurred while saving your segment!')).addClass('red');
141 137 }
142 138 }, 'json');
143 139 return false;
144 140 });
@@ -154,8 +150,9 @@
154 150 let arrVal = '';
155 151 let fieldsAllows = [
156 152 'seg_is_not',
157 153 'seg_site_tags',
154 + 'seg_site_tags_logic',
158 155 'seg_site_status',
159 156 'seg_site_clients',
160 157 ];
161 158 if('' != seg_values ) {
@@ -167,15 +164,13 @@
167 164
168 165 for (const [key, value] of Object.entries(seg_values)) {
169 166 try {
170 167 if(fieldsAllows.includes(key)){
171 - console.log(key + ' === '+ value);
172 168 jQuery( '#mainwp-sites-filters-row .ui.dropdown.' + key ).dropdown('clear');
173 169 arrVal = value.split(",");
174 170 jQuery( '#mainwp-sites-filters-row .ui.dropdown.' + key ).dropdown('set selected', arrVal);
175 171 }
176 172 } catch (err) {
177 - console.log(key + ' === '+ value);
178 173 console.log(err);
179 174 }
180 175 }
181 176 jQuery( '#mainwp-common-filter-segment-modal' ).modal('hide');
@@ -226,9 +221,9 @@
226 221 jQuery('#mainwp-common-filter-edit-segment-status').fadeOut(300);
227 222 jQuery( '#mainwp-common-filter-segment-modal' ).modal('hide');
228 223 }, 2000);
229 224 } else {
230 - jQuery('#mainwp-common-filter-edit-segment-status').html(__('Undefined error occured while deleting your segment!')).addClass('red');
225 + jQuery('#mainwp-common-filter-edit-segment-status').html(__('Undefined error occurred while deleting your segment!')).addClass('red');
231 226 }
232 227 }, 'json');
233 228
234 229 return false;
@@ -241,20 +236,24 @@
241 236
242 237 /**
243 238 * Method set_get_manage_sites_filter_segments()
244 239 *
245 - * @param bool $set_val Get or set value.
246 - * @param array $saved_segments segments data.
240 + * @param bool $set_val Get or set value.
241 + * @param array $saved_segments segments data.
242 + * @param string $save_field segments data.
247 243 *
248 244 * @return array values
249 245 */
250 - public function set_get_manage_sites_filter_segments( $set_val = false, $saved_segments = array() ) {
246 + public static function set_get_manage_sites_filter_segments( $set_val = false, $saved_segments = array(), $save_field = 'manage_sites' ) {
251 247 global $current_user;
248 +
249 + $field = 'mainwp_' . sanitize_text_field( $save_field ) . '_filter_saved_segments';
250 +
252 251 if ( $current_user && ! empty( $current_user->ID ) ) {
253 252 if ( $set_val ) {
254 - update_user_option( $current_user->ID, 'mainwp_manage_sites_filter_saved_segments', $saved_segments );
253 + update_user_option( $current_user->ID, $field, $saved_segments );
255 254 } else {
256 - $values = get_user_option( 'mainwp_manage_sites_filter_saved_segments', array() );
255 + $values = get_user_option( $field ); // fix incorrect param.
257 256 if ( ! is_array( $values ) ) {
258 257 $values = array();
259 258 }
260 259 return $values;
@@ -274,8 +273,9 @@
274 273 //phpcs:disable WordPress.Security.NonceVerification.Missing
275 274
276 275 $not_filters = array(
277 276 'seg_site_tags' => 'nogroups',
277 + 'seg_site_tags_logic' => 'or',
278 278 'seg_site_status' => 'all',
279 279 'seg_site_clients' => 'noclients',
280 280 );
281 281
@@ -282,8 +282,9 @@
282 282 $fields = array(
283 283 'name',
284 284 'seg_is_not',
285 285 'seg_site_tags',
286 + 'seg_site_tags_logic',
286 287 'seg_site_status',
287 288 'seg_site_clients',
288 289 );
289 290
@@ -301,14 +302,14 @@
301 302
302 303 $seg_id = ! empty( $_POST['seg_id'] ) ? sanitize_text_field( wp_unslash( $_POST['seg_id'] ) ) : time();
303 304 //phpcs:enable WordPress.Security.NonceVerification.Missing
304 305
305 - $saved_segments = $this->set_get_manage_sites_filter_segments();
306 + $saved_segments = static::set_get_manage_sites_filter_segments();
306 307 if ( ! is_array( $saved_segments ) ) {
307 308 $saved_segments = array();
308 309 }
309 310 $saved_segments[ $seg_id ] = $save_fields;
310 - $this->set_get_manage_sites_filter_segments( true, $saved_segments );
311 + static::set_get_manage_sites_filter_segments( true, $saved_segments );
311 312 die( wp_json_encode( array( 'result' => 'SUCCESS' ) ) );
312 313 }
313 314
314 315
@@ -318,12 +319,12 @@
318 319 * Post handler for save segment.
319 320 */
320 321 public function ajax_sites_filter_load_segments() {
321 322 MainWP_Post_Handler::instance()->check_security( 'mainwp_manage_sites_filter_load_segments' );
322 - $saved_segments = $this->set_get_manage_sites_filter_segments();
323 + $saved_segments = static::set_get_manage_sites_filter_segments();
323 324 $list_segs = '';
324 325 if ( is_array( $saved_segments ) && ! empty( $saved_segments ) ) {
325 - $list_segs .= '<select id="mainwp_manage_sites_edit_payment_type" class="ui fluid dropdown">';
326 + $list_segs .= '<select id="mainwp-edit-segment-filters" class="ui fluid dropdown">';
326 327 $list_segs .= '<option segment-filters="" value="">' . esc_html__( 'Select a segment', 'mainwp' ) . '</option>';
327 328 foreach ( $saved_segments as $sid => $values ) {
328 329 if ( empty( $values['name'] ) ) {
329 330 continue;
@@ -343,12 +344,12 @@
343 344 public function ajax_sites_filter_delete_segment() {
344 345 MainWP_Post_Handler::instance()->check_security( 'mainwp_manage_sites_filter_delete_segment' );
345 346 $seg_id = ! empty( $_POST['seg_id'] ) ? sanitize_text_field( wp_unslash( $_POST['seg_id'] ) ) : 0; //phpcs:ignore -- ok.
346 347
347 - $saved_segments = $this->set_get_manage_sites_filter_segments();
348 + $saved_segments = static::set_get_manage_sites_filter_segments();
348 349 if ( ! empty( $seg_id ) && is_array( $saved_segments ) && isset( $saved_segments[ $seg_id ] ) ) {
349 350 unset( $saved_segments[ $seg_id ] );
350 - $this->set_get_manage_sites_filter_segments( true, $saved_segments );
351 + static::set_get_manage_sites_filter_segments( true, $saved_segments );
351 352 die( wp_json_encode( array( 'result' =>'SUCCESS' ) ) ); //phpcs:ignore -- ok.
352 353 }
353 354 die( wp_json_encode( array( 'error' => esc_html__( 'Segment not found. Please try again.', 'mainwp' ) ) ) ); //phpcs:ignore -- ok.
354 355 }