WC_Coupon::set_amount │ public │ WC 3.0.0

Set amount.

Method of the class: WC_Coupon{}

No Hooks.

Returns

void. Nothing (null).

Usage

$WC_Coupon = new WC_Coupon();
$WC_Coupon->set_amount( $amount );
$amount(float|string) (required)
Amount.

Changelog

Since 3.0.0 Introduced.

WC_Coupon::set_amount() code WC 11.1.2

public function set_amount( $amount ) {
	$amount = wc_format_decimal( $amount );

	// Remove leading zeros from numeric strings (e.g., "050" becomes "50")
	// to ensure clean display of the coupon amount.
	if ( '' !== $amount && is_string( $amount ) ) {
		$amount = ltrim( $amount, '0' );
		if ( '' === $amount || '.' === $amount[0] ) {
			$amount = '0' . $amount;
		}
	}

	if ( ! is_numeric( $amount ) ) {
		$amount = 0;
	}

	if ( (float) $amount < 0 ) {
		$this->error( 'coupon_invalid_amount', __( 'Invalid discount amount.', 'woocommerce' ) );
	}

	if ( 'percent' === $this->get_discount_type() && (float) $amount > 100 ) {
		$this->error( 'coupon_invalid_amount', __( 'Invalid discount amount.', 'woocommerce' ) );
	}

	$this->set_prop( 'amount', $amount );
}