Tùy Chỉnh Nút Gửi Contact Form 7: Nâng Tầm Trải Nghiệm Người Dùng
Trong kỷ nguyên số, một biểu mẫu liên hệ không chỉ là công cụ thu thập thông tin mà còn là điểm chạm quan trọng giữa website và người dùng. Việc tùy chỉnh nút gửi của Contact Form 7 để hiển thị thông báo “Đang xử lý…” thay vì biểu tượng tải mặc định là một bước tiến nhỏ nhưng mang lại giá trị lớn về trải nghiệm và tính chuyên nghiệp.
Tại Sao Tùy Chỉnh Nút Gửi Lại Quan Trọng Hơn Chỉ Là Thẩm Mỹ?
Mặc dù mục đích ban đầu có thể là để phù hợp với thiết kế, việc thay đổi biểu tượng tải mặc định của Contact Form 7 mang lại nhiều lợi ích sâu sắc hơn:
- Cải thiện Trải nghiệm Người dùng (UX): Biểu tượng tải mặc định thường khá nhỏ và không rõ ràng. Dòng chữ “Đang xử lý…” cung cấp phản hồi trực quan, rõ ràng hơn, giúp người dùng biết rằng yêu cầu của họ đang được tiếp nhận, giảm thiểu sự bối rối hoặc việc họ click gửi nhiều lần.
- Tăng Cường Tính Nhất Quán Thương Hiệu: Một biểu tượng tải chung chung có thể làm giảm đi sự chuyên nghiệp của thương hiệu. Việc tùy chỉnh thông báo cho phép bạn duy trì giọng điệu và phong cách thương hiệu xuyên suốt mọi yếu tố trên website.
- Kiểm Soát Tốt Hơn Trạng Thái Giao Diện: Với đoạn mã jQuery được cung cấp, bạn có toàn quyền kiểm soát trạng thái của nút gửi trong suốt quá trình xử lý form, từ khi click, hiển thị thông báo tải, cho đến khi form hoàn tất.

Hình ảnh minh họa nút gửi Contact Form 7 đã được tùy chỉnh với thông báo “Đang xử lý…”
Phân Tích Chuyên Sâu Đoạn Mã jQuery
Để hiểu rõ cách tùy chỉnh này hoạt động, hãy cùng phân tích từng phần của đoạn mã jQuery:
(function($) {
$(document).ready(function() {
$('.wpcf7-submit').click(function() {
var thisElement = $(this);
var oldVal = thisElement.val();
var textLoading = 'Đang xử lý ...';
$('.cf7_submit .ajax-loader').remove();
thisElement.val(textLoading);
document.addEventListener('wpcf7submit', function(event) {
thisElement.val(oldVal);
}, false);
});
})
})(jQuery);
(function($) { ... })(jQuery);: Đây là một bao đóng (closure) để đảm bảo rằng$luôn tham chiếu đến jQuery, tránh xung đột với các thư viện JavaScript khác có thể sử dụng$.$(document).ready(function() { ... });: Đảm bảo rằng mã JavaScript chỉ chạy sau khi toàn bộ tài liệu HTML đã được tải và phân tích cú pháp. Điều này ngăn chặn việc cố gắng thao tác với các phần tử DOM chưa tồn tại.$('.wpcf7-submit').click(function() { ... });: Đây là bộ lắng nghe sự kiện. Khi người dùng nhấp vào bất kỳ phần tử nào có classwpcf7-submit(nút gửi của Contact Form 7), hàm bên trong sẽ được thực thi.var thisElement = $(this);: Lưu trữ tham chiếu đến nút gửi hiện tại mà người dùng đã nhấp vào. Điều này giúp tránh việc tìm kiếm lại phần tử trong DOM.var oldVal = thisElement.val();: Lưu trữ văn bản gốc của nút gửi (ví dụ: “Gửi” hoặc “Submit”). Giá trị này sẽ được sử dụng để khôi phục nút sau khi form được xử lý.var textLoading = 'Đang xử lý ...';: Định nghĩa thông báo tải tùy chỉnh. Bạn có thể thay đổi văn bản này theo ý muốn.$('.cf7_submit .ajax-loader').remove();: Đây là bước quan trọng để loại bỏ biểu tượng tải mặc định của Contact Form 7. Biểu tượng này thường là một thẻ<span>với classajax-loadernằm bên trong một phần tử có classcf7_submit(hoặc đôi khi nằm trực tiếp cạnh nút submit).thisElement.val(textLoading);: Thay đổi văn bản của nút gửi thành thông báo “Đang xử lý…”.document.addEventListener('wpcf7submit', function(event) { ... }, false);: Đây là một lắng nghe sự kiện tùy chỉnh của Contact Form 7. Sự kiệnwpcf7submitđược kích hoạt sau khi form đã được gửi thành công hoặc thất bại.thisElement.val(oldVal);: Bên trong hàm lắng nghe sự kiện, văn bản của nút gửi được khôi phục về giá trịoldValban đầu. Điều này đảm bảo rằng nút trở lại trạng thái ban đầu sau khi quá trình gửi hoàn tất, dù thành công hay thất bại.
Ý Nghĩa Của Việc Sử Dụng wpcf7submit
Việc sử dụng document.addEventListener('wpcf7submit', ...) là một phương pháp mạnh mẽ và hiệu quả. Thay vì dùng setTimeout hoặc các phương pháp phỏng đoán thời gian xử lý, wpcf7submit đảm bảo rằng hành động khôi phục nút chỉ diễn ra khi Contact Form 7 đã hoàn thành công việc của nó, mang lại sự đồng bộ và đáng tin cậy.
Các Thực Hành Tốt Nhất Để Triển Khai Mã
Để đảm bảo tính ổn định và dễ bảo trì, bạn nên đặt đoạn mã jQuery này vào một tệp JavaScript riêng (ví dụ: custom-cf7.js) và sau đó enqueue tệp này thông qua functions.php của Child Theme của bạn.
// Trong functions.php của Child Theme
function tipsaitech_enqueue_cf7_scripts() {
wp_enqueue_script(
'tipsaitech-cf7-custom',
get_stylesheet_directory_uri() . '/js/custom-cf7.js', // Đảm bảo đường dẫn đúng
array('jquery'), // Yêu cầu jQuery
'1.0.0', // Phiên bản script
true // Đặt script ở cuối trang (footer)
);
}
add_action('wp_enqueue_scripts', 'tipsaitech_enqueue_cf7_scripts');
Việc này giúp:
- Tránh mất mã khi cập nhật theme: Mọi thay đổi trong Child Theme sẽ không bị ghi đè.
- Tối ưu hiệu suất: Chỉ tải script khi cần thiết.
- Dễ dàng quản lý: Mã tùy chỉnh được tổ chức rõ ràng.
Kết Luận
Tùy chỉnh nút gửi của Contact Form 7 từ biểu tượng tải mặc định sang thông báo “Đang xử lý…” không chỉ là một thay đổi nhỏ về giao diện mà còn là một chiến lược hiệu quả để nâng cao trải nghiệm người dùng và củng cố tính nhất quán thương hiệu. Bằng cách hiểu rõ từng phần của đoạn mã jQuery và áp dụng các thực hành tốt nhất trong triển khai, bạn có thể kiểm soát hoàn toàn phản hồi của biểu mẫu, mang lại cảm giác chuyên nghiệp và tin cậy cho khách truy cập. Hãy luôn kiểm tra kỹ lưỡng sau khi áp dụng bất kỳ thay đổi mã nào để đảm bảo mọi thứ hoạt động như mong đợi.




