get_fields(); wp_send_json_success( $data ); } /** * Get settings Data * * @return void */ public function get_settings_data() { $data = Settings::instance()->get_data(); wp_send_json_success( $data ); } /** * Save settings data * * @return void */ public function save_settings_data() { $section_id = isset( $_POST['section_id'] ) ? sanitize_text_field( wp_unslash( $_POST['section_id'] ) ) : ''; $block_id = isset( $_POST['block_id'] ) ? sanitize_text_field( wp_unslash( $_POST['block_id'] ) ) : ''; $rawOptions = isset( $_POST['options'] ) ? $_POST['options'] : []; // Fns::set_options Sanitized all array values Before saving. $status = Fns::set_options( $section_id, $block_id, $rawOptions ); if ( boolval( $status['status'] ) ) { do_action( 'rtsb/after/saved/settings/success', $section_id, $block_id, $rawOptions ); wp_send_json_success( $status ); } else { wp_send_json_error( $status ); } } /** * Toggle modules * * @return void */ public function toggle_modules() { $section_id = isset( $_POST['section_id'] ) ? sanitize_text_field( wp_unslash( $_POST['section_id'] ) ) : ''; $module_ids = isset( $_POST['module_ids'] ) ? array_map( 'sanitize_text_field', $_POST['module_ids'] ) : []; $type = isset( $_POST['type'] ) && $_POST['type'] === 'active' ? 'active' : false; if ( ! $section_id || empty( $module_ids ) ) { wp_send_json_error( [ 'message' => esc_html__( 'Section , block or options may be empty', 'shopbuilder' ), ] ); } $sections = Settings::instance()->get_sections(); if ( empty( $sections[ $section_id ] ) ) { wp_send_json_error( [ 'message' => esc_html__( 'No section found with given data', 'shopbuilder' ), ] ); } $options = DataModel::source()->get_option( $section_id, [] ); foreach ( $module_ids as $module_id ) { if ( isset( $sections[ $section_id ]['list'][ $module_id ] ) ) { if ( isset( $sections[ $section_id ]['list'][ $module_id ]['package'] ) && 'pro-disabled' === $sections[ $section_id ]['list'][ $module_id ]['package'] ) { continue; } if ( $type === 'active' ) { $options[ $module_id ]['active'] = 'on'; $sections[ $section_id ]['list'][ $module_id ]['active'] = 'on'; } else { $options[ $module_id ]['active'] = ''; $sections[ $section_id ]['list'][ $module_id ]['active'] = ''; } } } DataModel::source()->set_option( $section_id, $options ); wp_send_json_success( [ 'message' => esc_html__( 'Successfully Saved', 'shopbuilder' ), 'sections' => $sections, ] ); } }