Xử lý các sự kiện của Contact Form 7

Xử lý các sự kiện của Contact Form 7

Bài viết này thực hiện (hoặc lụm bài về đăng câu like từ các trang khác) bởi Việt Lâm Coder một YOUTUBER có tâm và đẹp trai siêu cấp vô địch zũ trụ.

Contact Form 7 được sử dụng phổ biến trên nền tảng WordPress. Sau đây là cách dùng và ứng dụng xử lý các sự kiện liên quan đến form này.

Xử lý các sự kiện của Contact Form 7

Các sự kiện của Contact Form 7

Sự kiện Mô tả
wpcf7invalid Được bắn ra khi AJAX form được submit nhưng chưa gửi mail vì có trường không hợp lệ.
wpcf7spam Được bắn ra khi AJAX form được submit nhưng chưa gửi mail vì phát hiện có spam.
wpcf7mailfailed Được bắn ra khi AJAX form được submit nhưng gặp lỗi khi gửi mail.
wpcf7mailsent Được bắn ra khi AJAX form được submit và mail đã được gửi thành công.
wpcf7submit Được bắn ra khi AJAX form được submit (bao gồm tất cả những sự kiện trên).

Mã nguồn JavaScript xử lý sự kiện

Các sự kiện của Contact Form 7 được xử lý như các sự kiện bình thường khác bằng JavaSscript.

Dữ liệu trong form được truyền vào handler thông qua biến event.detail.inputs, là một mảng thông tin các dữ liệu đầu vào theo kiểu { name: 'your-field', value: 'value' }.

Ngoài inputs, Contact Form 7 còn trả về một số thông tin sau:

Thuộc tính Thông tin
detail.contactFormId ID của Form
detail.pluginVersion Phiên bản hiện hành của Contact Form 7
detail.contactFormLocale Mã địa phương (locale) của Form.
detail.unitTag Unit Tag (ID trong post) của Form.
detail.containerPostId ID của post chứa Form.

Xử lý sự kiện Contact Form 7 với jQuery

Nếu sử dụng jQuery, bạn có thể xử lý sự các sự kiện Contact Form 7 như sau. Lưu ý có sự khác biệt ở tên của các sự kiện.

Các sự kiện tương ứng như sau:

Vanilla JavaScript Tên sự kiện khi dùng jQuery
wpcf7invalid wpcf7:invalid
wpcf7spam wpcf7:spam
wpcf7mailfailed wpcf7:mailfailed
wpcf7mailsent wpcf7:mailsent
wpcf7submit wpcf7:submit

Ứng dụng các sự kiện của Contact Form 7

Tạo sự kiện Contact Form 7 trên Tag Manager

Trước hết, chúng ta sẽ tạo một tag WPCF7 Event Handler để push sự kiện tương ứng của Contact Form 7 vào dataLayer. Tag này sẽ trigger mỗi khi trang được tải.

Tham số được ghi vào dataLayer gồm tên sự kiện bắt đầu bằng wpcf7.* và các biến khác, như dưới đây là biến CF7formID chứa ID của form. Bạn có thể thêm các biến khác nếu muốn.

Tag: WPCF7 Event Handler

Ta thiết lập trigger cho tag này là All Pages.

Variable: DLV – CF7formID

Tạo biến dataLayer có tên là DLV - CF7formID để lấy thông tin về Form ID được truyền lên khi sự kiện của Contact Form 7 diễn ra – thông qua biến CF7formID bắn ra ở tag WPCF7 Event Handler.

Xử lý các sự kiện của Contact Form 7

Ta có thể tạo các biến dataLayer khác tương tự nếu có.

Trigger: WPCF7 Event

Cuối cùng ta tạo ra Trigger WPCF7 Event kích hoạt mỗi khi có bất kỳ sự kiện nào có tên bắt đầu bằng wpcf7. được push vào DataLayer.

Xử lý các sự kiện của Contact Form 7

Bạn hãy gắn Trigger này vào Tag nào bạn mà muốn.

Kích hoạt Thank you page

Dưới đây là mã nguồn plugin cho phép tự động redirect sang thank you page sau khi Contact Form 7 được submit và email được gửi đi thành công.

Thank You Page được thiết lập trong cấu hình bài viết (Được tạo nhờ plugin Advanced Custom Fields để tiết kiệm thời gian), hoặc trong wp-config.php (WP_THANK_YOU_PAGE).

Một số thông tin sẽ được truyền qua query string đến trang Thank You Page thông qua biến wpcf7_thank_you_page tạo ra bởi hàm wp_localize_script. Như ví dụ dưới đây tôi đưa các tham số utm_ vào.

icreativ-wpcf7-typ/index.php

icreativ-wpcf7-typ/index.js

Bài viết này thực hiện (hoặc lụm bài về đăng câu like từ các trang khác) bởi Việt Lâm Coder một YOUTUBER có tâm và đẹp trai siêu cấp vô địch zũ trụ.

Liên hệ ngay với Việt Lâm Coder
Xin chào! Chúng tôi có thể giúp gì cho bạn ?
Gọi ngay cho chúng tôi