*/ class Metasync_Setup_Wizard { /** * The ID of this plugin. * * @since 1.0.0 * @access private * @var string $plugin_name The ID of this plugin. */ private $plugin_name; /** * The version of this plugin. * * @since 1.0.0 * @access private * @var string $version The current version of this plugin. */ private $version; /** * Total number of wizard steps * * @since 1.0.0 * @access private * @var int */ private $total_steps = 6; /** * Initialize the class and set its properties. * * @since 1.0.0 * @param string $plugin_name The name of this plugin. * @param string $version The version of this plugin. */ public function __construct($plugin_name, $version) { $this->plugin_name = $plugin_name; $this->version = $version; } /** * Check if wizard should auto-launch * * @since 1.0.0 * @return boolean */ public function should_auto_launch_wizard() { // Check if wizard has been completed $wizard_completed = get_option('metasync_wizard_completed', false); if ($wizard_completed && !empty($wizard_completed['completed'])) { return false; } // Check if first activation flag is set return get_option('metasync_show_wizard', false); } /** * Render the setup wizard page * * @since 1.0.0 */ public function render_wizard_page() { // Check user has access if (!Metasync::current_user_has_plugin_access()) { wp_die(__('You do not have sufficient permissions to access this page.')); } // Get current wizard state $user_id = get_current_user_id(); $wizard_state = get_transient("metasync_wizard_state_{$user_id}"); if (!$wizard_state) { // Initialize wizard state $wizard_state = array( 'current_step' => 1, 'completed_steps' => array(), 'started_at' => time(), 'user_id' => $user_id ); set_transient("metasync_wizard_state_{$user_id}", $wizard_state, DAY_IN_SECONDS); } // Load wizard template require_once plugin_dir_path(dirname(__FILE__)) . 'views/metasync-setup-wizard.php'; } /** * Get all wizard steps configuration * * @since 1.0.0 * @return array */ private function get_wizard_steps() { return array( 1 => array( 'id' => 'welcome', 'title' => 'Welcome', 'description' => 'Welcome to MetaSync' ), 2 => array( 'id' => 'connection', 'title' => 'Connect', 'description' => 'Connect to platform' ), 3 => array( 'id' => 'import', 'title' => 'Import', 'description' => 'Import from other plugins' ), 4 => array( 'id' => 'seo_settings', 'title' => 'SEO Settings', 'description' => 'Configure indexation' ), 5 => array( 'id' => 'schema', 'title' => 'Schema', 'description' => 'Schema preferences' ), 6 => array( 'id' => 'complete', 'title' => 'Complete', 'description' => 'Setup complete' ) ); } /** * Render Step 1: Welcome Screen * * @since 1.0.0 */ public function render_step_welcome() { $plugin_name = Metasync::get_effective_plugin_name(); ?>
Let's get your site optimized for search engines in just a few minutes.
Automatically optimize your content for search engines
Monitor your site's search performance in real-time
Connect with for advanced features
Link your WordPress site to your account for advanced features.
Why connect?
Your site is linked to .
We detected other SEO plugins. Import your existing settings to save time.
No compatible SEO plugins detected. You can skip this step.
Choose which archive types should be indexed by search engines.
Control which WordPress archives are visible to search engines.
For most sites, we recommend:
Configure structured data to help search engines understand your content.
Schema markup helps search engines display rich snippets in search results.
Your site is now optimized for search engines.