PluginProbe
Elementor Website Builder – more than just a page builder / 4.3.0-beta3
Elementor Website Builder – more than just a page builder v4.3.0-beta3
4.3.0-beta3 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 All 452 releases
elementor / modules / widget-creation / angie-promotion.php

angie-promotion.php in Elementor Website Builder – more than just a page builder 4.3.0-beta3, at modules/widget-creation/angie-promotion.php

83 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Elementor\Modules\WidgetCreation;
4
5 use Elementor\Core\Upgrade\Manager as Upgrade_Manager;
6 use Elementor\Core\Utils\Hints;
7 use Elementor\Modules\ElementorCounter\Module as Elementor_Counter;
8 use Elementor\Plugin;
9 use Elementor\User;
10
11 if ( ! defined( 'ABSPATH' ) ) {
12 exit;
13 }
14
15 class AngiePromotion {
16 const ANGIE_GUIDE_AUTO_SHOWN_OPTION = 'elementor_angie_guide_auto_shown';
17
18 public static function init() {
19 add_filter( 'elementor/editor/localize_settings', function ( $settings ) {
20 if ( ! self::should_display_promotion() ) {
21 return $settings;
22 }
23
24 $settings = self::register_for_new_site( $settings );
25 $settings = self::register_for_existing_site( $settings );
26
27 return $settings;
28 }, 10 );
29 }
30
31 private static function should_display_promotion(): bool {
32 return ! Hints::is_plugin_active( 'angie' );
33 }
34
35 private static function register_for_new_site( array $settings ): array {
36 if ( ! Upgrade_Manager::is_new_installation() ) {
37 return $settings;
38 }
39
40 if ( 'yes' === get_option( self::ANGIE_GUIDE_AUTO_SHOWN_OPTION ) ) {
41 return $settings;
42 }
43
44 $editor_visit_count = Elementor_Counter::instance()->get_count( Elementor_Counter::EDITOR_COUNTER_KEY );
45
46 if ( $editor_visit_count <= 2 ) {
47 return $settings;
48 }
49
50 update_option( self::ANGIE_GUIDE_AUTO_SHOWN_OPTION, 'yes' );
51
52 $settings['angie']['autoShow'] = true;
53
54 return $settings;
55 }
56
57 private static function register_for_existing_site( array $settings ): array {
58 if ( Upgrade_Manager::is_new_installation() ) {
59 return $settings;
60 }
61
62 if ( 'yes' === get_option( self::ANGIE_GUIDE_AUTO_SHOWN_OPTION ) ) {
63 return $settings;
64 }
65
66 $is_container_active = Plugin::$instance->experiments->is_feature_active( 'container' );
67
68 if ( $is_container_active ) {
69 $is_atomic_active = Plugin::$instance->experiments->is_feature_active( 'e_atomic_elements' );
70 $is_promo_dismissed = ! empty( User::get_introduction_meta( 'atomic_elements_promo' ) );
71
72 if ( ! $is_atomic_active && ! $is_promo_dismissed ) {
73 return $settings;
74 }
75 }
76
77 update_option( self::ANGIE_GUIDE_AUTO_SHOWN_OPTION, 'yes' );
78 $settings['angie']['autoShow'] = true;
79
80 return $settings;
81 }
82 }
83