首页 > 解决方案 > 在 WooCommerce 订单接收页面上的文本中添加客户电子邮件

问题描述

在 WooCommerce 中,在我的感谢/订单已收到页面的顶部,我添加了一个自定义文本,其中包含以下代码:

add_action( 'woocommerce_thankyou', 'my_order_received_text', 1, 0);
function my_order_received_text(){

    echo '<div class="my_thankyou2"><p>' . __('Your download link was sent to: ') . '</p></div>' ;

}

如何将客户的电子邮件地址添加到自定义文本的末尾?

标签: phpwordpressemailwoocommercehook-woocommerce

解决方案


要获取客户帐单电子邮件,您可以使用其中之一:

现在您可以在2 个不同的位置设置文本:

1) 在收到订单页面的顶部:

add_filter( 'woocommerce_thankyou_order_received_text', 'my_order_received_text', 10, 2 );
function my_order_received_text( $text, $order ){
    if( ! is_a($order, 'WC_Order') ) {
        return $text;
    }
    // Get Customer billing email
    $email = $order->get_billing_email();

    return $text . '<br>
    <div class="my_thankyou2"><p>' . __('Your download link was sent to: ') . $email . '</p></div>' ;
}

代码位于您的活动子主题(或活动主题)的 function.php 文件中。测试和工作。


2) 在收到订单页面的底部:

以这种方式使用该WC_Order方法get_billing_email()

add_action( 'woocommerce_thankyou', 'my_order_received_text', 10, 1 );
function my_order_received_text( $order_id ){
    if( ! $order_id ){
        return;
    }
    $order = wc_get_order( $order_id ); // Get an instance of the WC_Order Object
    $email = $order->get_billing_email(); // Get Customer billing email

    echo '<div class="my_thankyou2"><p>' . __('Your download link was sent to: ') . $email . '</p></div>' ;
}

代码位于您的活动子主题(或活动主题)的 function.php 文件中。测试和工作。


或者,使用 WordPressget_post_meta()函数,在函数中替换:

$order = wc_get_order( $order_id ); // Get an instance of the WC_Order Object
$email = $order->get_billing_email(); // Get Customer billing email

通过以下行:

$email = get_post_meta( $order_id, '_billing_email', true ); // Get Customer billing email

推荐阅读