PluginProbe
Elementor Website Builder – more than just a page builder / 4.2.4
Elementor Website Builder – more than just a page builder v4.2.4
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
← All changes | modules/atomic-widgets/module.php +58 -0 4.0.84.2.4 View file →
@@ -2,14 +2,17 @@
2 2
3 3 namespace Elementor\Modules\AtomicWidgets;
4 4
5 5 use Elementor\Core\Base\Module as BaseModule;
6 +use Elementor\Core\Common\Modules\Ajax\Module as Ajax;
6 7 use Elementor\Core\Experiments\Manager as Experiments_Manager;
7 8 use Elementor\Elements_Manager;
9 +use Elementor\Modules\AtomicWidgets\Ajax\Render_Element_Action;
8 10 use Elementor\Modules\AtomicWidgets\DynamicTags\Dynamic_Tags_Module;
9 11 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Youtube\Atomic_Youtube;
10 12 use Elementor\Modules\AtomicWidgets\Elements\Div_Block\Div_Block;
11 13 use Elementor\Modules\AtomicWidgets\Elements\Flexbox\Flexbox;
14 +use Elementor\Modules\AtomicWidgets\Elements\Grid\Grid;
12 15 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Heading\Atomic_Heading;
13 16 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Image\Atomic_Image;
14 17 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Paragraph\Atomic_Paragraph;
15 18 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Button\Atomic_Button;
@@ -19,8 +22,9 @@
19 22 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Tabs\Atomic_Tabs_Menu\Atomic_Tabs_Menu;
20 23 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Tabs\Atomic_Tab\Atomic_Tab;
21 24 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Tabs\Atomic_Tabs_Content_Area\Atomic_Tabs_Content_Area;
22 25 use Elementor\Modules\AtomicWidgets\ImportExport\Atomic_Import_Export;
26 +use Elementor\Modules\AtomicWidgets\Elements\Promotions\Pro_Promotion_Data_Preservation;
23 27 use Elementor\Modules\AtomicWidgets\Elements\Loader\Frontend_Assets_Loader;
24 28 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Combine_Array_Transformer;
25 29 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Export\Image_Src_Export_Transformer;
26 30 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Export\Svg_Src_Export_Transformer;
@@ -42,8 +46,9 @@
42 46 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Color_Stop_Transformer;
43 47 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Multi_Props_Transformer;
44 48 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Position_Transformer;
45 49 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Shadow_Transformer;
50 +use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Grid_Track_Size_Transformer;
46 51 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Size_Transformer;
47 52 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Stroke_Transformer;
48 53 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Background_Image_Overlay_Transformer;
49 54 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Background_Image_Overlay_Size_Scale_Transformer;
@@ -48,8 +53,9 @@
48 53 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Background_Image_Overlay_Transformer;
49 54 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Background_Image_Overlay_Size_Scale_Transformer;
50 55 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Background_Overlay_Transformer;
51 56 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Filter_Transformer;
57 +use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Font_Family_Transformer;
52 58 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Transform_Origin_Transformer;
53 59 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Transition_Transformer;
54 60 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Transform_Rotate_Transformer;
55 61 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Transform_Skew_Transformer;
@@ -71,8 +77,10 @@
71 77 use Elementor\Modules\AtomicWidgets\PropTypes\Border_Radius_Prop_Type;
72 78 use Elementor\Modules\AtomicWidgets\PropTypes\Border_Width_Prop_Type;
73 79 use Elementor\Modules\AtomicWidgets\PropTypes\Color_Stop_Prop_Type;
74 80 use Elementor\Modules\AtomicWidgets\PropTypes\Date_Time_Prop_Type;
81 +use Elementor\Modules\AtomicWidgets\PropTypes\Date_Range_Prop_Type;
82 +use Elementor\Modules\AtomicWidgets\PropTypes\Time_Range_Prop_Type;
75 83 use Elementor\Modules\AtomicWidgets\PropTypes\Filters\Backdrop_Filter_Prop_Type;
76 84 use Elementor\Modules\AtomicWidgets\PropTypes\Filters\Filter_Prop_Type;
77 85 use Elementor\Modules\AtomicWidgets\PropTypes\Gradient_Color_Stop_Prop_Type;
78 86 use Elementor\Modules\AtomicWidgets\PropTypes\Html_V2_Prop_Type;
@@ -86,8 +94,9 @@
86 94 use Elementor\Modules\AtomicWidgets\PropTypes\Svg_Src_Prop_Type;
87 95 use Elementor\Modules\AtomicWidgets\PropTypes\Dimensions_Prop_Type;
88 96 use Elementor\Modules\AtomicWidgets\PropTypes\Position_Prop_Type;
89 97 use Elementor\Modules\AtomicWidgets\PropTypes\Shadow_Prop_Type;
98 +use Elementor\Modules\AtomicWidgets\PropTypes\Grid_Track_Size_Prop_Type;
90 99 use Elementor\Modules\AtomicWidgets\PropTypes\Size_Prop_Type;
91 100 use Elementor\Modules\AtomicWidgets\PropTypes\Stroke_Prop_Type;
92 101 use Elementor\Modules\AtomicWidgets\PropTypes\Transform\Functions\Transform_Move_Prop_Type;
93 102 use Elementor\Modules\AtomicWidgets\PropTypes\Transform\Transform_Functions_Prop_Type;
@@ -101,11 +110,14 @@
101 110 use Elementor\Modules\AtomicWidgets\Styles\Atomic_Widget_Base_Styles;
102 111 use Elementor\Modules\AtomicWidgets\Styles\Atomic_Widget_Styles;
103 112 use Elementor\Modules\AtomicWidgets\Styles\Size_Constants;
104 113 use Elementor\Modules\AtomicWidgets\Styles\Style_Schema;
114 +use Elementor\Modules\AtomicWidgets\CssConverter\Css_Converter_REST_API;
105 115 use Elementor\Modules\AtomicWidgets\Database\Atomic_Widgets_Database_Updater;
106 116 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Tabs\Atomic_Tab_Content\Atomic_Tab_Content;
117 +use Elementor\Modules\AtomicWidgets\Elements\Atomic_Collection_Loop\Collection_Loop_Promotion;
107 118 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Form\Atomic_Form;
119 +use Elementor\Modules\AtomicWidgets\Elements\Atomic_Form\Atomic_Form_Promotion;
108 120 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Form\Form_Success_Message\Form_Success_Message;
109 121 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Form\Form_Error_Message\Form_Error_Message;
110 122 use Elementor\Modules\AtomicWidgets\PropTypeMigrations\Migrations_Orchestrator;
111 123 use Elementor\Plugin;
@@ -111,14 +123,19 @@
111 123 use Elementor\Plugin;
112 124 use Elementor\Widgets_Manager;
113 125 use Elementor\Modules\AtomicWidgets\Library\Atomic_Widgets_Library;
114 126 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Settings\Query_Transformer;
127 +use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Settings\Date_Range_Transformer;
128 +use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Settings\Time_Range_Transformer;
115 129 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Perspective_Origin_Transformer;
116 130 use Elementor\Modules\AtomicWidgets\PropTypes\Query_Prop_Type;
117 131 use Elementor\Modules\AtomicWidgets\PropTypes\Transform\Perspective_Origin_Prop_Type;
118 132 use Elementor\Modules\AtomicWidgets\Utils\Utils;
119 133 use Elementor\Modules\AtomicWidgets\Elements\Atomic_Self_Hosted_Video\Atomic_Self_Hosted_Video;
134 +use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Styles\Span_Transformer;
120 135 use Elementor\Modules\AtomicWidgets\PropsResolver\Transformers\Video_Src_Transformer;
136 +use Elementor\Modules\AtomicWidgets\PropTypes\Font_Family_Prop_Type;
137 +use Elementor\Modules\AtomicWidgets\PropTypes\Span_Prop_Type;
121 138 use Elementor\Modules\AtomicWidgets\PropTypes\Video_Src_Prop_Type;
122 139
123 140 if ( ! defined( 'ABSPATH' ) ) {
124 141 exit; // Exit if accessed directly.
@@ -138,8 +155,9 @@
138 155 'editor-styles', // TODO: Need to be registered and not enqueued.
139 156 'editor-styles-repository',
140 157 'editor-interactions',
141 158 'editor-templates',
159 + 'editor-design-system',
142 160 ];
143 161
144 162 public function get_name() {
145 163 return 'atomic-widgets';
@@ -162,11 +180,15 @@
162 180 add_filter( 'elementor/usage/elements/element_title', fn ( $title, $type ) => $this->get_element_usage_name( $title, $type ), 10, 2 );
163 181
164 182 add_action( 'elementor/elements/elements_registered', fn ( $elements_manager ) => $this->register_elements( $elements_manager ) );
165 183 add_action( 'elementor/editor/after_enqueue_scripts', fn () => $this->enqueue_scripts() );
184 + add_action( 'elementor/editor/after_enqueue_styles', fn () => $this->enqueue_promotion_styles() );
185 + add_action( 'elementor/preview/enqueue_styles', fn () => $this->enqueue_promotion_styles() );
166 186 add_action( 'elementor/frontend/before_register_scripts', fn () => $this->register_frontend_scripts() );
167 187 add_action( 'elementor/frontend/after_enqueue_styles', fn () => $this->add_inline_styles() );
168 188
189 + add_action( 'elementor/ajax/register_actions', fn ( Ajax $ajax ) => ( new Render_Element_Action() )->register( $ajax ) );
190 +
169 191 add_action( 'elementor/atomic-widgets/settings/transformers/register', fn ( $transformers ) => $this->register_settings_transformers( $transformers ) );
170 192 add_action( 'elementor/atomic-widgets/styles/transformers/register', fn ( $transformers ) => $this->register_styles_transformers( $transformers ) );
171 193 add_action( 'elementor/atomic-widgets/import/transformers/register', fn ( $transformers ) => $this->register_import_transformers( $transformers ) );
172 194 add_action( 'elementor/atomic-widgets/export/transformers/register', fn ( $transformers ) => $this->register_export_transformers( $transformers ) );
@@ -239,8 +261,10 @@
239 261 ( new Atomic_Widget_Base_Styles() )->register_hooks();
240 262 ( new Atomic_Widgets_Library() )->register_hooks();
241 263 ( new Atomic_Import_Export() )->register_hooks();
242 264 ( new Atomic_Widgets_Database_Updater() )->register();
265 + ( new Css_Converter_REST_API() )->register_hooks();
266 + ( new Pro_Promotion_Data_Preservation() )->register_hooks();
243 267 }
244 268
245 269 private function add_packages( $packages ) {
246 270 return array_merge( $packages, self::PACKAGES );
@@ -277,8 +301,9 @@
277 301
278 302 private function register_elements( Elements_Manager $elements_manager ) {
279 303 $elements_manager->register_element_type( new Div_Block() );
280 304 $elements_manager->register_element_type( new Flexbox() );
305 + $elements_manager->register_element_type( new Grid() );
281 306
282 307 $elements_manager->register_element_type( new Atomic_Tabs() );
283 308 $elements_manager->register_element_type( new Atomic_Tabs_Menu() );
284 309 $elements_manager->register_element_type( new Atomic_Tab() );
@@ -288,9 +313,15 @@
288 313 if ( \Elementor\Utils::has_pro() && Plugin::$instance->experiments->is_feature_active( 'e_pro_atomic_form' ) ) {
289 314 $elements_manager->register_element_type( new Atomic_Form() );
290 315 $elements_manager->register_element_type( new Form_Success_Message() );
291 316 $elements_manager->register_element_type( new Form_Error_Message() );
317 + } elseif ( ! \Elementor\Utils::has_pro() ) {
318 + $elements_manager->register_element_type( new Atomic_Form_Promotion() );
292 319 }
320 +
321 + if ( ! \Elementor\Utils::has_pro() ) {
322 + $elements_manager->register_element_type( new Collection_Loop_Promotion() );
323 + }
293 324 }
294 325
295 326 private function register_settings_transformers( Transformers_Registry $transformers ) {
296 327 $transformers->register_fallback( new Plain_Transformer() );
@@ -302,8 +333,10 @@
302 333 $transformers->register( Link_Prop_Type::get_key(), new Link_Transformer() );
303 334 $transformers->register( Query_Prop_Type::get_key(), new Query_Transformer() );
304 335 $transformers->register( Attributes_Prop_Type::get_key(), new Attributes_Transformer() );
305 336 $transformers->register( Date_Time_Prop_Type::get_key(), new Date_Time_Transformer() );
337 + $transformers->register( Date_Range_Prop_Type::get_key(), new Date_Range_Transformer() );
338 + $transformers->register( Time_Range_Prop_Type::get_key(), new Time_Range_Transformer() );
306 339 $transformers->register( Html_V2_Prop_Type::get_key(), new Html_V2_Transformer() );
307 340 $transformers->register( Html_V3_Prop_Type::get_key(), new Html_V3_Transformer() );
308 341 }
309 342
@@ -317,9 +350,11 @@
317 350 $this->register_layout_styles_transformers( $transformers );
318 351 }
319 352
320 353 private function register_basic_styles_transformers( Transformers_Registry $transformers ): void {
354 + $transformers->register( Font_Family_Prop_Type::get_key(), new Font_Family_Transformer() );
321 355 $transformers->register( Size_Prop_Type::get_key(), new Size_Transformer() );
356 + $transformers->register( Grid_Track_Size_Prop_Type::get_key(), new Grid_Track_Size_Transformer() );
322 357 $transformers->register( Box_Shadow_Prop_Type::get_key(), new Combine_Array_Transformer( ',' ) );
323 358 $transformers->register( Shadow_Prop_Type::get_key(), new Shadow_Transformer() );
324 359 $transformers->register( Flex_Prop_Type::get_key(), new Flex_Transformer() );
325 360 $transformers->register( Stroke_Prop_Type::get_key(), new Stroke_Transformer() );
@@ -324,8 +359,9 @@
324 359 $transformers->register( Flex_Prop_Type::get_key(), new Flex_Transformer() );
325 360 $transformers->register( Stroke_Prop_Type::get_key(), new Stroke_Transformer() );
326 361 $transformers->register( Image_Prop_Type::get_key(), new Image_Transformer() );
327 362 $transformers->register( Image_Src_Prop_Type::get_key(), new Image_Src_Transformer() );
363 + $transformers->register( Span_Prop_Type::get_key(), new Span_Transformer() );
328 364 }
329 365
330 366 private function register_background_styles_transformers( Transformers_Registry $transformers ): void {
331 367 $transformers->register( Background_Image_Overlay_Prop_Type::get_key(), new Background_Image_Overlay_Transformer() );
@@ -423,8 +459,10 @@
423 459 [ 'elementor-editor' ],
424 460 ELEMENTOR_VERSION,
425 461 true
426 462 );
463 +
464 + wp_set_script_translations( 'elementor-atomic-widgets-editor', 'elementor' );
427 465 }
428 466
429 467 private function render_panel_category_chip() {
430 468 ?><# if ( 'v4-elements' === name ) { #>
@@ -448,6 +486,26 @@
448 486 '{ display: block; }',
449 487 ] );
450 488 wp_add_inline_style( 'elementor-frontend', $inline_css );
451 489 wp_add_inline_style( 'elementor-editor', $inline_css );
490 + }
491 +
492 + private function enqueue_promotion_styles() {
493 + if ( \Elementor\Utils::has_pro() ) {
494 + return;
495 + }
496 +
497 + wp_enqueue_style(
498 + 'elementor-atomic-widgets-promotion-fonts',
499 + 'https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swap',
500 + [],
501 + ELEMENTOR_VERSION
502 + );
503 +
504 + wp_enqueue_style(
505 + 'elementor-atomic-widgets-promotion',
506 + $this->get_css_assets_url( 'modules/atomic-widgets/editor' ),
507 + [ 'elementor-atomic-widgets-promotion-fonts' ],
508 + ELEMENTOR_VERSION
509 + );
452 510 }
453 511 }