如何在 WooCommerce 中获取所有订单状态的 slug 和名称?
How to get slugs and names of all order statuses in WooCommerce?
我想获取所有 WooCommerce 订单状态的所有 slug 和名称。
我尝试了以下线程的答案:Woocommerce get list of order statuses list 但没有成功。
我使用最新的 woocommerce 版本。感谢任何帮助。
将以下代码段添加到 functions.php 并在您要使用的位置调用 woocommerce_get_order_statuses()。
function woocommerce_get_order_statuses() {
$order_statuses = get_terms( 'shop_order_status', array( 'hide_empty' => false ) );
$statuses = array();
foreach ( $order_statuses as $status ) {
$statuses[ $status->slug ] = $status->name;
}
return $statuses;
}
您将使用 WC_Order 函数中的专用函数 wc_get_order_statuses()
,它默认为您提供以下数组:
$order_statuses = array(
'wc-pending' => _x( 'Pending payment', 'Order status', 'woocommerce' ),
'wc-processing' => _x( 'Processing', 'Order status', 'woocommerce' ),
'wc-on-hold' => _x( 'On hold', 'Order status', 'woocommerce' ),
'wc-completed' => _x( 'Completed', 'Order status', 'woocommerce' ),
'wc-cancelled' => _x( 'Cancelled', 'Order status', 'woocommerce' ),
'wc-refunded' => _x( 'Refunded', 'Order status', 'woocommerce' ),
'wc-failed' => _x( 'Failed', 'Order status', 'woocommerce' ),
);
All custom additional order statuses will be included too as the filter hook wc_order_statuses
is applied inside this function.
wc_get_order_statuses() 将仅提供默认的 WooCommerce 状态,但要获取所有订单状态,您可以使用以下函数 woocommerce_get_all_order_statuses ()
function woocommerce_get_all_order_statuses() {
$order_statuses = get_posts( array('post_type'=>'wc_order_status', 'post_status'=>'publish', 'numberposts'=>-1) );
$statuses = array();
foreach ( $order_statuses as $status ) {
$statuses[ $status->post_name ] = $status->post_title;
}
return $statuses;
}
我想获取所有 WooCommerce 订单状态的所有 slug 和名称。 我尝试了以下线程的答案:Woocommerce get list of order statuses list 但没有成功。
我使用最新的 woocommerce 版本。感谢任何帮助。
将以下代码段添加到 functions.php 并在您要使用的位置调用 woocommerce_get_order_statuses()。
function woocommerce_get_order_statuses() {
$order_statuses = get_terms( 'shop_order_status', array( 'hide_empty' => false ) );
$statuses = array();
foreach ( $order_statuses as $status ) {
$statuses[ $status->slug ] = $status->name;
}
return $statuses;
}
您将使用 WC_Order 函数中的专用函数 wc_get_order_statuses()
,它默认为您提供以下数组:
$order_statuses = array(
'wc-pending' => _x( 'Pending payment', 'Order status', 'woocommerce' ),
'wc-processing' => _x( 'Processing', 'Order status', 'woocommerce' ),
'wc-on-hold' => _x( 'On hold', 'Order status', 'woocommerce' ),
'wc-completed' => _x( 'Completed', 'Order status', 'woocommerce' ),
'wc-cancelled' => _x( 'Cancelled', 'Order status', 'woocommerce' ),
'wc-refunded' => _x( 'Refunded', 'Order status', 'woocommerce' ),
'wc-failed' => _x( 'Failed', 'Order status', 'woocommerce' ),
);
All custom additional order statuses will be included too as the filter hook
wc_order_statuses
is applied inside this function.
wc_get_order_statuses() 将仅提供默认的 WooCommerce 状态,但要获取所有订单状态,您可以使用以下函数 woocommerce_get_all_order_statuses ()
function woocommerce_get_all_order_statuses() {
$order_statuses = get_posts( array('post_type'=>'wc_order_status', 'post_status'=>'publish', 'numberposts'=>-1) );
$statuses = array();
foreach ( $order_statuses as $status ) {
$statuses[ $status->post_name ] = $status->post_title;
}
return $statuses;
}