1

(ID ではなく) 番号で WooCommerce 注文を取得するにはどうすればよいですか?

次のようなカスタム引数で wc_get_orders を使用してみました。

wc_get_orders( array( 'number' => '1000' ) );

しかし、うまくいかないようです。

ありがとう!

4

1 に答える 1

3

注文番号機能は、WooCommerce のサードパーティ プラグインを介して実際に有効になります。この場合、WooCommerce 投稿タイプのデータベース テーブルに新しくmeta_key存在します。wp_postmetashop_order_order_number

wc_get_orders() したがって、 (in a WC_Order_Query)を使用する場合、このパラメーターはデフォルトでは存在しません。

numberただし、次のコードを使用して" " パラメータを追加/有効にすることができます。

add_filter( 'woocommerce_order_data_store_cpt_get_orders_query', 'handle_order_number_custom_query_var', 10, 2 );
function handle_order_number_custom_query_var( $query, $query_vars ) {
    if ( ! empty( $query_vars['number'] ) ) {
        $query['meta_query'][] = array(
            'key' => '_order_number',
            'value' => esc_attr( $query_vars['number'] ),
        );
    }

    return $query;
}

コードは、アクティブな子テーマ (またはアクティブなテーマ) の functions.php ファイルに入ります。テスト済みで動作します。

numberパラメータを使用して、次の方法で注文番号から注文を取得できますWC_Order_Query

$order = wc_get_orders( array( 'number' => 1000 ) );

ドキュメントを参照してください: Adding Custom Parameter Support in a WC_Order_Query

于 2020-03-19T15:42:38.917 に答える