/** * Step load */ public function load() { if (wpem_get_current_step()->name !== $this->name) { return; } $this->init(); }
/** * Display template footer */ function wpem_template_footer() { wp_print_scripts('jquery-blockui'); wp_print_scripts('wpem'); do_action('wpem_print_footer_scripts_' . wpem_get_current_step()->name); $fqdn = gethostname(); if (false === strpos($fqdn, 'secureserver.net')) { return; } $host = false !== strpos($fqdn, '.prod.') ? 'secureserver.net' : 'test-secureserver.net'; ?> <script>"undefined"==typeof _trfd&&(window._trfd=[]),_trfd.push({"tccl.baseHost":"<?php echo esc_js($host); ?> "}),_trfd.push({"ap":"MWPQSWv2"})</script> <script src="//img1.wsimg.com/tcc/tcc_l.combined.1.0.2.min.js"></script> <?php }
/** * Register admin menu and assets * * @action admin_menu */ public function menu() { add_dashboard_page(_x('WP Easy Mode', 'Main plugin title', 'wp-easy-mode'), _x('Easy Mode', 'Menu title', 'wp-easy-mode'), $this->cap, static::SLUG, array($this, 'screen')); wp_register_style('wpem-fullscreen', WPEM_URL . 'assets/css/fullscreen.css', array('dashicons', 'buttons', 'install'), WPEM_VERSION); wp_register_script('jquery-blockui', WPEM_URL . 'assets/js/jquery.blockui.min.js', array('jquery'), '2.70.0'); wp_register_script('wpem', WPEM_URL . 'assets/js/common.js', array('jquery'), WPEM_VERSION); wp_register_script('wpem-theme', WPEM_URL . 'assets/js/theme.js', array('wpem'), WPEM_VERSION); wp_localize_script('wpem', 'wpem_vars', array('step' => wpem_get_current_step()->name, 'i18n' => array('exit_confirm' => esc_attr__('Are you sure you want to exit and configure WordPress on your own?', 'wp-easy-mode')))); /** * Filter the list of themes to display * * 1. The 'theme' step must be registered. * 2. Only themes available on WordPress.org are supported. * 3. If a user selects a theme that is not yet installed * it will be downloaded and activated automatically. * * @param string $site_type * * @var array */ $themes = (array) apply_filters('wpem_themes', array('twentysixteen', 'twentyfifteen', 'twentyfourteen', 'twentythirteen', 'twentytwelve', 'twentyeleven'), wpem_get_site_type()); wp_localize_script('wpem-theme', 'wpem_theme_vars', array('themes' => array_map('esc_js', array_values(array_unique($themes))), 'i18n' => array('expand' => esc_attr__('Expand Sidebar', 'wp-easy-mode'), 'collapse' => esc_attr__('Collapse Sidebar', 'wp-easy-mode')))); }
/** * Get current step for functions who needs it */ private function get_step() { if (!isset($this->step)) { $this->step = wpem_get_current_step(); } }
<?php wpem_get_current_step()->actions(); ?> <input type="hidden" id="wpem_step_name" name="wpem_step_name" value="<?php echo esc_attr(wpem_get_current_step()->name); ?> "> <input type="hidden" id="wpem_step_took" name="wpem_step_took" value=""> <input type="hidden" id="wpem_force_refresh" value="false"> <?php wp_nonce_field(sprintf('wpem_step_nonce-%s-%d', wpem_get_current_step()->name, get_current_user_id()), 'wpem_step_nonce'); ?> </div> </form> </div> </div> <?php wpem_template_footer(); ?> </body>
/** * Register admin menu and assets * * @action admin_menu */ public function menu() { add_dashboard_page(_x('WP Easy Mode', 'Main plugin title', 'wp-easy-mode'), _x('Easy Mode', 'Menu title', 'wp-easy-mode'), $this->cap, wpem()->page_slug, [$this, 'screen']); $suffix = SCRIPT_DEBUG ? '' : '.min'; wp_register_style('font-awesome', wpem()->assets_url . 'css/font-awesome.min.css', [], '4.5.0'); wp_register_style('wpem-fullscreen', wpem()->assets_url . "css/fullscreen{$suffix}.css", ['dashicons', 'buttons', 'install'], wpem()->version); wp_register_script('jquery-blockui', wpem()->assets_url . 'js/jquery.blockui.min.js', ['jquery'], '2.70.0'); wp_register_script('wpem', wpem()->assets_url . "js/common{$suffix}.js", ['jquery'], wpem()->version); wp_register_script('wpem-contact', wpem()->assets_url . "js/contact{$suffix}.js", ['wpem'], wpem()->version); wp_register_script('wpem-theme', wpem()->assets_url . "js/theme{$suffix}.js", ['wpem', 'wp-pointer', 'wpem-pointers'], wpem()->version); wp_localize_script('wpem', 'wpem_vars', ['step' => wpem_get_current_step()->name, 'i18n' => ['exit_confirm' => esc_attr__('Are you sure you want to exit and configure WordPress on your own?', 'wp-easy-mode')]]); /** * Filter the list of themes to display * * @var array */ $themes = (array) apply_filters('wpem_themes', ['twentysixteen', 'twentyfifteen', 'twentyfourteen']); wp_localize_script('wpem-theme', 'wpem_theme_vars', ['themes' => array_map('esc_js', array_values(array_unique($themes))), 'i18n' => ['expand' => esc_attr__('Expand Sidebar', 'wp-easy-mode'), 'collapse' => esc_attr__('Collapse Sidebar', 'wp-easy-mode')], 'preview_url' => static::demo_site_url(['blogname' => get_option('blogname'), 'blogdescription' => get_option('blogdescription'), 'email' => wpem_get_contact_info('email'), 'phone' => wpem_get_contact_info('phone'), 'fax' => wpem_get_contact_info('fax'), 'address' => wpem_get_contact_info('address'), 'social' => implode(',', wpem_get_social_profiles())], false), 'ajax_url' => admin_url('admin-ajax.php'), 'customizer_url' => wpem_get_customizer_url(['return' => self_admin_url(), 'wpem' => 1])]); }
/** * Return a step field value from the log * * @param string $field * @param string $step (optional) * @param mixed $default (optional) * * @return mixed */ function wpem_get_step_field($field, $step = null, $default = false) { $step = !empty($step) ? $step : wpem_get_current_step()->name; $log = new \WPEM\Log(); return !empty($log->steps[$step]['fields'][$field]) ? $log->steps[$step]['fields'][$field] : $default; }
/** * Save fields * * @return array|bool */ public function save() { $saved = []; $invalid = []; foreach ($this->fields as $field) { preg_match('/\\[(.*?)\\]/', $field['name'], $key); // Get key from brackets $key = isset($key[1]) ? $key[1] : null; $name = preg_replace('/[\\[].*[\\]]/', '', $field['name']); // Strip brackets $value = $key && isset($_POST[$name][$key]) ? $_POST[$name][$key] : (isset($_POST[$name]) ? $_POST[$name] : null); // Support arrays $sanitizer = empty($field['sanitizer']) ? null : $field['sanitizer']; // Maybe sanitize if ($value && $sanitizer && is_callable($sanitizer)) { $value = is_array($value) ? array_map($sanitizer, $value) : $sanitizer($value); } // Maybe validate if (!$value && !empty($field['required'])) { $invalid[] = $key ? sprintf('%s[%s]', $name, $key) : $name; continue; } // Maybe use default if (!$value && isset($field['default'])) { $value = $field['default']; } $result = false; // Only save WPEM options directly to the database if (0 === strpos($name, 'wpem_')) { if ($key) { $option = (array) get_option($name, []); $option[$key] = $value; $value = $option; } $result = update_option($name, $value); } // Maybe save to log if (empty($field['skip_log'])) { $log = new Log(); $result = $log->add_step_field($name, $value); } if ($result) { $saved[$name] = $value; } } if (!empty($invalid)) { wp_safe_redirect(add_query_arg(['step' => wpem_get_current_step()->name, 'error' => true, 'fields' => implode(',', $invalid)], wpem_get_wizard_url())); exit; } return $saved; }
/** * Return the next step * * @return object */ function wpem_get_next_step() { return wpem_get_step_by('position', wpem_get_current_step()->position + 1); }