Php 限制订单类型以避免在WooCommerce中完成订单时出错
我想根据订单状态显示报告,如果已完成,则显示一些数据 但它适用于所有订单状态,例如,如果我暂停,它会得到数据,但当我完成时,我会得到这个错误 致命错误:调用未定义的方法WC\u Order\u return::get\u Order\u number 这是我的密码Php 限制订单类型以避免在WooCommerce中完成订单时出错,php,wordpress,woocommerce,types,orders,Php,Wordpress,Woocommerce,Types,Orders,我想根据订单状态显示报告,如果已完成,则显示一些数据 但它适用于所有订单状态,例如,如果我暂停,它会得到数据,但当我完成时,我会得到这个错误 致命错误:调用未定义的方法WC\u Order\u return::get\u Order\u number 这是我的密码 //Get Report for Orders that have status of delivered foreach( $orders as $order ){ if ( $order->get_statu
//Get Report for Orders that have status of delivered
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>';
}
}
如果我将“已完成”更改为“保留”或任何其他状态,它将工作并获取数据
但如何使它与已完成的订单一起工作
非常感谢您完成订单列表。您可以使用此
if ($order->payment_complete()){
}
要完成订单列表satuts,您可以使用
if ($order->payment_complete()){
}
问题与订单类型有关,订单类型应为车间订单…有两种方式: 1检查订单类型,该类型需要为店铺订单,但不需要店铺订单退款。因此,您可以使用get_type方法,该方法也适用于WC_订单_退款类,如:
foreach( $orders as $order ){
if ( $order->get_type() === 'shop_order' && $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>';
}
};
这两种方法都可以避免出现此致命错误问题与应为“车间订单”的订单类型有关…有两种方法: 1检查订单类型,该类型需要为店铺订单,但不需要店铺订单退款。因此,您可以使用get_type方法,该方法也适用于WC_订单_退款类,如:
foreach( $orders as $order ){
if ( $order->get_type() === 'shop_order' && $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>';
}
};
两种方法都可以避免出现这个致命错误谢谢你的回答,但我仍然得到了>错误:调用未定义的方法WC\u Order\u return::payment\u complete您的WooCommerce版本?最新版本DFDY您正在使用这个$Order=WC\u get\u Order$Order\u id;要获取订单列表?我使用$orders=wc\u get\u orders数组'numberposts'=>-1;获取所有订单谢谢您的回答,但我仍然得到>错误:调用未定义的方法WC\u Order\u return::payment\u complete您的WooCommerce版本?最新版本DFDY您正在使用此$Order=WC\u get\u Order$Order\u id;要获取订单列表?我使用$orders=wc\u get\u orders数组'numberposts'=>-1;得到所有的订单总是最好的答案。问题解决了,非常感谢,总是最好的答案。问题解决了,非常感谢