Wie erhalte ich Slugs und Namen aller Bestellstatus in WooCommerce?

Lesezeit: 1 Minute

Benutzeravatar von Stimart
Stimart

Ich möchte alle Slugs und Namen aller WooCommerce-Bestellstatus erhalten. Ich habe die Antworten aus dem folgenden Thread versucht: Woocommerce get list of order status list, aber ohne Erfolg.

Ich verwende die neueste WooCommerce-Version. Jede Hilfe ist willkommen.

Sie werden die dedizierte Funktion verwenden wc_get_order_statuses()von WC_Order-Funktionen, die Ihnen standardmäßig das folgende Array liefern:

$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' ),
);

Alle benutzerdefinierte zusätzliche Bestellstatus werden ebenfalls enthalten sein als Filterhaken wc_order_statuses wird innerhalb dieser Funktion angewendet.

Fügen Sie das folgende Snippet zu functions.php hinzu und rufen Sie woocommerce_get_order_statuses() dort auf, wo Sie es verwenden möchten.

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_get_order_statuses() stellt nur standardmäßige WooCommerce-Status bereit, aber um alle Bestellstatus zu erhalten, können Sie die folgende Funktion verwenden 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;
}

1446730cookie-checkWie erhalte ich Slugs und Namen aller Bestellstatus in WooCommerce?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy