Trang chủ WordpressWordpress Plugin [Contact Form 7] Tự lấy giá trị trong bài viết đưa vào form

[Contact Form 7] Tự lấy giá trị trong bài viết đưa vào form

bởi Thạch Phạm
9 bình luận 6,K views

Tham gia nhóm hỗ trợ WordPress

Tham gia nhóm Hỗ trợ Server - Hosting & WordPress để cùng nhau hỏi đáp và hỗ trợ các vấn đề về WordPress, tối ưu máy chủ/server.

Tham gia ngay

Lấy giá trị trong bài viết đưa vào form

Form tự điền title của bài viết

Câu hỏi: Mình muốn tạo một form đặt hàng đơn giản để đặt vào bài viết và nó tự lấy tên tiêu đề, giá trị custom post field bỏ vào trong form để khách không cần nhập lại. Vậy phải làm thế nào?

Yeah, câu hỏi này mình cũng gặp nhiều lần rồi và điều đầu tiên mình nghĩ ngay đến đó là sử dụng Contact Form 7 vì plugin này dễ tuỳ biến hơn các plugin khác nếu bạn biết một chút về PHP và cấu trúc các hàm cơ bản WordPress. Tuy nhiên giữa lúc mình đang lọ mọ thử một vài đoạn code để làm việc này thì hôm nay đã có email báo có một plugin chuyên để làm việc này vô cùng dễ dàng, đó là Contact Form 7 – Dynamic Text Extension.

Khuyến mãi Black Friday

Đây không phải là một plugin chạy độc lập mà nó bắt buộc phải có plugin Contact Form 7 chạy cùng nên trước tiên bạn hãy cài plugin này vào trước và đọc qua Hướng dẫn Contact Form 7 nếu bạn chưa biết về nó.

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()$post, get_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 fieldDynamic Text Hidden field, chính là em.

Dynamic Text của Contact Form 7

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.

Tạo dynamic text field

Ở 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. :D

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

Chèn shortcode vào Dynamic value

Chèn shortcode vào Dynamic value

Ok, bước còn lại bây giờ 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. Kết quả ta có…

Lấy giá trị trong bài viết đưa vào form

Form tự điền title của bài viết

Xong rồi đấy. Nếu bạn chưa hình dung ra tính năng này quan trọng thế nào thì bài tutorial tự làm shop đơn giản trên WordPress mà mình sắp đưa lên sẽ giúp cho bạn có cái nhìn rõ rệt hơn về tính năng này.

5/5 - (3 bình chọn)
9 bình luận

Có thể bạn quan tâm

Hiện tại blog tạm đóng bình luận vì mình cần tập trung thời gian vào cập nhật bài viết. Bình luận sẽ mở ra cho đến khi mình sẵn sàng.