/** * Get options set from full options array * * @since 4.0.0 */ function get_options_set() { if (!class_exists('Cherry_Options_Framework')) { return; } $default_options_data = Cherry_Options_Framework::load_settings(); array_walk($default_options_data, array($this, 'walk_sections')); }
/** * * * @since 1.0.0 */ public static function is_db_options_exist() { if (null !== self::$is_db_options_exist) { return self::$is_db_options_exist; } $cherry_options_settings = get_option('cherry-options'); false == get_option($cherry_options_settings['id']) ? $is_options = false : ($is_options = true); self::$is_db_options_exist = $is_options; return $is_options; }
/** * Import widgets and set necessary settings * * Import last step * * @since 1.0.0 */ function import_json() { do_action('cherry_plugin_import_json'); if ($this->tools->is_package_install()) { $this->install_complete(); } $this->remap_option_ids(); $this->remap_slider_ids(); $widgets_file = 'widgets.json'; if (isset($_POST['file']) && $_POST['file']) { $widgets_file = $_POST['file']; } if (class_exists('Cherry_Options_Framework')) { $options_framework = Cherry_Options_Framework::get_instance(); $options_framework->restore_default_settings_array(); } $upload_dir = cherry_dm_get_upload_path(); $json = $this->tools->get_contents($upload_dir . $widgets_file); if (false == $json) { $this->install_complete(); } $upload_dir = wp_upload_dir(); $upload_url = $upload_dir['url'] . '/'; $json = preg_replace(array('/http:.[^\'\\"]*wp-content.[^\'\\"]*\\/(.[^\\/\'\\"]*\\.(?:jp[e]?g|png|mp4|ogg|webm))/', '/\\[template_url\\].{2}wp-content.[^\'\\"]*\\/(.[^\\/\'\\"]*\\.(?:jp[e]?g|png|mp4|ogg|webm))/'), array(trim(json_encode($upload_url . '$1'), "\""), trim(json_encode(str_replace(get_bloginfo('url'), '[template_url]', $upload_url) . '$1'), "\"")), $json); if (is_wp_error($json)) { exit('error'); } $json_data = json_decode($json, true); $sidebar_data = $json_data[0]; $widget_data = $json_data[1]; if (!is_array($widget_data)) { $this->install_complete(); } foreach ($widget_data as $widget_title => $widget_value) { if (!is_array($widget_value)) { continue; } foreach ($widget_value as $widget_key => $widget_value) { // fix for nav_menu widget if ('nav_menu' == $widget_title) { if (is_array($widget_data[$widget_title][$widget_key])) { if (array_key_exists('nav_menu_slug', $widget_data[$widget_title][$widget_key])) { $nav_menu_slug = $widget_data[$widget_title][$widget_key]['nav_menu_slug']; $term_id = term_exists($nav_menu_slug, 'nav_menu'); if ($term_id) { if (is_array($term_id)) { $term_id = $term_id['term_id']; } $widget_data['nav_menu'][$widget_key]['nav_menu'] = $term_id; } } } } } } $sidebar_data = array(array_filter($sidebar_data), $widget_data); if ($this->parse_widgets_data($sidebar_data)) { $this->install_complete(); } else { exit('error'); } }
/** * Get default set of options * * @since 4.0.0 */ static function load_settings() { $result_settings = null; if (!empty(self::$loaded_settings)) { return self::$loaded_settings; } // Load options from options.php file (if it exists) $location = apply_filters('default_set_file_location', array('cherry-options.php')); if ($optionsfile = locate_template($location, true)) { if (function_exists('cherry_defaults_settings')) { $result_settings = cherry_defaults_settings(); } } self::$loaded_settings = $result_settings; return $result_settings; }
/** * Import widgets and set necessary settings * * Import last step * * @since 1.0.0 */ function import_json() { do_action('cherry_plugin_import_json'); $this->remap_option_ids(); $widgets_file = 'widgets.json'; if (isset($_POST['file']) && $_POST['file']) { $widgets_file = $_POST['file']; } if (class_exists('Cherry_Options_Framework')) { $options_framework = Cherry_Options_Framework::get_instance(); $options_framework->restore_default_settings_array(); } $upload_dir = cherry_dm_get_upload_path(); if (!file_exists($upload_dir . $widgets_file)) { exit('import_end'); } $json = file_get_contents($upload_dir . $widgets_file); $_SESSION['files_to_remove'][] = $upload_dir . $widgets_file; $upload_dir = wp_upload_dir(); $upload_url = $upload_dir['url'] . '/'; $json = preg_replace('/http:.[^\'\\"]*wp-content.[^\'\\"]*\\/(.[^\\/\'\\"]*\\.(?:jp[e]?g|png))/', trim(json_encode($upload_url . '$1'), "\""), $json); if (is_wp_error($json)) { exit('error'); } $json_data = json_decode($json, true); $sidebar_data = $json_data[0]; $widget_data = $json_data[1]; $rules_data = isset($json_data[2]) ? $json_data[2] : array(); // get option value $themename = 'cherry'; $options_type = get_option($themename . '_widget_rules_type'); $options = get_option($themename . '_widget_rules'); $custom_class = get_option($themename . '_widget_custom_class'); $responsive = get_option($themename . '_widget_responsive'); $users = get_option($themename . '_widget_users'); // if this option is set at first time if (!is_array($options_type)) { $options_type = array(); } // if this option is set at first time if (!is_array($options)) { $options = array(); } // if this responsive is set at first time if (!is_array($responsive)) { $responsive = array(); } // if this users is set at first time if (!is_array($users)) { $users = array(); } if (!empty($rules_data) && is_array($rules_data)) { $new = array('widget_responsive'); foreach ($rules_data as $key => $value) { foreach ($value as $val) { $new[$key] = $val; } } $new['widget_responsive'] = isset($new['widget_responsive']) ? $new['widget_responsive'] : array(); $options_type_new = array_merge($options_type, $new['widget_rules_type']); $options_new = array_merge($options, $new['widget_rules']); $custom_class_new = $new['widget_custom_class']; $responsive_new = array_merge($responsive, $new['widget_responsive']); $users_new = array_merge($users, $new['widget_users']); // update option update_option($themename . '_widget_rules_type', $options_type_new); update_option($themename . '_widget_rules', $options_new); update_option($themename . '_widget_custom_class', $custom_class_new); update_option($themename . '_widget_responsive' . $key, $responsive_new); update_option($themename . '_widget_users', $users_new); } if (!is_array($widget_data)) { exit('import_end'); } foreach ($widget_data as $widget_title => $widget_value) { if (!is_array($widget_value)) { continue; } foreach ($widget_value as $widget_key => $widget_value) { // fix for nav_menu widget if ('nav_menu' == $widget_title) { if (is_array($widget_data[$widget_title][$widget_key])) { if (array_key_exists('nav_menu_slug', $widget_data[$widget_title][$widget_key])) { $nav_menu_slug = $widget_data[$widget_title][$widget_key]['nav_menu_slug']; $term_id = term_exists($nav_menu_slug, 'nav_menu'); if ($term_id) { if (is_array($term_id)) { $term_id = $term_id['term_id']; } $widget_data['nav_menu'][$widget_key]['nav_menu'] = $term_id; } } } } } } $sidebar_data = array(array_filter($sidebar_data), $widget_data); if ($this->parse_widgets_data($sidebar_data)) { /** * Hook fires after successfull demo content installation */ do_action('cherry_data_manager_install_complete'); if (!empty($_SESSION['files_to_remove'])) { foreach ($_SESSION['files_to_remove'] as $file) { if (file_exists($file)) { unlink($file); } } unset($_SESSION['files_to_remove']); } exit('import_end'); } else { exit('error'); } }