PluginProbe
Elementor Website Builder – more than just a page builder / 4.0.0-dev3
Elementor Website Builder – more than just a page builder v4.0.0-dev3
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
elementor / modules / usage / element-usage-calculator-registry.php

element-usage-calculator-registry.php in Elementor Website Builder – more than just a page builder 4.0.0-dev3, at modules/usage/element-usage-calculator-registry.php

39 lines 884 B
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Elementor\Modules\Usage;
4
5 use Elementor\Modules\Usage\Contracts\Element_Usage_Calculator;
6
7 if ( ! defined( 'ABSPATH' ) ) {
8 exit;
9 }
10
11 class Element_Usage_Calculator_Registry {
12
13 /** @var Element_Usage_Calculator[] */
14 private array $calculators = [];
15
16 private ?Element_Usage_Calculator $fallback = null;
17
18 /**
19 * @param Element_Usage_Calculator[] $calculators
20 */
21 public function __construct( array $calculators = [] ) {
22 $this->calculators = $calculators;
23 }
24
25 public function set_fallback( Element_Usage_Calculator $calculator ): void {
26 $this->fallback = $calculator;
27 }
28
29 public function get_calculator_for( array $element, $element_instance ): ?Element_Usage_Calculator {
30 foreach ( $this->calculators as $calculator ) {
31 if ( $calculator->can_calculate( $element, $element_instance ) ) {
32 return $calculator;
33 }
34 }
35
36 return $this->fallback;
37 }
38 }
39