猿问

如何在 WooCommerce 中获取所有订单状态的名称和名称?

我想获取所有 WooCommerce 订单状态的所有标签和名称。我尝试了以下线程的答案:Woocommerce get list of order statuses list但没有成功。

我使用最新的 woocommerce 版本。任何帮助表示赞赏。


慕村225694
浏览 156回答 3
3回答

HUH函数

您将使用wc_get_order_statuses()WC_Order 函数中的专用函数,该函数默认为您提供以下数组:$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' ),);所有自定义的附加订单状态也将包括在内wc_order_statuses,因为在此函数中应用了过滤器挂钩。

万千封印

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;}

慕运维8079593

将以下代码段添加到 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;    }
随时随地看视频慕课网APP
我要回答