db_redirection = $db_redirection; $this->admin = $admin; } /** * @param object|null $db_redirection Required on first call. * @param Metasync_Admin|null $admin Required on first call. */ public static function get_instance($db_redirection = null, $admin = null) { if (self::$instance === null) { self::$instance = new self($db_redirection, $admin); } return self::$instance; } /* ------------------------------------------------------------------ * Public entry points (called from Metasync_Admin delegation stubs) * ------------------------------------------------------------------ */ public function create_admin_redirections_page() { $this->handle_redirection_form_processing(); $this->check_database_structure(); $this->ensure_404_monitor_table(); $current_tab = isset($_GET['tab']) ? sanitize_text_field($_GET['tab']) : 'redirections'; $this->add_tabbed_interface_assets(); $this->admin->render_layout_open('Redirections', 'redirections', 'Manage URL redirects and monitor 404 errors on your site.'); $this->render_tab_navigation($current_tab); $this->render_tab_content($current_tab); $this->admin->render_layout_close(); } public function display_redirection_messages() { if ($error = get_transient('metasync_redirection_error')) { echo '
' . esc_html($error) . '
' . esc_html($success) . '
MetaSync: Database structure needs updating. Missing columns: ' . implode(', ', $missing_columns) . '
'; echo ''; echo '