如何在发送前以编程方式自定义联系人Form7通知电子邮件?

时间:2020-03-31 作者:Jarod Thornton

我有post\\u meta,我不希望在查看帖子时在源代码中显示或访问,但我希望post\\u meta包含在电子邮件回复中。How can I achieve this?

我使用ACF创建自定义字段来生成我想要的post\\u meta,并使用一个隐藏字段来获取包含post\\u meta的电子邮件,但post\\u meta位于页面源中,这并不理想。

1 个回复
SO网友:Aurovrata

这可以通过连接CF7插件发送通知邮件的过程来实现。该插件提供“wpcf7\\u mail\\u组件”filter 允许您在发送之前修改电子邮件,

add_filter(\'wpcf7_mail_components\',\'add_mgr_mail\',10,3);
function add_mgr_mail($components, $form, $mail_obj){
  //if you have several cf7 forms, check this is the right one,
  if($form->id() != 1) return $components;
  //the components are the in an array...
  $components[\'subject\']; //email subject.
  $components[\'sender\']; //email sender mail.
  $components[\'body\']; //email message body.
  $components[\'recipient\']; //email recipient mails.
  $components[\'additional_headers\']; //email headers.
  $components[\'attachments\']; //email attachments.

  //so, to add your mgr email you could do something like:
  $post_id = .... //fetch the post ID in which you stored your email.
  $mgr_email = get_post_meta($post_id, \'manager_email\',true);
  $components[\'body\'] .= PHP_EOL."Manager e-mail:".$mgr_email;
  return $components;
}
注:该$post_id 在上述函数中,表示存储电子邮件的帖子的ID。如果邮件总是一样的,只需在上面的功能中对电子邮件进行硬编码,但是如果您的电子邮件取决于提交的表单,那么您需要识别包含正确电子邮件的帖子,但这完全是另一个问题。

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在