【发布时间】:2020-03-24 00:25:33
【问题描述】:
我正在尝试使用联系表单 7 将联系表单添加到页面模板中。但是,我希望目标电子邮件来自我创建的自定义字段。
拉取自定义字段数据的代码是这样的:
<?php the_field('website_address'); ?>
让我在模板级别选择目标电子邮件的简码是:
<?php echo do_shortcode('[contact-form-7 id="123" title="Contact Form" destination-email="xxxxxx@example.com"]'); ?>
所以我需要将 website_address 添加到简码中。我尝试了以下方法:
<?php echo do_shortcode('[contact-form-7 id="123" title="Contact Form" destination-email="<?php the_field('website_address'); ?>"]'); ?>
但它在 PHP 标签内有一个 PHP 标签,所以它不起作用......
所以我尝试了这些:
<?php echo do_shortcode('[contact-form-7 id="123" title="Contact Form" destination-email="the_field('website_address')"]'); ?>
<?php echo do_shortcode('[contact-form-7 id="123" title="Contact Form" destination-email="get_field('website_address')"]'); ?>
<?php echo do_shortcode('[contact-form-7 id="123" title="Contact Form" destination-email=".get_field('website_address')."]'); ?>
<?php echo do_shortcode('[contact-form-7 id="123" title="Contact Form" destination-email="'.get_field('website_address').'"]'); ?>
其中没有一个工作正常,有些甚至破坏了页面。
我正在努力寻找答案,所以想知道是否有人可以启发我 - 我什至可能以错误的方式思考这一切!非常感谢您的关注:)
编辑
我需要包含一个已添加到 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;
}
来自页面:https://contactform7.com/getting-default-values-from-shortcode-attributes/
【问题讨论】:
-
你试过
-
从技术上讲,你的最后一个应该也可以工作。
-
问题在于,即使您传递了自己的属性,Contact Form 7 也不知道如何处理它,除非您将该字段添加到表单中。你有
destination-email字段吗? -
get_field('website_address')这是一个常数,还是特定于您的表单出现的每个页面?你能解释一下这将如何返回吗? -
如果你想这样做,你可以用 Ajax 传递它。
标签: php wordpress advanced-custom-fields shortcode contact-form-7