<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
<?php
/**
 * Kkart Coupon Tracking
 *
 * @package Kkart\Tracks
 */

/**
 * This class adds actions to track usage of a Kkart Coupon.
 */
class KKART_Coupon_Tracking {

	/**
	 * Init tracking.
	 */
	public function init() {
		add_action( 'kkart_coupon_object_updated_props', array( $this, 'track_coupon_updated' ), 10, 2 );
	}

	/**
	 * Send a Tracks event when a coupon is updated.
	 *
	 * @param KKART_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() ),
		);

		KKART_Tracks::record_event( 'coupon_updated', $properties );
	}
}
