40 lines
1.1 KiB
PHP
40 lines
1.1 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* WooCommerce Coupon Tracking
|
||
|
*
|
||
|
* @package WooCommerce\Tracks
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* This class adds actions to track usage of a WooCommerce Coupon.
|
||
|
*/
|
||
|
class WC_Coupon_Tracking {
|
||
|
|
||
|
/**
|
||
|
* Init tracking.
|
||
|
*/
|
||
|
public function init() {
|
||
|
add_action( 'woocommerce_coupon_object_updated_props', array( $this, 'track_coupon_updated' ), 10, 2 );
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Send a Tracks event when a coupon is updated.
|
||
|
*
|
||
|
* @param WC_Coupon $coupon The coupon that has been updated.
|
||
|
* @param Array $updated_props The props of the coupon that have been updated.
|
||
|
*/
|
||
|
public function track_coupon_updated( $coupon, $updated_props ) {
|
||
|
$properties = array(
|
||
|
'discount_code' => $coupon->get_code(),
|
||
|
'free_shipping' => $coupon->get_free_shipping(),
|
||
|
'individual_use' => $coupon->get_individual_use(),
|
||
|
'exclude_sale_items' => $coupon->get_exclude_sale_items(),
|
||
|
'usage_limits_applied' => 0 < intval( $coupon->get_usage_limit() )
|
||
|
|| 0 < intval( $coupon->get_usage_limit_per_user() )
|
||
|
|| 0 < intval( $coupon->get_limit_usage_to_x_items() ),
|
||
|
);
|
||
|
|
||
|
WC_Tracks::record_event( 'coupon_updated', $properties );
|
||
|
}
|
||
|
}
|