Automattic\WooCommerce\EmailEditor\Integrations\WooCommerce

Coupon_Code_Generator::generate_unique_codeprivateWC 1.0

Generate a unique random coupon code, retrying on collision.

Method of the class: Coupon_Code_Generator{}

No Hooks.

Returns

String. A unique coupon code.

Usage

// private - for code of main (parent) class only
$result = $this->generate_unique_code(): string;

Coupon_Code_Generator::generate_unique_code() code WC 10.9.1

private function generate_unique_code(): string {
	for ( $i = 0; $i < self::MAX_CODE_RETRIES; $i++ ) {
		$code     = $this->generate_random_code();
		$existing = wc_get_coupon_id_by_code( $code );
		if ( ! $existing ) {
			return $code;
		}
	}
	// phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- exception message, not rendered output.
	throw new \RuntimeException( 'Failed to generate a unique coupon code.' );
}