Shortcodes and extra features for Phlox theme - Version 2.5.2

Version Description

Download this release

Release Info

Developer averta
Plugin Icon 128x128 Shortcodes and extra features for Phlox theme
Version 2.5.2
Comparing to
See all releases

Code changes from version 2.5.1 to 2.5.2

Files changed (29) hide show
  1. README.txt +5 -109
  2. admin/assets/js/plugins.js +1 -1
  3. admin/includes/metaboxes/metabox-fields-general-header-template.php +1 -1
  4. admin/includes/metaboxes/metabox-fields-general-header.php +4 -2
  5. admin/includes/metaboxes/metabox-fields-general-top-header.php +1 -1
  6. auxin-elements.php +12 -1
  7. includes/classes/class-auxin-demo-importer.php +17 -7
  8. includes/define.php +1 -1
  9. includes/elementor/class-auxin-elementor-core-elements.php +4 -1
  10. includes/elementor/modules/dynamic-tags/featured-colors.php +75 -0
  11. includes/elementor/modules/dynamic-tags/post-custom-field.php +1 -1
  12. includes/elementor/modules/settings/general/manager.php +2 -0
  13. includes/elementor/modules/templates-types-manager.php +6 -0
  14. includes/elementor/widgets/accordion.php +202 -26
  15. includes/elementor/widgets/carousel-navigation.php +15 -6
  16. includes/elementor/widgets/contact-form.php +1468 -11
  17. includes/elementor/widgets/recent-posts-grid-carousel.php +13 -16
  18. includes/elementor/widgets/text.php +1 -0
  19. includes/elementor/widgets/theme-elements/breadcrumbs.php +414 -0
  20. includes/elementor/widgets/theme-elements/copyright.php +235 -203
  21. includes/elementor/widgets/theme-elements/menu.php +1 -1
  22. includes/elementor/widgets/theme-elements/modern-search.php +539 -183
  23. includes/elementor/widgets/theme-elements/search.php +1 -16
  24. includes/elements/accordion.php +1 -1
  25. includes/elements/custom-list.php +7 -1
  26. includes/general-functions.php +41 -2
  27. includes/general-hooks.php +2 -2
  28. public/assets/js/plugins.js +1 -1
  29. public/includes/frontend-ajax.php +10 -8
README.txt CHANGED
@@ -7,7 +7,7 @@ Tags: phlox, gallery, elementor, siteorigin, auxin, averta, auxin-elements, fram
7
  Requires PHP: 5.4
8
  Requires at least: 4.6
9
  Tested up to: 5.3.3
10
- Stable tag: 2.5.1
11
  License: GPLv3
12
  License URI: http://www.gnu.org/licenses/gpl.html
13
 
