Automattic\WooCommerce\Api\Utils\Coupons

CouponMapper::from_wc_couponpublic staticWC 1.0

Map a WC_Coupon to the Coupon DTO.

Method of the class: CouponMapper{}

No Hooks.

Returns

Coupon.

Usage

$result = CouponMapper::from_wc_coupon( $wc_coupon ): Coupon;
$wc_coupon(WC_Coupon) (required)
The WooCommerce coupon object.

CouponMapper::from_wc_coupon() code WC 10.9.1

public static function from_wc_coupon( \WC_Coupon $wc_coupon ): Coupon {
	$coupon = new Coupon();

	$raw_discount_type = (string) $wc_coupon->get_discount_type();
	$raw_status        = (string) $wc_coupon->get_status();

	$coupon->id                          = $wc_coupon->get_id();
	$coupon->code                        = $wc_coupon->get_code();
	$coupon->description                 = $wc_coupon->get_description();
	$coupon->discount_type               = DiscountType::tryFrom( $raw_discount_type ) ?? DiscountType::Other;
	$coupon->raw_discount_type           = $raw_discount_type;
	$coupon->amount                      = (float) $wc_coupon->get_amount();
	$coupon->status                      = '' === $raw_status
		? CouponStatus::Draft
		: ( CouponStatus::tryFrom( $raw_status ) ?? CouponStatus::Other );
	$coupon->raw_status                  = $raw_status;
	$coupon->date_created                = $wc_coupon->get_date_created()?->format( \DateTimeInterface::ATOM );
	$coupon->date_modified               = $wc_coupon->get_date_modified()?->format( \DateTimeInterface::ATOM );
	$coupon->date_expires                = $wc_coupon->get_date_expires()?->format( \DateTimeInterface::ATOM );
	$coupon->usage_count                 = $wc_coupon->get_usage_count();
	$coupon->individual_use              = $wc_coupon->get_individual_use();
	$coupon->product_ids                 = $wc_coupon->get_product_ids();
	$coupon->excluded_product_ids        = $wc_coupon->get_excluded_product_ids();
	$coupon->usage_limit                 = $wc_coupon->get_usage_limit();
	$coupon->usage_limit_per_user        = $wc_coupon->get_usage_limit_per_user();
	$coupon->limit_usage_to_x_items      = $wc_coupon->get_limit_usage_to_x_items();
	$coupon->free_shipping               = $wc_coupon->get_free_shipping();
	$coupon->product_categories          = $wc_coupon->get_product_categories();
	$coupon->excluded_product_categories = $wc_coupon->get_excluded_product_categories();
	$coupon->exclude_sale_items          = $wc_coupon->get_exclude_sale_items();
	$coupon->minimum_amount              = (float) $wc_coupon->get_minimum_amount();
	$coupon->maximum_amount              = (float) $wc_coupon->get_maximum_amount();
	$coupon->email_restrictions          = $wc_coupon->get_email_restrictions();
	$coupon->used_by                     = $wc_coupon->get_used_by();

	return $coupon;
}