LLMS_Forms_Admin_Bar
Add WP Admin Bar Nodes to enable editing of the currently-viewed form by a qualifying user
Contents
Source Source
File: includes/forms/class-llms-forms-admin-bar.php
class LLMS_Forms_Admin_Bar { /** * Constructor * * @since 5.0.0 * * @return void */ public function __construct() { add_action( 'admin_bar_menu', array( $this, 'add_menu_items' ), 999 ); } /** * Add view links to the admin menu bar for qualifying users. * * @since 3.7.0 * @since 3.16.0 Unknown. * @since 4.2.0 Updated icon. * @since 4.5.1 Use `should_display()` method to determine if the view manager should be added to the admin bar. * @since 4.16.0 Retrieve nodes to add from `get_menu_items_to_add()`. * * @param WP_Admin_Bar $wp_admin_bar Admin bar class instance. * @return void */ public function add_menu_items( $wp_admin_bar ) { if ( ! $this->should_display() ) { return; } $args = array( $this->get_current_location() ); $plan = llms_filter_input( INPUT_GET, 'plan', FILTER_SANITIZE_NUMBER_INT ); if ( $plan ) { $args[] = array( 'plan' => llms_get_post( $plan ) ); } $form = llms_get_form( ...$args ); $wp_admin_bar->add_node( array( 'id' => 'llms-edit-form', 'parent' => 'edit', 'title' => __( 'Edit Form', 'lifterlms' ), 'href' => get_edit_post_link( $form->ID ), ) ); } /** * Retrieve the form location for the current screen * * Must be on a checkout screen, the "edit account" tab of the dashboard, * or be viewing as a visitor on the main dashboard page with open registration enabled. * * @since 5.0.0 * * @return string|boolean Returns the location id as a string or `false` if not on a form location screen. */ private function get_current_location() { if ( is_llms_checkout() ) { return 'checkout'; } elseif ( is_llms_account_page() ) { $tab = LLMS_Student_Dashboard::get_current_tab( 'tab' ); if ( 'edit-account' === $tab ) { return 'account'; } if ( 'dashboard' === $tab && 'visitor' === llms_filter_input( INPUT_GET, 'llms-view-as' ) && llms_parse_bool( llms_get_open_registration_status() ) ) { return 'registration'; } } return false; } /** * Determine whether or an Edit Form node should be added to the admin bar. * * The user must be able to edit forms and be on a screen with a displayed form. * * @return boolean */ private function should_display() { $display = ( current_user_can( LLMS_Forms::instance()->get_capability() ) && $this->get_current_location() ); /** * Filters whether or not the "Edit Form" WP_Admin_Bar node is displayed * * @since 5.0.0 * * @param boolean $display Whether or not to display the node. */ return apply_filters( 'llms_should_display_wp_admin_bar_nodes_for_forms', $display ); } }
Expand full source code Collapse full source code View on GitHub
Methods Methods
- __construct — Constructor
- add_menu_items — Add view links to the admin menu bar for qualifying users.
- get_current_location — Retrieve the form location for the current screen
- should_display — Determine whether or an Edit Form node should be added to the admin bar.
Changelog Changelog
Version | Description |
---|---|
5.0.0 | Introduced. |