PluginProbe
WooCommerce Square / 4.3.2
WooCommerce Square v4.3.2
5.5.0 5.4.3 5.4.2 5.4.1 5.4.0 trunk 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 All 132 releases
woocommerce-square / includes / Admin / Analytics / Revenue.php
Revenue.php
49 lines 1.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WooCommerce\Square\Admin\Analytics;
4
5 defined( 'ABSPATH' ) || exit;
6
7 use WooCommerce\Square\Handlers\Product;
8
9 /**
10 * Adds necessary functions to modify analytics stats data.
11 */
12 class Revenue {
13 /**
14 * Constructor function.
15 */
16 public function __construct() {
17 add_filter( 'woocommerce_analytics_update_order_stats_data', array( $this, 'filter_net_sales_stats' ) );
18 }
19
20 /**
21 * Removes the purchase of a gift card from the net revenue.
22 *
23 * @since x.x.x
24 *
25 * @param array $order_data Order data.
26 * @return array
27 */
28 public function filter_net_sales_stats( $order_data ) {
29 $order = wc_get_order( $order_data['order_id'] );
30 $line_items = $order->get_items( 'line_item' );
31 $amount_to_deduct = 0;
32
33 /** @var \WC_Order_Item_Product $line_item */
34 foreach ( $line_items as $line_item ) {
35 $product = $line_item->get_product();
36
37 if ( ! Product::is_gift_card( $product ) ) {
38 continue;
39 }
40
41 $amount_to_deduct += $line_item->get_total();
42 }
43
44 $order_data['net_total'] = $order_data['net_total'] - $amount_to_deduct;
45
46 return $order_data;
47 }
48 }
49