Kiến thức

Tự lấy giá trị trong bài viết đưa vào form với plugin contact form 7

Tự động lấy một giá trị bất kỳ của bài viết để điền vào form liên hệ là vấn đề thắc mắc mà rất nhiều bạn đang quan tâm tới, một chức năng khá hay và hữu ích, giúp khách hàng không phải mất thêm một bước điền lại thông tin có sẵn trên trang họ đang xem. Hôm nay lamkinhdesigner sẽ cùng các bạn giải đáp thắc mắc này.

Để giải quyết vấn đề này chúng ta có một plugin hỗ trợ làm việc này rất hiệu quả đó là Contact Form 7 – Dynamic Text ExtensionNó không phải là một plugin chạy độc lập, trước khi có thể dùng được plugin này các bạn bắt buộc cài plugin  Contact Form 7  trước, vì và đọc qua Hướng dẫn Contact Form 7 nếu bạn chưa biết về nó. Nào chúng ta bắt tay vào vấn đề chính thôi!

Tạo field với Dynamic Text để lấy giá trị trong bài

Plugin này có thể get được khá nhiều thứ trong bài viết mà nó được chèn vào như Tiêu đề bài, ID của bài, slug, lấy giá trị từ biến $_POST, lấy giá trị custom field và kể cả từng giá trị của người đăng bài. Chỉ nhiêu đó thôi là bạn đã làm được một đống việc rồi nếu bạn có ý tưởng.

Để ứng dụng được plugin này tối đa, mình nghĩ các bạn nên thuộc những tham số của một số function và object quan trọng trong WordPress như bloginfo()$postget_post_meta().

Sau khi cài đủ 2 plugin mình đã nói phía trên, bạn vào phần tạo form sẽ thấy có thêm một tag tên là Dynamic Text field và Dynamic Text Hidden field, chính là nó cái mà chúng ta đang quan tâm để giải quyết vấn đề.

Các bạn tạo nó như bao field khác, tuy nhiên hãy đặc biệt chú trọng phần Dynamic value, đó là trái tim của plugin này.

Ở phần Dynamic value này nghĩa là bạn nhập những shortcode được plugin này hỗ trợ để tự động lấy các giá trị mà mình đã nêu ở đầu bài. Điều đầu tiên mà bạn cần nên biết là khi nhập shortcode vào đây, bạn không cần nhập 2 dấu ngoặc vuông bao quanh [] mà nhập thẳng tên shortcode và giá trị. Mình sẽ hướng dẫn phía dưới.

Các shortcode lấy value của Dynamic Text

Lấy giá trị của từng tham số trong hàm bloginfo()

Hàm này được dùng để in ra một số thông tin chính của website, nó không phụ thuộc vào bài viết hiện tại. Để lấy giá trị, bạn sử dụng shortcode như sau:

CF7_bloginfo show='tham số'

Các bạn thay tham số thành tham số muốn lấy.

Danh sách các tham số của bloginfo().

Lấy giá trị từ phương thức GET trong PHP

Ví dụ mình có URL là https://thachpham.com/contact.php?name=Thach

Bây giờ mình muốn đưa giá trị của tham số name trên URL vào (nghĩa là Thach) thì mình sẽ có shortcode sau.

CF7_GET key='name'

Thế nó lấy URL này ở đâu thế? Là ở cái URL hiện tại trên trình duyệt chứ ở đâu nữa. ?

Lấy giá trị từ phương thức POST trong PHP

Ví dụ mình có 2 biến $_POST["name"] để truyền tên gì đó thì mình sẽ dùng shortcode như sau để lấy giá trị được truyền vào mảng name kia.

CF7_POST key='name'

Lấy giá trị trong bài viết hiện tại

Shortcode này chúng ta có 2 cách dùng, một là dùng key được mặc định bởi Dynamic Text (mình không biết chính xác là có bao nhiêu key) hoặc là dùng tham số trong object $post. Hiện tại nó có những giá trị như sau:

$post->post_author
$post->post_date
$post->post_date_gmt
$post->post_content
$post->post_content_filtered
$post->post_title
$post->post_excerpt
$post->post_status
$post->post_type
$post->comment_status
$post->ping_status
$post->post_password
$post->post_name
$post->to_ping
$post->pinged
$post->post_modified
$post->post_modified_gmt
$post->post_parent
$post->menu_order
$post->guid

Để lấy giá trị, đầu tiên ta phải dùng shortcode CF7_get_post_var key=’key’. Ví dụ, mình sử dụng tham số của object $post để lấy tiêu đề bài viết thì mình sẽ có shortcode là CF7_get_post_var key='post_title'. Tương tự, bạn thay bằng các tham số trong danh sách mình đã ghi phía trên.

Lấy giá trị từ custom post field của bài hiện tại

Đây là điểm bạn nên chú ý vì mình biết nhiều bạn sẽ cần, ví dụ bạn cần lấy giá tiền của sản phẩm trong trang hiện tại chẳng hạn. Ta sẽ có shortcode như sau:

CF7_get_custom_field key='my_custom_field'

Bạn thay my_custom_field bằng slug của custom field mà bạn cần get ra nhé.

Lấy địa chỉ website giới thiệu

Địa chỉ website giới thiệu ở đây nghĩa là địa chỉ website ở trang mà khách đã vào trước đó sau đó ấn vào một liên kết nào đó trên trang dẫn tới trang này. Để lấy giá trị này, bạn sử dụng shortcode ngắn gọn như sau mà không cần sửa gì cả.

CF7_referrer

Và đây là hình ảnh hướng dẫn nhập shortcode của em nó

Đến bước cuối cùng này là copy shortcode trong khung màu nâu bỏ vào Form và copy shortcode màu xanh lá bỏ vào Message body như bình thường. Sau khi hoàn thành tất cả các bước trên ta có kết quả như sau…

Oa! tuyệt vời giờ thì các bạn đã giải quyết được vấn đề mình cần rồi!

Các tin liên quan