# elementor/4.3.0-beta3/modules/components/variants/component-variants.php

Elementor Website Builder – more than just a page builder, version 4.3.0-beta3. 39 lines.

- Page: https://pluginprobe.com/plugins/elementor/4.3.0-beta3/code/modules/components/variants/component-variants.php
- Raw: https://pluginprobe.com/plugins/elementor/4.3.0-beta3/raw/modules/components/variants/component-variants.php
- Modified: 2026-09-01T11:47:36+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/elementor/4.3.0-beta3/code/modules/components/variants/component-variants.php#L10-L20`.

```php
<?php

namespace Elementor\Modules\Components\Variants;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

class Component_Variants {
	/** @var Component_Variant[] */
	public array $variants;

	private function __construct( array $variants_meta ) {
		if ( empty( $variants_meta['variants'] ) ) {
			$this->variants = [];

			return;
		}

		$this->variants = array_map(
			fn( array $variant ) => Component_Variant::make( $variant ),
			$variants_meta['variants']
		);
	}

	public static function make( array $variants_meta ): self {
		return new self( $variants_meta );
	}

	public function to_associative_array(): array {
		return [
			'variants' => array_map(
				fn( Component_Variant $variant ) => $variant->to_associative_array(),
				$this->variants
			),
		];
	}
}

```
