Add parameters for specifying order IDs for reporting.
This commit is contained in:
parent
69245c848b
commit
f3fb79adaf
|
@ -55,6 +55,8 @@ class WC_Admin_REST_Reports_Orders_Controller extends WC_Admin_REST_Reports_Cont
|
|||
$args['extended_info'] = $request['extended_info'];
|
||||
$args['refunds'] = $request['refunds'];
|
||||
$args['match'] = $request['match'];
|
||||
$args['order_includes'] = $request['order_includes'];
|
||||
$args['order_excludes'] = $request['order_excludes'];
|
||||
|
||||
return $args;
|
||||
}
|
||||
|
@ -385,6 +387,24 @@ class WC_Admin_REST_Reports_Orders_Controller extends WC_Admin_REST_Reports_Cont
|
|||
'sanitize_callback' => 'wc_string_to_bool',
|
||||
'validate_callback' => 'rest_validate_request_arg',
|
||||
);
|
||||
$params['order_includes'] = array(
|
||||
'description' => __( 'Limit result set to items that have the specified order ids.', 'woocommerce-admin' ),
|
||||
'type' => 'array',
|
||||
'sanitize_callback' => 'wp_parse_id_list',
|
||||
'validate_callback' => 'rest_validate_request_arg',
|
||||
'items' => array(
|
||||
'type' => 'integer',
|
||||
),
|
||||
);
|
||||
$params['order_excludes'] = array(
|
||||
'description' => __( 'Limit result set to items that don\'t have the specified order ids.', 'woocommerce-admin' ),
|
||||
'type' => 'array',
|
||||
'sanitize_callback' => 'wp_parse_id_list',
|
||||
'validate_callback' => 'rest_validate_request_arg',
|
||||
'items' => array(
|
||||
'type' => 'integer',
|
||||
),
|
||||
);
|
||||
|
||||
return $params;
|
||||
}
|
||||
|
|
|
@ -90,6 +90,16 @@ class WC_Admin_Reports_Orders_Data_Store extends WC_Admin_Reports_Data_Store imp
|
|||
}
|
||||
}
|
||||
|
||||
$included_orders = $this->get_included_orders( $query_args );
|
||||
if ( $included_orders ) {
|
||||
$where_subquery[] = "{$order_stats_lookup_table}.order_id IN ({$included_orders})";
|
||||
}
|
||||
|
||||
$excluded_orders = $this->get_excluded_orders( $query_args );
|
||||
if ( $excluded_orders ) {
|
||||
$where_subquery[] = "{$order_stats_lookup_table}.order_id NOT IN ({$excluded_orders})";
|
||||
}
|
||||
|
||||
if ( $query_args['customer_type'] ) {
|
||||
$returning_customer = 'returning' === $query_args['customer_type'] ? 1 : 0;
|
||||
$where_subquery[] = "{$order_stats_lookup_table}.returning_customer = ${returning_customer}";
|
||||
|
@ -162,6 +172,8 @@ class WC_Admin_Reports_Orders_Data_Store extends WC_Admin_Reports_Data_Store imp
|
|||
'status_is' => array(),
|
||||
'extended_info' => false,
|
||||
'refunds' => null,
|
||||
'order_includes' => array(),
|
||||
'order_excludes' => array(),
|
||||
);
|
||||
$query_args = wp_parse_args( $query_args, $defaults );
|
||||
$this->normalize_timezones( $query_args, $defaults );
|
||||
|
|
Loading…
Reference in New Issue