@@ -156,114 +156,10 @@ Bugs can be reported in our [support forums](https://docs.phlox.pro).
156
  == Changelog ==
157
 
158
  = Version 2.5.0 / (09.03.2020) =
159
- - [Fix]: Merge branch '2.5.0' into develop
160
- - [Fix]: Automatically disable Elementor default colors and fonts on fresh installations
161
- - [Fix]: Moving the Elementor related codes to main Elementor class
162
- - [Fix]: Changing the default search icon for modern search element
163
- - [Fix]: Renaming the phlox icon set in Elementor font library
164
- - [Fix]: add icon to elementor icon controller
165
- - [Fix]: Renaming old search element to search form
166
- - [Fix]: Improvement in text and default values in options of shpopping cart element
167
- - [Fix]: Built-in fullscreen options removed from customizer
168
- - [Fix]: Fix not importing terms which it's name is number
169
- - [Fix]: Add New Search Widget To Theme Elements
170
- - [Fix]: Fixing a bug for hover color option of read more link in recent post element.
171
- - [Fix]: Changing the priority of page option tabs
172
- - [Fix]: Imrpvement in shopping cart options and enabling simple mode by default
173
- - [Fix]: Bug fix - header button option not importing when demo importing
174
- - [Fix]: Update Menu of imported header or footer
175
- - [Fix]: Fix font and url issue while importing demos
176
- - [Fix]: Removing redundant namespace and whitespaces
177
- - [Fix]: Adding dynamic source to all Elementor URL controls
178
- - [Fix]: Allow importing a header a footer template if imported demo is deleted.
179
- - [Fix]: Renaming the transient for caching downloaded template data
180
- - [Fix]: Renaming the temporary importer options for menu items
181
- - [Fix]: Renaming the temporary importer options for menu items
182
- - [Fix]: Changing the key of some transients
183
- - [Fix]: Set search phrase argument after search for sku
184
- - [Fix]: Making sure if the ported template is a valid template
185
- - [Fix]: Product Search Bug Fix
186
- - [Fix]: Fix an issue with unexpected generated css style
187
- - [Fix]: Fix an issue with elementor header selectors and attributes
188
- - [Fix]: Add comment for importing product attributes
189
- - [Fix]: Correct url add in custom css of an element
190
- - [Fix]: Importer Improvement
191
- - [Fix]: An issue with unit size of slider controls in mailchimp element fixed
192
- - [Fix]: Fix an issue with default search bakcground color
193
- - [Fix]: add user menu to imported default header or footer
194
- - [Fix]: Automatically import and set default header and footer template
195
- - [Fix]: Fixing the ajax fatal error.
196
- - [Fix]: Fixing a notice for undefined license tokens
197
- - [Fix]: Changing the priority of hook for importing and inserting default header template
198
- - [Fix]: template importer function load only in admin pages
199
- - [Fix]: Template Importer Improvement
200
- - [Fix]: Storing the current Elementor version while importing a template
201
- - [Fix]: Code improvement and preventing DIY
202
- - [Fix]: Fixing a conflict
203
- - [Fix]: Flush css after importing the template
204
- - [Fix]: Improve the json response of template library controller
205
- - [Fix]: Instagram link for staff Element added
206
- - [Fix]: remove dependency for fullscreen search options in customizer
207
- - [Fix]: Moving fullscreen search options to new section in custmizer
208
- - [Fix]: Typo fixed in search element
209
- - [Fix]: remove deprecated install notice for pro tools
210
- - [Fix]: A fix for retrieving header template Id
211
- - [Fix]: Turn off the Legacy options by default and fallback to built-in header and footer if Elementor is disabled
212
- - [Fix]: Removing extra packages for shopping cart Element class
213
- - [Fix]: Improving Elementor install notice
214
- - [Fix]: Change the typof use legacy header controller from switch to select
215
- - [Fix]: Fix an issue with use legacy header default value
216
- - [Fix]: Chnage Elementor Footer Template Classname
217
- - [Fix]: Shooping cart depend on activation of WooCommerce
218
- - [Fix]: Enable the ajax option for search element
219
- - [Fix]: version bumped to 2.5.0
220
- - [Fix]: Improvement in ajax messages of header footer builder importer.
221
- - [Fix]: Improve ajax template importer for auxin_template_library control
222
- - [Fix]: A quick fix for path to simple svg element
223
- - [Fix]: Override Use Legacy Header Based on Metabox
224
- - [Fix]: Override Header Tempalte based on Metabox
225
- - [Fix]: Add Use Legacy Header Dependency to Header and Topheader Bar Section
226
- - [Fix]: Add Header Template Section in Metabox
227
- - [Fix]: Add Header Template Settings Section in Metabox
228
- - [Fix]: Add New Sections and change the order of sections
229
- - [Fix]: moving simple svg element to core auxin elements
230
- - [Fix]: Make JSON Messages Translateble
231
- - [Fix]: Make JSON Massages Translateble
232
- - [Fix]: change camel case variable names
233
- - [Fix]: use get_instance instead of creating new instance of class
234
- - [Fix]: Template Controller - template ajax import
235
- - [Fix]: Fix plugin domain
236
- - [Fix]: Add some cart feature that exist in customizer to elementor cart element
237
- - [Fix]: 1. Move search global options to extras->search results panel 2. add ajax search option to elementor search element
238
- - [Fix]: Improvement in translatable description for logo element.
239
- - [Fix]: the expiration period for dismissing element pack notice increased.
240
- - [Fix]: Remove Elementor Pack Notice for License
241
- - [Fix]: Fix an issue with default background color on header
242
- - [Fix]: Add Custom Logo Section to Page Metabox
243
- - [Fix]: Fix an issue with sticky footer
244
- - [Fix]: Improve the footer render template function
245
- - [Fix]: Add Use legacy footer dependencies
246
- - [Fix]: copyright element added
247
- - [Fix]: Add Use Legacy Dependency to Header Options
248
- - [Fix]: inline svg for infobox element added; plus, copyright element added
249
- - [Fix]: fixing the conflict for
250
- - [Fix]: 1. Added : cart type to page metabox 2. Fixed: cart light or dark mode option always get from page metabox not customizer options
251
- - [Fix]: adding active fullscreen typo and colors to navigation menu element
252
- - [Fix]: Improve Ajax Search Function
253
- - [Fix]: Remove search function from general functions and add it as a class
254
- - [Fix]: Add some new options and optimize the options
255
- - [Fix]: Add an ability to use font icon in carousel navigation
256
- - [Fix]: Add Carousel Navigation Widget
257
- - [Fix]: text shadow option added to fulscreen mobile menu opttions
258
- - [Fix]: text shadow options and new active menu item option added to navigation menu element
259
- - [Fix]: adding new word to dictionary
260
- - [Fix]: rearrange and improvements in navigation menu element
261
- - [Fix]: modify description for an option in carousel elements
262
- - [Fix]: word spell ignore list added to editor settings
263
- - [Fix]: initial changes for ajax search functionality added
264
- - [Fix]: Improve the header template render function
265
- - [Fix]: improve the header template functionality
266
- - [Fix]: Add Dependency to header sections
267
 
268
  = Version 2.4.18 / (03.02.2020) =
269
  - [Improvement]: Some improvements for modern heading element applied.
7
  Requires PHP: 5.4
8
  Requires at least: 4.6
9
  Tested up to: 5.3.3
10
+ Stable tag: 2.5.2
11
  License: GPLv3
12
  License URI: http://www.gnu.org/licenses/gpl.html
13
 
156
  == Changelog ==
157
 
158
  = Version 2.5.0 / (09.03.2020) =
159
+ - [Improvement]: Instagram link for staff Element added.
160
+ - [New]: Inline SVG option for Infobox element added.
161
+ - [Improvement]: Improvements in dark mode style of controllers for Elementor applied.
162
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
163
 
164
  = Version 2.4.18 / (03.02.2020) =
165
  - [Improvement]: Some improvements for modern heading element applied.
admin/assets/js/plugins.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! Phlox Core Plugin - v2.5.1 (2020-03-09)
2
  * All required javascript plugins for admin
3
  * http://phlox.pro/
4
  * Place any jQuery/helper plugins in here, instead of separate, slower script files!
1
+ /*! Phlox Core Plugin - v2.5.2 (2020-03-16)
2
  * All required javascript plugins for admin
3
  * http://phlox.pro/
4
  * Place any jQuery/helper plugins in here, instead of separate, slower script files!
admin/includes/metaboxes/metabox-fields-general-header-template.php CHANGED
@@ -68,7 +68,7 @@ function auxin_metabox_fields_header_templates(){
68
 
69
  $model->fields[] = array(
70
  'title' => __( 'Use Legacy Header', THEME_DOMAIN ),
71
- 'description' => __( 'Enable it to replace header section with an Elementor template', THEME_DOMAIN ),
72
  'id' => 'page_header_use_legacy',
73
  'type' => 'select',
74
  'transport' => 'postMessage',
68
 
69
  $model->fields[] = array(
70
  'title' => __( 'Use Legacy Header', THEME_DOMAIN ),
71
+ 'description' => __( 'Disable it to replace header section with an Elementor template', THEME_DOMAIN ),
72
  'id' => 'page_header_use_legacy',
73
  'type' => 'select',
74
  'transport' => 'postMessage',
admin/includes/metaboxes/metabox-fields-general-header.php CHANGED
@@ -24,7 +24,7 @@ function auxin_metabox_fields_general_header(){
24
 
25
  array(
26
  'title' => __( 'Use Legacy Header', THEME_DOMAIN ),
27
- 'description' => __( 'Enable it to replace header section with an Elementor template', THEME_DOMAIN ),
28
  'id' => 'page_header_section_use_legacy',
29
  'type' => 'select',
30
  'transport' => 'postMessage',
@@ -412,7 +412,9 @@ function auxin_metabox_fields_general_header(){
412
  ),
413
  ),
414
  'style_callback' => function( $value = null ){
415
-
 
 
416
  if ( 'default' !== auxin_get_post_meta( $post, 'page_header_navigation_layout', 'default' ) ) {
417
  return $value ? ".site-header-section { background-color:$value; }" : '';
418
  } else {
24
 
25
  array(
26
  'title' => __( 'Use Legacy Header', THEME_DOMAIN ),
27
+ 'description' => __( 'Disable it to replace header section with an Elementor template', THEME_DOMAIN ),
28
  'id' => 'page_header_section_use_legacy',
29
  'type' => 'select',
30
  'transport' => 'postMessage',
412
  ),
413
  ),
414
  'style_callback' => function( $value = null ){
415
+ if( ! isset( $post ) ){
416
+ $post = get_post();
417
+ }
418
  if ( 'default' !== auxin_get_post_meta( $post, 'page_header_navigation_layout', 'default' ) ) {
419
  return $value ? ".site-header-section { background-color:$value; }" : '';
420
  } else {
admin/includes/metaboxes/metabox-fields-general-top-header.php CHANGED
@@ -24,7 +24,7 @@ function auxin_metabox_fields_general_top_header(){
24
 
25
  array(
26
  'title' => __( 'Use Legacy Header', THEME_DOMAIN ),
27
- 'description' => __( 'Enable it to replace header section with an Elementor template', THEME_DOMAIN ),
28
  'id' => 'page_top_header_section_use_legacy',
29
  'type' => 'select',
30
  'transport' => 'postMessage',
24
 
25
  array(
26
  'title' => __( 'Use Legacy Header', THEME_DOMAIN ),
27
+ 'description' => __( 'Disable it to replace header section with an Elementor template', THEME_DOMAIN ),
28
  'id' => 'page_top_header_section_use_legacy',
29
  'type' => 'select',
30
  'transport' => 'postMessage',
auxin-elements.php CHANGED
@@ -12,7 +12,7 @@
12
  * Plugin Name: Phlox Core Elements
13
  * Plugin URI: https://wordpress.org/plugins/auxin-elements/
14
  * Description: Exclusive and comprehensive plugin that extends the functionality of Phlox theme by adding new Elements, widgets and options.
15
- * Version: 2.5.1
16
  * Author: averta
17
  * Author URI: http://averta.net
18
  * Text Domain: auxin-elements
@@ -100,6 +100,17 @@ if( is_admin() ||
100
  }
101
  }
102
 
 
 
 
 
 
 
 
 
 
 
 
103
  /**
104
  * Initialize the plugin
105
  * ===========================================================================*/
12
  * Plugin Name: Phlox Core Elements
13
  * Plugin URI: https://wordpress.org/plugins/auxin-elements/
14
  * Description: Exclusive and comprehensive plugin that extends the functionality of Phlox theme by adding new Elements, widgets and options.
15
+ * Version: 2.5.2
16
  * Author: averta
17
  * Author URI: http://averta.net
18
  * Text Domain: auxin-elements
100
  }
