2014-06-05 17 views
6

Tôi muốn thiết lập một giá trị trường với get yêu cầuLiên hệ giá trị trường mẫu 7 bộ với get yêu cầu

example.com/subscribe/?email=asfafs

nhưng khi tôi tải trang có biểu mẫu trên đó, biểu mẫu không hiển thị. Tôi nhận được lý do tại sao nó không thể được hiển thị. Bởi vì bản thân biểu mẫu cũng có thể gửi yêu cầu nhận. Tôi cũng đã cài đặt plugin this cho phép tôi đặt giá trị trường nhưng không.

đây là những gì tôi có:

<p>Uw naam (verplicht)<br /> 
    [text* input-name] </p> 

<p>Uw email (verplicht)<br /> 
    [dynamictext dynamicname "CF7_GET key='email'"] </p> 
<p>Onderwerp<br /> 
    [text your-subject] </p> 

<p>Uw bericht<br /> 
    [textarea your-message] </p> 

<p>[submit "Verzenden"]</p> 

Trong trang web của tôi:

<?php echo do_shortcode('[contact-form-7 id="1062" title="Contactformulier 1"]'); ?> 

tôi sẽ không ngại sử dụng một plugin khác nhau cho việc này. Nếu có một trong những phù hợp với nhu cầu của tôi xin vui lòng cho tôi biết.

+0

bạn có thể giải thích thêm? –

+0

Tôi đã thay đổi câu hỏi của mình một chút. Tôi hy vọng nó rõ ràng hơn bây giờ. –

+1

bạn có thể kiểm tra plugin này bạn có thể giúp http://wordpress.org/plugins/contact-form-7-dynamic-text-extension/ –

Trả lời

6

Tôi vừa cài đặt plugin bạn đã liên kết và thử nghiệm. Plugin không có nghĩa là kéo biến GET cho trường trong Biểu mẫu liên hệ 7. Plugin sẽ thực hiện hai điều

  1. Biến này sẽ lấy biến $ _GET và tạo trường ẩn với nó.
  2. Nó sẽ hiển thị các biến trên trang (chỉ dưới dạng văn bản, không phải trong một lĩnh vực)

Các shortcode mà bạn có trong ví dụ của bạn là để sử dụng bởi http://wordpress.org/plugins/contact-form-7-dynamic-text-extension/ plugin này. Tôi đã tải xuống và thử nghiệm plugin đó, và nó có vẻ hoạt động tốt.

Đây là trang tôi đã tạo ví dụ trên. http://jtwebb.com/stackoverflow-question/?someemail=asdf nếu bạn muốn xem qua nó đang hoạt động với plugin tiện ích mở rộng văn bản động.

CẬP NHẬT: Đây là hình thức liên lạc của tôi 7 mã:

<p>Your Name (required)<br /> 
    [text* your-name] </p> 

<p>[showparam someemail] <-- this is the shortcode of show param, just text no field</p> 

<p>[getparam someemail] If you inspect this you'll see a hidden get field with the value of 'someemail' in it.</p> 

<p>Your Email (required)<br /> 
    [dynamictext* dynamictext-380 "CF7_GET key='someemail'"]<br>This field was created with <a href="http://wordpress.org/plugins/contact-form-7-dynamic-text-extension/">http://wordpress.org/plugins/contact-form-7-dynamic-text-extension/</a></p> 

<p>Subject<br /> 
    [text your-subject] </p> 

<p>Your Message<br /> 
    [textarea your-message] </p> 

<p>[submit "Send"]</p> 
+0

Cảm ơn bạn. Tôi đã tự tìm ra điều này. Tôi chỉ cần tinh chỉnh mã của plugin mở rộng văn bản động một chút. –

3

Tôi biết câu hỏi này đã được trả lời nhưng đối với bất cứ ai tìm kiếm một giải pháp mà không đòi hỏi một plugin tôi đã lựa chọn để thực hiện tiếp theo.

Trước tiên, tôi đã tạo biểu mẫu của mình từ trong plugin thông qua trang tổng quan Wordpress. Tôi đã thêm trường tôi muốn giữ tham số từ URL và gán cho nó một ID.

[text page-name class:form-control id:source minlength:2 maxlength:80]

Tiếp theo, tôi thêm vào một liên kết mà sẽ vượt qua các tham số mẫu như vậy

<a href='http://mycoolwebsite.com/contact?id=homepage'>Contact Us</a>

Sau đó, sử dụng một số JavascriptJQuery tôi nhận được id tham số từ URL và đặt nó làm giá trị cho dữ liệu nhập của tôi trong biểu mẫu. (Chức năng getParameterByName(name,url) được lấy từ câu trả lời này: How can I get query string values in JavaScript?)

function getParameterByName(name, url) { 
    if (!url) url = window.location.href; 
    url = url.toLowerCase(); 
    name = name.replace(/[\[\]]/g, "\\$&"); 
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
     results = regex.exec(url); 
    if (!results) return null; 
    if (!results[2]) return ''; 
    return decodeURIComponent(results[2].replace(/\+/g, " ")); 
} 
var param = getParameterByName('id'); 
jQuery('#source').hide(); 
jQuery('#source').prop('disabled', true); 
jQuery('#source').attr('value', param); 
jQuery('#source').val(param); 

Tôi cũng giấu và vô hiệu hóa các lĩnh vực đầu vào nên không được nhìn thấy và không thể được sửa đổi (dễ dàng).Tôi cũng giấu lĩnh vực đầu vào sử dụng CSS

#source{visibility:hidden}

Bằng cách này tôi có thể liên kết với hình thức từ bất kỳ nơi trên trang web của tôi và thêm nguồn gốc của nơi người đó đến từ và đặt nó trong email mà tôi nhận được .

Tôi không thấy bất kỳ sự cố nào với phương pháp này và nó không cần sử dụng plugin. Tôi chắc chắn nó không phải là lý tưởng để phụ thuộc vào Javascript nhưng nó không lý tưởng để sử dụng cho nhiều plugin trên trang web của bạn vì chúng có thể trở nên lỗi thời rất nhanh và thường có thể gây xung đột giữa nhau.

Hy vọng điều này sẽ giúp mọi người tìm kiếm giải pháp thay thế. Tôi muốn biết ý kiến ​​của mọi người theo cách này khi tôi mở cửa cho các đề xuất về cách cải thiện nó.

2

[text* your-name default:get] Trường sẽ nhận giá trị mặc định từ biến số GET có cùng tên ("tên của bạn"). Hãy thử điều này bằng cách truy cập URL của trang của mẫu đơn với một chuỗi truy vấn thêm:

http://example.com/contact/?your-name=John+Smith

Nhưng nếu bạn có hai hay nhiều tùy chọn mặc định trong một hình thức-tag duy nhất? Hãy xem xét trường hợp của thẻ biểu mẫu này:

[text* your-name default:get default:post_meta "Your Name"]

Các vấn đề liên quan