2018-09-17 14:32:03 +00:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Class for parameter-based Revenue Reports querying
|
|
|
|
*
|
|
|
|
* Example usage:
|
|
|
|
* $args = array(
|
|
|
|
* 'before' => '2018-07-19 00:00:00',
|
|
|
|
* 'after' => '2018-07-05 00:00:00',
|
|
|
|
* 'interval' => 'week',
|
|
|
|
* );
|
2018-09-17 18:20:34 +00:00
|
|
|
* $report = new WC_Admin_Reports_Revenue_Query( $args );
|
2018-09-17 14:32:03 +00:00
|
|
|
* $mydata = $report->get_data();
|
|
|
|
*
|
2018-09-17 18:20:34 +00:00
|
|
|
* @package WooCommerce Admin/Classes
|
2018-09-17 14:32:03 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
defined( 'ABSPATH' ) || exit;
|
|
|
|
|
|
|
|
/**
|
2018-09-17 18:20:34 +00:00
|
|
|
* WC_Admin_Reports_Revenue_Query
|
2018-09-17 14:32:03 +00:00
|
|
|
*/
|
2018-09-17 18:20:34 +00:00
|
|
|
class WC_Admin_Reports_Revenue_Query extends WC_Admin_Reports_Query {
|
2018-09-17 14:32:03 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Valid fields for Revenue report.
|
|
|
|
*
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
protected function get_default_query_vars() {
|
|
|
|
return array(
|
|
|
|
'per_page' => get_option( 'posts_per_page' ), // not sure if this should be the default.
|
|
|
|
'page' => 1,
|
|
|
|
'order' => 'DESC',
|
|
|
|
'orderby' => 'date',
|
|
|
|
'before' => '',
|
|
|
|
'after' => '',
|
|
|
|
'interval' => 'week',
|
2018-10-22 16:20:14 +00:00
|
|
|
'fields' => array(
|
2018-09-17 14:32:03 +00:00
|
|
|
'orders_count',
|
|
|
|
'num_items_sold',
|
|
|
|
'gross_revenue',
|
|
|
|
'coupons',
|
2019-04-01 02:16:57 +00:00
|
|
|
'coupons_count',
|
2018-09-17 14:32:03 +00:00
|
|
|
'refunds',
|
|
|
|
'taxes',
|
|
|
|
'shipping',
|
|
|
|
'net_revenue',
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get revenue data based on the current query vars.
|
|
|
|
*
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public function get_data() {
|
2018-10-24 18:49:58 +00:00
|
|
|
$args = apply_filters( 'woocommerce_reports_revenue_query_args', $this->get_query_vars() );
|
|
|
|
|
|
|
|
$data_store = WC_Data_Store::load( 'report-revenue-stats' );
|
|
|
|
$results = $data_store->get_data( $args );
|
2018-09-17 14:32:03 +00:00
|
|
|
return apply_filters( 'woocommerce_reports_revenue_select_query', $results, $args );
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|