101
  }
102
 
103
+ // Flush dependency check on absence of core element plugin
104
+ add_action( 'plugins_loaded', function(){
105
+ if( ! function_exists( 'AUXELS' ) ){
106
+ delete_transient( 'auxels_plugin_requirements_check' );
107
+ delete_transient( 'auxpfo_plugin_requirements_check' );
108
+ delete_transient( 'auxshp_plugin_requirements_check' );
109
+ delete_transient( 'auxnew_plugin_requirements_check' );
110
+ delete_transient( 'auxpro_plugin_requirements_check' );
111
+ }
112
+ });
113
+
114
  /**
115
  * Initialize the plugin
116
  * ===========================================================================*/
includes/classes/class-auxin-demo-importer.php CHANGED
@@ -429,19 +429,25 @@ class Auxin_Demo_Importer {
429
  public function import_options( array $options ) {
430
  $auxin_custom_images = $this->get_options_by_type( 'image' );
431
  extract( $options );
 
 
 
 
 
432
 
433
  foreach ( $theme_options as $auxin_key => $auxin_value ) {
434
  if ( in_array( $auxin_key, $auxin_custom_images ) && ! empty( $auxin_value ) ) {
435
  // This line is for changing the old attachment ID with new one.
436
  $auxin_value = $this->get_attachment_id( 'auxin_import_id', $auxin_value );
437
  }
438
- // set old header template value to new header template option
439
- if( $auxin_key == 'site_header_template' && ! is_numeric( $auxin_value ) ) {
440
- $template = get_page_by_path( $auxin_value, OBJECT, 'elementor_library' );
441
- if( $template instanceof WP_Post ){
442
- auxin_update_option( 'site_elementor_header_edit_template', $template->ID );
443
- auxin_update_option( 'site_elementor_header_template', $template->ID );
444
- }
 
445
  continue;
446
  }
447
  // Update exclusive auxin options
@@ -793,6 +799,10 @@ class Auxin_Demo_Importer {
793
  auxin_set_transient( 'aux-old-products-id-transformation', maybe_serialize($stored_products_id), 48 * HOUR_IN_SECONDS );
794
  }
795
 
 
 
 
 
796
  //Check post terms existence
797
  if ( ! empty( $post['post_terms'] ) ){
798
  // Start adding post terms
429
  public function import_options( array $options ) {
430
  $auxin_custom_images = $this->get_options_by_type( 'image' );
431
  extract( $options );
432
+
433
+ $elementor_header_footer_options = array(
434
+ 'site_elementor_header_template' => 'site_elementor_header_edit_template',
435
+ 'site_elementor_footer_template' => 'site_elementor_footer_edit_template',
436
+ );
437
 
438
  foreach ( $theme_options as $auxin_key => $auxin_value ) {
439
  if ( in_array( $auxin_key, $auxin_custom_images ) && ! empty( $auxin_value ) ) {
440
  // This line is for changing the old attachment ID with new one.
441
  $auxin_value = $this->get_attachment_id( 'auxin_import_id', $auxin_value );
442
  }
443
+
444
+ if ( in_array( $auxin_key, array_keys( $elementor_header_footer_options ) ) ) {
445
+ $auxin_new_value = auxin_get_transient( "aux-elementor-library-{$auxin_value}-changs-to" );
446
+
447
+ auxin_update_option( $elementor_header_footer_options[ $auxin_key ] , maybe_unserialize( $auxin_new_value ) );
448
+ auxin_update_option( $auxin_key , maybe_unserialize( $auxin_new_value ) );
449
+
450
+ auxin_delete_transient( "aux-elementor-library-{$auxin_value}-changs-to" );
451
  continue;
452
  }
453
  // Update exclusive auxin options
799
  auxin_set_transient( 'aux-old-products-id-transformation', maybe_serialize($stored_products_id), 48 * HOUR_IN_SECONDS );
800
  }
801
 
802
+ if ( $post['post_type'] == 'elementor_library' ) {
803
+ auxin_set_transient( "aux-elementor-library-{$post['ID']}-changs-to", $post_id, 48 * HOUR_IN_SECONDS );
804
+ }
805
+
806
  //Check post terms existence
807
  if ( ! empty( $post['post_terms'] ) ){
808
  // Start adding post terms
includes/define.php CHANGED
@@ -12,7 +12,7 @@ if( ! defined( 'THEME_NAME' ) ){
12
  }
13
 
14
 
15
- define( 'AUXELS_VERSION' , '2.5.1' );
16
 
17
  define( 'AUXELS_SLUG' , 'auxin-elements' );
18
 
12
  }
13
 
14
 
15
+ define( 'AUXELS_VERSION' , '2.5.2' );
16
 
17
  define( 'AUXELS_SLUG' , 'auxin-elements' );
18
 
includes/elementor/class-auxin-elementor-core-elements.php CHANGED
@@ -360,7 +360,10 @@ final class Elements {
360
  'file' => $this->dir_path . '/widgets/theme-elements/modern-search.php',
361
  'class' => 'Elements\Theme_Elements\ModernSearch'
362
  ],
363
-
 
 
 
364
  ];
365
 
366
  if ( class_exists('WooCommerce') ) {
360
  'file' => $this->dir_path . '/widgets/theme-elements/modern-search.php',
361
  'class' => 'Elements\Theme_Elements\ModernSearch'
362
  ],
363
+ '245' => [
364
+ 'file' => $this->dir_path . '/widgets/theme-elements/breadcrumbs.php',
365
+ 'class' => 'Elements\Theme_Elements\Breadcrumbs'
366
+ ]
367
  ];
368
 
369
  if ( class_exists('WooCommerce') ) {
includes/elementor/modules/dynamic-tags/featured-colors.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Auxin\Plugin\CoreElements\Elementor\Modules\DynamicTags;
3
+
4
+ use Elementor\Controls_Manager;
5
+ use Elementor\Core\DynamicTags\Tag;
6
+ use Elementor\Modules\DynamicTags\Module as TagsModule;
7
+
8
+ if ( ! defined( 'ABSPATH' ) ) {
9
+ exit; // Exit if accessed directly
10
+ }
11
+
12
+ class Auxin_Featured_Colors extends Tag {
13
+
14
+ public function get_name() {
15
+ return 'aux-featured-colors';
16
+ }
17
+
18
+ public function get_title() {
19
+ return __( 'Featured Colors', 'auxin-elements' );
20
+ }
21
+
22
+ public function get_group() {
23
+ return 'colors';
24
+ }
25
+
26
+ public function get_categories() {
27
+ return [
28
+ TagsModule::COLOR_CATEGORY
29
+ ];
30
+ }
31
+
32
+ public function get_colors() {
33
+ $items = [
34
+ '' => __( 'Select...', 'auxin-elements' )
35
+ ];
36
+
37
+ for( $i = 1; $i <= 8 ; ++$i ) {
38
+ $items[$i] = sprintf( __( 'Color %s', THEME_DOMAIN ), $i );
39
+ }
40
+
41
+ return $items;
42
+ }
43
+
44
+ public function is_settings_required() {
45
+ return true;
46
+ }
47
+
48
+ protected function _register_controls() {
49
+ $this->add_control(
50
+ 'key',
51
+ [
52
+ 'label' => __( 'Colors', 'auxin-elements' ),
53
+ 'type' => Controls_Manager::SELECT,
54
+ 'options' => $this->get_colors()
55
+ ]
56
+ );
57
+ }
58
+
59
+ protected function get_color() {
60
+ if( $key = $this->get_settings( 'key' ) ){
61
+ return "var( --auxin-featured-color-{$key} )";
62
+ }
63
+
64
+ return '';
65
+ }
66
+
67
+ public function get_value( array $options = [] ) {
68
+ return $this->get_color();
69
+ }
70
+
71
+ public function render() {
72
+ echo $this->get_color();
73
+ }
74
+
75
+ }
includes/elementor/modules/dynamic-tags/post-custom-field.php CHANGED
@@ -27,7 +27,7 @@ class Post_Custom_Field extends Tag {
27
  return [
28
  TagsModule::TEXT_CATEGORY,
29
  TagsModule::URL_CATEGORY,
30
- TagsModule::POST_META_CATEGORY,
31
  ];
32
  }
33
 
27
  return [
28
  TagsModule::TEXT_CATEGORY,
29
  TagsModule::URL_CATEGORY,
30
+ TagsModule::POST_META_CATEGORY
31
  ];
32
  }
33
 
includes/elementor/modules/settings/general/manager.php CHANGED
@@ -64,9 +64,11 @@ class Manager extends baseManager
64
  }
65
 
66
  protected function save_settings( array $settings, $document, $data = null ){
 
67
  // TODO save the control values as page meta fields by looping through $settings array
68
  // $document->update_main_meta( $meta_key, $value );
69
 
70
  error_log( print_r( $settings, true ) );
 
71
  }
72
  }
64
  }
