user = $user; } /** * Returns an array of events this subscriber listens to * * @return array */ public static function get_subscribed_events(): array { return [ 'wp_ajax_imagify_get_admin_bar_profile' => 'get_admin_bar_profile_callback', 'admin_bar_menu' => [ 'add_imagify_admin_bar_menu', IMAGIFY_INT_MAX ], ]; } /** * Add Imagify menu in the admin bar. * * @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance, passed by reference. */ public function add_imagify_admin_bar_menu( $wp_admin_bar ) { if ( ! imagify_get_context( 'wp' )->current_user_can( 'manage' ) ) { return; } if ( ! get_imagify_option( 'admin_bar_menu' ) ) { return; } // Parent. $wp_admin_bar->add_menu( [ 'id' => 'imagify', 'title' => 'Imagify', 'href' => get_imagify_admin_url(), ] ); // Settings. $wp_admin_bar->add_menu( [ 'parent' => 'imagify', 'id' => 'imagify-settings', 'title' => __( 'Settings' ), 'href' => get_imagify_admin_url(), ] ); // Bulk Optimization. if ( ! is_network_admin() ) { $wp_admin_bar->add_menu( [ 'parent' => 'imagify', 'id' => 'imagify-bulk-optimization', 'title' => __( 'Bulk Optimization', 'imagify' ), 'href' => get_imagify_admin_url( 'bulk-optimization' ), ] ); } // Documentation. $wp_admin_bar->add_menu( [ 'parent' => 'imagify', 'id' => 'imagify-documentation', 'title' => __( 'Documentation', 'imagify' ), 'href' => imagify_get_external_url( 'documentation' ), 'meta' => [ 'target' => '_blank', ], ] ); // Rate it. $wp_admin_bar->add_menu( [ 'parent' => 'imagify', 'id' => 'imagify-rate-it', /* translators: %s is WordPress.org. */ 'title' => sprintf( __( 'Rate Imagify on %s', 'imagify' ), 'WordPress.org' ), 'href' => imagify_get_external_url( 'rate' ), 'meta' => [ 'target' => '_blank', ], ] ); // Quota & Profile informations. if ( ( defined( 'IMAGIFY_HIDDEN_ACCOUNT' ) && IMAGIFY_HIDDEN_ACCOUNT ) || ! get_imagify_option( 'api_key' ) ) { return; } $wp_admin_bar->add_menu( [ 'parent' => 'imagify', 'id' => 'imagify-upgrade-plan', 'title' => '
', ] ); $wp_admin_bar->add_menu( [ 'parent' => 'imagify', 'id' => 'imagify-profile', 'title' => wp_nonce_field( 'imagify-get-admin-bar-profile', 'imagifygetadminbarprofilenonce', false, false ) . '', ] ); } /** * Get admin bar profile output. * * @return void */ public function get_admin_bar_profile_callback() { imagify_check_nonce( 'imagify-get-admin-bar-profile', 'imagifygetadminbarprofilenonce' ); if ( ! imagify_get_context( 'wp' )->current_user_can( 'manage' ) ) { imagify_die(); } $views = Imagify_Views::get_instance(); $unconsumed_quota = $views->get_quota_percent(); $text = ''; $button_text = ''; $upgrade_link = ''; if ( $this->user->is_free() ) { $text = esc_html__( 'Upgrade your plan now for more!', 'imagify' ) . '