* Render Add New admin bar menu item.
* @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object.
public function add_new_menu( WP_Admin_Bar $wp_admin_bar ) {
'parent' => 'wpforms-menu',
'id' => 'wpforms-add-new',
'title' => esc_html__( 'Add New Form', 'wpforms-lite' ),
'href' => admin_url( 'admin.php?page=wpforms-builder' ),
* Render Settings admin bar menu item.
* @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object.
public function settings_menu( WP_Admin_Bar $wp_admin_bar ) {
'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.
* @param WP_Admin_Bar $wp_admin_bar The admin bar object.
public function tools_menu( WP_Admin_Bar $wp_admin_bar ) {
'parent' => 'wpforms-menu',
'title' => esc_html__( 'Tools', 'wpforms-lite' ),
'href' => admin_url( 'admin.php?page=wpforms-tools' ),
* Render Community admin bar menu item.
* @param WP_Admin_Bar $wp_admin_bar WordPress Admin Bar object.
public function community_menu( WP_Admin_Bar $wp_admin_bar ) {
'parent' => 'wpforms-menu',
'id' => 'wpforms-community',
'title' => esc_html__( 'Community', 'wpforms-lite' ),
'href' => 'https://www.facebook.com/groups/wpformsvip/',
'rel' => 'noopener noreferrer',
* Render Support admin bar menu item.
* @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 ) {
'utm_campaign' => wpforms()->is_pro() ? 'plugin' : 'liteplugin',
'utm_medium' => 'admin-bar',
'utm_source' => 'WordPress',
'utm_content' => 'Documentation',
'https://wpforms.com/docs/'
'parent' => 'wpforms-menu',
'id' => 'wpforms-help-docs',
'title' => esc_html__( 'Help Docs', 'wpforms-lite' ),
'rel' => 'noopener noreferrer',
* Get form data for JS to modify the admin bar menu.
* @since 1.8.4 Added the View Payments link.
* @param array $forms Forms array.
protected function get_forms_data( $forms ) {
'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' ),
$admin_url = admin_url( 'admin.php' );
foreach ( $forms as $form ) {
$form_id = absint( $form['id'] );
if ( empty( $form_id ) ) {
/* 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'] ),
$has_payments = wpforms()->obj( 'payment' )->get_by( 'form_id', $form_id );
$data['forms'][] = apply_filters(
'wpforms_admin_adminbarmenu_get_form_data',
'edit_url' => add_query_arg(
'page' => 'wpforms-builder',
'payments_url' => $has_payments ? add_query_arg(
'page' => 'wpforms-payments',
* Add form(s) data to the page.
* @param array $forms Forms array.
public function menu_forms_data_html( $forms ) {
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
'forms_data' => $this->get_forms_data( $forms ),