Trong bài viết này, chúng ta sẽ cùng tìm hiểu cách tạo một menu chính trong WordPress với tên “Mua Theme WP Giá Rẻ”, di chuyển tất cả các menu gốc vào submenu dưới menu chính này, và sử dụng SweetAlert2 để yêu cầu người dùng nhập một License Key để truy cập vào các tính năng.
Chức năng này dùng mục đích học tập thôi nhé, nên dùng ở web phụ nào đó đừng dùng site chính nhé.
Bước 1: Tạo Menu Chính
Chúng ta sẽ tạo một menu chính trong khu vực quản trị WordPress với tên gọi “Mua Theme WP Giá Rẻ”. Đây là menu mà tất cả các menu con sẽ được di chuyển vào.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function add_muathemewpgiare_menu() { add_menu_page( 'Mua Theme WP Giá Rẻ', // Tiêu đề trang 'Mua Theme WP Giá Rẻ', // Tiêu đề menu 'manage_options', // Quyền truy cập 'muathemewpgiare', // Slug của menu cha 'muathemewpgiare_page_content', // Hàm nội dung của menu 'dashicons-store', // Biểu tượng cho menu 6 // Vị trí trong menu ); } function muathemewpgiare_page_content() { echo '<h1>Chào mừng đến với Mua Theme WP Giá Rẻ!</h1>'; echo '<div id="muathemewpgiare-content">Content của trang sẽ ở đây.</div>'; } add_action('admin_menu', 'add_muathemewpgiare_menu'); |
Bước 2: Di Chuyển Các Menu Con Vào Submenu
Hàm tiếp theo sẽ di chuyển tất cả các menu hiện tại trong khu vực quản trị của WordPress vào submenu dưới menu “Mua Theme WP Giá Rẻ”. Chúng ta sẽ ẩn các menu gốc khỏi sidebar nhưng vẫn giữ các tính năng hoạt động.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | function move_all_menus_to_muathemewpgiare() { global $menu, $submenu; // Lưu lại danh sách các menu gốc $original_menus = $menu; // Duyệt qua tất cả các menu hiện tại trong admin foreach ($original_menus as $key => $menu_item) { // Tránh không di chuyển menu 'muathemewpgiare' vào chính nó if ($menu_item[2] === 'muathemewpgiare') { continue; } // Thêm các menu gốc vào submenu của 'muathemewpgiare' if (isset($menu_item[4]) && is_callable($menu_item[4])) { add_submenu_page( 'muathemewpgiare', // Menu cha $menu_item[0], // Tiêu đề của menu con $menu_item[0], // Tiêu đề hiển thị trong menu $menu_item[1], // Quyền truy cập $menu_item[2], // Slug của menu con $menu_item[4] // Hàm xử lý (callback function) ); } else { add_submenu_page( 'muathemewpgiare', // Menu cha $menu_item[0], // Tiêu đề của menu con $menu_item[0], // Tiêu đề hiển thị trong menu $menu_item[1], // Quyền truy cập $menu_item[2] // Slug của menu con ); } // Ẩn menu gốc khỏi sidebar remove_menu_page($menu_item[2]); // Kiểm tra các submenu con của menu này (nếu có) và di chuyển chúng vào submenu của menu cha if (isset($submenu[$menu_item[2]])) { foreach ($submenu[$menu_item[2]] as $submenu_key => $submenu_item) { add_submenu_page( 'muathemewpgiare', // Menu cha $submenu_item[0], // Tiêu đề của submenu con $submenu_item[0], // Tiêu đề hiển thị trong submenu $submenu_item[1], // Quyền truy cập $submenu_item[2], // Slug của submenu $submenu_item[3] // Hàm xử lý (callback function) ); // Ẩn submenu gốc khỏi sidebar remove_submenu_page($menu_item[2], $submenu_item[2]); } } } } add_action('admin_menu', 'move_all_menus_to_muathemewpgiare'); |
Bước 3: Hiển Thị Popup Yêu Cầu Nhập License Key
Chúng ta sẽ sử dụng SweetAlert2 để hiển thị một popup yêu cầu người dùng nhập License Key khi truy cập vào trang quản trị. Nếu người dùng nhập đúng key, hệ thống sẽ lưu key vào localStorage
để không yêu cầu nhập lại trong những lần sau.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | function add_sweetalert_popup() { ?> <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script> <script type="text/javascript"> jQuery(document).ready(function($) { var correctKey = 'YOUR_LICENSE_KEY'; // Thay YOUR_LICENSE_KEY bằng key hợp lệ của bạn // Kiểm tra xem key đã được lưu trong localStorage chưa if (!localStorage.getItem('entered_key')) { showLicensePopup(); } // Hàm hiển thị popup yêu cầu nhập license key function showLicensePopup() { Swal.fire({ title: 'Nhập License Key', input: 'text', inputLabel: 'Nhập key của bạn:', inputPlaceholder: 'Nhập key...', showCancelButton: false, confirmButtonText: 'Xác nhận', allowOutsideClick: false, // Không cho phép đóng ngoài popup allowEscapeKey: false, // Không cho phép đóng bằng phím escape inputValidator: (value) => { if (!value || value !== correctKey) { return 'Key không đúng! Vui lòng nhập lại.'; } } }).then((result) => { if (result.isConfirmed && result.value === correctKey) { localStorage.setItem('entered_key', result.value); // Lưu key vào localStorage Swal.fire('Thành công!', 'Key đã được nhập đúng!', 'success'); } else { // Nếu key sai, hiển thị lại popup nhập key showLicensePopup(); } }); } }); </script> <?php } add_action('admin_footer', 'add_sweetalert_popup'); |
Ngoài ra, các bạn có thể phát triển thêm một số chức năng khác dựa vào các form của bên mình chia sẻ.
Gợi ý chức năng có thể phát triển thêm:
Kết Luận
Với các bước trên, bạn đã tạo thành công một menu chính trong khu vực quản trị WordPress, di chuyển tất cả các menu gốc vào submenu dưới menu này và thêm một popup yêu cầu người dùng nhập License Key. Đây là một cách hữu ích để bảo vệ các tính năng quan trọng trên trang web và đảm bảo tính bảo mật cho các tùy chọn quản trị. Hãy tải file dưới để đảm bảo hoạt động trơn tru hơn nhé
Tên File | Thông tin | Hành động |
---|---|---|
Version 1.1 - Loại bỏ key ra khỏi menu | ||
Version 1.2- Phân cấp menu bậc 1 |
☕ Mời mình một ly cà phê nhỏ?
Nếu bạn thấy nội dung hữu ích, hãy ủng hộ một ly cà phê để mình có thêm động lực phát triển nhé!
LE TRUNG HOANG - 0766734539


- Hướng Dẫn Chặn Click Chuột Phải và Sao Chép Nội Dung Trong WordPress
- Sharecode website bán hàng áo mưa wordpress miễn phí fullcode
- TOP 5 Plugins WooCommerce Offers Nổi Bật Nhất Năm 2024
- NFTMAX — Sharecode Mẫu giao diện quản trị NFT
- Hướng dẫn và chia sẻ code thêm nút xóa và tăng giảm số lượng sản phẩm trong trang thanh toán WooCommerce cho Flatsome