Men*_*nus 9 html php forms wordpress contact-form-7
我想用get请求设置字段值
example.com/subscribe/?email=asfafs
但是当我加载其上有表单的页面时,表单不会显示.我明白为什么它无法展示.因为表单本身也可以提交get请求.我还安装了这个插件,它可以让我设置一个字段值,但事实并非如此.
这就是我所拥有的:
<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>
Run Code Online (Sandbox Code Playgroud)
在我的页面中:
<?php echo do_shortcode('[contact-form-7 id="1062" title="Contactformulier 1"]'); ?>
Run Code Online (Sandbox Code Playgroud)
我不介意为此使用不同的插件.如果有一个适合我的需求请告诉我.
meh*_*101 11
[text* your-name default:get]
该字段将从GET具有相同名称的变量("您的名字")中获取其默认值.通过访问URL带有附加查询字符串的表单页面来尝试此操作:
http://example.com/contact/?your-name=John+Smith
但是,如果在单个表单标记中有两个或更多默认选项,该怎么办?让我们考虑一下这个form-tag的情况:
[text* your-name default:get default:post_meta "Your Name"]
我刚安装了您链接的插件并对其进行了测试.该插件并不意味着为Contact Form 7中的字段提取GET变量.该插件将执行两项操作
您的示例中的短代码可供此http://wordpress.org/plugins/contact-form-7-dynamic-text-extension/插件使用.我也下载并测试了该插件,它似乎工作得很好.
这是我创建示例的页面.http://jtwebb.com/stackoverflow-question/?someemail=asdf如果你想看看它是否正在使用dynamic-text-extension插件.
更新:这是我的联系表格7代码:
<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>
Run Code Online (Sandbox Code Playgroud)
        小智 6
您可以最初在表单字段中设置一个唯一的文本,然后使用钩子将其替换为所需的值。然后不需要插件。
例子。在表单代码中:
<p>Phone<br />
[text phone "PHONE_VALUE"] </p>
Run Code Online (Sandbox Code Playgroud)
在functions.php中:
add_filter( 'wpcf7_form_elements', function( $form ) {
  $form = str_replace( 'PHONE_VALUE', $_GET['phone'], $form );
  return $form;
} );
Run Code Online (Sandbox Code Playgroud)
在网址中:
example.com/page?phone=111111
Run Code Online (Sandbox Code Playgroud)
        我知道这个问题已经得到解答,但对于任何寻找不需要插件的解决方案的人,我选择执行以下操作。
首先,我通过 Wordpress 仪表板从插件中创建了我的表单。我添加了我想保存来自 URL 的参数的字段并为其分配了一个 ID。
[text page-name class:form-control id:source minlength:2 maxlength:80]
接下来我添加了一个链接,它将参数传递给表单,就像这样
<a href='http://mycoolwebsite.com/contact?id=homepage'>Contact Us</a>
然后使用 someJavascript并从 URLJQuery获取id参数并将其设置为表单中输入的值。(该getParameterByName(name,url)函数取自这个答案:如何在 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);
Run Code Online (Sandbox Code Playgroud)
我还隐藏和禁用了输入字段,因此它不会被看到并且不能被修改(很容易)。我还使用隐藏输入字段CSS
#source{visibility:hidden}
通过这种方式,我可以从我网站内的任何位置链接到表单,并附加此人的来源并将其放入我收到的电子邮件中。
我没有看到这种方法有任何问题,它消除了使用插件的需要。我确信依赖 Javascript 并不理想,但同样不理想的是使用您网站上的许多插件,因为它们很快就会过时并且经常会导致彼此之间的冲突。
希望这可以帮助任何寻找替代方案的人。我想通过这种方式了解人们的意见,因为我愿意接受有关如何改进它的建议。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           41690 次  |  
        
|   最近记录:  |