在 Woocommerce 订单电子邮件通知中获取用户 ID [重复]

Posted

技术标签:

【中文标题】在 Woocommerce 订单电子邮件通知中获取用户 ID [重复]【英文标题】:Get the User ID on Woocommerce order email notifications [duplicate] 【发布时间】:2019-07-23 01:30:39 【问题描述】:

您好,我想将 User_ID 添加到 WooCommerce 订单确认电子邮件中。 我希望我的客户能够在下订单后收到的电子邮件中看到他们自己的 USER ID 号。

但是我当前的代码有问题。

这是我当前的代码:

<?php global $current_user;
  get_currentuserinfo();
  echo 'Your membership number: ' . $current_user->ID . "\n";
?>

但问题在于,这并不特定于实际订单的用户 ID。此用户 ID 获取登录用户的 ID,而不是下订单用户的用户 ID。

它可能应该包含类似这样的东西?!:

$order->get_user_id()

我不知道如何更改我当前的代码。

请问有人可以修改我当前的代码吗?

【问题讨论】:

要在订单表之前显示用户 ID,请使用:woocommerce_email_before_order_table 而不是 woocommerce_email_after_order_table 【参考方案1】:
add_action( 'woocommerce_email_before_order_table', 'add_order_email_instructions', 10, 2 );

function add_order_email_instructions( $order, $sent_to_admin ) 

     echo '<h2>USER ID: '.$order->get_user_id().'</h2>';

【讨论】:

我试过了,好像没用。我希望它会出现在电子邮件模板“email-order-details.php”中,并出现在带有订单详细信息的表格上方 请发送你想要的截图【参考方案2】:

试试看:

在 WooCommerce 2.5 中,以这种方式使用 get_post_meta() 函数:

$user_id = get_post_meta($order_id, '_customer_user', true);

在 WooCommerce 3.0+ 中,您可以通过这种方式使用 WC_Order 类方法:

// Get the user ID from WC_Order methods
$user_id = $order->get_user_id(); // or $order->get_customer_id();

【讨论】:

以上是关于在 Woocommerce 订单电子邮件通知中获取用户 ID [重复]的主要内容,如果未能解决你的问题,请参考以下文章

当订单中有缺货商品时,在 WooCommerce 电子邮件通知中显示消息

在Woocommerce电子邮件通知中显示自定义订单状态的付款链接

在 WooCommerce 电子邮件通知的订单详细信息表中隐藏自定义费用行

在 Woocommerce 购物车、结帐页面、订单和电子邮件通知中的产品标题上方显示品牌名称

在保存订单并发送 WooCommerce 电子邮件通知之前,将订单 ID 添加到订单项目元数据

立即在 WooCommerce 中设置待处理订单并发送处理电子邮件通知