Better Search Replace. * * @link https://bettersearchreplace.com * @since 1.0.0 * * @package Better_Search_Replace * @subpackage Better_Search_Replace/templates */ // Prevent direct access. if ( ! defined( 'BSR_PATH' ) ) exit; // phpcs:disable WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound -- Template partial loaded in BSR admin context; variables are file scope, not WordPress globals. // phpcs:disable WordPress.Security.NonceVerification.Missing,WordPress.Security.NonceVerification.Recommended -- Tab is sanitized and matched against allowlist; optional tools-screen nonce verified when present. $allowed_tabs = array( 'bsr_search_replace', 'bsr_settings', 'bsr_help' ); $active_tab = 'bsr_search_replace'; $tab_candidate = ''; if ( isset( $_GET['tab'] ) ) { $tab_candidate = sanitize_key( wp_unslash( (string) $_GET['tab'] ) ); } if ( '' !== $tab_candidate ) { $nonce_ok = true; if ( isset( $_GET['_wpnonce'] ) ) { $nonce_ok = wp_verify_nonce( sanitize_text_field( wp_unslash( (string) $_GET['_wpnonce'] ) ), BSR_Utils::TOOLS_SCREEN_NONCE_ACTION ); } if ( $nonce_ok && in_array( $tab_candidate, $allowed_tabs, true ) ) { $active_tab = $tab_candidate; } } // phpcs:enable WordPress.Security.NonceVerification.Missing,WordPress.Security.NonceVerification.Recommended if ( 'bsr_settings' === $active_tab ) { $action = get_admin_url() . 'options.php'; } else { $action = get_admin_url() . 'admin-post.php'; } $tab_urls = array( 'bsr_search_replace' => BSR_Utils::tools_page_url( array( 'tab' => 'bsr_search_replace' ) ), 'bsr_settings' => BSR_Utils::tools_page_url( array( 'tab' => 'bsr_settings' ) ), 'bsr_help' => BSR_Utils::tools_page_url( array( 'tab' => 'bsr_help' ) ), ); $logo_src = plugin_dir_url( __FILE__ ) . '../assets/svg/logo-bsr.svg'; $icon_src = plugin_dir_url( __FILE__ ) . '../assets/svg/icon-upgrade.svg'; $upgrade = 'https://deliciousbrains.com/better-search-replace/upgrade/?utm_source=insideplugin&utm_medium=web&utm_content=header&utm_campaign=bsr-to-migrate'; // phpcs:enable WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound ?>