File Editor
Directories:
.. (Back)
Pages
Files:
AdminBarMenu.php
Challenge.php
FlyoutMenu.php
Loader.php
Notifications.php
Create New File
Create
Edit File: AdminBarMenu.php
<?php namespace WPForms\Admin; /** * WPForms admin bar menu. * * @since 1.6.0 */ class AdminBarMenu { /** * Initialize class. * * @since 1.6.0 */ public function init() { $this->hooks(); } /** * Register hooks. * * @since 1.6.0 */ public function hooks() { add_action( 'wp_enqueue_scripts', [ $this, 'enqueues' ] ); add_action( 'admin_enqueue_scripts', [ $this, 'enqueues' ] ); add_action( 'admin_bar_menu', [ $this, 'register' ], 999 ); } /** * Check if current user has access to see admin bar menu. * * @since 1.6.0 * * @return bool */ public function has_access() { $access = false; if ( is_user_logged_in() && wpforms_current_user_can() && ! wpforms_setting( 'hide-admin-bar', false ) ) { $access = true; } return apply_filters( 'wpforms_admin_adminbarmenu_has_access', $access ); } /** * Check if new notifications are available. * * @since 1.6.0 * * @return bool */ public function has_notifications() { return wpforms()->get( 'notifications' )->get_count(); } /** * Enqueue styles. * * @since 1.6.0 */ public function enqueues() { if ( ! $this->has_access() ) { return; } $min = wpforms_get_min_suffix(); wp_enqueue_style( 'wpforms-admin-bar', WPFORMS_PLUGIN_URL . "assets/css/admin-bar{$min}.css", [], WPFORMS_VERSION ); } /** * Register and render admin menu bar items. * * @since 1.6.0 * * @param \WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. */ public function register( \WP_Admin_Bar $wp_admin_bar ) { if ( ! $this->has_access() ) { return; } $items = apply_filters( 'wpforms_admin_adminbarmenu_register', [ 'main_menu', 'notification_menu', 'forms_menu', 'all_forms_menu', 'add_new_menu', 'community_menu', 'support_menu', ], $wp_admin_bar ); foreach ( $items as $item ) { $this->{ $item }( $wp_admin_bar ); do_action( "wpforms_admin_adminbarmenu_register_{$item}_after", $wp_admin_bar ); } } /** * Render primary top-level admin menu bar item. * * @since 1.6.0 * * @param \WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. */ public function main_menu( \WP_Admin_Bar $wp_admin_bar ) { $indicator = ''; if ( $this->has_notifications() ) { $count = $this->has_notifications() < 10 ? $this->has_notifications() : '!'; $indicator = ' <div class="wpforms-menu-notification-counter"><span>' . $count . '</span></div>'; } $wp_admin_bar->add_menu( [ 'id' => 'wpforms-menu', 'title' => 'WPForms' . $indicator, 'href' => admin_url( 'admin.php?page=wpforms-overview' ), ] ); } /** * Render Notifications admin menu bar item. * * @since 1.6.0 * * @param \WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. */ public function notification_menu( \WP_Admin_Bar $wp_admin_bar ) { if ( ! $this->has_notifications() ) { return; } $wp_admin_bar->add_menu( [ 'parent' => 'wpforms-menu', 'id' => 'wpforms-notifications', 'title' => __( 'Notifications', 'wpforms-lite' ) . ' <div class="wpforms-menu-notification-indicator"></div>', 'href' => admin_url( 'admin.php?page=wpforms-overview' ), ] ); } /** * Render individual forms admin menu bar items and sub-items. * * @since 1.6.0 * * @param \WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. */ public function forms_menu( \WP_Admin_Bar $wp_admin_bar ) { if ( is_admin() ) { return; } $forms = wpforms()->frontend->forms; $x = 0; if ( empty( $forms ) ) { return; } foreach ( $forms as $form ) { $x++; $form_id = absint( $form['id'] ); $class = 'wpforms-menu-form'; $this->displaying_forms = true; if ( $this->has_notifications() && $x === 1 ) { $class .= ' wpforms-menu-form-notifications'; } if ( $x === count( $forms ) ) { $class .= ' wpforms-menu-form-last'; } // Shrink the long form title. $form_title = sanitize_text_field( $form['settings']['form_title'] ); $form_title = mb_strlen( $form_title ) > 99 ? mb_substr( $form_title, 0, 99 ) . '…' : $form_title; $wp_admin_bar->add_menu( [ 'parent' => 'wpforms-menu', 'id' => 'wpforms-form-id-' . $form_id, 'title' => $form_title, 'href' => '#wpforms-' . $form_id, 'meta' => [ 'class' => $class, ], ] ); $wp_admin_bar->add_menu( [ 'parent' => 'wpforms-form-id-' . $form_id, 'id' => 'wpforms-edit-form-id-' . $form_id, 'title' => __( 'Edit Form', 'wpforms-lite' ), 'href' => admin_url( 'admin.php?page=wpforms-builder&view=fields&form_id=' . $form_id ), ] ); do_action( 'wpforms_admin_adminbarmenu_forms_menu_after', $wp_admin_bar, $form ); } } /** * Render All Forms admin menu bar item. * * @since 1.6.0 * * @param \WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. */ public function all_forms_menu( \WP_Admin_Bar $wp_admin_bar ) { $wp_admin_bar->add_menu( [ 'parent' => 'wpforms-menu', 'id' => 'wpforms-forms', 'title' => __( 'All Forms', 'wpforms-lite' ), 'href' => admin_url( 'admin.php?page=wpforms-overview' ), ] ); } /** * Render Add New admin menu bar item. * * @since 1.6.0 * * @param \WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. */ public function add_new_menu( \WP_Admin_Bar $wp_admin_bar ) { $wp_admin_bar->add_menu( [ 'parent' => 'wpforms-menu', 'id' => 'wpforms-add-new', 'title' => __( 'Add New', 'wpforms-lite' ), 'href' => admin_url( 'admin.php?page=wpforms-builder' ), ] ); } /** * Render Community admin menu bar item. * * @since 1.6.0 * * @param \WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. */ public function community_menu( \WP_Admin_Bar $wp_admin_bar ) { $wp_admin_bar->add_menu( [ 'parent' => 'wpforms-menu', 'id' => 'wpforms-community', 'title' => __( 'Community', 'wpforms-lite' ), 'href' => 'https://www.facebook.com/groups/wpformsvip/', 'meta' => [ 'target' => '_blank', 'rel' => 'noopener noreferrer', ], ] ); } /** * Render Support admin menu bar item. * * @since 1.6.0 * * @param \WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. */ public function support_menu( \WP_Admin_Bar $wp_admin_bar ) { $wp_admin_bar->add_menu( [ 'parent' => 'wpforms-menu', 'id' => 'wpforms-support', 'title' => __( 'Support', 'wpforms-lite' ), 'href' => 'https://wpforms.com/docs/', 'meta' => [ 'target' => '_blank', 'rel' => 'noopener noreferrer', ], ] ); } }
Save Changes
Rename File
Rename