65
 
66
  protected function save_settings( array $settings, $document, $data = null ){
67
+ /**
68
  // TODO save the control values as page meta fields by looping through $settings array
69
  // $document->update_main_meta( $meta_key, $value );
70
 
71
  error_log( print_r( $settings, true ) );
72
+ */
73
  }
74
  }
includes/elementor/modules/templates-types-manager.php CHANGED
@@ -127,6 +127,12 @@ class Templates_Types_Manager {
127
  'group' => 'post',
128
  'title' => 'Post',
129
  ),
 
 
 
 
 
 
130
  // 'aux-post-date' => array(
131
  // 'file' => AUXELS_INC_DIR . '/elementor/modules/dynamic-tags/post-date.php',
132
  // 'class' => 'DynamicTags\Post_Date',
127
  'group' => 'post',
128
  'title' => 'Post',
129
  ),
130
+ 'aux-featured-colors' => array(
131
+ 'file' => AUXELS_INC_DIR . '/elementor/modules/dynamic-tags/featured-colors.php',
132
+ 'class' => 'DynamicTags\Auxin_Featured_Colors',
133
+ 'group' => 'colors',
134
+ 'title' => 'Colors',
135
+ ),
136
  // 'aux-post-date' => array(
137
  // 'file' => AUXELS_INC_DIR . '/elementor/modules/dynamic-tags/post-date.php',
