【问题标题】:How to get slugs and names of all order statuses in WooCommerce?如何在 WooCommerce 中获取所有订单状态的名称和名称?
【发布时间】:2020-01-22 16:13:10
【问题描述】:

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

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

【问题讨论】:

    标签: php wordpress function woocommerce orders


    【解决方案1】:

    您将使用 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' ),
    );
    

    所有自定义附加订单状态也将包括在内,因为过滤器挂钩wc_order_statuses 应用于此函数。

    【讨论】:

      【解决方案2】:

      在sn-p下面添加到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;
          }
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2018-03-17
          • 2019-03-24
          • 1970-01-01
          • 1970-01-01
          • 2020-12-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多