WooCommerce 自定义报告:获取已完成状态的订单
WooCommerce custom report: Get orders with completed status
我正在为 woocommerce 制作自定义报告,我正在尝试为所有已交付订单添加报告,这就是我正在做的事情
$orders = wc_get_orders( array('numberposts' => -1) );
foreach( $orders as $order ){
if ( $order->get_status() === completed){
$order_data = $order->get_data(); // The Order data
$items = $order->get_items();
foreach ( $items as $item ) {
$product_name = $item->get_name();
$product_id = $item->get_product_id();
}
$orders_completed .= '<tr><td>' . $order->get_order_number() . '</td>' .
'<td>' . $order->get_date_created()->date('Y-m-d H:i:s') . '</td>' .
'<td>' . $order->get_status() . '</td>' .
'<td>' . $order->get_total() . '</td>' .
'<td>' . $product_id . '</td>' .
'<td>' . $product_name . '</td>' .
'<td>' . $order->get_item_count() . '</td>' .
'<td>' . $order->get_billing_first_name() . '</td>' .
'<td>' . $order->get_billing_email() . '</td>' .
'<td>' . $order->get_billing_phone() . '</td>' .
'<td>' . $order_payment_method = $order_data['payment_method_title'] . '</td></tr>';
}
}
我得到
Call to undefined method WC_Admin_Order_Refund::get_order_number()
我不知道我做错了什么
您只需定位 "shop_order" post 类型, 无需 "shop_order_refund" post 输入您的 WC_Order_Query
,因为某些 WC_Order
方法不存在 WC_Order_Refund
.
因此您可以将代码的第一行替换为:
$orders = wc_get_orders( array('limit' => -1, 'type' => 'shop_order') );
这应该可以解决这个问题。
见the official documentation about wc_get_orders
and WC_Order_Query
我正在为 woocommerce 制作自定义报告,我正在尝试为所有已交付订单添加报告,这就是我正在做的事情
$orders = wc_get_orders( array('numberposts' => -1) );
foreach( $orders as $order ){
if ( $order->get_status() === completed){
$order_data = $order->get_data(); // The Order data
$items = $order->get_items();
foreach ( $items as $item ) {
$product_name = $item->get_name();
$product_id = $item->get_product_id();
}
$orders_completed .= '<tr><td>' . $order->get_order_number() . '</td>' .
'<td>' . $order->get_date_created()->date('Y-m-d H:i:s') . '</td>' .
'<td>' . $order->get_status() . '</td>' .
'<td>' . $order->get_total() . '</td>' .
'<td>' . $product_id . '</td>' .
'<td>' . $product_name . '</td>' .
'<td>' . $order->get_item_count() . '</td>' .
'<td>' . $order->get_billing_first_name() . '</td>' .
'<td>' . $order->get_billing_email() . '</td>' .
'<td>' . $order->get_billing_phone() . '</td>' .
'<td>' . $order_payment_method = $order_data['payment_method_title'] . '</td></tr>';
}
}
我得到
Call to undefined method WC_Admin_Order_Refund::get_order_number()
我不知道我做错了什么
您只需定位 "shop_order" post 类型, 无需 "shop_order_refund" post 输入您的 WC_Order_Query
,因为某些 WC_Order
方法不存在 WC_Order_Refund
.
因此您可以将代码的第一行替换为:
$orders = wc_get_orders( array('limit' => -1, 'type' => 'shop_order') );
这应该可以解决这个问题。
见the official documentation about wc_get_orders
and WC_Order_Query