我正在尝试添加一个联系人表单到一个页面模板与联系人表格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/
发布于 2020-03-23 16:25:33
好的,我找到了一种方法来做到这一点,在这里解释:https://wordpress.org/support/topic/getting-emaip-recipient-from-shortcode/
联系人-表单-7 id="123“title=联系人表单”title=“以下代码用于主题functions.php或您的自定义插件。
add_filter(‘短路码_atts_wpcf7 7’,‘定制_短码_atts_wpcf7 7_filter’,10,3 );函数custom_shortcode_atts_wpcf7_filter( $out,$pairs,$atts ){ $my_attr =‘目的-电子邮件’;if ( isset( $atts$my_attr )){ $out$my_attr = $atts$my_attr;}返回$out;
} 3.将此代码添加到表单选项卡:
[email* destination-email default:shortcode_attr]
//如果希望隐藏此字段,可以使用以下代码:
[hidden destination-email default:shortcode_attr]
如果使用隐藏字段,它将显示“无效邮箱语法”错误,但在我的示例中,我可以忽略它,因为它可以工作。
如果带隐藏字段的To字段不能工作,可以将id添加到电子邮件简写代码中:
[email* destination-email default:shortcode_attr id:hidefield]
并使用css隐藏字段:
#hidefield {
display: none;
}
然后我就用这个:
<?php echo do_shortcode('[contact-form-7 id="123" title="Contact Form" destination-email="'.get_field('email_address').'"]'); ?>
从自定义post类型中添加电子邮件地址:)
谢谢每一个回答的人!
https://stackoverflow.com/questions/60778145
复制相似问题