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();
    }
}
function weaverx_put_rule_if_not_checked($sout, $id, $rule)
{
    // put just a rule if not checked
    if (!weaverx_getopt_checked($id)) {
        weaverx_f_write($sout, $rule . "\n");
    }
}