从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新手,可能非常糟糕。
您可以用订单号使用数据库查询来获取相应的客户ID,谷歌WordPress的元查询
是的,谢谢,我很快发现如何做到这一点!这花了我2天......至少我学到了很多东西! –
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返回字段。
你有多种方式来做到这一点... – LoicTheAztec