138
  // 'class' => 'DynamicTags\Post_Date',
includes/elementor/widgets/accordion.php CHANGED
@@ -178,6 +178,164 @@ class Accordion extends Widget_Base {
178
  /* Style TAB
179
  /*-----------------------------------------------------------------------------------*/
180
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
181
  /* Title Bar Section
182
  /*-------------------------------------*/
183
 
@@ -266,20 +424,20 @@ class Accordion extends Widget_Base {
266
  );
267
 
268
  $this->add_group_control(
269
- Group_Control_Border::get_type(),
270
  array(
271
- 'name' => 'title_bar_border_normal',
272
  'selector' => '{{WRAPPER}} .aux-toggle-header',
273
- 'separator' => 'none'
274
  )
275
  );
276
 
277
  $this->add_group_control(
278
- Group_Control_Background::get_type(),
279
  array(
280
- 'name' => 'title_bar_background_normal',
281
  'selector' => '{{WRAPPER}} .aux-toggle-header',
282
- 'separator' => 'none'
283
  )
284
  );
285
 
@@ -297,27 +455,27 @@ class Accordion extends Widget_Base {
297
  Group_Control_Box_Shadow::get_type(),
298
  array(
299
  'name' => 'title_bar_boxshadow_hover',
300
- 'label' => __( 'Box Shadow Normal', 'auxin-elements' ),
301
  'selector' => '{{WRAPPER}} .aux-toggle-header:hover',
302
  'separator' => 'none'
303
  )
304
  );
305
 
306
  $this->add_group_control(
307
- Group_Control_Border::get_type(),
308
  array(
309
- 'name' => 'title_bar_border_hover',
310
  'selector' => '{{WRAPPER}} .aux-toggle-header:hover',
311
- 'separator' => 'none'
312
  )
313
  );
314
 
315
  $this->add_group_control(
316
- Group_Control_Background::get_type(),
317
  array(
318
- 'name' => 'title_bar_background_hover',
319
  'selector' => '{{WRAPPER}} .aux-toggle-header:hover',
320
- 'separator' => 'none'
321
  )
322
  );
323
 
@@ -335,27 +493,27 @@ class Accordion extends Widget_Base {
335
  Group_Control_Box_Shadow::get_type(),
336
  array(
337
  'name' => 'title_bar_boxshadow_active',
338
- 'label' => __( 'Box Shadow Normal', 'auxin-elements' ),
339
  'selector' => '{{WRAPPER}} .active .aux-toggle-header',
340
  'separator' => 'none'
341
  )
342
  );
343
 
344
  $this->add_group_control(
345
- Group_Control_Border::get_type(),
346
  array(
347
- 'name' => 'title_bar_border_active',
348
  'selector' => '{{WRAPPER}} .active .aux-toggle-header',
349
- 'separator' => 'none'
350
  )
351
  );
352
 
353
  $this->add_group_control(
354
- Group_Control_Background::get_type(),
355
  array(
356
- 'name' => 'title_bar_background_active',
357
  'selector' => '{{WRAPPER}} .active .aux-toggle-header',
358
- 'separator' => 'none'
359
  )
360
  );
361
 
@@ -420,6 +578,24 @@ class Accordion extends Widget_Base {
420
 
421
  $this->end_controls_tab();
422
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
423
  $this->end_controls_tabs();
424
 
425
  $this->add_group_control(
@@ -514,20 +690,20 @@ class Accordion extends Widget_Base {
514
  );
515
 
516
  $this->add_group_control(
517
- Group_Control_Border::get_type(),
518
  array(
519
- 'name' => 'content_border',
520
  'selector' => '{{WRAPPER}} .aux-toggle-content',
521
- 'separator' => 'none'
522
  )
523
  );
524
 
525
  $this->add_group_control(
526
- Group_Control_Background::get_type(),
527
  array(
528
- 'name' => 'content_background',
529
  'selector' => '{{WRAPPER}} .aux-toggle-content',
530
- 'separator' => 'none'
531
  )
532
  );
533
 
178
  /* Style TAB
179
  /*-----------------------------------------------------------------------------------*/
180
 
181
+ /* Accordion Item Section
182
+ /*-------------------------------------*/
183
+
184
+ $this->start_controls_section(
185
+ 'item_container_section',
186
+ array(
187
+ 'label' => __( 'Item Wrapper', 'auxin-elements' ),
188
+ 'tab' => Controls_Manager::TAB_STYLE
189
+ )
190
+ );
191
+
192
+ $this->add_responsive_control(
193
+ 'item_container_margin',
194
+ array(
195
+ 'label' => __( 'Margin', 'auxin-elements' ),
196
+ 'type' => Controls_Manager::DIMENSIONS,
197
+ 'size_units' => array( 'px', 'em' ),
198
+ 'allowed_dimensions' => 'all',
199
+ 'selectors' => array(
200
+ '{{WRAPPER}} .aux-toggle-item' => 'margin:{{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
201
+ )
202
+ )
203
+ );
204
+
205
+ $this->add_control(
206
+ 'item_container_border_radius',
207
+ array(
208
+ 'label' => __( 'Border Radius', 'auxin-elements' ),
209
+ 'type' => Controls_Manager::DIMENSIONS,
210
+ 'size_units' => array( 'px', 'em', '%' ),
211
+ 'selectors' => array(
212
+ '{{WRAPPER}} .aux-toggle-item' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}; overflow:hidden;'
213
+ ),
214
+ 'allowed_dimensions' => 'all',
215
+ 'separator' => 'after'
216
+ )
217
+ );
218
+
219
+ $this->start_controls_tabs( 'item_container_status' );
220
+
221
+ $this->start_controls_tab(
222
+ 'item_container_status_normal',
223
+ array(
224
+ 'label' => __( 'Normal' , 'auxin-elements' )
225
+ )
226
+ );
227
+
228
+ $this->add_group_control(
229
+ Group_Control_Box_Shadow::get_type(),
230
+ array(
231
+ 'name' => 'item_container_boxshadow_normal',
232
+ 'label' => __( 'Box Shadow', 'auxin-elements' ),
233
+ 'selector' => '{{WRAPPER}} .aux-toggle-item',
234
+ 'separator' => 'none'
235
+ )
236
+ );
237
+
238
+ $this->add_group_control(
239
+ Group_Control_Background::get_type(),
240
+ array(
241
+ 'name' => 'item_container_background_normal',
242
+ 'selector' => '{{WRAPPER}} .aux-toggle-item',
243
+ 'separator' => 'before'
244
+ )
245
+ );
246
+
247
+ $this->add_group_control(
248
+ Group_Control_Border::get_type(),
249
+ array(
250
+ 'name' => 'item_container_border_normal',
251
+ 'selector' => '{{WRAPPER}} .aux-toggle-item',
252
+ 'separator' => 'before'
253
+ )
254
+ );
255
+
256
+ $this->end_controls_tab();
257
+
258
+
259
+ $this->start_controls_tab(
260
+ 'item_container_status_hover',
261
+ array(
262
+ 'label' => __( 'Hover' , 'auxin-elements' )
263
+ )
264
+ );
265
+
266
+ $this->add_group_control(
267
+ Group_Control_Box_Shadow::get_type(),
268
+ array(
269
+ 'name' => 'item_container_boxshadow_hover',
270
+ 'label' => __( 'Box Shadow', 'auxin-elements' ),
271
+ 'selector' => '{{WRAPPER}} .aux-toggle-item:hover',
272
+ 'separator' => 'none'
273
+ )
274
+ );
275
+
276
+ $this->add_group_control(
277
+ Group_Control_Background::get_type(),
278
+ array(
279
+ 'name' => 'item_container_background_hover',
280
+ 'selector' => '{{WRAPPER}} .aux-toggle-item:hover',
281
+ 'separator' => 'before'
282
+ )
283
+ );
284
+
285
+ $this->add_group_control(
286
+ Group_Control_Border::get_type(),
287
+ array(
288
+ 'name' => 'item_container_border_hover',
289
+ 'selector' => '{{WRAPPER}} .aux-toggle-item:hover',
290
+ 'separator' => 'before'
291
+ )
292
+ );
293
+
294
+ $this->end_controls_tab();
295
+
296
+
297
+ $this->start_controls_tab(
298
+ 'item_container_status_active',
299
+ array(
300
+ 'label' => __( 'Selected' , 'auxin-elements' )
301
+ )
302
+ );
303
+
304
+ $this->add_group_control(
305
+ Group_Control_Box_Shadow::get_type(),
306
+ array(
307
+ 'name' => 'item_container_boxshadow_active',
308
+ 'label' => __( 'Box Shadow', 'auxin-elements' ),
309
+ 'selector' => '{{WRAPPER}} .active.aux-toggle-item',
310
+ 'separator' => 'none'
311
+ )
312
+ );
313
+
314
+ $this->add_group_control(
315
+ Group_Control_Background::get_type(),
316
+ array(
317
+ 'name' => 'item_container_background_active',
318
+ 'selector' => '{{WRAPPER}} .active.aux-toggle-item',
319
+ 'separator' => 'before'
320
+ )
321
+ );
322
+
323
+ $this->add_group_control(
324
+ Group_Control_Border::get_type(),
325
+ array(
326
+ 'name' => 'item_container_border_active',
327
+ 'selector' => '{{WRAPPER}} .active.aux-toggle-item',
328
+ 'separator' => 'before'
329
+ )
330
+ );
331
+
332
+ $this->end_controls_tab();
333
+
334
+ $this->end_controls_tabs();
335
+
336
+
337
+ $this->end_controls_section();
338
+
339
  /* Title Bar Section
340
  /*-------------------------------------*/
341
 
424
  );
425
 
426
  $this->add_group_control(
427
+ Group_Control_Background::get_type(),
428
  array(
429
+ 'name' => 'title_bar_background_normal',
430
  'selector' => '{{WRAPPER}} .aux-toggle-header',
431
+ 'separator' => 'before'
432
  )
433
  );
434
 
435
  $this->add_group_control(
436
+ Group_Control_Border::get_type(),
437
  array(
438
+ 'name' => 'title_bar_border_normal',
439
  'selector' => '{{WRAPPER}} .aux-toggle-header',
440
+ 'separator' => 'before'
441
  )
442
  );
443
 
455
  Group_Control_Box_Shadow::get_type(),
456
  array(
457
  'name' => 'title_bar_boxshadow_hover',
458
+ 'label' => __( 'Box Shadow', 'auxin-elements' ),
459
  'selector' => '{{WRAPPER}} .aux-toggle-header:hover',
460
  'separator' => 'none'
461
  )
462
  );
