# elementor/4.3.0/modules/atomic-widgets/plain-resolvers/resolvers/dynamic-plain-resolver.php

Elementor Website Builder – more than just a page builder, version 4.3.0. 37 lines.

- Page: https://pluginprobe.com/plugins/elementor/4.3.0/code/modules/atomic-widgets/plain-resolvers/resolvers/dynamic-plain-resolver.php
- Raw: https://pluginprobe.com/plugins/elementor/4.3.0/raw/modules/atomic-widgets/plain-resolvers/resolvers/dynamic-plain-resolver.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/code/modules/atomic-widgets/plain-resolvers/resolvers/dynamic-plain-resolver.php#L10-L20`.

```php
<?php

namespace Elementor\Modules\AtomicWidgets\PlainResolvers\Resolvers;

use Elementor\Modules\AtomicWidgets\PlainResolvers\Plain_Resolver_Base;
use Elementor\Modules\AtomicWidgets\PlainResolvers\Plain_Values_Resolver;
use Elementor\Modules\AtomicWidgets\PropTypes\Contracts\Prop_Type;
use Elementor\Modules\Mcp\Abilities\Dynamic_Tag_Llm_Resolver;

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

class Dynamic_Plain_Resolver extends Plain_Resolver_Base {
	private Plain_Values_Resolver $walker;

	public function __construct( Plain_Values_Resolver $walker ) {
		$this->walker = $walker;
	}

	public function resolve( $plain_value ) {
		if ( ! is_array( $plain_value ) ) {
			return null;
		}

		if ( ! isset( $plain_value['name'] ) || ! is_string( $plain_value['name'] ) ) {
			return null;
		}

		// Dynamic tag `settings` are validated recursively inside Dynamic_Tag_Llm_Resolver.

		$settings_resolver = fn( $value, Prop_Type $prop_type ) => $this->walker->resolve( $value, $prop_type );

		return Dynamic_Tag_Llm_Resolver::resolve( $plain_value, $settings_resolver );
	}
}

```
