Как получить слагов и имена всех статусов заказов в WooCommerce? - PullRequest
1 голос
/ 22 января 2020

Я хотел бы получить все слагы и имена всех статусов заказа WooCommerce. Я попробовал ответы из следующей ветки: Woocommerce получил список статусов заказов, список , но безуспешно.

Я использую последнюю версию woocommerce. Любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 23 января 2020

Вы будете использовать выделенную функцию 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.

0 голосов
/ 22 января 2020

Добавьте приведенный ниже фрагмент к функциям. 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;
    }
...