admin = $admin; } /** * @param Metasync_Admin $admin * @return self */ public static function get_instance(Metasync_Admin $admin): self { if (null === self::$instance || self::$instance->admin !== $admin) { self::$instance = new self($admin); } return self::$instance; } // ------------------------------------------------------------------ // Dashboard iframe (~200 lines) // ------------------------------------------------------------------ public function create_admin_dashboard_iframe() { $general_options = Metasync::get_option('general'); $otto_pixel_uuid = isset($general_options['otto_pixel_uuid']) ? $general_options['otto_pixel_uuid'] : ''; $api_key = isset($general_options['searchatlas_api_key']) ? $general_options['searchatlas_api_key'] : ''; $hide_dashboard = $general_options['hide_dashboard_framework'] ?? false; if ($hide_dashboard) { $this->admin->render_layout_open('Dashboard', 'dashboard', 'Overview of your SEO performance and plugin status.'); ?>
The dashboard is currently disabled.
Run the setup wizard to configure your plugin, import from other SEO plugins, and optimize your settings in just a few minutes.
Start Setup WizardYou need to authenticate with to access the dashboard.
Go to Settings & Connect
* Clear all caches at once
* This will slow down your site until caches are rebuilt
*
*
Security Tip: You can set a custom password in the White Label Settings to protect this section.
✅ Success! All plugin settings have been cleared successfully and a new Plugin Auth Token has been generated. Please reconfigure the plugin as needed.
❌ Error! Failed to clear settings due to a security check failure. Please try again.
✅ Success! Error logs have been cleared successfully.
❌ Error! Failed to clear error logs due to a security check failure. Please try again.
✅ Success! Plugin access roles have been saved successfully.
❌ Error! Failed to save plugin access roles.
Access your dashboard to view analytics, manage SEO settings, and monitor your site performance.
Authentication required: Please authenticate with your ' . esc_html(Metasync::get_effective_plugin_name()) . ' account and save your auth token in general settings.'; echo 'Go to Settings'; } else { echo 'Open Dashboard'; } ?>' . esc_html($result->get_error_message()) . '
' . esc_html__('robots.txt file saved successfully!', 'metasync') . '
' . esc_html($warning) . '
' . esc_html__('Validation failed. Please fix the errors below:', 'metasync') . '
'; foreach ($validation['errors'] as $error) { echo '- ' . esc_html($error) . '
'; } echo '' . esc_html($current_content->get_error_message()) . '
Breadcrumbs are not inserted automatically. Use one of the methods below to place them on your site.
Paste the shortcode inside any page, post, or widget:
Call the helper function directly inside your theme template files (e.g. single.php, page.php, header.php):
Get the breadcrumb HTML as a string to manipulate before output:
Tip: You can also pass a post_id argument to generate breadcrumbs for a specific post outside of a template context:
echo $breadcrumbs->render_breadcrumb_html(['post_id' => 123]);
View and manage system error logs to troubleshoot issues and monitor plugin performance.
can_show_error_logs()) { $log_content = $error_logs->get_error_logs(50); if (!empty(trim($log_content))) { $error_logs->show_copy_button(); $error_logs->show_logs(); $error_logs->show_info(); } else { echo '✅ Log file is empty - no errors recorded.
'; echo ''; echo esc_html($error_message); echo '
'; echo 'Unable to access error log file. Please check permissions.
'; echo 'Monitor WordPress heartbeat errors to identify connectivity issues and system problems.
admin->db_heartbeat_errors); $heartbeat_errors->create_admin_heartbeat_errors_interface(); ?>