public static function reset_options($contents)
 {
     if (substr($contents, 0, 10) == 'WXT-V01.00') {
         $type = 'theme';
     } else {
         if (substr($contents, 0, 10) == 'WXB-V01.00') {
             $type = 'backup';
         } else {
             $val = substr($contents, 0, 10);
             self::$wvrx_error = __("Wrong theme file format version", 'weaver-xtreme') . ':' . $val;
             return false;
             /* simple check for one of ours */
         }
     }
     $restore = array();
     $restore = unserialize(substr($contents, 10));
     if (!$restore) {
         self::$wvrx_error = __("Unserialize failed", 'weaver-xtreme');
         return false;
     }
     $version = weaverx_getopt('weaverx_version_id');
     // get something to force load
     $new_cache = array();
     global $weaverx_opts_cache;
     if ($type == 'theme') {
         // need to clear some settings
         // first, pickup the per-site settings that aren't theme related...
         foreach ($weaverx_opts_cache as $key => $val) {
             if (isset($key[0]) && $key[0] == '_') {
                 // these are non-theme specific settings
                 $new_cache[$key] = $val;
             }
             // keep
         }
         $opts = $restore['weaverx_base'];
         // fetch base opts
         foreach ($opts as $key => $val) {
             if (isset($key[0]) && $key[0] != '_') {
                 $new_cache[$key] = $val;
             }
             // and add rest from restore
         }
     } else {
         if ($type == 'backup') {
             $opts = $restore['weaverx_base'];
             // fetch base opts
             foreach ($opts as $key => $val) {
                 $new_cache[$key] = $val;
                 // overwrite with saved values
             }
         }
     }
     $new_cache['weaverx_version_id'] = $version;
     $new_cache['wvrx_css_saved'] = '';
     $new_cache['last_option'] = 'Weaver Xtreme';
     $new_cache['style_date'] = date('Y-m-d-H:i:s');
     delete_option('weaverx_settings');
     update_option('weaverx_settings', $new_cache);
     $save_dir = weaverx_f_uploads_base_dir() . 'weaverx-subthemes';
     $usename = 'style-weaverxt.css';
     $filename = $save_dir . '/' . $usename;
     @unlink($filename);
     $weaverx_opts_cache = $new_cache;
     if (weaverx_f_file_access_available()) {
         // and now is the time to update the style file
         require_once get_template_directory() . '/includes/generatecss.php';
         weaverx_fwrite_current_css();
     }
     return true;
 }
function weaverx_save_opts($who = '', $bump = true)
{
    // Save options
    // Here's the strategy. Using weaverx_getopt always loads the cache if it hasn't been.
    // Using weaverx_setopt will save the cache to the database by default
    // So we take advantage of this by bumping the style version, and using weaverx_setopt,
    // which saves to the database
    //$vers = weaverx_getopt('style_version');
    if ($who == 'customizer') {
        // really need to refresh the cache
        weaverx_clear_opt_cache($who);
        $old = weaverx_getopt('style_date');
        // and reload the cache
    }
    if ($bump) {
        //$vers = $vers ? $vers + 1 : 1;	// bump or init
        // put the CSS into the DB
        require_once get_template_directory() . '/includes/generatecss.php';
        unset($GLOBALS['wvrx_css_saved']);
        $GLOBALS['wvrx_css_saved'] = '';
        weaverx_f_write('wvrx_css_saved', '/* -wvrx_css- */');
        weaverx_output_style('wvrx_css_saved');
        weaverx_setopt('wvrx_css_saved', $GLOBALS['wvrx_css_saved']);
        unset($GLOBALS['wvrx_css_saved']);
    }
    weaverx_setopt('style_date', date('Y-m-d-H:i:s'), $bump);
    //weaverx_setopt('style_version',$vers, $bump);	// update options, style version
    if (weaverx_f_file_access_available()) {
        // and now is the time to update the style file
        require_once get_template_directory() . '/includes/generatecss.php';
        weaverx_fwrite_current_css();
    }
}