WC_Abstract_Order::hold_coupon_for_users()privateWC 1.0

Hold coupon if usage limit per customer is defined.

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

Хуков нет.

Возвращает

Строку. Meta key which indicates held coupon.

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

// private - только в коде основоного (родительского) класса
$result = $this->hold_coupon_for_users( $coupon, $user_ids_and_emails, $user_alias );
$coupon(WC_Coupon) (обязательный)
Coupon object.
$user_ids_and_emails(массив) (обязательный)
Array of user Id and emails to check for usage limit.
$user_alias(строка) (обязательный)
User ID or email to use to record current usage.

Код WC_Abstract_Order::hold_coupon_for_users() WC 8.7.0

private function hold_coupon_for_users( $coupon, $user_ids_and_emails, $user_alias ) {
	$result = $coupon->get_data_store()->check_and_hold_coupon_for_user( $coupon, $user_ids_and_emails, $user_alias );
	if ( false === $result ) {
		// translators: Actual coupon code.
		throw new Exception( sprintf( __( 'An unexpected error happened while applying the Coupon %s.', 'woocommerce' ), esc_html( $coupon->get_code() ) ) );
	} elseif ( 0 === $result ) {
		// translators: Actual coupon code.
		throw new Exception( sprintf( __( 'You have used this coupon %s in another transaction during this checkout, and coupon usage limit is reached. Please remove the coupon and try again.', 'woocommerce' ), esc_html( $coupon->get_code() ) ) );
	}
	return $result;
}