463
 
464
  $this->add_group_control(
465
+ Group_Control_Background::get_type(),
466
  array(
467
+ 'name' => 'title_bar_background_hover',
468
  'selector' => '{{WRAPPER}} .aux-toggle-header:hover',
469
+ 'separator' => 'before'
470
  )
471
  );
472
 
473
  $this->add_group_control(
474
+ Group_Control_Border::get_type(),
475
  array(
476
+ 'name' => 'title_bar_border_hover',
477
  'selector' => '{{WRAPPER}} .aux-toggle-header:hover',
478
+ 'separator' => 'before'
479
  )
480
  );
481
 
493
  Group_Control_Box_Shadow::get_type(),
494
  array(
495
  'name' => 'title_bar_boxshadow_active',
496
+ 'label' => __( 'Box Shadow', 'auxin-elements' ),
497
  'selector' => '{{WRAPPER}} .active .aux-toggle-header',
498
  'separator' => 'none'
499
  )
500
  );
501
 
502
  $this->add_group_control(
503
+ Group_Control_Background::get_type(),
504
  array(
505
+ 'name' => 'title_bar_background_active',
506
  'selector' => '{{WRAPPER}} .active .aux-toggle-header',
507
+ 'separator' => 'before'
508
  )
509
  );
510
 
511
  $this->add_group_control(
512
+ Group_Control_Border::get_type(),
513
  array(
514
+ 'name' => 'title_bar_border_active',
515
  'selector' => '{{WRAPPER}} .active .aux-toggle-header',
516
+ 'separator' => 'before'
517
  )
518
  );
