Automattic\WooCommerce\EmailEditor\Integrations\Core\Renderer\Blocks

Gallery::parse_aspect_ratio │ private │ WC 1.0

Parse an aspect ratio attribute value (e.g. "1", "1.5", "4/3") into a numeric width/height ratio.

Method of the class: Gallery{}

No Hooks.

Returns

float|null. The ratio (width divided by height), or null when the value is invalid.

Usage

// private - for code of main (parent) class only
$result = $this->parse_aspect_ratio( $aspect_ratio ): ?float;
$aspect_ratio(string) (required)
Aspect ratio value.

Gallery::parse_aspect_ratio() code WC 11.1.2

private function parse_aspect_ratio( string $aspect_ratio ): ?float {
	// Only accept simple numeric ratios to avoid injecting anything unexpected into the markup.
	if ( ! preg_match( '/^(\d+(?:\.\d+)?)(?:\s*\/\s*(\d+(?:\.\d+)?))?$/', trim( $aspect_ratio ), $matches ) ) {
		return null;
	}

	$numerator   = (float) $matches[1];
	$denominator = isset( $matches[2] ) ? (float) $matches[2] : 1.0;

	if ( $numerator <= 0 || $denominator <= 0 ) {
		return null;
	}

	return $numerator / $denominator;
}