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@ .
}