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;
     }
 }