【发布时间】:2020-10-27 22:31:23
【问题描述】:
根据official Contact Form 7 docs,可以通过短代码将默认值传递给CF7,这样:
// field in CF7 in Wordpress admin area
[email* destination-email default:shortcode_attr]
// shortcode in a Wordpress php template
[contact-form-7 id="123" title="Contact Form" destination-email="xxxxxx@example.com"]
// function in functions.php
add_filter( 'shortcode_atts_wpcf7', 'custom_shortcode_atts_wpcf7_filter', 10, 3 );
function custom_shortcode_atts_wpcf7_filter( $out, $pairs, $atts ) {
$my_attr = 'destination-email';
if ( isset( $atts[$my_attr] ) ) {
$out[$my_attr] = $atts[$my_attr];
}
return $out;
}
这适用于简单的文本字段,但我需要将一组值传递给<select> 字段并将它们用作其中的<option>s;我试图修改一下这段代码,但显然它不起作用,或者至少我没能做到。
是否可以使用简码将动态数据发送到 CF7,即使不是这样的单个纯文本?
如果不是,我愿意接受所有其他类型的解决方案,即使它涉及另一种方法或一些额外的插件; 是否有其他方法可以将值数组动态发送到联系表 7 中的 <select> 字段?
这些值是从数据库中查询到的数据(比如帖子名、自定义字段等),所以即使有涉及javascript的解决方案,也需要先从php来。
【问题讨论】:
-
你应该只做你自己的表单标签。
-
这样做的用户案例是什么?我以前从未见过!谢谢!
-
@gtamborero 想象一下,您有一个自定义帖子类型(可能是“课程”、“产品”、“活动”等),并且您想在其模板中包含一个联系表单,所以它出现在每一个项目上。用例会自动用特定的帖子(标题(即特定的课程产品或活动)填充“选择”字段),以便在接收方更好地处理和分类电子邮件。
-
感谢@Sekhemty,然后使用这个 cf7 插件:es.wordpress.org/plugins/contact-form-7-dynamic-text-extension
标签: javascript php wordpress forms contact-form-7