e', ], ], $wp_admin_bar ); foreach ( $items as $item_id => $args ) { $wp_admin_bar->add_menu( [ 'parent' => 'wpforms-tools', 'id' => sanitize_key( $item_id ), 'title' => esc_html( $args['title'] ), 'href' => admin_url( $args['path'] ), ] ); /** * Fires after the Tools submenu item is registered. * * @since 1.9.2 * * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. */ do_action( "wpforms_admin_bar_menu_register_tools_submenu_{$item_id}_after", $wp_admin_bar ); } $this->register_action_scheduler_submenu( $wp_admin_bar ); } /** * Register Action Scheduler submenu. * * @since 1.9.3 * * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. */ private function register_action_scheduler_submenu( WP_Admin_Bar $wp_admin_bar ) { /** * Filters the Action Scheduler submenu items. * * @since 1.9.3 * * @param array $items Array of submenu items. * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. * * @return array */ $items = apply_filters( 'wpforms_admin_bar_menu_register_action_scheduler_submenu', [ 'wpforms-tools-action-scheduler-all' => [ 'title' => esc_html__( 'View All', 'wpforms-lite' ), 'path' => 'admin.php?page=wpforms-tools&view=action-scheduler&s=wpforms&orderby=hook&order=desc', ], 'wpforms-tools-action-scheduler-complete' => [ 'title' => esc_html__( 'Completed Actions', 'wpforms-lite' ), 'path' => 'admin.php?page=wpforms-tools&view=action-scheduler&s=wpforms&status=complete&orderby=hook&order=desc', ], 'wpforms-tools-action-scheduler-failed' => [ 'title' => esc_html__( 'Failed Actions', 'wpforms-lite' ), 'path' => 'admin.php?page=wpforms-tools&view=action-scheduler&s=wpforms&status=failed&orderby=hook&order=desc', ], 'wpforms-tools-action-scheduler-pending' => [ 'title' => esc_html__( 'Pending Actions', 'wpforms-lite' ), 'path' => 'admin.php?page=wpforms-tools&view=action-scheduler&s=wpforms&status=pending&orderby=hook&order=desc', ], 'wpforms-tools-action-scheduler-past-due' => [ 'title' => esc_html__( 'Past Due Actions', 'wpforms-lite' ), 'path' => 'admin.php?page=wpforms-tools&view=action-scheduler&s=wpforms&status=past-due&orderby=hook&order=desc', ], ], $wp_admin_bar ); foreach ( $items as $item_id => $args ) { $wp_admin_bar->add_menu( [ 'parent' => 'wpforms-tools-action-scheduler', 'id' => sanitize_key( $item_id ), 'title' => esc_html( $args['title'] ), 'href' => admin_url( $args['path'] ), ] ); /** * Fires after the Action Scheduler submenu item is registered. * * @since 1.9.3 * * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. */ do_action( "wpforms_admin_bar_menu_register_action_scheduler_submenu_{$item_id}_after", $wp_admin_bar ); } } /** * Render primary top-level admin bar menu 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 = ''; $notifications = $this->has_notifications(); if ( $notifications ) { $count = $notifications < 10 ? $notifications : '!'; $indicator = '
'; } $wp_admin_bar->add_menu( [ 'id' => 'wpforms-menu', 'title' => 'WPForms' . $indicator, 'href' => admin_url( 'admin.php?page=wpforms-overview' ), ] ); } /** * Render Notifications admin bar menu 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' => esc_html__( 'Notifications', 'wpforms-lite' ) . ' ', 'href' => admin_url( 'admin.php?page=wpforms-overview' ), ] ); } /** * Render All Forms admin bar menu 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' => esc_html__( 'All Forms', 'wpforms-lite' ), 'href' => admin_url( 'admin.php?page=wpforms-overview' ), ] ); } /** * Render All Payments admin bar menu item. * * @since 1.8.4 * * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. */ public function all_payments_menu( WP_Admin_Bar $wp_admin_bar ) { $wp_admin_bar->add_menu( [ 'parent' => 'wpforms-menu', 'id' => 'wpforms-payments', 'title' => esc_html__( 'Payments', 'wpforms-lite' ), 'href' => add_query_arg( [ 'page' => 'wpforms-payments', ], admin_url( 'admin.php' ) ), ] ); } /** * Render Add New admin bar menu 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' => esc_html__( 'Add New', 'wpforms-lite' ), 'href' => admin_url( 'admin.php?page=wpforms-builder' ), ] ); } /** * Render Settings admin bar menu item. * * @since 1.9.2 * * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. */ public function settings_menu( WP_Admin_Bar $wp_admin_bar ) { $wp_admin_bar->add_menu( [ 'parent' => 'wpforms-menu', 'id' => 'wpforms-settings', 'title' => esc_html__( 'Settings', 'wpforms-lite' ), 'href' => admin_url( 'admin.php?page=wpforms-settings' ), ] ); } /** * Add Tools menu to the admin bar. * * @since 1.9.3 * * @param WP_Admin_Bar $wp_admin_bar The admin bar object. */ public function tools_menu( WP_Admin_Bar $wp_admin_bar ) { $wp_admin_bar->add_menu( [ 'parent' => 'wpforms-menu', 'id' => 'wpforms-tools', 'title' => esc_html__( 'Tools', 'wpforms-lite' ), 'href' => admin_url( 'admin.php?page=wpforms-tools' ), ] ); } /** * Render Community admin bar menu 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' => esc_html__( 'Community', 'wpforms-lite' ), 'href' => 'https://www.facebook.com/groups/wpformsvip/', 'meta' => [ 'target' => '_blank', 'rel' => 'noopener noreferrer', ], ] ); } /** * Render Support admin bar menu item. * * @since 1.6.0 * @since 1.7.4 Update the `Support` item title to `Help Docs`. * * @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object. */ public function support_menu( WP_Admin_Bar $wp_admin_bar ) { $href = add_query_arg( [ 'utm_campaign' => wpforms()->is_pro() ? 'plugin' : 'liteplugin', 'utm_medium' => 'admin-bar', 'utm_source' => 'WordPress', 'utm_content' => 'Documentation', ], 'https://wpforms.com/docs/' ); $wp_admin_bar->add_menu( [ 'parent' => 'wpforms-menu', 'id' => 'wpforms-help-docs', 'title' => esc_html__( 'Help Docs', 'wpforms-lite' ), 'href' => $href, 'meta' => [ 'target' => '_blank', 'rel' => 'noopener noreferrer', ], ] ); } /** * Get form data for JS to modify the admin bar menu. * * @since 1.6.5 * @since 1.8.4 Added the View Payments link. * * @param array $forms Forms array. * * @return array */ protected function get_forms_data( $forms ) { $data = [ 'has_notifications' => $this->has_notifications(), 'edit_text' => esc_html__( 'Edit Form', 'wpforms-lite' ), 'entry_text' => esc_html__( 'View Entries', 'wpforms-lite' ), 'payment_text' => esc_html__( 'View Payments', 'wpforms-lite' ), 'survey_text' => esc_html__( 'Survey Results', 'wpforms-lite' ), 'forms' => [], ]; $admin_url = admin_url( 'admin.php' ); foreach ( $forms as $form ) { $form_id = absint( $form['id'] ); if ( empty( $form_id ) ) { continue; } /* translators: %d - form ID. */ $form_title = sprintf( esc_html__( 'Form ID: %d', 'wpforms-lite' ), $form_id ); if ( ! empty( $form['settings']['form_title'] ) ) { $form_title = wp_html_excerpt( sanitize_text_field( $form['settings']['form_title'] ), 99, '…' ); } $has_payments = wpforms()->obj( 'payment' )->get_by( 'form_id', $form_id ); $data['forms'][] = apply_filters( 'wpforms_admin_adminbarmenu_get_form_data', [ 'form_id' => $form_id, 'title' => $form_title, 'edit_url' => add_query_arg( [ 'page' => 'wpforms-builder', 'view' => 'fields', 'form_id' => $form_id, ], $admin_url ), 'payments_url' => $has_payments ? add_query_arg( [ 'page' => 'wpforms-payments', 'form_id' => $form_id, ], $admin_url ) : '', ] ); } return $data; } /** * Add form(s) data to the page. * * @since 1.6.5 * * @param array $forms Forms array. */ public function menu_forms_data_html( $forms ) { if ( empty( $forms ) ) { return; } // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped echo wpforms_render( 'admin-bar-menu', [ 'forms_data' => $this->get_forms_data( $forms ), ], true ); } }شماره موبایل یا ایمیل را وارد کنید
پسورد را وارد کنید
ثبت نام