roles ) ) { return; } } // Use capability that works on multisite $menu_capability = 'manage_options'; $icon = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBzdHlsZT0iZmlsbDogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTt0cmFuc2Zvcm06IDttc0ZpbHRlcjo7Ij48cGF0aCBkPSJNMTIgMTBjMS4xNTEgMCAyLS44NDggMi0ycy0uODQ5LTItMi0yYy0xLjE1IDAtMiAuODQ4LTIgMnMuODUgMiAyIDJ6bTAgMWMtMi4yMDkgMC00IDEuNjEyLTQgMy42di4zODZoOFYxNC42YzAtMS45ODgtMS43OTEtMy42LTQtMy42eiI+PC9wYXRoPjxwYXRoIGQ9Ik0xOSAySDVjLTEuMTAzIDAtMiAuODk3LTIgMnYxM2MwIDEuMTAzLjg5NyAyIDIgMmg0bDMgMyAzLTNoNGMxLjEwMyAwIDItLjg5NyAyLTJWNGMwLTEuMTAzLS44OTctMi0yLTJ6bS01IDE1LTIgMi0yLTJINVY0aDE0bC4wMDIgMTNIMTR6Ij48L3BhdGg+PC9zdmc+"; $this->_screens = add_menu_page( __( 'Activity Track', 'activity-track' ), __( 'Activity Track ', 'activity-track' ), $menu_capability, 'activity-track-ai', array( $this, 'activity_page' ), $icon, //plugins_url( 'myplugin/images/icon.png' ), '2.01' ); add_action( "admin_print_styles", array( &$this, 'custom_admin_styles' ), 99 ); add_action( "admin_print_scripts-{$this->_screens}", array( &$this, 'settings_admin_scripts' ), 99 ); add_action( "admin_print_styles-{$this->_screens}", array( &$this, 'settings_admin_styles' ), 99 ); add_action( 'load-' . $this->_screens, array( &$this, 'export_list_table' ) ); } public function export_list_table() { if ( self::is_incidents_tab() || self::is_woocommerce_tab() || ATKAI_404_Events::selected() || self::is_go_pro_tab() ) { return; } if ( is_multisite() ) { if ( ! current_user_can( 'manage_options' ) && ! is_super_admin() ) { return; } } else { $allowed_roles = array( 'administrator' ); $user = wp_get_current_user(); if ( !array_intersect( $allowed_roles, $user->roles ) ) { return; } } include ATKAI_ABSPATH . 'includes/class-activity-table.php'; if ( is_null( $this->log_table_list ) ) { $this->log_table_list = new ATKAI_Admin_Activity_Table(); $this->log_table_list->prepare_items(); do_action( 'atk_table_load', $this->log_table_list ); } return $this->log_table_list; } /** * Add menu item. */ public function settings_menu() { if ( is_multisite() ) { if ( ! current_user_can( 'manage_options' ) && ! is_super_admin() ) { return; } } else { $allowed_roles = array( 'administrator' ); $user = wp_get_current_user(); if ( !array_intersect( $allowed_roles, $user->roles ) ) { return; } } $menu_capability = 'manage_options'; $notifications_page = add_submenu_page( 'activity-track-ai', __( 'Notifications', 'activity-track' ), __( 'Notifications', 'activity-track' ), $menu_capability, 'atk-notifications', array( $this, 'notifications_page' ) ); $settings_page = add_submenu_page( 'activity-track-ai', __( 'Settings', 'activity-track' ), __( 'Settings', 'activity-track' ), $menu_capability, 'atk-settings', array( $this, 'settings_page' ) ); add_action( "admin_print_scripts-{$settings_page}", array( &$this, 'settings_admin_scripts' ), 99 ); add_action( "admin_print_styles-{$settings_page}", array( &$this, 'settings_admin_styles' ), 99 ); add_action( "admin_print_scripts-{$notifications_page}", array( &$this, 'notifications_admin_scripts' ), 99 ); add_action( "admin_print_styles-{$notifications_page}", array( &$this, 'notifications_admin_styles' ), 99 ); } /** * Settings Page */ public function settings_page() { include ATKAI_ABSPATH . 'views/html-admin-settings.php'; } /** * Notifications Page */ public function notifications_page() { include ATKAI_ABSPATH . 'views/html-admin-notifications.php'; } /** * Settings Page */ public static function is_incidents_tab() { return isset( $_GET['tab'] ) && is_string( $_GET['tab'] ) && 'incidents' === $_GET['tab']; } public static function is_woocommerce_tab() { return isset( $_GET['tab'] ) && is_string( $_GET['tab'] ) && 'woocommerce' === sanitize_key( wp_unslash( $_GET['tab'] ) ) && class_exists( 'ATKAI_Security_Timeline' ) && ATKAI_Security_Events::enabled( 'woocommerce' ); } public static function is_go_pro_tab() { return ! defined( 'ATKAI_PRO_PLUGIN_ACTIVE' ) && isset( $_GET['tab'] ) && is_string( $_GET['tab'] ) && 'activation' === sanitize_key( wp_unslash( $_GET['tab'] ) ); } public function activity_page() { $incidents_tab = self::is_incidents_tab(); $woocommerce_tab = self::is_woocommerce_tab(); $errors_tab = ATKAI_404_Events::selected(); $go_pro_tab = self::is_go_pro_tab(); ?>