plugin = $plugin_instance; // récupère l’instance principale } public function admin_menu() { // var_dump($this->plugin->connect); // die(); add_menu_page( 'SpeedPage', 'SpeedPage', 'manage_options', 'speedpage_settings_page', [ $this->plugin->connect, 'admin_page' ], SPEEDPAGE_URL . '/assets/images/icon_flag_menu.svg', 99 ); } function speedpage_add_admin_bar_button( $wp_admin_bar ) { $svg_icon = SPEEDPAGE_URL . '/assets/images/logo.svg'; $svg_icon = SPEEDPAGE_URL . '/assets/images/icon_flag_white.svg'; //$svg_icon = SPEEDPAGE_URL . '/assets/images/icon_flag.svg'; $status = get_option( "speedpage_authentication" ) ? "" : "is disconnected"; // Node principal avec image et texte $main_html = '
SpeedPage ' . $status . '
'; $wp_admin_bar->add_node( [ 'id' => 'speedpage-main', 'title' => $main_html, 'href' => '#', // pas de lien principal 'meta' => [ 'class' => 'speedpage-admin-bar', ], ] ); // Node enfant (menu déroulant) $child_html = '

SpeedPage is ' . ( get_option( "speedpage_authentication" ) ? "connected" : "disconnected" ) . '

Settings Optimize my website
'; $wp_admin_bar->add_node( [ 'id' => 'speedpage-child', 'parent' => 'speedpage-main', 'title' => $child_html, 'href' => '#', // lien optionnel 'meta' => [ 'class' => 'speedpage-admin-bar-child', ], ] ); } ///////////////////////////////////////////////////// /// //////////////////////////////////////////////////// public function admin_page() { ?>

SpeedPage Settings

[ $this, 'sanitize_options' ], 'default' => [] ] ); add_settings_section( 'speedpage_main_section', 'Main Settings', null, 'speedpage' ); add_settings_field( 'lcp_optimizer', 'Activer LCP Optimizer', [ $this, 'field_lcp_optimizer' ], 'speedpage', 'speedpage_main_section' ); add_settings_field( 'defer_js', 'Activer JS Defer', [ $this, 'field_defer_js' ], 'speedpage', 'speedpage_main_section' ); } public function sanitize_options( $input ) { $output = []; $output['lcp_optimizer'] = isset( $input['lcp_optimizer'] ) ? 1 : 0; $output['defer_js'] = isset( $input['defer_js'] ) ? 1 : 0; return $output; } // Callback pour le champ LCP public function field_lcp_optimizer() { $options = get_option( 'speedpage_options' ); $checked = ! empty( $options['lcp_optimizer'] ) ? 'checked' : ''; echo ''; } // Callback pour le champ JS Defer public function field_defer_js() { $options = get_option( 'speedpage_options' ); $checked = ! empty( $options['defer_js'] ) ? 'checked' : ''; echo ''; } }