*/ 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(); ?>

🎉 Welcome to !

Let's get your site optimized for search engines in just a few minutes.

Automated SEO

Automatically optimize your content for search engines

Performance Tracking

Monitor your site's search performance in real-time

Seamless Integration

Connect with for advanced features

Estimated time: 3-5 minutes

Connect to

Link your WordPress site to your account for advanced features.

Why connect?

  • Access OTTO AI-powered SEO assistant
  • Get real-time search ranking data
  • Receive automated optimization suggestions
✓

Successfully Connected!

Your site is linked to .

detect_seo_plugins(); ?>

Import from Other SEO Plugins

We detected other SEO plugins. Import your existing settings to save time.

Detected

No compatible SEO plugins detected. You can skip this step.

Basic SEO Settings

Choose which archive types should be indexed by search engines.

Archive Types

Control which WordPress archives are visible to search engines.

Recommended Settings

For most sites, we recommend:

  • ✓ Index Category and Tag archives (helps with SEO)
  • ✗ Noindex Date archives (usually duplicate content)
  • ✗ Noindex Author archives (unless multi-author blog)

Schema Markup Preferences

Configure structured data to help search engines understand your content.

Schema markup helps search engines display rich snippets in search results.

Default Schema Types

🎉

Setup Complete!

Your site is now optimized for search engines.

What's Next?

1

Explore the Dashboard

View your SEO performance metrics and insights

View Dashboard →
2

Optimize Your Content

Start optimizing individual posts and pages

View Posts →
3

Fine-Tune Settings

Adjust advanced SEO settings for your specific needs

View Settings →
'Yoast SEO', 'slug' => 'yoast'); } if (defined('RANK_MATH_VERSION')) { $detected[] = array('name' => 'Rank Math', 'slug' => 'rankmath'); } if (defined('AIOSEO_VERSION')) { $detected[] = array('name' => 'All in One SEO', 'slug' => 'aioseo'); } return $detected; } }