WC_Coupon::get_coupon_error()publicWC 1.0

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

Метод класса: WC_Coupon{}

Хуки из метода

Возвращает

Строку. Message/error string

Использование

$WC_Coupon = new WC_Coupon();
$WC_Coupon->get_coupon_error( $err_code );
$err_code(int) (обязательный)
Message/error code.

Код WC_Coupon::get_coupon_error() WC 9.4.2

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:
			// We check for supplied billing email. On shortcode, this will be present for checkout requests.
			$billing_email = \Automattic\WooCommerce\Utilities\ArrayUtil::get_value_or_default( $_POST, 'billing_email' ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
			if ( ! is_null( $billing_email ) ) {
				/* translators: %s: coupon code */
				$err = sprintf( __( 'Please enter a valid email to use coupon code "%s".', 'woocommerce' ), esc_html( $this->get_code() ) );
			} else {
				/* translators: %s: coupon code */
				$err = sprintf( __( 'Please enter a valid email at checkout to use coupon code "%s".', '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 && ! WC()->is_store_api_request() ) {
				/* 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 );
}