首页 > 解决方案 > woocommerce get_order_report_data 使用元键的日期过滤器

问题描述

我正在尝试通过向管理员显示已售产品及其数量的摘要来扩展 woocommerce 报告,到目前为止,我使用以下代码获得了成功的结果(我只显示了从中获得查询结果的部分):


    $query_data = array(
      'jckwds_date' => array(
        'type'      => 'meta',
        'function'  => '',
        'name'      => 'delivery'
      ),
      '_product_id' => array(
                'type' => 'order_item_meta',
                'order_item_type' => 'line_item',
                'function' => '',
                'name' => 'product_id'
            ),
            '_qty' => array(
                'type' => 'order_item_meta',
                'order_item_type' => 'line_item',
                'function' => 'SUM',
                'name' => 'quantity'
      ),
      '_line_subtotal' => array(
                'type' => 'order_item_meta',
                'order_item_type' => 'line_item',
                'function' => 'SUM',
                'name' => 'gross'
            ),
    );
    $sales_orders_summary = $this->get_order_report_data( array(
      'data'                  => $query_data,
      'query_type'            => 'get_results',
      'group_by'              => 'product_id',
      'order_by'              => 'delivery ASC',
      'filter_range'          => false,
      'order_types'           => wc_get_order_types( 'order_count' ),
      'order_status'          => array( 'processing' ),
      'parent_order_status'   => false,
    ) );

html输出是这样的:

         <?php 
            foreach( $sales_orders_summary as $order ) { 
          ?>
          <tr>
              <td><?php echo $order->delivery; ?></td>
              <td><?php echo html_entity_decode(get_the_title($order->product_id)); ?></td>
              <td><?php echo $order->quantity; ?></td>
              <td><?php echo wc_price($order->gross); ?></td>
          </tr>
          <?php } ?>

结果和预期的一样。但是,管理员现在想要的是按交货日期过滤结果,这是第三方插件导致的“jckwds_date”的元键。这可能类似于将内置的 woocommerce 报告自定义范围与“jckwds_date”匹配。

任何帮助将不胜感激,谢谢!

标签: wordpresswoocommercehook-woocommerce

解决方案


推荐阅读