![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/www/wp-content/plugins/wp-rocket/inc/Engine/Admin/Settings/ |
<?php declare(strict_types=1); namespace WP_Rocket\Engine\Admin\Settings; use WP_Admin_Bar; trait AdminBarMenuTrait { /** * Admin menu to WP Rocket admin bar menu * * @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance. * @param string $id The menu id. * @param string $title The menu title. * @param string $action Menu action. */ protected function add_menu_to_admin_bar( WP_Admin_Bar $wp_admin_bar, string $id, string $title, string $action ) { if ( ! rocket_valid_key() ) { return; } if ( ! is_admin() ) { return; } $referer = ''; if ( ! empty( $_SERVER['REQUEST_URI'] ) ) { $referer_url = filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ), FILTER_SANITIZE_URL ); $referer = '&_wp_http_referer=' . rawurlencode( remove_query_arg( 'fl_builder', $referer_url ) ); } $wp_admin_bar->add_menu( [ 'parent' => 'wp-rocket', 'id' => $id, 'title' => $title, 'href' => wp_nonce_url( admin_url( "admin-post.php?action={$action}{$referer}" ), $action ), ] ); } /** * Admin menu to WP Rocket admin bar menu * * @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance. * @param string $id The menu id. * @param string $title The menu title. * @param string $action Menu action. * @param bool $context Context. * * @return void */ protected function add_url_menu_item_to_admin_bar( WP_Admin_Bar $wp_admin_bar, string $id, string $title, string $action, bool $context ) { global $post; if ( is_admin() ) { return; } if ( $post && ! rocket_can_display_options() ) { return; } if ( ! $context ) { return; } $referer = ''; if ( ! empty( $_SERVER['REQUEST_URI'] ) ) { $referer_url = filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ), FILTER_SANITIZE_URL ); /** * Filters to act on the referer url for the admin bar. * * @param string $uri Current uri. */ $referer = wpm_apply_filters_typed( 'string', 'rocket_admin_bar_referer', esc_url( $referer_url ) ); $referer = '&_wp_http_referer=' . rawurlencode( remove_query_arg( 'fl_builder', $referer ) ); } $wp_admin_bar->add_menu( [ 'parent' => 'wp-rocket', 'id' => $id, 'title' => $title, 'href' => wp_nonce_url( admin_url( 'admin-post.php?action=' . $action . $referer ), $action ), ] ); } /** * Add button to dashboard * * @param bool $context The feature context. * @param string $title The button title. * @param string $label Button label. * @param string $action Button action. * @param string $description Button description text. * * @return void */ public function dashboard_button( bool $context, string $title, string $label, string $action, string $description = '' ): void { if ( ! $context ) { return; } $data = [ 'action' => $action, 'title' => $title, 'label' => $label, 'description' => $description, ]; echo $this->generate( 'sections/clean-section', $data ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } }