WC_Coupon::get_coupon_error()publicWC 1.0

Map one of the WC_Coupon error codes to a message string.

Method of the class: WC_Coupon{}

Hooks from the method

Return

String. Message/error string

Usage

$WC_Coupon = new WC_Coupon();
$WC_Coupon->get_coupon_error( $err_code );
$err_code(int) (required)
Message/error code.

WC_Coupon::get_coupon_error() code WC 8.7.0

public function get_coupon_error( $err_code ) {
	switch ( $err_code ) {
		case self::E_WC_COUPON_INVALID_FILTERED:
			$err = __( 'Coupon is not valid.', 'woocommerce' );
			break;
		case self::E_WC_COUPON_NOT_EXIST:
			/* translators: %s: coupon code */
			$err = sprintf( __( 'Coupon "%s" does not exist!', 'woocommerce' ), esc_html( $this->get_code() ) );
			break;
		case self::E_WC_COUPON_INVALID_REMOVED:
			/* translators: %s: coupon code */
			$err = sprintf( __( 'Sorry, it seems the coupon "%s" is invalid - it has now been removed from your order.', 'woocommerce' ), esc_html( $this->get_code() ) );
			break;
		case self::E_WC_COUPON_NOT_YOURS_REMOVED:
			/* translators: %s: coupon code */
			$err = sprintf( __( 'Sorry, it seems the coupon "%s" is not yours - it has now been removed from your order.', 'woocommerce' ), esc_html( $this->get_code() ) );
			break;
		case self::E_WC_COUPON_ALREADY_APPLIED:
			$err = __( 'Coupon code already applied!', 'woocommerce' );
			break;
		case self::E_WC_COUPON_ALREADY_APPLIED_INDIV_USE_ONLY:
			/* translators: %s: coupon code */
			$err = sprintf( __( 'Sorry, coupon "%s" has already been applied and cannot be used in conjunction with other coupons.', 'woocommerce' ), esc_html( $this->get_code() ) );
			break;
		case self::E_WC_COUPON_USAGE_LIMIT_REACHED:
			$err = __( 'Coupon usage limit has been reached.', 'woocommerce' );
			break;
		case self::E_WC_COUPON_EXPIRED:
			$err = __( 'This coupon has expired.', 'woocommerce' );
			break;
		case self::E_WC_COUPON_MIN_SPEND_LIMIT_NOT_MET:
			/* translators: %s: coupon minimum amount */
			$err = sprintf( __( 'The minimum spend for this coupon is %s.', 'woocommerce' ), wc_price( $this->get_minimum_amount() ) );
			break;
		case self::E_WC_COUPON_MAX_SPEND_LIMIT_MET:
			/* translators: %s: coupon maximum amount */
			$err = sprintf( __( 'The maximum spend for this coupon is %s.', 'woocommerce' ), wc_price( $this->get_maximum_amount() ) );
			break;
		case self::E_WC_COUPON_NOT_APPLICABLE:
			$err = __( 'Sorry, this coupon is not applicable to your cart contents.', 'woocommerce' );
			break;
		case self::E_WC_COUPON_USAGE_LIMIT_COUPON_STUCK:
			if ( is_user_logged_in() && wc_get_page_id( 'myaccount' ) > 0 ) {
				/* translators: %s: myaccount page link. */
				$err = sprintf( __( 'Coupon usage limit has been reached. If you were using this coupon just now but your order was not complete, you can retry or cancel the order by going to the <a href="%s">my account page</a>.', 'woocommerce' ), wc_get_endpoint_url( 'orders', '', wc_get_page_permalink( 'myaccount' ) ) );
			} else {
				$err = $this->get_coupon_error( self::E_WC_COUPON_USAGE_LIMIT_REACHED );
			}
			break;
		case self::E_WC_COUPON_USAGE_LIMIT_COUPON_STUCK_GUEST:
			$err = __( 'Coupon usage limit has been reached. Please try again after some time, or contact us for help.', 'woocommerce' );
			break;
		case self::E_WC_COUPON_EXCLUDED_PRODUCTS:
			// Store excluded products that are in cart in $products.
			$products = array();
			if ( ! WC()->cart->is_empty() ) {
				foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
					if ( in_array( intval( $cart_item['product_id'] ), $this->get_excluded_product_ids(), true ) || in_array( intval( $cart_item['variation_id'] ), $this->get_excluded_product_ids(), true ) || in_array( intval( $cart_item['data']->get_parent_id() ), $this->get_excluded_product_ids(), true ) ) {
						$products[] = $cart_item['data']->get_name();
					}
				}
			}

			/* translators: %s: products list */
			$err = sprintf( __( 'Sorry, this coupon is not applicable to the products: %s.', 'woocommerce' ), implode( ', ', $products ) );
			break;
		case self::E_WC_COUPON_EXCLUDED_CATEGORIES:
			// Store excluded categories that are in cart in $categories.
			$categories = array();
			if ( ! WC()->cart->is_empty() ) {
				foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
					$product_cats = wc_get_product_cat_ids( $cart_item['product_id'] );
					$intersect    = array_intersect( $product_cats, $this->get_excluded_product_categories() );

					if ( count( $intersect ) > 0 ) {
						foreach ( $intersect as $cat_id ) {
							$cat          = get_term( $cat_id, 'product_cat' );
							$categories[] = $cat->name;
						}
					}
				}
			}

			/* translators: %s: categories list */
			$err = sprintf( __( 'Sorry, this coupon is not applicable to the categories: %s.', 'woocommerce' ), implode( ', ', array_unique( $categories ) ) );
			break;
		case self::E_WC_COUPON_NOT_VALID_SALE_ITEMS:
			$err = __( 'Sorry, this coupon is not valid for sale items.', 'woocommerce' );
			break;
		default:
			$err = '';
			break;
	}
	return apply_filters( 'woocommerce_coupon_error', $err, $err_code, $this );
}