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(); ?>

'; return; } if ( $go_pro_tab ) { include ATKAI_ABSPATH . 'views/html-admin-settings-pro.php'; echo '
'; return; } if ( $errors_tab ) { do_action( 'atkai_404_activity' ); echo ''; return; } if ( $woocommerce_tab ) { do_action( 'atkai_woocommerce_activity', true ); echo ''; return; } ?>
log_table_list ) ) { $this->log_table_list = new ATKAI_Admin_Activity_Table(); $this->log_table_list->prepare_items(); } $this->log_table_list->display(); ?>
wp_create_nonce( 'atk-admin-settings' ), ) ); wp_localize_script( 'atk-admin-settings', 'atk_ajax', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) ); } public function custom_admin_styles () { if ( ! isset( $_GET['page'] ) || ! is_string( $_GET['page'] ) || ! in_array( sanitize_key( wp_unslash( $_GET['page'] ) ), [ 'activity-track-ai', 'atk-settings', 'atk-notifications' ], true ) ) return; wp_enqueue_style( 'atk-admin', plugins_url( 'assets/admin/css/atk.custom.css', ATKAI_PLUGIN_FILE ), [], filemtime( ATKAI_ABSPATH . 'assets/admin/css/atk.custom.css' ) ); if ( 'activity-track-ai' === $_GET['page'] ) { wp_enqueue_script( 'atk-tabs', plugins_url( 'assets/admin/js/atk.tabs.js', ATKAI_PLUGIN_FILE ), [], filemtime( ATKAI_ABSPATH . 'assets/admin/js/atk.tabs.js' ), true ); } } public function settings_admin_styles() { if ( isset( $_GET['page'] ) && 'activity-track-ai' === $_GET['page'] && ( self::is_incidents_tab() || self::is_woocommerce_tab() || ATKAI_404_Events::selected() ) ) return; wp_enqueue_style( 'atk-tailwind', plugins_url( 'assets/admin/css/tailwind-admin.css', ATKAI_PLUGIN_FILE ), [], '3.3.5' ); wp_enqueue_style( 'atk-admin-settings', plugins_url( 'assets/admin/css/atk.settings.css', ATKAI_PLUGIN_FILE ), [], ATKAI_VERSION ); } public function notifications_admin_scripts() { $suffix = ATKAI_DEBUG ? '' : '.min'; wp_enqueue_script( 'atk-admin-notifications', plugins_url( 'assets/admin/js/atk.notifications' . $suffix . '.js', ATKAI_PLUGIN_FILE ), array( 'jquery' ), ATKAI_VERSION, true ); wp_enqueue_script( 'atk-admin-notifications-tw', plugins_url( 'assets/admin/js/flowbite.min.js', ATKAI_PLUGIN_FILE ), array(), ATKAI_VERSION, true ); wp_localize_script( 'atk-admin-notifications', 'atk_admin_notifications_params', array( 'export_nonce' => wp_create_nonce( 'atk-admin-notifications' ), ) ); $atk_note_texts = array( 'enable_notification' => __('Enabled', 'activity-track'), 'disable_notification' => __('Disabled', 'activity-track') ); $activity_type = include plugin_dir_path( ATKAI_PLUGIN_FILE ) . 'activities/types.php'; wp_localize_script( 'atk-admin-notifications', 'atk_note_activities', $activity_type ); wp_localize_script( 'atk-admin-notifications', 'atk_note_texts', $atk_note_texts ); wp_localize_script( 'atk-admin-notifications', 'atk_ajax', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) ); } public function notifications_admin_styles() { wp_enqueue_style( 'atk-tailwind', plugins_url( 'assets/admin/css/tailwind-admin.css', ATKAI_PLUGIN_FILE ), [], '3.3.5' ); wp_enqueue_style( 'atk-admin-notifications', plugins_url( 'assets/admin/css/atk.notifications.css', ATKAI_PLUGIN_FILE ), [], ATKAI_VERSION ); } } new ATKAI_Admin_Menus();