Automattic\WooCommerce\Api\Utils\Coupons
CouponMapper::from_wc_coupon
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() 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;
}