Elementor Essential Addons - Version 2.7.8

Version Description

  • Group control error fixed
  • Pricing Table active feature issue fixed
  • Few minor bugfix and improvements
Download this release

Release Info

Developer re_enter_rupok
Plugin Icon 128x128 Elementor Essential Addons
Version 2.7.8
Comparing to
See all releases

Code changes from version 2.7.7 to 2.7.8

admin/settings.php CHANGED
@@ -544,6 +544,48 @@ class Eael_Admin_Settings {
544
  <?php _e( 'One Page Navigation', 'essential-addons-elementor' ) ?>
545
  </p>
546
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
547
  </div><!--./checkbox-container-->
548
  <div class="eael-save-btn-wrap">
549
  <button type="submit" class="button eael-btn js-eael-settings-save"><?php _e('Save settings', 'essential-addons-elementor'); ?></button>
544
  <?php _e( 'One Page Navigation', 'essential-addons-elementor' ) ?>
545
  </p>
546
  </div>
547
+ <div class="eael-checkbox">
548
+ <input type="checkbox" id="counter" name="counter" disabled>
549
+ <label for="counter" class="<?php if( (bool) $this->is_pro === false ) : echo 'eael-get-pro'; endif; ?>"></label>
550
+ <p class="eael-el-title">
551
+ <?php _e( 'Counter', 'essential-addons-elementor' ) ?>
552
+ </p>
553
+ </div>
554
+ <div class="eael-checkbox">
555
+ <input type="checkbox" id="post-carousel" name="post-carousel" disabled>
556
+ <label for="post-carousel" class="<?php if( (bool) $this->is_pro === false ) : echo 'eael-get-pro'; endif; ?>"></label>
557
+ <p class="eael-el-title">
558
+ <?php _e( 'Post Carousel', 'essential-addons-elementor' ) ?>
559
+ </p>
560
+ </div>
561
+ <div class="eael-checkbox">
562
+ <input type="checkbox" id="team-member-carousel" name="team-member-carousel" disabled>
563
+ <label for="team-member-carousel" class="<?php if( (bool) $this->is_pro === false ) : echo 'eael-get-pro'; endif; ?>"></label>
564
+ <p class="eael-el-title">
565
+ <?php _e( 'Team Member Carousel', 'essential-addons-elementor' ) ?>
566
+ </p>
567
+ </div>
568
+ <div class="eael-checkbox">
569
+ <input type="checkbox" id="logo-carousel" name="logo-carousel" disabled>
570
+ <label for="logo-carousel" class="<?php if( (bool) $this->is_pro === false ) : echo 'eael-get-pro'; endif; ?>"></label>
571
+ <p class="eael-el-title">
572
+ <?php _e( 'Logo Carousel', 'essential-addons-elementor' ) ?>
573
+ </p>
574
+ </div>
575
+ <div class="eael-checkbox">
576
+ <input type="checkbox" id="progress-bar" name="progress-bar" disabled>
577
+ <label for="progress-bar" class="<?php if( (bool) $this->is_pro === false ) : echo 'eael-get-pro'; endif; ?>"></label>
578
+ <p class="eael-el-title">
579
+ <?php _e( 'Progress Bar', 'essential-addons-elementor' ) ?>
580
+ </p>
581
+ </div>
582
+ <div class="eael-checkbox">
583
+ <input type="checkbox" id="protected-content" name="protected-content" disabled>
584
+ <label for="protected-content" class="<?php if( (bool) $this->is_pro === false ) : echo 'eael-get-pro'; endif; ?>"></label>
585
+ <p class="eael-el-title">
586
+ <?php _e( 'Protected Content', 'essential-addons-elementor' ) ?>
587
+ </p>
588
+ </div>
589
  </div><!--./checkbox-container-->
590
  <div class="eael-save-btn-wrap">
591
  <button type="submit" class="button eael-btn js-eael-settings-save"><?php _e('Save settings', 'essential-addons-elementor'); ?></button>
assets/css/essential-addons-elementor.css CHANGED
File without changes
elements/pricing-table/pricing-table.php CHANGED
@@ -246,7 +246,7 @@ class Widget_Eael_Pricing_Table extends Widget_Base {
246
  'label' => esc_html__( 'Item Active?', 'essential-addons-elementor' ),
247
  'type' => Controls_Manager::SWITCHER,
248
  'return_value' => 'yes',
249
- 'default' => 'yes',
250
  ],
251
  [
252
  'name' => 'eael_pricing_table_list_icon_color',
@@ -957,6 +957,18 @@ class Widget_Eael_Pricing_Table extends Widget_Base {
957
  ]
958
  );
959
 
 
 
 
 
 
 
 
 
 
 
 
 
960
  $this->add_group_control(
961
  Group_Control_Typography::get_type(),
962
  [
@@ -1638,7 +1650,7 @@ class Widget_Eael_Pricing_Table extends Widget_Base {
1638
  <?php
1639
  foreach( $settings['eael_pricing_table_items'] as $item ) :
1640
 
1641
- if( 'yes' === $item['eael_pricing_table_icon_mood'] ) {
1642
  $this->add_render_attribute('pricing_feature_item'.$counter, 'class', 'disable-item');
1643
  }
1644
 
246
  'label' => esc_html__( 'Item Active?', 'essential-addons-elementor' ),
247
  'type' => Controls_Manager::SWITCHER,
248
  'return_value' => 'yes',
249
+ 'default' => 'yes'
250
  ],
251
  [
252
  'name' => 'eael_pricing_table_list_icon_color',
957
  ]
958
  );
959
 
960
+ $this->add_control(
961
+ 'eael_pricing_table_list_disable_item_color',
962
+ [
963
+ 'label' => esc_html__( 'Disable item color', 'essential-addons-elementor' ),
964
+ 'type' => Controls_Manager::COLOR,
965
+ 'default' => '',
966
+ 'selectors' => [
967
+ '{{WRAPPER}} .eael-pricing .eael-pricing-item ul li.disable-item' => 'color: {{VALUE}};',
968
+ ],
969
+ ]
970
+ );
971
+
972
  $this->add_group_control(
973
  Group_Control_Typography::get_type(),
974
  [
1650
  <?php
1651
  foreach( $settings['eael_pricing_table_items'] as $item ) :
1652
 
1653
+ if( 'yes' !== $item['eael_pricing_table_icon_mood'] ) {
1654
  $this->add_render_attribute('pricing_feature_item'.$counter, 'class', 'disable-item');
1655
  }
1656
 
elements/testimonials/testimonials.php CHANGED
File without changes
essential_adons_elementor.php CHANGED
@@ -4,7 +4,7 @@
4
  * Description: The ultimate elements library for Elementor page builder plugin for WordPress.
5
  * Plugin URI: https://essential-addons.com/elementor/
6
  * Author: Codetic
7
- * Version: 2.7.7
8
  * Author URI: https://www.codetic.net
9
  *
10
  * Text Domain: essential-addons-elementor
@@ -147,6 +147,16 @@ function add_eael_elements() {
147
  }
148
  add_action('elementor/widgets/widgets_registered','add_eael_elements');
149
 
 
 
 
 
 
 
 
 
 
 
150
  /**
151
  * Load module's scripts and styles if any module is active.
152
  *
4
  * Description: The ultimate elements library for Elementor page builder plugin for WordPress.
5
  * Plugin URI: https://essential-addons.com/elementor/
6
  * Author: Codetic
7
+ * Version: 2.7.8
8
  * Author URI: https://www.codetic.net
9
  *
10
  * Text Domain: essential-addons-elementor
147
  }
148
  add_action('elementor/widgets/widgets_registered','add_eael_elements');
149
 
150
+ /**
151
+ * Registering a Group Control for All Posts Element
152
+ */
153
+ function eae_posts_register_control( $controls_manager ){
154
+ include_once ESSENTIAL_ADDONS_EL_PATH . 'includes/eae-posts-group-control.php';
155
+ $controls_manager->add_group_control( 'eaeposts', new Elementor\EAE_Posts_Group_Control() );
156
+ }
157
+
158
+ add_action( 'elementor/controls/controls_registered', 'eae_posts_register_control' );
159
+
160
  /**
161
  * Load module's scripts and styles if any module is active.
162
  *
includes/eae-posts-group-control.php ADDED
@@ -0,0 +1,165 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) {
5
+ exit; // Exit if accessed directly.
6
+ }
7
+
8
+ use Elementor\Controls_Manager;
9
+ use Elementor\Group_Control_Base;
10
+
11
+ if( class_exists( 'Elementor\Plugin' ) ) :
12
+ class EAE_Posts_Group_Control extends Group_Control_Base {
13
+
14
+ protected static $fields;
15
+
16
+ public static function get_type() {
17
+ return 'eaeposts';
18
+ }
19
+
20
+ public static function on_export_remove_setting_from_element( $element, $control_id ) {
21
+ unset( $element['settings'][ $control_id . '_posts_ids' ] );
22
+ unset( $element['settings'][ $control_id . '_authors' ] );
23
+
24
+ foreach ( Utils::get_post_types() as $post_type => $label ) {
25
+ $taxonomy_filter_args = [
26
+ 'show_in_nav_menus' => true,
27
+ 'object_type' => [ $post_type ],
28
+ ];
29
+
30
+ $taxonomies = get_taxonomies( $taxonomy_filter_args, 'objects' );
31
+
32
+ foreach ( $taxonomies as $taxonomy => $object ) {
33
+ unset( $element['settings'][ $control_id . '_' . $taxonomy . '_ids' ] );
34
+ }
35
+ }
36
+
37
+ return $element;
38
+ }
39
+
40
+ protected function init_fields() {
41
+ $fields = [];
42
+
43
+ $fields['post_type'] = [
44
+ 'label' => __( 'Source', 'essential-addons-elementor' ),
45
+ 'type' => Controls_Manager::SELECT,
46
+ ];
47
+
48
+ $fields['posts_ids'] = [
49
+ 'label' => __( 'Search & Select', 'essential-addons-elementor' ),
50
+ 'type' => Controls_Manager::SELECT2,
51
+ 'post_type' => '',
52
+ 'options' => \eael_get_all_types_post(),
53
+ 'label_block' => true,
54
+ 'multiple' => true,
55
+ 'condition' => [
56
+ 'post_type' => 'by_id',
57
+ ],
58
+ ];
59
+
60
+ $fields['authors'] = [
61
+ 'label' => __( 'Author', 'essential-addons-elementor' ),
62
+ 'label_block' => true,
63
+ 'type' => Controls_Manager::SELECT2,
64
+ 'multiple' => true,
65
+ 'default' => [],
66
+ 'options' => $this->get_authors(),
67
+ 'condition' => [
68
+ 'post_type!' => [
69
+ 'by_id',
70
+ ],
71
+ ],
72
+ ];
73
+
74
+ return $fields;
75
+ }
76
+
77
+ protected function prepare_fields( $fields ) {
78
+
79
+ $post_types = eael_get_post_types();
80
+
81
+ $post_types_options = $post_types;
82
+
83
+ $post_types_options['by_id'] = __( 'Manual Selection', 'essential-addons-elementor' );
84
+
85
+ $fields['post_type']['options'] = $post_types_options;
86
+
87
+ $fields['post_type']['default'] = key( $post_types );
88
+
89
+ $fields['posts_ids']['object_type'] = array_keys( $post_types );
90
+
91
+ $taxonomy_filter_args = [
92
+ 'show_in_nav_menus' => true,
93
+ ];
94
+
95
+ if ( ! empty( $args['post_type'] ) ) {
96
+ $taxonomy_filter_args['object_type'] = [ $args['post_type'] ];
97
+ }
98
+
99
+ $taxonomies = get_taxonomies( $taxonomy_filter_args, 'objects' );
100
+
101
+ foreach ( $taxonomies as $taxonomy => $object ) {
102
+ $taxonomy_args = [
103
+ 'label' => $object->label,
104
+ 'type' => Controls_Manager::SELECT2,
105
+ 'label_block' => true,
106
+ 'multiple' => true,
107
+ 'object_type' => $taxonomy,
108
+ 'options' => [],
109
+ 'condition' => [
110
+ 'post_type' => $object->object_type,
111
+ ],
112
+ ];
113
+
114
+ $options = [];
115
+
116
+ $taxonomy_args['type'] = Controls_Manager::SELECT2;
117
+
118
+ $terms = get_terms( $taxonomy );
119
+
120
+ foreach ( $terms as $term ) {
121
+ $options[ $term->term_id ] = $term->name;
122
+ }
123
+
124
+ $taxonomy_args['options'] = $options;
125
+
126
+ $fields[ $taxonomy . '_ids' ] = $taxonomy_args;
127
+ }
128
+
129
+ unset( $fields['post_format_ids'] );
130
+
131
+ return parent::prepare_fields( $fields );
132
+ }
133
+
134
+ /**
135
+ * All authors name and ID, who published at least 1 post.
136
+ * @return array
137
+ */
138
+ public function get_authors() {
139
+ $user_query = new \WP_User_Query(
140
+ [
141
+ 'who' => 'authors',
142
+ 'has_published_posts' => true,
143
+ 'fields' => [
144
+ 'ID',
145
+ 'display_name',
146
+ ],
147
+ ]
148
+ );
149
+
150
+ $authors = [];
151
+
152
+ foreach ( $user_query->get_results() as $result ) {
153
+ $authors[ $result->ID ] = $result->display_name;
154
+ }
155
+
156
+ return $authors;
157
+ }
158
+
159
+ protected function get_default_options() {
160
+ return [
161
+ 'popover' => false,
162
+ ];
163
+ }
164
+ }
165
+ endif;
includes/elementor-helper.php CHANGED
@@ -669,19 +669,6 @@ trait ElementsCommonFunctions {
669
 
670
  class EAE_Helper {
671
 
672
- public function __construct() {
673
- $this->add_actions();
674
- }
675
-
676
- public function register_controls() {
677
- $controls_manager = Plugin::instance()->controls_manager;
678
- $controls_manager->add_group_control( EAE_Posts_Group_Control::get_type(), new EAE_Posts_Group_Control() );
679
- }
680
-
681
- protected function add_actions() {
682
- add_action( 'elementor/controls/controls_registered', [ $this, 'register_controls' ] );
683
- }
684
-
685
  public static function get_query_args( $control_id, $settings ) {
686
  $defaults = [
687
  $control_id . '_post_type' => 'post',
@@ -751,164 +738,3 @@ class EAE_Helper {
751
  }
752
 
753
  }
754
-
755
- /**
756
- * Group Control For EAE - Elements ( Posts ).
757
- * @since 2.10.0
758
- */
759
-
760
- if( class_exists( 'Elementor\Plugin' ) ) :
761
- class EAE_Posts_Group_Control extends Group_Control_Base {
762
-
763
- protected static $fields;
764
-
765
- public static function get_type() {
766
- return 'eaeposts';
767
- }
768
-
769
- public static function on_export_remove_setting_from_element( $element, $control_id ) {
770
- unset( $element['settings'][ $control_id . '_posts_ids' ] );
771
- unset( $element['settings'][ $control_id . '_authors' ] );
772
-
773
- foreach ( Utils::get_post_types() as $post_type => $label ) {
774
- $taxonomy_filter_args = [
775
- 'show_in_nav_menus' => true,
776
- 'object_type' => [ $post_type ],
777
- ];
778
-
779
- $taxonomies = get_taxonomies( $taxonomy_filter_args, 'objects' );
780
-
781
- foreach ( $taxonomies as $taxonomy => $object ) {
782
- unset( $element['settings'][ $control_id . '_' . $taxonomy . '_ids' ] );
783
- }
784
- }
785
-
786
- return $element;
787
- }
788
-
789
- protected function init_fields() {
790
- $fields = [];
791
-
792
- $fields['post_type'] = [
793
- 'label' => __( 'Source', 'essential-addons-elementor' ),
794
- 'type' => Controls_Manager::SELECT,
795
- ];
796
-
797
- $fields['posts_ids'] = [
798
- 'label' => __( 'Search & Select', 'essential-addons-elementor' ),
799
- 'type' => Controls_Manager::SELECT2,
800
- 'post_type' => '',
801
- 'options' => \eael_get_all_types_post(),
802
- 'label_block' => true,
803
- 'multiple' => true,
804
- 'condition' => [
805
- 'post_type' => 'by_id',
806
- ],
807
- ];
808
-
809
- $fields['authors'] = [
810
- 'label' => __( 'Author', 'essential-addons-elementor' ),
811
- 'label_block' => true,
812
- 'type' => Controls_Manager::SELECT2,
813
- 'multiple' => true,
814
- 'default' => [],
815
- 'options' => $this->get_authors(),
816
- 'condition' => [
817
- 'post_type!' => [
818
- 'by_id',
819
- ],
820
- ],
821
- ];
822
-
823
- return $fields;
824
- }
825
-
826
- protected function prepare_fields( $fields ) {
827
-
828
- $post_types = eael_get_post_types();
829
-
830
- $post_types_options = $post_types;
831
-
832
- $post_types_options['by_id'] = __( 'Manual Selection', 'essential-addons-elementor' );
833
-
834
- $fields['post_type']['options'] = $post_types_options;
835
-
836
- $fields['post_type']['default'] = key( $post_types );
837
-
838
- $fields['posts_ids']['object_type'] = array_keys( $post_types );
839
-
840
- $taxonomy_filter_args = [
841
- 'show_in_nav_menus' => true,
842
- ];
843
-
844
- if ( ! empty( $args['post_type'] ) ) {
845
- $taxonomy_filter_args['object_type'] = [ $args['post_type'] ];
846
- }
847
-
848
- $taxonomies = get_taxonomies( $taxonomy_filter_args, 'objects' );
849
-
850
- foreach ( $taxonomies as $taxonomy => $object ) {
851
- $taxonomy_args = [
852
- 'label' => $object->label,
853
- 'type' => Controls_Manager::SELECT2,
854
- 'label_block' => true,
855
- 'multiple' => true,
856
- 'object_type' => $taxonomy,
857
- 'options' => [],
858
- 'condition' => [
859
- 'post_type' => $object->object_type,
860
- ],
861
- ];
862
-
863
- $options = [];
864
-
865
- $taxonomy_args['type'] = Controls_Manager::SELECT2;
866
-
867
- $terms = get_terms( $taxonomy );
868
-
869
- foreach ( $terms as $term ) {
870
- $options[ $term->term_id ] = $term->name;
871
- }
872
-
873
- $taxonomy_args['options'] = $options;
874
-
875
- $fields[ $taxonomy . '_ids' ] = $taxonomy_args;
876
- }
877
-
878
- unset( $fields['post_format_ids'] );
879
-
880
- return parent::prepare_fields( $fields );
881
- }
882
-
883
- /**
884
- * All authors name and ID, who published at least 1 post.
885
- * @return array
886
- */
887
- public function get_authors() {
888
- $user_query = new \WP_User_Query(
889
- [
890
- 'who' => 'authors',
891
- 'has_published_posts' => true,
892
- 'fields' => [
893
- 'ID',
894
- 'display_name',
895
- ],
896
- ]
897
- );
898
-
899
- $authors = [];
900
-
901
- foreach ( $user_query->get_results() as $result ) {
902
- $authors[ $result->ID ] = $result->display_name;
903
- }
904
-
905
- return $authors;
906
- }
907
-
908
- protected function get_default_options() {
909
- return [
910
- 'popover' => false,
911
- ];
912
- }
913
- }
914
- endif;
669
 
670
  class EAE_Helper {
671
 
 
 
 
 
 
 
 
 
 
 
 
 
 
672
  public static function get_query_args( $control_id, $settings ) {
673
  $defaults = [
674
  $control_id . '_post_type' => 'post',
738
  }
739
 
740
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/queries.php CHANGED
File without changes
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: elementor, elements, addons, elementor addon, elementor widget, page build
4
  Requires at least: 4.0
5
  Tested up to: 4.9.8
6
  Requires PHP: 5.4
7
- Stable tag: 2.7.7
8
  License: GPLv3
9
  License URI: https://opensource.org/licenses/GPL-3.0
10
 
@@ -140,6 +140,11 @@ Your existing elements/content will work with premium version. So you won't lose
140
 
141
  == Changelog ==
142
 
 
 
 
 
 
143
  = 2.7.7 =
144
  - Testimonial error fixed
145
  - Pricing Table tooltip issue fixed
4
  Requires at least: 4.0
5
  Tested up to: 4.9.8
6
  Requires PHP: 5.4
7
+ Stable tag: 2.7.8
8
  License: GPLv3
9
  License URI: https://opensource.org/licenses/GPL-3.0
10
 
140
 
141
  == Changelog ==
142
 
143
+ = 2.7.8 =
144
+ - Group control error fixed
145
+ - Pricing Table active feature issue fixed
146
+ - Few minor bugfix and improvements
147
+
148
  = 2.7.7 =
149
  - Testimonial error fixed
150
  - Pricing Table tooltip issue fixed