function bos_ajax_preview() { if (isset($_REQUEST['nonce'])) { // Verify that the incoming request is coming with the security nonce if (wp_verify_nonce($_REQUEST['nonce'], 'bos_ajax_nonce')) { $arrayFields = bos_searchbox_settings_fields_array(); foreach ($arrayFields as $field) { if ($field[1] == 'text' || $field[1] == 'radio' || $field[1] == 'select') { $options[$field[0]] = isset($_REQUEST[$field[0]]) ? stripslashes(sanitize_text_field($_REQUEST[$field[0]])) : ''; } elseif ($field[1] == 'checkbox') { if ($field[0] == 'calendar') { $options[$field[0]] = empty($_REQUEST['calendar']) ? 0 : 1; } //if ( $field[ 0 ] == 'calendar' ) if ($field[0] == 'flexible_dates') { $options[$field[0]] = empty($_REQUEST['flexible_dates']) ? 0 : 1; } //if ( $field[ 0 ] == 'flexible_dates' ) } } //foreach( $arrayFields as $field) $preview = true; echo '<div id="bos_preview_title"><img src="' . BOS_IMG_PLUGIN_DIR . '/preview_title.png" alt="Preview" /></div>'; bos_create_searchbox($options, $preview); die; } else { die('There was an issue in the preview statement'); } } }
function bos_searchbox_validate_options($input) { $valid = array(); $message = array(); $error = false; $arrayFields = bos_searchbox_settings_fields_array(); foreach ($arrayFields as $field) { if ($field[1] == 'text') { if ($field[0] == 'aid' || $field[0] == 'widget_width') { $valid[$field[0]] = $input[$field[0]]; if (!empty($input[$field[0]]) && $input[$field[0]] != '' && !is_numeric($input[$field[0]])) { $error = true; $message[] = '"' . $field[2] . '": ' . __('needs to be an integer', BOS_TEXT_DOMAIN) . '<br>'; } } else { $valid[$field[0]] = sanitize_text_field($input[$field[0]]); //sanitize and escape malicius input if ($valid[$field[0]] != $input[$field[0]]) { $error = true; $message[] = '"' . $field[2] . '": ' . __('Incorrect values entered!', BOS_TEXT_DOMAIN) . '<br>'; } } } elseif ($field[1] == 'radio') { if ($field[0] == 'month_format') { switch ($input[$field[0]]) { case 'short': $valid[$field[0]] = $input[$field[0]]; break; case 'long': default: $valid[$field[0]] = 'long'; //default : long break; } } //$field[ 0 ] == 'month_format' if ($field[0] == 'logodim') { switch ($input[$field[0]]) { case 'blue_200x33': case 'blue_300x50': case 'white_150x25': case 'white_200x33': case 'white_300x50': $valid[$field[0]] = $input[$field[0]]; break; case 'blue_150x25': default: $valid[$field[0]] = 'blue_150x25'; //default : blue_150x25 break; } } //$field[ 0 ] == 'logodim' } elseif ($field[1] == 'checkbox') { if ($field[0] == 'calendar') { $valid[$field[0]] = empty($input[$field[0]]) ? 0 : 1; } //if ( $field[ 0 ] == 'calendar' ) if ($field[0] == 'flexible_dates') { $valid[$field[0]] = empty($input[$field[0]]) ? 0 : 1; } //if ( $field[ 0 ] == 'flexible_dates' ) } else { switch ($input[$field[0]]) { case 'center': case 'right': $valid[$field[0]] = $input[$field[0]]; break; case 'left': default: $valid[$field[0]] = 'left'; //default : left break; } } //logopos entries } //foreach( $arrayFields as $field) if ($error) { add_settings_error('bos_searchbox_user_options', 'bos_searchbox_texterror', implode('', $message), 'error'); } return $valid; }