*/ final class AdminBar { /** * The loader that's responsible for maintaining and registering all hooks that power * the plugin. * * @since 2.0.0 * @access protected * @var Loader $loader Maintains and registers all hooks for the plugin. */ protected $loader; /** * Define the core functionality of the plugin. * * Register the admin bar menu. * * @since 2.6.8 * @param Loader $loader The loader instance. */ public function __construct( $loader ) { $this->loader = $loader; } /** * Register all of the hooks related to the admin bar menu. * * @since 2.6.8 * @return void */ public function register_hooks() { $this->loader->add_action( is_admin() ? 'admin_head' : 'wp_head', $this, 'admin_bar_menu_style' ); $this->loader->add_action( 'admin_bar_menu', $this, 'add_admin_bar_menu', 999 ); } /** * Add admin element bar menu. * * @since 2.6.8 * @param \WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance. * @return void */ public function add_admin_bar_menu( $wp_admin_bar ) { if ( ! current_user_can( 'manage_options' ) ) { return; } $wp_admin_bar->add_menu( array( 'id' => 'actirise', 'title' => __( 'Actirise', 'actirise' ), ) ); $base_enblaed = Options::get( 'settings-analytics-token', '' ) !== '' && Options::get( 'website-exists' ) && Options::get( 'onboarding-status' ) === 'congrats'; if ( $base_enblaed && Options::get( 'adstxt-active', true ) && ! Options::get( 'hosted-adstxt-enabled' ) ) { $wp_admin_bar->add_menu( array( 'parent' => 'actirise', 'id' => 'actirise-sync-adstxt', 'title' => __( 'Synchronize Ads.txt', 'actirise' ), 'href' => admin_url( 'admin.php?page=actirise-settings#AdsTxt&Sync' ), ) ); } if ( $base_enblaed && Options::get( 'presizeddiv-active', false ) === true ) { $wp_admin_bar->add_menu( array( 'parent' => 'actirise', 'id' => 'actirise-sync-presized-div', 'title' => __( 'Synchronize Presized Div', 'actirise' ), 'href' => admin_url( 'admin.php?page=actirise-settings#SiteSpeed&Sync' ), ) ); } if ( Options::get( 'fastcmp-enabled', false ) === true ) { $wp_admin_bar->add_menu( array( 'parent' => 'actirise', 'id' => 'actirise-sync-fast-cmp', 'title' => __( 'Synchronize Fast CMP', 'actirise' ), 'href' => admin_url( 'admin.php?page=actirise-settings#CMP&Sync' ), ) ); } $wp_admin_bar->add_menu( array( 'parent' => 'actirise', 'id' => 'actirise-settings', 'title' => __( 'Settings', 'actirise' ), 'href' => admin_url( 'admin.php?page=actirise-settings#Settings' ), ) ); } /** * Add admin bar menu style. * * @since 2.6.8 * @return void */ public function admin_bar_menu_style() { if ( ! is_admin_bar_showing() ) { return; } if ( ! current_user_can( 'manage_options' ) ) { return; } ?>