function get_options_data($key, $option = false, $default = null) { global $wpdb, $shortname; if ($option && isset($_REQUEST['customized'])) { $submited_value = json_decode(stripslashes($_REQUEST['customized'])); if (isset($submited_value->{$option})) { $value = $submited_value->{$option}; return $value; } } if (empty($key)) { return $default; } // get coma separated path if ($option != false) { $option_path = explode(',', $option); if (count($option_path) == 1) { $option = current($option_path); } else { $option = $option_path; } } // create a database value key based on // current active theme key and requested key $original_key = $key; $key = $shortname . $key; // get value from database // $value = get_option( $key ); // get value from database query // $result = $wpdb->get_results( "SELECT * FROM wp_options WHERE option_name = '" . $key . "'" ); // $value = isset($result[0]->option_value)? unserialize($result[0]->option_value) : ''; // Same logic as get_option() $alloptions = wp_load_alloptions(); if (isset($alloptions[$key])) { // get the cached value $option_value = $alloptions[$key]; } else { $row = $wpdb->get_row($wpdb->prepare("SELECT option_value FROM {$wpdb->options} WHERE option_name = %s LIMIT 1", $key)); // Has to be get_row instead of get_var because of funkiness with 0, false, null values if (is_object($row)) { // value exists, so cache it $option_value = $row->option_value; wp_cache_add($key, $option_value, 'options'); } else { // option does not exist, so we must cache its non-existence $notoptions[$key] = true; wp_cache_set('notoptions', $notoptions, 'options'); // and return the default return apply_filters('default_option_' . $key, $default); } } if (isset($option_value)) { // prepare the value for use $value = unserialize($option_value); } else { // nada, so return the default return apply_filters('default_option_' . $key, $default); } $key_tmp = explode('_', $original_key); if ($key_tmp[0] == 'formsbuilder' && !is_null(get_post(end($key_tmp), ARRAY_A))) { $meta_value = get_post_meta(end($key_tmp), $option, true); if (!empty($meta_value)) { return $meta_value; } } // Validate $value[$option] = isset($value[$option]) ? $value[$option] : ''; // apply data-type filter if (isset($value['field_types'][$option])) { $field_type = $value['field_types'][$option]; $value[$option] = apply_filters('get_options_data_type_' . $field_type, $value[$option]); } // apply option option_key filter $value[$option] = apply_filters('options_data_' . $option, $value[$option]); // apply option page_key+option_key filter $opt = isset($value[$option]) ? $value[$option] : ''; $value[$option] = stripslashes_deep(apply_filters('options_data_' . $original_key . '_' . $option, $value[$option])); if (!empty($value)) { // return value by defined option path if ($option != false) { if (is_array($option)) { $value = r_option($option, $value); if (empty($value)) { return $default; } else { return is_array($value) && count($value) == 1 ? $value[0] : $value; } } else { if (isset($value[$option])) { return is_array($value[$option]) && count($value[$option]) == 1 ? $value[$option][0] : $value[$option]; } else { return $default; } } } else { return is_array($value) && count($value) == 1 ? $value[0] : $value; } } else { return $default; } }
function get_options_data($key, $option = false, $default = null) { if ($option && isset($_REQUEST['customized'])) { $submited_value = json_decode(stripslashes($_REQUEST['customized'])); if (isset($submited_value->{$option})) { $value = $submited_value->{$option}; return $value; } } global $shortname; if (empty($key)) { return $default; } // get coma separated path if ($option != false) { $option_path = explode(',', $option); if (count($option_path) == 1) { $option = current($option_path); } else { $option = $option_path; } } // create a database value key based on // current active theme key and requested key $original_key = $key; $key = $shortname . $key; // get value from database $value = get_option($key); $key_tmp = explode('_', $original_key); if ($key_tmp[0] == 'formsbuilder' && !is_null(get_post(end($key_tmp), ARRAY_A))) { $meta_value = get_post_meta(end($key_tmp), $option, true); if (!empty($meta_value)) { return $meta_value; } } // apply data-type filter if (isset($value['field_types'][$option])) { $field_type = $value['field_types'][$option]; $value[$option] = apply_filters('get_options_data_type_' . $field_type, $value[$option]); } // apply option option_key filter $value[$option] = isset($value[$option]) ? $value[$option] : ''; $value[$option] = apply_filters('options_data_' . $option, $value[$option]); // apply option page_key+option_key filter $opt = isset($value[$option]) ? $value[$option] : ''; $value[$option] = apply_filters('options_data_' . $original_key . '_' . $option, $value[$option]); if (!empty($value)) { // return value by defined option path if ($option != false) { if (is_array($option)) { $value = r_option($option, $value); if (empty($value)) { return $default; } else { return is_array($value) && count($value) == 1 ? $value[0] : $value; } } else { if (isset($value[$option])) { return is_array($value[$option]) && count($value[$option]) == 1 ? $value[$option][0] : $value[$option]; } else { return $default; } } } else { return is_array($value) && count($value) == 1 ? $value[0] : $value; } } else { return $default; } }