Contact Form 7 (CF7) là một trong những plugin tạo form liên hệ phổ biến nhất trên WordPress. Nó cung cấp nhiều tính năng mạnh mẽ và dễ sử dụng để tạo và quản lý các biểu mẫu liên hệ trên trang web của bạn. Một trong những điểm mạnh của CF7 là khả năng tùy chỉnh qua các hook (móc) mà nó cung cấp. Bài viết này sẽ giới thiệu về các hook của Contact Form 7 và cách bạn có thể sử dụng chúng để tùy chỉnh hành vi của plugin theo nhu cầu của mình.
Các Hook của Contact Form 7
1. wpcf7_before_send_mail
Mô tả: Được gọi trước khi email được gửi đi.
Sử dụng:
add_action('wpcf7_before_send_mail', 'custom_before_send_mail');
function custom_before_send_mail($contact_form) {
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$data = $submission->get_posted_data();
// Thực hiện hành động tùy chỉnh ở đây
}
}
2. wpcf7_mail_sent
Mô tả: Được gọi ngay sau khi email đã được gửi đi.
Sử dụng:
add_action('wpcf7_mail_sent', 'custom_mail_sent');
function custom_mail_sent($contact_form) {
// Hành động tùy chỉnh sau khi email được gửi
}
3. wpcf7_before_send_mail
Mô tả: Cho phép bạn thay đổi nội dung email trước khi nó được gửi đi.
Sử dụng:
add_filter('wpcf7_mail_tag_replaced', 'custom_mail_tag_replaced', 10, 2);
function custom_mail_tag_replaced($content, $tag) {
if ($tag == 'your-custom-tag') {
$content = 'Giá trị tùy chỉnh';
}
return $content;
}
4. wpcf7_validate
Mô tả: Được sử dụng để thêm kiểm tra tùy chỉnh vào các trường của form.
Sử dụng:
add_filter('wpcf7_validate_text*', 'custom_text_field_validation', 10, 2);
function custom_text_field_validation($result, $tag) {
$name = $tag['name'];
$value = isset($_POST[$name]) ? trim($_POST[$name]) : '';
if ($name == 'your-text-field') {
if (empty($value)) {
$result->invalidate($tag, 'Trường này không được để trống.');
}
}
return $result;
}
5. wpcf7_form_class_attr
Mô tả: Thay đổi thuộc tính class của form trước khi render.
Sử dụng:
add_filter('wpcf7_form_class_attr', 'custom_form_class_attr');
function custom_form_class_attr($class) {
$class .= ' custom-class';
return $class;
}
6. wpcf7_form_elements
Mô tả: Thay đổi HTML của các phần tử form trước khi nó được gửi tới trình duyệt.
Sử dụng:
add_filter('wpcf7_form_elements', 'custom_form_elements');
function custom_form_elements($content) {
// Thay đổi HTML của form ở đây
return $content;
}
7. wpcf7_posted_data
Mô tả: Sử dụng để thay đổi dữ liệu đã được gửi từ form trước khi lưu vào cơ sở dữ liệu.
Sử dụng:
add_filter('wpcf7_posted_data', 'custom_posted_data');
function custom_posted_data($data) {
// Thay đổi dữ liệu đã gửi từ form ở đây
return $data;
}
Cách Sử Dụng Các Hook
1. Tạo Plugin Tùy Chỉnh
Để sử dụng các hook trên, bạn nên tạo một plugin tùy chỉnh hoặc thêm mã vào file functions.php
của theme. Ví dụ:
// Tạo plugin tùy chỉnh
/*
Plugin Name: Custom Contact Form 7 Hooks
Description: Sử dụng các hook của Contact Form 7 để tùy chỉnh form.
Version: 1.0
Author: Your Name
*/
add_action('wpcf7_before_send_mail', 'custom_before_send_mail');
function custom_before_send_mail($contact_form) {
// Thực hiện hành động tùy chỉnh
}
2. Tùy Chỉnh Form
Bạn có thể tùy chỉnh các trường, dữ liệu gửi đi, và hành vi của form bằng cách sử dụng các hook đã nêu. Đảm bảo rằng bạn kiểm tra kỹ lưỡng chức năng sau khi thay đổi mã để đảm bảo mọi thứ hoạt động đúng như mong đợi.
3. Kiểm Tra và Xác Nhận
Sau khi thêm mã vào, hãy kiểm tra kỹ lưỡng trên trang web của bạn để đảm bảo rằng các chức năng hoạt động như mong đợi. Sử dụng các công cụ debug để giúp bạn theo dõi các lỗi hoặc vấn đề phát sinh.
Kết Luận
Các hook của Contact Form 7 cung cấp cho bạn khả năng tùy chỉnh mạnh mẽ để phù hợp với nhu cầu cụ thể của bạn. Bằng cách sử dụng các hook này, bạn có thể dễ dàng thay đổi hành vi và cấu trúc của các biểu mẫu liên hệ trên trang web của mình. Hãy chắc chắn kiểm tra tài liệu của Contact Form 7 để biết thêm thông tin chi tiết và hướng dẫn cụ thể về từng hook.
Hy vọng rằng bài viết này đã giúp bạn hiểu rõ hơn về các hook của Contact Form 7 và cách sử dụng chúng để tối ưu hóa các biểu mẫu liên hệ của bạn.
Kết nối với web designer Lê Thành Nam