【问题标题】:Woocommerce: Query all orders that match a meta data value [duplicate]Woocommerce:查询与元数据值匹配的所有订单[重复]
【发布时间】:2020-12-09 22:55:24
【问题描述】:

我正在尝试获取在自定义元数据中具有特定价值的所有订单。

这是一个使用wc_get_orders的基本查询

$delivered_orders = (array) wc_get_orders( array(
        'limit'        => -1,
        'status'       => 'wc-delivered',
        'type' => 'shop_order',
        'date_created' => '>'. $from,
    ) );

我在这里获取所有状态为wc-delivered 并且从某个日期创建的订单,我还需要过滤其元数据_my_meta_data 等于"some value" 的订单

【问题讨论】:

    标签: wordpress woocommerce metadata


    【解决方案1】:

    您可以将自定义参数添加到查询变量中,如下所示:

    1.过滤生成的查询。

    /**
     * Handle a custom 'customvar' query var to get orders with the 'customvar' meta.
     * @param array $query - Args for WP_Query.
     * @param array $query_vars - Query vars from WC_Order_Query.
     * @return array modified $query
     */
    function handle_custom_query_var( $query, $query_vars ) {
        if ( ! empty( $query_vars['customvar'] ) ) {
            $query['meta_query'][] = array(
                'key' => 'customvar',
                'value' => esc_attr( $query_vars['customvar'] ),
            );
        }
    
        return $query;
    }
    add_filter( 'woocommerce_order_data_store_cpt_get_orders_query', 'handle_custom_query_var', 10, 2 );
    

    2。用法

    $orders = wc_get_orders( array( 'customvar' => 'somevalue' ) );
    

    【讨论】:

      【解决方案2】:
      /**
      * you can try this below code 
      */
          
      $args = array(
          'status' => array('wc-delivered'),
      );
      $orders = wc_get_orders( $args );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-20
        • 1970-01-01
        • 1970-01-01
        • 2016-11-28
        • 2022-12-11
        • 2021-11-21
        • 2012-05-30
        相关资源
        最近更新 更多