Đoạn mã dưới đây sẽ giúp bạn tạo một trải nghiệm đăng xuất nhanh với SweetAlert2 trên WordPress mà không cần chuyển đến trang xác nhận đăng xuất. Chức năng này mang lại sự thuận tiện cho người dùng khi có thể đăng xuất chỉ bằng một cú nhấp chuột. Đồng thời, nó sử dụng SweetAlert2 để hiển thị thông báo đếm ngược sinh động, tăng cường trải nghiệm người dùng.
Tại sao nên sử dụng tính năng đăng xuất nhanh với SweetAlert2?
Khi trang web yêu cầu quá nhiều bước để đăng xuất, người dùng có thể cảm thấy khó chịu hoặc mất thời gian. Tính năng đăng xuất nhanh với SweetAlert2 giúp:
- Tiết kiệm thời gian: Chỉ cần một cú nhấp chuột để thực hiện đăng xuất.
- Trải nghiệm người dùng tốt hơn: Thông báo đếm ngược với SweetAlert2 giúp quá trình đăng xuất trở nên sinh động và chuyên nghiệp.
- Bảo mật cao hơn: Đăng xuất tự động và không cần xác nhận giúp giảm thiểu các rủi ro bảo mật.
Hướng dẫn chi tiết mã đăng xuất nhanh với SweetAlert2
1. Chức năng chính của đoạn mã
Đoạn mã này có hai phần:
- Hàm
ajax_logout
: Đăng xuất người dùng ngay lập tức qua AJAX và trả về thông báo thành công. - Hàm
add_logout_script
: Thêm các thư viện cần thiết và JavaScript vào footer, giúp thực hiện đếm ngược và gọi AJAX để đăng xuất.
2. Chi tiết mã và cách thức hoạt động
Phần 1: Đăng xuất người dùng qua AJAX
1 2 3 4 5 6 | function ajax_logout() { wp_logout(); // Thực hiện đăng xuất wp_send_json_success(array('message' => 'Đăng xuất thành công!')); // Trả về thông báo thành công } add_action('wp_ajax_nopriv_ajax_logout', 'ajax_logout'); add_action('wp_ajax_ajax_logout', 'ajax_logout'); |
wp_logout()
: Hàm đăng xuất người dùng trên WordPress.wp_send_json_success(...)
: Gửi phản hồi thành công với định dạng JSON, chứa thông báo “Đăng xuất thành công!”.
Phần 2: Thêm SweetAlert2 và JavaScript để đăng xuất
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 57 58 59 60 61 62 63 64 | function add_logout_script() { ?> <!-- Thư viện SweetAlert2 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@11/dist/sweetalert2.min.css"> <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script> <script> document.addEventListener("DOMContentLoaded", function() { const logoutLinks = document.querySelectorAll('a[href*="customer-logout"]'); // Tìm link đăng xuất logoutLinks.forEach(function(link) { link.addEventListener('click', function(event) { event.preventDefault(); // Ngăn chặn hành động mặc định let countdown = 10; // Số giây đếm ngược Swal.fire({ title: 'Đang đăng xuất...', html: 'Vui lòng chờ <b></b> giây...', timer: countdown * 1000, timerProgressBar: true, allowOutsideClick: false, allowEscapeKey: false, showConfirmButton: false, didOpen: () => { const b = Swal.getHtmlContainer().querySelector('b'); const timerInterval = setInterval(() => { countdown--; b.textContent = countdown; }, 1000); Swal.showLoading(); }, willClose: () => { fetch('<?php echo admin_url('admin-ajax.php'); ?>?action=ajax_logout', { method: 'POST', credentials: 'same-origin' }) .then(response => response.json()) .then(data => { if (data.success) { Swal.fire({ icon: 'success', title: 'Đăng xuất thành công!', showConfirmButton: false, timer: 2000 }).then(() => { window.location.href = '<?php echo home_url(); ?>'; // Chuyển hướng về trang chủ }); } }) .catch(error => { Swal.fire({ icon: 'error', title: 'Có lỗi xảy ra!', text: 'Không thể đăng xuất, vui lòng thử lại.' }); }); } }); }); }); }); </script> <?php } add_action('wp_footer', 'add_logout_script'); |
- Thêm thư viện SweetAlert2: CSS và JS của SweetAlert2 được thêm vào để tạo popup thông báo đẹp mắt.
- Đếm ngược thời gian đăng xuất: Khi người dùng nhấn vào link đăng xuất, một popup đếm ngược 10 giây xuất hiện, tạo sự chuẩn bị cho người dùng trước khi đăng xuất.
- Gọi AJAX để đăng xuất: Sau khi đếm ngược hoàn tất, AJAX được kích hoạt để gọi hàm
ajax_logout
, thực hiện đăng xuất. - Thông báo thành công: Sau khi đăng xuất thành công, SweetAlert2 hiển thị thông báo thành công và tự động chuyển hướng về trang chủ.
3. Lợi ích của đoạn mã này
- Đăng xuất nhanh chóng, không cần xác nhận: Giúp người dùng thoát khỏi tài khoản mà không phải qua các bước xác nhận.
- Tăng tính bảo mật: Đăng xuất tự động và không yêu cầu xác nhận, giúp ngăn ngừa truy cập trái phép từ người dùng khác.
- Trải nghiệm người dùng mượt mà: Giao diện đếm ngược sinh động giúp quá trình đăng xuất trở nên chuyên nghiệp và thuận tiện.
Kết luận
Đoạn mã trên mang lại trải nghiệm đăng xuất tài khoản ngay lập tức không qua trang xác nhận nhanh chóng và thuận tiện cho người dùng WordPress. Khi tích hợp tính năng này vào trang web, bạn có thể cải thiện trải nghiệm người dùng, đặc biệt là khi trang web có yêu cầu bảo mật cao hoặc đối tượng người dùng lớn. Dưới đây là code hoàn chỉnh, các bạn chỉ cần bỏ vào funtion.php là xong nhé.
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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | // Đăng xuất tài khoản ngay lập tức không qua trang xác nhận function ajax_logout() { // Thực hiện đăng xuất wp_logout(); // Trả về thông báo thành công wp_send_json_success(array('message' => 'Đăng xuất thành công!')); } add_action('wp_ajax_nopriv_ajax_logout', 'ajax_logout'); add_action('wp_ajax_ajax_logout', 'ajax_logout'); // Thêm SweetAlert2 và JavaScript vào footer function add_logout_script() { ?> <!-- SweetAlert2 CSS và JS --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/sweetalert2@11/dist/sweetalert2.min.css"> <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script> <script> document.addEventListener("DOMContentLoaded", function() { // Lấy tất cả các link đăng xuất trên trang const logoutLinks = document.querySelectorAll('a[href*="customer-logout"]'); logoutLinks.forEach(function(link) { link.addEventListener('click', function(event) { event.preventDefault(); // Ngăn chặn hành động mặc định của link let countdown = 10; // Số giây đếm ngược Swal.fire({ title: 'Đang đăng xuất...', html: 'Vui lòng chờ <b></b> giây...', timer: countdown * 1000, timerProgressBar: true, allowOutsideClick: false, allowEscapeKey: false, showConfirmButton: false, didOpen: () => { const b = Swal.getHtmlContainer().querySelector('b'); const timerInterval = setInterval(() => { countdown--; b.textContent = countdown; }, 1000); // Khi thông báo đã mở, dừng đếm ngược khi hết thời gian Swal.showLoading(); }, willClose: () => { // Gửi yêu cầu AJAX để đăng xuất sau khi đếm ngược kết thúc fetch('<?php echo admin_url('admin-ajax.php'); ?>?action=ajax_logout', { method: 'POST', credentials: 'same-origin' }) .then(response => response.json()) .then(data => { if (data.success) { Swal.fire({ icon: 'success', title: 'Đăng xuất thành công!', showConfirmButton: false, timer: 2000 }).then(() => { // Sau khi hiển thị thông báo, chuyển hướng về trang chủ window.location.href = '<?php echo home_url(); ?>'; }); } }) .catch(error => { Swal.fire({ icon: 'error', title: 'Có lỗi xảy ra!', text: 'Không thể đăng xuất, vui lòng thử lại.' }); }); } }); }); }); }); </script> <?php } add_action('wp_footer', 'add_logout_script'); |
Hy vọng bài viết này đã giúp bạn hiểu rõ cách cài đặt và lợi ích của tính năng đăng xuất nhanh với SweetAlert2 trên WordPress. Hãy thử áp dụng ngay để nâng cao trải nghiệm cho khách hàng của mình!
Câu hỏi thường gặp
Tính năng này giúp người dùng đăng xuất ngay lập tức chỉ với một cú nhấp chuột, không cần qua trang xác nhận. SweetAlert2 tạo trải nghiệm đăng xuất sinh động và thuận tiện hơn.
SweetAlert2 là một thư viện JavaScript giúp tạo các thông báo popup đẹp mắt, chuyên nghiệp, dễ tùy chỉnh và được sử dụng rộng rãi trên các trang web.
SweetAlert2 được tích hợp bằng cách thêm mã CSS và JavaScript vào footer của trang WordPress thông qua PHP. Trong đoạn mã, thư viện được liên kết từ CDN và hiển thị qua popup.
Các bạn có thể xem qua một số bài viết hướng dẫn của MuathemeWPgiare dưới đây nhé:
Tính năng này sử dụng AJAX để gửi yêu cầu đăng xuất mà không cần tải lại trang. Sau đó, SweetAlert2 sẽ hiển thị thông báo đếm ngược và tự động đăng xuất khi hết thời gian.
Có. Thời gian đếm ngược được thiết lập trong mã JavaScript và bạn có thể điều chỉnh theo ý muốn (ví dụ: tăng lên hoặc giảm xuống từ 10 giây).
Có, bạn có thể tùy chỉnh nội dung hiển thị trong SweetAlert2 như tiêu đề, thông điệp đếm ngược, hoặc thông báo đăng xuất thành công.
Không. Việc đăng xuất qua AJAX và SweetAlert2 chỉ đơn giản hóa quá trình đăng xuất mà không ảnh hưởng đến bảo mật, thậm chí còn giúp đăng xuất nhanh chóng để tránh rủi ro.
- Hướng Dẫn Code Chức Năng Xác Thực Số Điện Thoại Người Dùng Trong WordPress Từ A Đến Z
- Cách Lấy Tên Thiết Bị Đăng Nhập Chính Xác 100%: Có Thật Sự Khả Thi?
- Nên sử dụng tag và category trong bài viết thế nào cho hợp lý?
- Nên chọn thiết kế website ở K-TECH và NINA không? Lý do tại vì sao?
- Thủ thuật wordpress – Code thêm nút Edit nhanh cho Admin trên Mobile WordPress