Exemplo n.º 1
0
function pl_update_single_meta_setting($metaID, $key, $value, $mode = 'both')
{
    $settings = pl_get_meta_settings($metaID);
    if ($mode == 'both') {
        $settings['draft'][$key] = $value;
        $settings['live'][$key] = $value;
    } else {
        $settings[$mode][$key] = $value;
    }
    pl_update_meta_settings($metaID, $settings);
}
Exemplo n.º 2
0
function pl_settings_update($new_settings, $mode = 'draft', $metaID = false)
{
    do_action('pl_settings_update_action');
    $default = array('draft' => array(), 'live' => array());
    if ($metaID) {
        $settings = pl_get_meta_settings($metaID);
    } else {
        $settings = pl_get_global_settings();
    }
    // in case of empty, use live/draft default
    $settings = wp_parse_args($settings, pl_settings_default());
    // forgot why we stripslashes, if you remember, comment!
    $settings[$mode] = stripslashes_deep($new_settings);
    // lets do some clean up
    // Gonna clear out all the empty values and arrays
    // Also, needs to be array or... deletehammer
    foreach ($settings[$mode] as $uniqueID => &$the_settings) {
        if (is_array($the_settings)) {
            foreach ($the_settings as $setting_key => &$val) {
                if ($val === '' && $val !== 0) {
                    unset($the_settings[$setting_key]);
                }
                // if a numeric index was set (bug)
                if (strlen((string) $setting_key) < 4) {
                    unset($the_settings[$setting_key]);
                }
                // accordion prevent null values from being saved and bloating things
                if (is_array($val)) {
                    foreach ($val as $val_key => &$val_val) {
                        if ($val_val == 'false' || empty($val_val)) {
                            if (isset($val[$val_key])) {
                                unset($val[$val_key]);
                            }
                        }
                    }
                    unset($val_val);
                }
            }
            unset($val);
        }
    }
    unset($the_settings);
    if ($metaID) {
        pl_meta_update($metaID, PL_SETTINGS, $settings);
    } else {
        pl_update_global_settings($settings);
    }
    return $settings;
}