首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在do_shortcode中添加自定义字段

在do_shortcode中添加自定义字段
EN

Stack Overflow用户
提问于 2020-03-20 16:37:13
回答 1查看 463关注 0票数 0

我正在尝试添加一个联系人表单到一个页面模板与联系人表格7。然而,我希望目标电子邮件从我创建的自定义字段中来。

提取自定义字段数据的代码如下:

代码语言:javascript
运行
复制
<?php the_field('website_address'); ?>

允许我在模板级别选择目标电子邮件的短代码是:

代码语言:javascript
运行
复制
<?php echo do_shortcode('[contact-form-7 id="123" title="Contact Form" destination-email="xxxxxx@example.com"]'); ?>

因此,我需要将website_address添加到短代码中。我试过以下几种方法:

代码语言:javascript
运行
复制
<?php echo do_shortcode('[contact-form-7 id="123" title="Contact Form" destination-email="<?php the_field('website_address'); ?>"]'); ?>

但是它在PHP标签中有一个PHP标签,所以它不能工作.

所以我试了一下:

代码语言:javascript
运行
复制
<?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,但它仍然没有帮助.

代码语言:javascript
运行
复制
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/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-23 16:25:33

好的,我找到了一种方法来做到这一点,在这里解释:https://wordpress.org/support/topic/getting-emaip-recipient-from-shortcode/

  1. 在要显示表单的页面或帖子中添加带有目标电子邮件的短代码:

联系人-表单-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.将此代码添加到表单选项卡:

代码语言:javascript
运行
复制
[email* destination-email default:shortcode_attr]

//如果希望隐藏此字段,可以使用以下代码:

代码语言:javascript
运行
复制
[hidden destination-email default:shortcode_attr]

  1. In cforms7邮件选项卡在“To”字段中添加代码目的地--电子邮件.

如果使用隐藏字段,它将显示“无效邮箱语法”错误,但在我的示例中,我可以忽略它,因为它可以工作。

如果带隐藏字段的To字段不能工作,可以将id添加到电子邮件简写代码中:

代码语言:javascript
运行
复制
[email* destination-email default:shortcode_attr id:hidefield]

并使用css隐藏字段:

代码语言:javascript
运行
复制
#hidefield {
    display: none;
}

然后我就用这个:

代码语言:javascript
运行
复制
<?php echo do_shortcode('[contact-form-7 id="123" title="Contact Form" destination-email="'.get_field('email_address').'"]'); ?>

从自定义post类型中添加电子邮件地址:)

谢谢每一个回答的人!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60778145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档