/** * Ajax Save Options * * @uses get_option() * * @since 1.0.0 */ function of_ajax_callback() { global $options_machine, $of_options; $nonce = $_POST['security']; if (!wp_verify_nonce($nonce, 'of_ajax_nonce')) { die('-1'); } //get options array from db $all = of_get_options(); $save_type = $_POST['type']; //Uploads if ($save_type == 'upload') { $clickedID = $_POST['data']; // Acts as the name $filename = $_FILES[$clickedID]; $filename['name'] = preg_replace('/[^a-zA-Z0-9._\\-]/', '', $filename['name']); $override['test_form'] = false; $override['action'] = 'wp_handle_upload'; $uploaded_file = wp_handle_upload($filename, $override); $upload_tracking[] = $clickedID; //update $options array w/ image URL $upload_image = $all; //preserve current data $upload_image[$clickedID] = $uploaded_file['url']; of_save_options($upload_image); if (!empty($uploaded_file['error'])) { echo 'Upload Error: ' . $uploaded_file['error']; } else { echo esc_url($uploaded_file['url']); } // Is the Response } elseif ($save_type == 'image_reset') { $id = $_POST['data']; // Acts as the name $delete_image = $all; //preserve rest of data $delete_image[$id] = ''; //update array key with empty value of_save_options($delete_image); } elseif ($save_type == 'backup_options') { $backup = $all; $backup['backup_log'] = date('r'); of_save_options($backup, BACKUPS); die('1'); } elseif ($save_type == 'restore_options') { $smof_data = get_option(BACKUPS); update_option(OPTIONS, $smof_data); of_save_options($smof_data); die('1'); } elseif ($save_type == 'import_options') { $smof_data = unserialize(base64_decode($smof_data)); //100% safe - ignore theme check nag of_save_options($smof_data); die('1'); } elseif ($save_type == 'save') { wp_parse_str(stripslashes($_POST['data']), $smof_data); unset($smof_data['security']); unset($smof_data['of_save']); of_save_options($smof_data); die('1'); } elseif ($save_type == 'reset') { of_save_options($options_machine->Defaults); $_SESSION['theme_customize'] = null; die('1'); //options reset } elseif ($save_type == 'generate_less') { require get_template_directory() . '/lib/inc-generate-less/generate-less.php'; $result = cupid_generate_less(); die($result); } die; }
function cupid_setup_options() { // reset Theme options global $of_options, $options_machine; $smof_data = of_get_options(); if (!isset($smof_data) || !array_key_exists('smof_init', $smof_data) || empty($smof_data['smof_init'])) { $options_machine = new Options_Machine($of_options); of_save_options($options_machine->Defaults); } // generate less to css require get_template_directory() . '/lib/inc-generate-less/generate-less.php'; cupid_generate_less(); }
function install_demo() { if (!(isset($_REQUEST['security']) && current_user_can('manage_options'))) { ob_end_clean(); $data_response = array('code' => 'error', 'message' => __("Permission error!", 'g5plusThemeFramework')); echo json_encode($data_response); die; } set_time_limit(1800); if (!defined('FS_METHOD')) { define('FS_METHOD', 'direct'); } if (!defined('WP_LOAD_IMPORTERS')) { define('WP_LOAD_IMPORTERS', true); } // Load Importer API require_once ABSPATH . 'wp-admin/includes/import.php'; if (file_exists(ABSPATH . 'wp-content/plugins/revslider/revslider_admin.php')) { require_once ABSPATH . 'wp-content/plugins/revslider/revslider_admin.php'; } $importer_error = false; $import_file_path = THEME_DIR . "assets" . DIRECTORY_SEPARATOR . "data-demo" . DIRECTORY_SEPARATOR . "demo-data.xml"; $import_setting_path = THEME_DIR . "assets" . DIRECTORY_SEPARATOR . "data-demo" . DIRECTORY_SEPARATOR . "setting.json"; //check if wp_importer, the base importer class is available, otherwise include it if (!class_exists('WP_Importer')) { $class_wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php'; if (file_exists($class_wp_importer)) { require_once $class_wp_importer; } else { $importer_error = true; } } if (!class_exists('G5_Import')) { $class_wp_import = THEME_DIR . 'lib/install-demo/wordpress-importer.php'; if (file_exists($class_wp_import)) { require_once $class_wp_import; } else { $importer_error = true; } } if ($importer_error !== false) { ob_end_clean(); $data_response = array('code' => 'fileNotFound', 'message' => __("The Auto importing script could not be loaded. please use the wordpress importer and import the XML file that is located in your themes folder manually.", 'g5plusThemeFramework')); echo json_encode($data_response); die; } else { if (class_exists('G5_Import')) { include_once THEME_DIR . 'lib/install-demo/g5plus_import_class.php'; } $g5plus_import = new g5plus_import(); $type = $_REQUEST['type']; $other_data = $_REQUEST['other_data']; ob_start(); switch (trim($type)) { case 'init': $demo_data_directory = get_template_directory() . DIRECTORY_SEPARATOR . 'assets' . DIRECTORY_SEPARATOR . 'data-demo' . DIRECTORY_SEPARATOR; $arr_demo_file = array($demo_data_directory . 'demo-data.xml', $demo_data_directory . 'setting.json', $demo_data_directory . 'change-data.json'); foreach ($arr_demo_file as $file_demo) { if (!file_exists($file_demo)) { ob_end_clean(); $data_response = array('code' => 'fileNotFound', 'message' => __("File not found! Please check file exists in directory:\n[your-theme]/assets/data-demo/", 'g5plusThemeFramework')); echo json_encode($data_response); die; } } if ($handle = opendir(THEME_DIR . "assets" . DIRECTORY_SEPARATOR . "data-demo" . DIRECTORY_SEPARATOR . "log")) { $arr_other_data = explode('||', $other_data); while (false !== ($entry = readdir($handle))) { if (in_array($entry, $arr_other_data)) { continue; } if ($entry != "." && $entry != "..") { unlink(THEME_DIR . "assets" . DIRECTORY_SEPARATOR . "data-demo" . DIRECTORY_SEPARATOR . "log" . DIRECTORY_SEPARATOR . $entry); } } } ob_end_clean(); $data_response = array('code' => 'setting', 'message' => ''); echo json_encode($data_response); break; case 'setting': if (!$g5plus_import->saveOptions($import_setting_path)) { ob_end_clean(); $data_response = array('code' => 'fileNotFound', 'message' => __("File not found! Please check file exists in directory:\n[your-theme]/assets/data-demo/", 'g5plusThemeFramework')); echo json_encode($data_response); die; } ob_end_clean(); $data_response = array('code' => 'core', 'message' => ''); echo json_encode($data_response); die; case 'core': $check_method = $_REQUEST['method']; if (trim($check_method) == 'livesite' || trim($check_method) == 'no-get-image') { $g5plus_import->fetch_attachments = true; } else { $g5plus_import->fetch_attachments = false; } try { $import_return = $g5plus_import->import($import_file_path); if ($import_return !== true) { ob_end_clean(); $data_response = array('code' => 'core', 'message' => $import_return); echo json_encode($data_response); die; } } catch (Exception $ex) { ob_end_clean(); $data_response = array('code' => 'core', 'message' => $other_data); echo json_encode($data_response); die; } ob_end_clean(); $data_response = array('code' => 'slider', 'message' => ''); echo json_encode($data_response); die; case 'slider': $import_return = $g5plus_import->import_revslider($other_data); if ($import_return === false) { ob_end_clean(); $data_response = array('code' => 'fileNotFound', 'message' => __("File not found! Please check file exists in directory:\n[your-theme]/assets/data-demo/", 'g5plusThemeFramework')); echo json_encode($data_response); return; } else { if ($import_return !== 'done') { ob_end_clean(); $data_response = array('code' => 'slider', 'message' => $import_return); echo json_encode($data_response); die; } } // update post id has changed after import $g5plus_import->update_post_id(); // generate less to css require get_template_directory() . '/lib/inc-generate-less/generate-less.php'; cupid_generate_less(); ob_end_clean(); $data_response = array('code' => 'done', 'message' => ''); echo json_encode($data_response); die; case 'fix-data': $demo_data_directory = get_template_directory() . DIRECTORY_SEPARATOR . 'assets' . DIRECTORY_SEPARATOR . 'data-demo' . DIRECTORY_SEPARATOR; $arr_demo_file = array($demo_data_directory . 'setting.json', $demo_data_directory . 'change-data.json'); foreach ($arr_demo_file as $file_demo) { if (!file_exists($file_demo)) { ob_end_clean(); $data_response = array('code' => 'fileNotFound', 'message' => __("File not found! Please check file exists in directory:\n[your-theme]/assets/data-demo/", 'g5plusThemeFramework')); echo json_encode($data_response); die; } } // update post id has changed after import $g5plus_import->update_post_id(); // generate less to css require get_template_directory() . '/lib/inc-generate-less/generate-less.php'; cupid_generate_less(); ob_end_clean(); $data_response = array('code' => 'done', 'message' => ''); echo json_encode($data_response); die; } } die; }