CHƯƠNG TRÌNH GIẢM 50% GIÁ TẤT CẢ CÁC GÓI HOSTING WORDPRESS => Link giảm 50%
1. Hook form liên hệ Contact Form 7 là gì?
Hook trong WordPress là gì?
Hook là những đoạn code được xây dựng sẵn mà WordPress đã cung cấp cho chúng ta. Hook có 2 loại: Action và Filter. Với Action cho phép chúng ta thêm mới code tại các khu vực do_action thông qua hàm add_action. Còn với Filter sẽ cho phép chúng ta thay đổi kết quả bằng add_filter tại khu vực apply_filters.
Trong plugin contact form 7 đã chuẩn bị sẵn những Hook cho riêng mình, từ đó các bạn có thể thêm mới những chức năng hoặc thay đổi kết quả của plugin này. Sau đây là danh sách các Hook có sẵn, bạn có thể tham khảo nhé.
Trong đó 2 Hook được dùng nhiều hơn cả là trước khi gửi mail: wpcf7_before_send_mail và sau khi đã gửi mail thành công: wpcf7_mail_sent
2. Danh sách các Hook của Contact Form 7
Hook | Doc | Type | File(s) |
---|---|---|---|
deprecated_function_trigger_error | filter | functions.php | |
wpcf7_acceptance | filter | submission.php | |
wpcf7_additional_mail | filter | submission.php | |
wpcf7_admin_footer | action | edit-contact-form.php | |
wpcf7_admin_init | action | admin.php | |
wpcf7_admin_load | action | admin.php | |
wpcf7_admin_menu | action | admin.php | |
wpcf7_admin_menu_change_notice | filter | admin.php | |
wpcf7_admin_misc_pub_section | action | edit-contact-form.php | |
wpcf7_admin_notices | action | edit-contact-form.php, admin.php | |
wpcf7_admin_warnings | action | edit-contact-form.php, admin.php | |
wpcf7_after_create | Save | action | contact-form.php |
wpcf7_after_flamingo | action | flamingo.php | |
wpcf7_after_save | Save | action | contact-form.php |
wpcf7_after_update | Save | action | contact-form.php |
wpcf7_ajax_json_echo | filter | rest-api.php | |
wpcf7_ajax_onload | filter | rest-api.php | |
wpcf7_akismet_comment_check | filter | akismet.php | |
wpcf7_autop_or_not | filter | functions.php | |
wpcf7_before_send_mail | action | submission.php | |
wpcf7_captcha_url | filter | really-simple-captcha.php | |
wpcf7_collect_mail_tags | filter | contact-form.php | |
wpcf7_config_validator_validate | action | config-validator.php | |
wpcf7_constant_contact_contact_post_request_builder | filter | constant-contact.php | |
wpcf7_constant_contact_submit | filter | constant-contact.php | |
wpcf7_contact_form | action | contact-form.php | |
wpcf7_contact_form_default_pack | filter | contact-form.php | |
wpcf7_contact_form_properties | filter | contact-form.php | |
wpcf7_contact_form_shortcode | filter | contact-form.php | |
wpcf7_copy | filter | contact-form.php | |
wpcf7_default_template | filter | contact-form-template.php | |
wpcf7_display_message | filter | contact-form.php | |
wpcf7_editor_panels | filter | edit-contact-form.php | |
wpcf7_enqueue_scripts | action | controller.php | |
wpcf7_enqueue_styles | action | controller.php | |
wpcf7_flamingo_get_value | filter | flamingo.php | |
wpcf7_flamingo_submit_if | filter | flamingo.php | |
wpcf7_form_action_url | Generating Form HTML | filter | contact-form.php |
wpcf7_form_autocomplete | Generating Form HTML | filter | contact-form.php |
wpcf7_form_class_attr | Generating Form HTML | filter | contact-form.php |
wpcf7_form_elements | filter | contact-form.php | |
wpcf7_form_enctype | Generating Form HTML | filter | contact-form.php |
wpcf7_form_hidden_fields | filter | contact-form.php | |
wpcf7_form_id_attr | Generating Form HTML | filter | contact-form.php |
wpcf7_form_name_attr | Generating Form HTML | filter | contact-form.php |
wpcf7_form_novalidate | Generating Form HTML | filter | contact-form.php |
wpcf7_form_response_output | filter | contact-form.php | |
wpcf7_form_tag | filter | form-tags-manager.php | |
wpcf7_form_tag_data_option | filter | form-tag.php | |
wpcf7_init | action | settings.php | |
wpcf7_is_date | filter | formatting.php | |
wpcf7_is_email | filter | formatting.php | |
wpcf7_is_number | filter | formatting.php | |
wpcf7_is_tel | filter | formatting.php | |
wpcf7_is_url | filter | formatting.php | |
wpcf7_load_css | filter | functions.php | |
wpcf7_load_js | filter | functions.php | |
wpcf7_log_remote_request | filter | functions.php | |
wpcf7_mail_components | filter | mail.php | |
wpcf7_mail_failed | action | submission.php | |
wpcf7_mail_html_footer | filter | mail.php | |
wpcf7_mail_html_header | filter | mail.php | |
wpcf7_mail_sent | action | submission.php | |
wpcf7_mail_tag_replaced | filter | mail.php | |
wpcf7_mail_tag_replaced_{$type} | filter | mail.php | |
wpcf7_map_meta_cap | filter | capabilities.php | |
wpcf7_messages | filter | contact-form-template.php | |
wpcf7_post_edit_form_tag | action | edit-contact-form.php | |
wpcf7_posted_data | filter | submission.php | |
wpcf7_posted_data_{$type} | filter | submission.php | |
wpcf7_recaptcha_actions | filter | recaptcha.php | |
wpcf7_recaptcha_threshold | filter | recaptcha.php | |
wpcf7_recaptcha_verify_response | filter | recaptcha.php | |
wpcf7_remote_ip_addr | filter | submission.php | |
wpcf7_save_contact_form | action | contact-form-functions.php | |
wpcf7_skip_mail | filter | submission.php | |
wpcf7_spam | filter | submission.php | |
wpcf7_special_mail_tags | filter | mail.php, flamingo.php | |
wpcf7_submission_is_blacklisted | filter | submission.php | |
wpcf7_submit | action | contact-form.php | |
wpcf7_subscribers_only_notice | Generating Form HTML | filter | contact-form.php |
wpcf7_support_html5 | filter | functions.php | |
wpcf7_support_html5_fallback | filter | functions.php | |
wpcf7_upgrade | action | settings.php | |
wpcf7_upload_dir | filter | functions.php | |
wpcf7_upload_file_name | Validation + upload handling filter add_filter( ‘wpcf7_validate_file’, ‘wpcf7_file_validation_filter’, 10, 2 ); add_filter( ‘wpcf7_validate_file’, ‘wpcf7_file_validation_filter’, 10, 2 ); | filter | file.php |
wpcf7_use_really_simple_captcha | filter | functions.php | |
wpcf7_validate | filter | submission.php | |
wpcf7_validate_configuration | filter | functions.php | |
wpcf7_validate_{$type} | filter | submission.php | |
wpcf7_validation_error | filter | contact-form.php | |
wpcf7_verify_nonce | filter | contact-form.php |
3. Cách dùng Hook Contact Form 7
Trong ví dụ này tôi sẽ hướng dẫn các bạn một vài hook phổ biến. Các bạn copy các đoạn code sau vào file functions.php nhé.
3.1 Contact form 7 action trước khi gửi mail wpcf7_before_send_mail.
add_action( 'wpcf7_before_send_mail', 'wpshare247_wpcf7_before_send_mail', 10, 3); function wpshare247_wpcf7_before_send_mail( $contact_form, &$abort, $object ) { $submission = WPCF7_Submission::get_instance(); if ( $submission ) { $posted_data = $submission->get_posted_data(); //Lấy dữ liệu qua các field đã khai báo trong Form [your-name] ; [your-email]...... $your_name = $posted_data['your-name']; $your_email = $posted_data['your-email']; //Bạn hãy check hay làm cái gì đó ở đây nhé............ //Ví dụ ---------- if(strpos($your_email, '@') === false){ $abort = true; $mess_err = $your_email." - Email không đúng định dạng vì thiếu @"; $object->set_response($mess_err); } } return $contact_form; }
3.2 Contact form 7 action sau khi gửi mail thành công wpcf7_mail_sent.
add_action( 'wpcf7_mail_sent', 'wpshare247_wpcf7_mail_sent'); function wpshare247_wpcf7_mail_sent( $contact_form ) { $submission = WPCF7_Submission::get_instance(); if ( $submission ) { $contact_form_id = $contact_form->id; $posted_data = $submission->get_posted_data(); //Lấy dữ liệu qua các field đã khai báo trong Form [your-name] ; [your-email]...... $your_name = $posted_data['your-name']; $your_email = $posted_data['your-email']; $current_post_id = $submission->get_meta('container_post_id'); update_post_meta( $current_post_id, 'your_name', $your_name ); update_post_meta( $current_post_id, 'your_email', $your_email ); } }
Hi vọng bài viết này sẽ hữu ích cho bạn, hãy tiếp tục truy cập để đón đọc các bài viết tiếp theo nhé.
CHƯƠNG TRÌNH GIẢM 50% GIÁ TẤT CẢ CÁC GÓI HOSTING WORDPRESS => Link giảm 50%