fix(admin): arahkan menu induk langsung ke pengaturan dan tambahkan shortcut admin bar

This commit is contained in:
Mas Budi Kusuma
2026-09-15 21:16:03 +07:00
parent ffda373293
commit 09b0cf080c
+123 -14
View File
@@ -1,15 +1,123 @@
<?php
/**
* Modul Pengaturan Menu Admin dan Toolbar EduKarsa
*/
// 1. REGISTRASI MENU ADMIN SIDEBAR
function edukarsa_admin_menu() {
add_menu_page( 'EduKarsa', 'EduKarsa', 'manage_options', 'edukarsa_main_menu', 'edukarsa_welcome_page_html', 'dashicons-welcome-learn-more', 2 );
add_submenu_page( 'edukarsa_main_menu', 'Tentang Tema', 'Tentang Tema', 'manage_options', 'edukarsa_main_menu', 'edukarsa_welcome_page_html' );
add_submenu_page( 'edukarsa_main_menu', 'Pengaturan Utama', 'Pengaturan Utama', 'manage_options', 'edukarsa_settings', 'edukarsa_settings_page_html' );
add_submenu_page( 'edukarsa_main_menu', 'Semua Slider', '🌟 Slider Banner', 'manage_options', 'edit.php?post_type=slider' );
add_submenu_page( 'edukarsa_main_menu', 'Semua Program', '📚 Program Kami', 'manage_options', 'edit.php?post_type=program' );
add_submenu_page( 'edukarsa_main_menu', 'Semua Keunggulan', '⭐ Keunggulan', 'manage_options', 'edit.php?post_type=keunggulan' );
add_submenu_page( 'edukarsa_main_menu', 'Semua Milestone', '🏆 Milestone', 'manage_options', 'edit.php?post_type=milestone' );
// Menu Induk langsung mengarah ke halaman Pengaturan Utama
add_menu_page(
'EduKarsa',
'EduKarsa',
'manage_options',
'edukarsa_settings',
'edukarsa_settings_page_html',
'dashicons-welcome-learn-more',
2
);
add_submenu_page(
'edukarsa_settings',
'Pengaturan Utama',
'⚙️ Pengaturan Utama',
'manage_options',
'edukarsa_settings',
'edukarsa_settings_page_html'
);
add_submenu_page(
'edukarsa_settings',
'Semua Slider',
'🌟 Slider Banner',
'manage_options',
'edit.php?post_type=slider'
);
add_submenu_page(
'edukarsa_settings',
'Semua Program',
'📚 Program Kami',
'manage_options',
'edit.php?post_type=program'
);
add_submenu_page(
'edukarsa_settings',
'Semua Keunggulan',
'⭐ Keunggulan',
'manage_options',
'edit.php?post_type=keunggulan'
);
add_submenu_page(
'edukarsa_settings',
'Semua Milestone',
'🏆 Milestone',
'manage_options',
'edit.php?post_type=milestone'
);
}
add_action( 'admin_menu', 'edukarsa_admin_menu' );
// 2. SHORTCUT MENU DI TOPBAR (ADMIN BAR) SEBELAH TOMBOL '+ BARU'
function edukarsa_admin_bar_shortcut( $wp_admin_bar ) {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
// Node Utama: Tepat di samping '+ Baru' (prioritas tombol '+ Baru' bawaan WP adalah 70)
$wp_admin_bar->add_node( array(
'id' => 'edukarsa-topbar-menu',
'title' => '<span class="ab-icon dashicons dashicons-welcome-learn-more" style="top:2px;"></span><span class="ab-label">EduKarsa</span>',
'href' => admin_url( 'admin.php?page=edukarsa_settings' ),
'meta' => array(
'title' => 'Buka Pengaturan Tema EduKarsa',
),
) );
// Submenu Pintas 1: Pengaturan Utama
$wp_admin_bar->add_node( array(
'id' => 'edukarsa-sub-settings',
'parent' => 'edukarsa-topbar-menu',
'title' => '⚙️ Pengaturan Utama',
'href' => admin_url( 'admin.php?page=edukarsa_settings' ),
) );
// Submenu Pintas 2: Slider Banner
$wp_admin_bar->add_node( array(
'id' => 'edukarsa-sub-slider',
'parent' => 'edukarsa-topbar-menu',
'title' => '🌟 Slider Banner',
'href' => admin_url( 'edit.php?post_type=slider' ),
) );
// Submenu Pintas 3: Program Kami
$wp_admin_bar->add_node( array(
'id' => 'edukarsa-sub-program',
'parent' => 'edukarsa-topbar-menu',
'title' => '📚 Program Kami',
'href' => admin_url( 'edit.php?post_type=program' ),
) );
// Submenu Pintas 4: Keunggulan
$wp_admin_bar->add_node( array(
'id' => 'edukarsa-sub-keunggulan',
'parent' => 'edukarsa-topbar-menu',
'title' => '⭐ Keunggulan',
'href' => admin_url( 'edit.php?post_type=keunggulan' ),
) );
// Submenu Pintas 5: Milestone
$wp_admin_bar->add_node( array(
'id' => 'edukarsa-sub-milestone',
'parent' => 'edukarsa-topbar-menu',
'title' => '🏆 Milestone',
'href' => admin_url( 'edit.php?post_type=milestone' ),
) );
}
add_action( 'admin_bar_menu', 'edukarsa_admin_bar_shortcut', 80 );
// 3. REGISTRASI SELURUH PENGATURAN TEMA
function edukarsa_register_settings() {
$options = array(
// Dynamic Appearance
@@ -21,7 +129,7 @@ function edukarsa_register_settings() {
// Logo
'edukarsa_header_logo',
// Custom Teks (Keunggulan & News)
// Custom Teks
'edukarsa_keunggulan_subtitle', 'edukarsa_keunggulan_title', 'edukarsa_news_title',
// Stats Fields
@@ -44,11 +152,7 @@ function edukarsa_register_settings() {
}
add_action( 'admin_init', 'edukarsa_register_settings' );
function edukarsa_welcome_page_html() {
if ( ! current_user_can( 'manage_options' ) ) return;
echo '<div class="wrap" style="max-width:900px;"><h1>EduKarsa Dashboard</h1><p>Gunakan Pengaturan Utama untuk memodifikasi Halaman Depan, Desain Warna, dan Tipografi.</p></div>';
}
// 4. TAMPILAN FORM PENGATURAN UTAMA
function edukarsa_settings_page_html() {
if ( ! current_user_can( 'manage_options' ) ) return;
$font_current = get_option( 'edukarsa_font_choice', 'plus_jakarta_sans' );
@@ -68,7 +172,7 @@ function edukarsa_settings_page_html() {
<form action="options.php" method="post">
<?php settings_fields( 'edukarsa_settings_group' ); ?>
<!-- PANEL BARU: TIPOGRAFI & SKEMA WARNA -->
<!-- PANEL: TIPOGRAFI & SKEMA WARNA -->
<div class="edukarsa-panel">
<h2>🎨 Tipografi & Skema Warna Global</h2>
<table class="form-table">
@@ -118,6 +222,7 @@ function edukarsa_settings_page_html() {
</table>
</div>
<!-- PANEL 1: LOGO & STATISTIK -->
<div class="edukarsa-panel">
<h2>1. Header, Logo & Slider</h2>
<table class="form-table">
@@ -141,6 +246,7 @@ function edukarsa_settings_page_html() {
</table>
</div>
<!-- PANEL 2: ABOUT -->
<div class="edukarsa-panel">
<h2>2. Tentang Kami</h2>
<div class="toggle-row"><input type="checkbox" class="section-toggle" data-target=".row-about" name="edukarsa_tampil_about" value="1" <?php checked(1, get_option('edukarsa_tampil_about', 1)); ?> /> <label>Tampilkan Seksi About</label></div>
@@ -153,6 +259,7 @@ function edukarsa_settings_page_html() {
</table>
</div>
<!-- PANEL 3: PROGRAM & KEUNGGULAN -->
<div class="edukarsa-panel">
<h2>3. Program, Milestones, & Keunggulan</h2>
<div class="toggle-row"><input type="checkbox" name="edukarsa_tampil_milestone" value="1" <?php checked(1, get_option('edukarsa_tampil_milestone', 1)); ?> /> <label>Tampilkan 4 Milestone</label></div>
@@ -165,6 +272,7 @@ function edukarsa_settings_page_html() {
</table>
</div>
<!-- PANEL 4: VIDEO & PARALLAX -->
<div class="edukarsa-panel">
<h2>4. Video & Latar Parallax (Area Biru Tengah)</h2>
<table class="form-table">
@@ -179,6 +287,7 @@ function edukarsa_settings_page_html() {
</table>
</div>
<!-- PANEL 5: CTA & FOOTER -->
<div class="edukarsa-panel">
<h2>5. CTA, Berita, Footer & Sosial Media</h2>
<div class="toggle-row"><input type="checkbox" class="section-toggle" data-target=".row-cta" name="edukarsa_tampil_cta" value="1" <?php checked(1, get_option('edukarsa_tampil_cta', 1)); ?> /> <label>Tampilkan CTA PPDB</label></div>