无法在自定义电子邮件中使用WooCommerce自定义字段作为收件人

时间:2016-03-14 22:43:40

标签: php wordpress woocommerce

我要完成的是在新的自定义电子邮件中使用我的结帐中的自定义字段。我找到了关于returning the key, value within the body of the email的文档以及有效的详细信息。

问题是我无法使用新的自定义订单通知,我想使用“备份电子邮件”作为自定义电子邮件通知的收件人。

 /** WORKING
 * Add the field to order emails
 **/
add_filter('woocommerce_email_order_meta_keys', 'my_woocommerce_email_order_meta_keys');

function my_woocommerce_email_order_meta_keys( $keys ) {
    $keys['back-up email?'] = 'backup_email';
    return $keys;
}
/** WORKING
 * Add to back-end
 **/
add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 );

function my_custom_checkout_field_display_admin_order_meta($order){
     echo '<p><strong>'.__('Back-up Email').':</strong> ' . get_post_meta( $order->id, 'backup_email', true ) . '</p>';
}

使用此tutorial创建自定义电子邮件。

// Does not work
$this->recipient = get_post_meta( $order->id, 'backup_email', true );
// defaults to admin email
if ( ! $this->recipient )
        $this->recipient = get_option( 'admin_email' );

我可能缺少一些基本的PHP / WP主体,所以请赐教。

1 个答案:

答案 0 :(得分:0)

想出来。需要在设置新订单对象后调用它

$this->object = new WC_Order( $order_id );
$this->recipient = get_post_meta( $order_id, 'backup_email', true );

我发现这个问题已被问过几次,所以希望它对某人有所帮助。