【问题标题】:How to get custom meta values working in HTML email如何在 HTML 电子邮件中获取自定义元值
【发布时间】:2015-04-10 12:33:23
【问题描述】:

我正在尝试在 wordpress 中发布帖子后发送电子邮件。得到它发送没问题,看起来很棒,完全响应等。

但是,唯一的问题是我的大部分帖子内容都是自定义元数据。在我的邮件功能中,我使用 get_post_meta 获取所有字段,然后将它们打印到 HTML 电子邮件中。

例如:

function booking_confirmation_email() {
$guestname = get_post_meta( $post->ID, 'guestname', true );
$phone = get_post_meta( $post->ID, 'phone', true);
$guestemail = get_post_meta( $post->ID, 'email', true);

//The recipients    
$title = get_the_title( $ID );
$to = 'coda@knoppys.co.uk',$guestemail;
$subject = 'Booking Confirmation : ' . $title; 
$headers = 'From: Serviced City Pads';

//the message
$message = '
<loads of html>
<p>' . $title . '</p>
<p>' . $guestname . '</p>
<p>' . $phone . '</p>
<p>' . $guestemail . '</p>
</loads of html>
';

//send the email
wp_mail( $to, $subject, $message, $headers, $attachments );
}

add_action('publish_bookings', 'booking_confirmation_email');

很明显,我已经把它剥离了一点,但你明白了。问题只是硬编码的电子邮件地址、$title、HTML 和样式工作。自定义元值似乎没有显示。他们都保存在帖子中,所以我知道那是有效的。假设它归结为我将其全部调用到消息中的方式。

提前致谢

【问题讨论】:

  • $ID 变量从何而来?似乎如果标题正在使用,您可以将它用于其他变量以及 $post->ID
  • 我明白你在说什么。我会试一试的。

标签: php wordpress html-email


【解决方案1】:

将此添加到函数的顶部

global $post

然后请将 $post->id 替换为 get_post_meta 函数:

$post->ID

谢谢。

【讨论】:

  • 已添加,但仍无法正常工作,我应该将其与 johnnyd23 的建议结合起来吗?
  • 嗯,有趣!尝试将 get_post_meta( $post->ID 替换为 get_post_meta( $ID 如上所述。有兴趣查看输出。
  • 不,不喜欢。您想查看整个文件吗?这可能更容易。我可以把它上传到我的演示服务器,你可以下载吗? knoppys.co.uk/email.txt
  • 您的编辑是否应该将 $postid = $wp_query->bookings->ID 作为自定义帖子类型?
猜你喜欢
  • 2019-04-25
  • 2017-09-13
  • 1970-01-01
  • 1970-01-01
  • 2019-01-13
  • 2014-04-25
  • 2013-06-04
  • 1970-01-01
  • 2021-08-07
相关资源
最近更新 更多