519
 
578
 
579
  $this->end_controls_tab();
580
 
581
+ $this->start_controls_tab(
582
+ 'title_color_selected',
583
+ array(
584
+ 'label' => __( 'Selected' , 'auxin-elements' )
585
+ )
586
+ );
587
+
588
+ $this->add_control(
589
+ 'title_selected_color',
590
+ array(
591
+ 'label' => __( 'Color', 'auxin-elements' ),
592
+ 'type' => Controls_Manager::COLOR,
593
+ 'selectors' => array(
594
+ '{{WRAPPER}} .active .aux-toggle-header' => 'color: {{VALUE}} !important;',
595
+ )
596
+ )
597
+ );
598
+
599
  $this->end_controls_tabs();
600
 
601
  $this->add_group_control(
690
  );
691
 
692
  $this->add_group_control(
693
+ Group_Control_Background::get_type(),
694
  array(
695
+ 'name' => 'content_background',
696
  'selector' => '{{WRAPPER}} .aux-toggle-content',
697
+ 'separator' => 'before'
698
  )
699
  );
700
 
701
  $this->add_group_control(
702
+ Group_Control_Border::get_type(),
703
  array(
704
+ 'name' => 'content_border',
705
  'selector' => '{{WRAPPER}} .aux-toggle-content',
706
+ 'separator' => 'before'
707
  )
708
  );
709
 
