从WooCommerce的订单ID获取客户ID

问题描述:

我想通过订单获取客户的“mycred”余额,同时使用WP ALL Export根据订单将客户余额导出到电子表格。这其实可能很简单。我能够拿到订单ID,而不是客户ID从WooCommerce的订单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余额功能以显示余额。

任何想法?我是一个PHP新手,可能非常糟糕。

+0

你有多种方式来做到这一点... – LoicTheAztec

您可以用订单号使用数据库查询来获取相应的客户ID,谷歌WordPress的元查询

+1

是的,谢谢,我很快发现如何做到这一点!这花了我2天......至少我学到了很多东西! –

+0

np,至少你知道了,至少你知道这花了你一些时间,因为你同时学习PHP,MySQL和WordPress,所以你不要感到羞耻,重新取得进展:-) –

从订单ID获得用户ID,您可以使用许多方法,这里是他们的2 :

在WooCommerce 2.5至3.0 +您可以使用get_post_meta()功能是这样的:

function get_customerorderid(){ 
    global $post; 
    $order_id = $post->ID; 

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

    return $user_id; 
} 

在WooCommerce 3.0+可以使用the class WC_Order methods这样:

function get_customerorderid(){ 
    global $post; 
    $order_id = $post->ID; 

    // Get an instance of the WC_Order object 
    $order = wc_get_order($order_id); 

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

    return $user_id; 
} 

对于那些希望从ORDER中将客户mycred余额专门添加到WP中的CSV表单中的所有导出,这里是我使用的代码位。 感谢您帮助解决问题。

当编辑在WP ALL导出订单导出,添加新的数据对象,点击它,“出口由PHP函数返回的值”,然后添加下面的函数在代码编辑器:

function all_export_mycred($balance) 
{ 
    global $woocommerce, $post; 

    $order = new WC_Order($post->ID); 
    $user_id = $order->get_user_id(); 

    $balance = mycred_get_users_balance($user_id); 

      return $balance; 

    } 

然后确保将“all_export_mycred”添加到php返回字段。