*/ class Accessibility_Onetap_Admin { /** * 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; /** * 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; } /** * Register the stylesheets for the admin area. * * @since 1.0.0 */ public function enqueue_styles() { wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/accessibility-onetap-admin.css', array(), $this->version, 'all' ); } /** * Register the JavaScript for the admin area. * * @since 1.0.0 */ public function enqueue_scripts() { wp_enqueue_script( $this->plugin_name, ACCESSIBILITY_ONETAP_PLUGINS_URL . 'assets/js/admin-menu.min.js', array( 'jquery' ), $this->version, true ); // Localize admin. wp_localize_script( $this->plugin_name, 'adminLocalize', array( 'ajaxUrl' => admin_url( 'admin-ajax.php' ), 'ajaxNonce' => wp_create_nonce( 'onetap-ajax-verification' ), 'adminUrl' => esc_url( admin_url() ), ) ); wp_enqueue_script( $this->plugin_name . '-admin-global', ACCESSIBILITY_ONETAP_PLUGINS_URL . 'assets/js/admin-global.min.js', array( 'jquery' ), $this->version, true ); } /** * Display admin notice. */ public function display_admin_notice() { $get_cookie_disable_admin_notices = isset( $_COOKIE['onetap_disable_admin_notices'] ) ? sanitize_key( $_COOKIE['onetap_disable_admin_notices'] ) : ''; if ( 'disable' === $get_cookie_disable_admin_notices ) { return; } ?>
true ) ); wp_die(); } /** * Allow external domain for safe redirect. * * @param string[] $hosts Array of allowed hosts. * @return string[] Modified array with external host. */ public function onetap_allow_external_redirect_host( $hosts ) { $hosts[] = 'wponetap.com'; return $hosts; } /** * Redirect users accessing a specific admin page to an external pricing URL. * * This function runs on 'admin_init' and checks whether the current admin page * matches a specific plugin slug. * * @return void */ public function onetap_redirect_admin_page_to_pricing() { global $plugin_page, $pagenow; // Check if we are in the admin and on admin.php. if ( is_admin() && 'admin.php' === $pagenow && 'accessibility-onetap-pro' === $plugin_page ) { // Redirect. wp_safe_redirect( 'https://wponetap.com/pricing/', 301 ); exit; } } /** * Add a custom "Settings" link below the plugin description metadata * (next to "Version | By | View details") in the Plugins admin screen. * * This function hooks into 'plugin_row_meta' and adds a link to the plugin's settings page * only for this specific plugin file. * * @param array $links Array of existing plugin row meta links. * @param string $file The plugin file path (relative to the plugins directory). * * @return array Modified array of plugin row meta links. */ public function add_row_meta( $links, $file ) { // Only add the settings link for this specific plugin. if ( 'accessibility-onetap/accessibility-onetap.php' === $file ) { $settings_url = admin_url( 'admin.php?page=accessibility-onetap-settings' ); $settings_link = '' . esc_html__( 'Settings', 'accessibility-onetap' ) . ''; // Append the custom settings link to the plugin meta row. $links[] = $settings_link; } return $links; } }