includes/elementor/widgets/carousel-navigation.php CHANGED
@@ -112,8 +112,11 @@ class CarouselNavigation extends Widget_Base {
112
  'prev_icon',
113
  [
114
  'label' => __('Previous Button','auxin-elements' ),
115
- 'type' => 'aux-icon',
116
- 'default' => 'auxicon-chevron-left-2',
 
 
 
117
  'condition' => [
118
  'nav_type' => ['custom']
119
  ]
@@ -124,8 +127,11 @@ class CarouselNavigation extends Widget_Base {
124
  'next_icon',
125
  [
126
  'label' => __('Next Button','auxin-elements' ),
127
- 'type' => 'aux-icon',
128
- 'default' => 'auxicon-chevron-right-2',
 
 
 
129
  'condition' => [
130
  'nav_type' => ['custom']
131
  ]
@@ -136,6 +142,7 @@ class CarouselNavigation extends Widget_Base {
136
  'nav_target',
137
  [
138
  'label' => __('Carousel Target','auxin-elements' ),
 
139
  'type' => Controls_Manager::TEXT,
140
  'default' => '',
141
  'placeholder' => '.carousel-classname'
@@ -486,12 +493,14 @@ class CarouselNavigation extends Widget_Base {
486
  <?php
487
  break;
488
  case 'custom':
 
 
489
  ;?>
490
  <div class="aux-prev aux-prev-custom aux-custom-nav">
491
- <span class="<?php echo $settings['prev_icon'];?>"></span>
492
  </div>
493
  <div class="aux-next aux-next-custom aux-custom-nav">
494
- <span class="<?php echo $settings['next_icon'];?>"></span>
495
  </div>
496
  <?php
497
  break;
112
  'prev_icon',
113
  [
114
  'label' => __('Previous Button','auxin-elements' ),
115
+ 'type' => Controls_Manager::ICONS,
116
+ 'default' => [
117
+ 'value' => 'auxicon-chevron-left-2',
118
+ 'library' => 'auxicon'
119
+ ],
120
  'condition' => [
121
  'nav_type' => ['custom']
122
  ]
127
  'next_icon',
128
  [
129
  'label' => __('Next Button','auxin-elements' ),
130
+ 'type' => Controls_Manager::ICONS,
131
+ 'default' => [
132
+ 'value' => 'auxicon-chevron-right-2',
133
+ 'library' => 'auxicon'
134
+ ],
135
  'condition' => [
136
  'nav_type' => ['custom']
137
  ]
142
  'nav_target',
143
  [
144
  'label' => __('Carousel Target','auxin-elements' ),
145
+ 'description' => __('CSS selector of target carousel.','auxin-elements' ),
146
  'type' => Controls_Manager::TEXT,
147
  'default' => '',
148
  'placeholder' => '.carousel-classname'
493
  <?php
494
  break;
495
  case 'custom':
496
+ $prev_icon = isset( $settings['prev_icon']['value'] ) ? $settings['prev_icon']['value'] : $settings['prev_icon'];
497
+ $next_icon = isset( $settings['next_icon']['value'] ) ? $settings['next_icon']['value'] : $settings['next_icon'];
498
  ;?>
499
  <div class="aux-prev aux-prev-custom aux-custom-nav">
500
+ <span class="<?php echo esc_attr( $prev_icon ); ?>"></span>
501
  </div>
502
  <div class="aux-next aux-next-custom aux-custom-nav">
503
+ <span class="<?php echo esc_attr( $next_icon ); ?>"></span>
504
  </div>
505
  <?php
506
  break;
includes/elementor/widgets/contact-form.php CHANGED
@@ -4,6 +4,11 @@ namespace Auxin\Plugin\CoreElements\Elementor\Elements;
4
  use Elementor\Plugin;
5
  use Elementor\Widget_Base;
6
  use Elementor\Controls_Manager;
 
 
 
 
 
7
 
8
 
9
  if ( ! defined( 'ABSPATH' ) ) {
@@ -72,7 +77,7 @@ class ContactForm extends Widget_Base {
72
  * @return string Widget icon.
73
  */
74
  public function get_categories() {
75
- return array ('auxin-core');
76
  }
77
 
78
  /**
@@ -99,14 +104,14 @@ class ContactForm extends Widget_Base {
99
  $this->add_control(
100
  'type',
101
  array(
102
- 'label' => __('Contact form type','auxin-elements' ),
103
  'description' => __('Specifies contact form element\'s type. Whether to use built-in form or Contact Form 7.', 'auxin-elements' ),
104
  'label_block' => true,
105
  'type' => Controls_Manager::SELECT,
106
  'default' => 'phlox',
107
  'options' => array(
108
  'phlox' => __('Phlox Contact Form', 'auxin-elements' ),
109
- 'cf7' => __('Contact Form 7 plugin', 'auxin-elements' ),
110
  )
111
  )
112
  );
@@ -114,12 +119,14 @@ class ContactForm extends Widget_Base {
114
  $this->add_control(
115
  'cf7_shortcode',
116
  array(
117
- 'label' => __('Contact form 7 shortcode','auxin-elements' ),
118
- 'description' => __('Put one of your Contact form 7 shortcodes that you created.','auxin-elements' ),
119
  'type' => Controls_Manager::TEXT,
120
- 'condition' => array(
121
- 'type' => array('cf7'),
122
- )
 
 
123
  )
124
  );
125
 
@@ -129,14 +136,1464 @@ class ContactForm extends Widget_Base {
129
  'label' => __('Email','auxin-elements' ),
130
  'description' => __('Email address of message\'s recipient', 'auxin-elements' ),
131
  'type' => Controls_Manager::TEXT,
 
132
  'input_type' => 'email',
133
- 'condition' => array(
134
- 'type' => array('phlox'),
135
- )
 
136
  )
137
  );
138
 
139
  $this->end_controls_section();