add_action( 'mainwp_module_log_filter_save_segment', array( $this, 'ajax_log_filter_save_segment' ) ); MainWP_Post_Handler::instance()->add_action( 'mainwp_module_log_filter_load_segments', array( $this, 'ajax_log_filter_load_segments' ) ); MainWP_Post_Handler::instance()->add_action( 'mainwp_module_log_filter_delete_segment', array( $this, 'ajax_log_filter_delete_segment' ) ); } // @NO_SONAR_START@ - duplicated issue. /** * Method render_filters_segment(). * * @param string $filter_name Filter name. */ public function render_filters_segment( $filter_name = 'module_log' ) { $saved_segments = MainWP_Manage_Sites_Filter_Segment::set_get_manage_sites_filter_segments( false, array(), $filter_name ); ?> check_security( 'mainwp_module_log_filter_save_segment' ); //phpcs:disable WordPress.Security.NonceVerification.Missing $opt_name = isset( $_POST['filter_opt_name'] ) ? sanitize_text_field( wp_unslash( $_POST['filter_opt_name'] ) ) : 'module_log'; $not_filters = array( 'seg_groups' => 'alltags', 'seg_clients' => 'allclients', 'seg_users' => 'allusers', ); $fields = array( 'name', 'seg_ranges', 'seg_dtsstart', 'seg_dtsstop', 'seg_groups', 'seg_clients', 'seg_users', ); if ( 'module_log_manage' === $opt_name ) { $fields[] = 'seg_source'; $fields[] = 'seg_sites'; $fields[] = 'seg_events'; } $save_fields = array(); foreach ( $fields as $field ) { if ( isset( $_POST[ $field ] ) ) { $val_seg = sanitize_text_field( wp_unslash( $_POST[ $field ] ) ); if ( isset( $not_filters[ $field ] ) && false !== strpos( $val_seg, $not_filters[ $field ] ) ) { $val_seg = ''; } $save_fields[ $field ] = $val_seg; } } $seg_id = ! empty( $_POST['seg_id'] ) ? sanitize_text_field( wp_unslash( $_POST['seg_id'] ) ) : time(); //phpcs:enable WordPress.Security.NonceVerification.Missing $saved_segments = MainWP_Manage_Sites_Filter_Segment::set_get_manage_sites_filter_segments( false, array(), $opt_name ); if ( ! is_array( $saved_segments ) ) { $saved_segments = array(); } $saved_segments[ $seg_id ] = $save_fields; MainWP_Manage_Sites_Filter_Segment::set_get_manage_sites_filter_segments( true, $saved_segments, $opt_name ); die( wp_json_encode( array( 'result' => 'SUCCESS' ) ) ); } /** * Method ajax_log_filter_load_segments() * * Post handler for save segment. */ public function ajax_log_filter_load_segments() { MainWP_Post_Handler::instance()->check_security( 'mainwp_module_log_filter_load_segments' ); //phpcs:disable WordPress.Security.NonceVerification.Missing $opt_name = isset( $_POST['filter_opt_name'] ) ? sanitize_text_field( wp_unslash( $_POST['filter_opt_name'] ) ) : 'module_log'; $saved_segments = MainWP_Manage_Sites_Filter_Segment::set_get_manage_sites_filter_segments( false, array(), $opt_name ); $list_segs = ''; if ( is_array( $saved_segments ) && ! empty( $saved_segments ) ) { $list_segs .= ''; } die( wp_json_encode( array( 'result' => $list_segs ) ) ); //phpcs:ignore -- ok. } /** * Method ajax_log_filter_delete_segment() * * Post handler for save segment. */ public function ajax_log_filter_delete_segment() { MainWP_Post_Handler::instance()->check_security( 'mainwp_module_log_filter_delete_segment' ); //phpcs:disable WordPress.Security.NonceVerification.Missing $opt_name = isset( $_POST['filter_opt_name'] ) ? sanitize_text_field( wp_unslash( $_POST['filter_opt_name'] ) ) : 'module_log'; $seg_id = ! empty( $_POST['seg_id'] ) ? sanitize_text_field( wp_unslash( $_POST['seg_id'] ) ) : 0; //phpcs:ignore -- ok. //phpcs:enable WordPress.Security.NonceVerification.Missing $saved_segments = MainWP_Manage_Sites_Filter_Segment::set_get_manage_sites_filter_segments( false, array(), $opt_name ); if ( ! empty( $seg_id ) && is_array( $saved_segments ) && isset( $saved_segments[ $seg_id ] ) ) { unset( $saved_segments[ $seg_id ] ); MainWP_Manage_Sites_Filter_Segment::set_get_manage_sites_filter_segments( true, $saved_segments, $opt_name ); die( wp_json_encode( array( 'result' =>'SUCCESS' ) ) ); //phpcs:ignore -- ok. } die( wp_json_encode( array( 'error' => esc_html__( 'Segment not found. Please try again.', 'mainwp' ) ) ) ); //phpcs:ignore -- ok. } // @NO_SONAR_END@ . }