gpt4 book ai didi

php - 从 WooCommerce 中的订单 ID 获取客户 ID

转载 作者:可可西里 更新时间:2023-11-01 13:35:11 26 4
gpt4 key购买 nike

我想通过订单获取客户的“mycred”余额,同时使用 WP ALL Export 将基于订单的客户余额导出到电子表格。这实际上可能很简单。我能够获取订单 ID,但不能获取客户 ID

这是我正在做的测试我是否可以获得客户 ID 的方法:

function get_customeruserid($value)
{
global $woocommerce, $post;

$order = new WC_Order($post->ID);
$order_id = $order->get_order_number();

$customer = new WC_Customer($post->ID);
$user_id = $customer->get_ID();

$value = $user_id;
return $value;
}

这将返回一个 0。

但是,通过这样做我可以很容易地获得订单号:

function get_customerorderid($value)
{
global $woocommerce, $post;

$order = new WC_Order($post->ID);
$order_id = $order->get_order_number();

$value = $order_id;
return $value;
}

这会返回客户的订单号,这很好,但只成功了一半。我现在需要客户 ID,所以我调用 mycred balance 函数来显示他们的余额。

有什么想法吗?我是 php 的新手,可能非常糟糕。

最佳答案

要从订单 ID 中获取用户 ID,您可以使用多种方法,这里是其中的两种:在 WooCommerce 3.0+ 中,您可以使用 WC_Order Class methods这样:

function get_customerorderid(){
global $order, $post;

if( ! is_a($order, 'WC_Order') ) {
$order_id = $post->ID;

// Get an instance of the WC_Order object
$order = wc_get_order($order_id);
} else {
$order_id = $order->id;
}

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

return $user_id;
}

在WooCommerce 3.0版本之前,您可以使用get_post_meta()以这种方式运行:

function get_customerorderid(){
global $order, $post;

if( ! is_a($order, 'WC_Order') ) {
$order_id = $post->ID;
} else {
$order_id = $order->id;
}

// Get the user ID
$user_id = get_post_meta($order_id, '_customer_user', true);

return $user_id;
}

关于php - 从 WooCommerce 中的订单 ID 获取客户 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43814132/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com