WC_Coupon::read_manual_coupon()publicWC 3.0.0

Developers can programmatically return coupons. This function will read those values into our WC_Coupon class.

Method of the class: WC_Coupon{}

No Hooks.

Return

null. Nothing (null).

Usage

$WC_Coupon = new WC_Coupon();
$WC_Coupon->read_manual_coupon( $code, $coupon );
$code(string) (required)
Coupon code.
$coupon(array) (required)
Array of coupon properties.

Changelog

Since 3.0.0 Introduced.

WC_Coupon::read_manual_coupon() code WC 9.4.2

public function read_manual_coupon( $code, $coupon ) {
	foreach ( $coupon as $key => $value ) {
		switch ( $key ) {
			case 'excluded_product_ids':
			case 'exclude_product_ids':
				if ( ! is_array( $coupon[ $key ] ) ) {
					wc_doing_it_wrong( $key, $key . ' should be an array instead of a string.', '3.0' );
					$coupon['excluded_product_ids'] = wc_string_to_array( $value );
				}
				break;
			case 'exclude_product_categories':
			case 'excluded_product_categories':
				if ( ! is_array( $coupon[ $key ] ) ) {
					wc_doing_it_wrong( $key, $key . ' should be an array instead of a string.', '3.0' );
					$coupon['excluded_product_categories'] = wc_string_to_array( $value );
				}
				break;
			case 'product_ids':
				if ( ! is_array( $coupon[ $key ] ) ) {
					wc_doing_it_wrong( $key, $key . ' should be an array instead of a string.', '3.0' );
					$coupon[ $key ] = wc_string_to_array( $value );
				}
				break;
			case 'individual_use':
			case 'free_shipping':
			case 'exclude_sale_items':
				if ( ! is_bool( $coupon[ $key ] ) ) {
					wc_doing_it_wrong( $key, $key . ' should be true or false instead of yes or no.', '3.0' );
					$coupon[ $key ] = wc_string_to_bool( $value );
				}
				break;
			case 'expiry_date':
				$coupon['date_expires'] = $value;
				break;
		}
	}
	$this->set_props( $coupon );
	$this->set_code( $code );
	$this->set_id( 0 );
	$this->set_virtual( true );
}