AnsPress_Admin::process_option_form()
Description #
Process AnsPress option form.
Source #
File: admin/anspress-admin.php
public static function process_option_form() { $redirect = admin_url( 'admin.php?page=anspress_options' ); if ( ap_isset_post_value( '__nonce' ) && ap_verify_nonce( 'nonce_option_form' ) && current_user_can( 'manage_options' ) ) { $settings = get_option( 'anspress_opt', array() ); $groups = ap_get_option_groups(); $active = ap_sanitize_unslash( 'fields_group', 'request' ); $ap_active_section = ap_isset_post_value( 'ap_active_section', '' ); // If active is set. if ( '' !== $active && '' !== $ap_active_section ) { $default_opt = ap_default_options(); $i = 0; // Check $_POST value against fields. foreach ( (array) $groups[ $active ]['sections'] as $section_slug => $section ) { if ( $section_slug === $ap_active_section ) { foreach ( (array) $section['fields'] as $k => $f ) { if ( ! isset( $f['name'] ) ) { continue; } if ( isset( $f['type'] ) && 'textarea' === $f['type'] ) { $value = esc_textarea( wp_unslash( ap_isset_post_value( $f['name'], '' ) ) ); } else { $value = ap_sanitize_unslash( $f['name'], 'request' ); } // If reset then get value from default option. if ( ap_sanitize_unslash( 'reset', 'p' ) ) { $value = $default_opt[ $f['name'] ]; } // Set checkbox field value as 0 when empty. if ( isset( $f['type'] ) && 'checkbox' === $f['type'] && empty( $value ) ) { $value = '0'; } if ( isset( $value ) ) { $settings[ $f['name'] ] = $value; } else { unset( $settings[ $f['name'] ] ); } } } $i++; } update_option( 'anspress_opt', $settings ); wp_cache_delete( 'anspress_opt', 'ap' ); } flush_rewrite_rules(); $redirect = admin_url( 'admin.php?page=anspress_options&updated=true&option_page='. $active ); } wp_safe_redirect( $redirect ); }
Expand full source code Collapse full source code View on GitHub: admin/anspress-admin.php:643
Add your comment