如何在HTML电子邮件中获得自定义元值


How to get custom meta values working in HTML email

我正试图在wordpress上发布一篇帖子后发送一封电子邮件。发送没有问题,看起来很棒,反应充分等

然而,唯一的一点是,我的大多数帖子内容都是自定义的元。在我的mail函数中,我使用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和样式工作。自定义元值似乎没有显示。他们都在帖子里存钱,所以我知道这是有效的。假设这取决于我在消息中调用它的方式。

提前感谢

将其添加到函数的顶部

global $post

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

$post->ID

谢谢。