Automattic\WooCommerce\Api\Mutations\Coupons

CreateCoupon::executepublicWC 1.0

Execute the mutation.

Method of the class: CreateCoupon{}

No Hooks.

Returns

Coupon.

Usage

$CreateCoupon = new CreateCoupon();
$CreateCoupon->execute( #[Description( foo )] CreateCouponInput $input,  ): Coupon;

[Description( foo )] CreateCouponInput $input (required)

: .

(required)
.

CreateCoupon::execute() code WC 10.9.1

public function execute(
	#[Description( 'Data for the new coupon.' )]
	CreateCouponInput $input,
): Coupon {
	$wc_coupon = new \WC_Coupon();
	$wc_coupon->set_code( $input->code );

	foreach ( array( 'description', 'amount', 'date_expires', 'individual_use', 'product_ids', 'excluded_product_ids', 'usage_limit', 'usage_limit_per_user', 'limit_usage_to_x_items', 'free_shipping', 'product_categories', 'excluded_product_categories', 'exclude_sale_items', 'minimum_amount', 'maximum_amount', 'email_restrictions' ) as $field ) {
		if ( null !== $input->$field ) {
			$wc_coupon->{"set_{$field}"}( $input->$field );
		}
	}

	if ( null !== $input->discount_type ) {
		$wc_coupon->set_discount_type( $input->discount_type->value );
	}
	if ( null !== $input->status ) {
		$wc_coupon->set_status( $input->status->value );
	}

	$wc_coupon->save();

	return CouponMapper::from_wc_coupon( $wc_coupon );
}