Shortcodes and extra features for Phlox theme - Version 2.9.2

Version Description

Download this release

Release Info

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

Code changes from version 2.9.0 to 2.9.2

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.8.1
10
- Stable tag: 2.9.0
11
  License: GPLv3
12
  License URI: http://www.gnu.org/licenses/gpl.html
13
 
7
  Requires PHP: 5.4
8
  Requires at least: 4.6
9
  Tested up to: 5.8.1
10
+ Stable tag: 2.9.2
11
  License: GPLv3
12
  License URI: http://www.gnu.org/licenses/gpl.html
13
 
admin/assets/js/plugins.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! Phlox Core Plugin - v2.9.0 (2021-11)
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.9.2 (2021-12)
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/classes/class-auxin-license-activation.php CHANGED
@@ -165,7 +165,7 @@ class Auxin_License_Activation {
165
  $output['message'] = $response['msg'] . sprintf( ' <sub>[%s]</sub>', $response['code'] );
166
 
167
  } else {
168
- $output['message'] = __( 'Connection error...', 'auxin-elements' );
169
  $output['success'] = 0;
170
  }
171
 
165
  $output['message'] = $response['msg'] . sprintf( ' <sub>[%s]</sub>', $response['code'] );
166
 
167
  } else {
168
+ $output['message'] = sprintf( "%s <a href='http://avt.li/phmli'>%s</a>", __( 'Connection error...', 'auxin-elements' ), __( 'Learn more', 'auxin-elements' ) );
169
  $output['success'] = 0;
170
  }
171
 
auxin-elements.php CHANGED
@@ -12,14 +12,14 @@
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.9.0
16
  * Author: averta
17
  * Author URI: http://averta.net
18
  * Text Domain: auxin-elements
19
  * License: GPL2
20
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
21
  * Domain Path: /languages
22
- * Tested up to: 5.8.1
23
  */
24
 
25
  // If this file is called directly, abort.
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.9.2
16
  * Author: averta
17
  * Author URI: http://averta.net
18
  * Text Domain: auxin-elements
19
  * License: GPL2
20
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
21
  * Domain Path: /languages
22
+ * Tested up to: 5.8.2
23
  */
24
 
25
  // If this file is called directly, abort.
includes/define.php CHANGED
@@ -12,7 +12,7 @@ if( ! defined( 'THEME_NAME' ) ){
12
  }
13
 
14
 
15
- define( 'AUXELS_VERSION' , '2.9.0' );
16
 
17
  define( 'AUXELS_SLUG' , 'auxin-elements' );
18
 
12
  }
13
 
14
 
15
+ define( 'AUXELS_VERSION' , '2.9.2' );
16
 
17
  define( 'AUXELS_SLUG' , 'auxin-elements' );
18
 
includes/elementor/class-auxin-elementor-core-elements.php CHANGED
@@ -104,8 +104,20 @@ final class Elements {
104
  */
105
  public function __construct() {
106
  add_action( 'plugins_loaded', array( $this, 'init' ) );
 
 
 
 
107
  }
108
 
 
 
 
 
 
 
 
 
109
  /**
110
  * Initialize the plugin
111
  *
@@ -238,7 +250,10 @@ final class Elements {
238
  'file' => $this->dir_path . '/widgets/recent-products.php',
239
  'class' => 'Elements\RecentProducts'
240
  ],
241
-
 
 
 
242
  '80' => [
243
  'file' => $this->dir_path . '/widgets/recent-comments.php',
244
  'class' => 'Elements\RecentComments'
104
  */
105
  public function __construct() {
106
  add_action( 'plugins_loaded', array( $this, 'init' ) );
107
+
108
+ if ( ! empty( $_REQUEST['action'] ) && 'elementor' === $_REQUEST['action'] && is_admin() ) {
109
+ add_action( 'init', [ $this, 'register_wc_hooks' ], 5 );
110
+ }
111
  }
112
 
113
+ public function register_wc_hooks() {
114
+ if ( !class_exists('WooCommerce') ) {
115
+ return;
116
+ }
117
+
118
+ wc()->frontend_includes();
119
+ }
120
+
121
  /**
122
  * Initialize the plugin
123
  *
250
  'file' => $this->dir_path . '/widgets/recent-products.php',
251
  'class' => 'Elements\RecentProducts'
252
  ],
253
+ '75' => [
254
+ 'file' => $this->dir_path . '/widgets/products-grid.php',
255
+ 'class' => 'Elements\ProductsGrid'
256
+ ],
257
  '80' => [
258
  'file' => $this->dir_path . '/widgets/recent-comments.php',
259
  'class' => 'Elements\RecentComments'
includes/elementor/widgets/heading-modern.php CHANGED
@@ -5,6 +5,7 @@ use Elementor\Plugin;
5
  use Elementor\Widget_Base;
6
  use Elementor\Controls_Manager;
7
  use Elementor\Group_Control_Typography;
 
8
  use Elementor\Core\Schemes\Typography;
9
  use Elementor\Group_Control_Box_Shadow;
10
  use Elementor\Group_Control_Text_Shadow;
@@ -351,6 +352,16 @@ class ModernHeading extends Widget_Base {
351
  )
352
  );
353
 
 
 
 
 
 
 
 
 
 
 
354
  $this->start_controls_tabs( 'title_tabs' );
355
 
356
  $this->start_controls_tab(
5
  use Elementor\Widget_Base;
6
  use Elementor\Controls_Manager;
7
  use Elementor\Group_Control_Typography;
8
+ use Elementor\Group_Control_Text_Stroke;
9
  use Elementor\Core\Schemes\Typography;
10
  use Elementor\Group_Control_Box_Shadow;
11
  use Elementor\Group_Control_Text_Shadow;
352
  )
353
  );
354
 
355
+ if ( class_exists( 'Elementor\Group_Control_Text_Stroke' ) ) {
356
+ $this->add_group_control(
357
+ Group_Control_Text_Stroke::get_type(),
358
+ [
359
+ 'name' => 'title_stroke',
360
+ 'selector' => '{{WRAPPER}} .aux-modern-heading-primary'
361
+ ]
362
+ );
363
+ }
364
+
365
  $this->start_controls_tabs( 'title_tabs' );
366
 
367
  $this->start_controls_tab(
includes/elementor/widgets/products-grid.php ADDED
@@ -0,0 +1,1151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Auxin\Plugin\CoreElements\Elementor\Elements;
3
+
4
+ use Elementor\Plugin;
5
+ use Elementor\Core\Files\CSS\Post;
6
+ use Elementor\Widget_Base;
7
+ use Elementor\Controls_Manager;
8
+ use Elementor\Group_Control_Image_Size;
9
+ use Elementor\Group_Control_Typography;
10
+ use Elementor\Core\Schemes\Color;
11
+ use Elementor\Core\Schemes\Typography;
12
+ use Elementor\Utils;
13
+ use Elementor\Control_Media;
14
+ use Elementor\Group_Control_Border;
15
+ use Elementor\Group_Control_Box_Shadow;
16
+ use Elementor\Group_Control_Text_Shadow;
17
+ use Elementor\Group_Control_Background;
18
+
19
+ if ( ! defined( 'ABSPATH' ) ) {
20
+ exit; // Exit if accessed directly.
21
+ }
22
+
23
+ /**
24
+ * Elementor 'AdvancedRecentProducts' widget.
25
+ *
26
+ * Elementor widget that displays an 'AdvancedRecentProducts' with lightbox.
27
+ *
28
+ * @since 1.0.0
29
+ */
30
+ class ProductsGrid extends Widget_Base {
31
+
32
+ /**
33
+ * Get widget name.
34
+ *
35
+ * Retrieve 'AdvancedRecentProducts' widget name.
36
+ *
37
+ * @since 1.0.0
38
+ * @access public
39
+ *
40
+ * @return string Widget name.
41
+ */
42
+ public function get_name() {
43
+ return 'aux_product_grid';
44
+ }
45
+
46
+ /**
47
+ * Get widget title.
48
+ *
49
+ * Retrieve 'AdvancedRecentProducts' widget title.
50
+ *
51
+ * @since 1.0.0
52
+ * @access public
53
+ *
54
+ * @return string Widget title.
55
+ */
56
+ public function get_title() {
57
+ return __('Products Grid', 'auxin-elements' );
58
+ }
59
+
60
+ /**
61
+ * Get widget icon.
62
+ *
63
+ * Retrieve 'AdvancedRecentProducts' widget icon.
64
+ *
65
+ * @since 1.0.0
66
+ * @access public
67
+ *
68
+ * @return string Widget icon.
69
+ */
70
+ public function get_icon() {
71
+ return 'eicon-woocommerce auxin-badge-pro';
72
+ }
73
+
74
+ /**
75
+ * Get widget categories.
76
+ *
77
+ * Retrieve 'AdvancedRecentProducts' widget icon.
78
+ *
79
+ * @since 1.0.0
80
+ * @access public
81
+ *
82
+ * @return string Widget icon.
83
+ */
84
+ public function get_categories() {
85
+ return array( 'auxin-pro' );
86
+ }
87
+
88
+ /**
89
+ * Retrieve the terms in a given taxonomy or list of taxonomies.
90
+ *
91
+ * Retrieve 'AdvancedRecentProducts' widget icon.
92
+ *
93
+ * @since 1.0.0
94
+ * @access public
95
+ *
96
+ * @return string Widget icon.
97
+ */
98
+ public function get_terms() {
99
+ // Get terms
100
+ $terms = get_terms(
101
+ array(
102
+ 'taxonomy' => 'product_cat',
103
+ 'orderby' => 'count',
104
+ 'hide_empty' => true
105
+ )
106
+ );
107
+
108
+ // Then create a list
109
+ $list = array();
110
+
111
+ if ( ! is_wp_error( $terms ) && is_array( $terms ) ){
112
+ foreach ( $terms as $key => $value ) {
113
+ $list[$value->term_id] = $value->name;
114
+ }
115
+ }
116
+
117
+ return $list;
118
+ }
119
+
120
+ /**
121
+ * Register 'AdvancedRecentProducts' widget controls.
122
+ *
123
+ * Adds different input fields to allow the user to change and customize the widget settings.
124
+ *
125
+ * @since 1.0.0
126
+ * @access protected
127
+ */
128
+ protected function _register_controls() {
129
+ /*-------------------------------------------------------------------*/
130
+ /* Layout TAB
131
+ /*-------------------------------------------------------------------*/
132
+
133
+ /* Layout Section
134
+ /*-------------------------------------*/
135
+
136
+ $this->start_controls_section(
137
+ 'layout_section',
138
+ array(
139
+ 'label' => __('Layout', 'auxin-elements' ),
140
+ 'tab' => Controls_Manager::TAB_LAYOUT
141
+ )
142
+ );
143
+
144
+ $this->add_control(
145
+ 'columns',
146
+ array(
147
+ 'label' => __( 'Columns', 'auxin-elements' ),
148
+ 'type' => Controls_Manager::SELECT,
149
+ 'default' => '4',
150
+ 'options' => array(
151
+ '1' => '1',
152
+ '2' => '2',
153
+ '3' => '3',
154
+ '4' => '4',
155
+ '5' => '5',
156
+ ),
157
+ 'frontend_available' => true,
158
+ )
159
+ );
160
+
161
+ $this->add_control(
162
+ 'num',
163
+ array(
164
+ 'label' => __('Number of posts to show', 'auxin-elements'),
165
+ 'label_block' => true,
166
+ 'type' => Controls_Manager::NUMBER,
167
+ 'default' => '8',
168
+ 'min' => 1,
169
+ 'step' => 1
170
+ )
171
+ );
172
+
173
+ $this->end_controls_section();
174
+ /*-------------------------------------------------------------------*/
175
+ /* Content TAB
176
+ /*-------------------------------------------------------------------*/
177
+
178
+ /* Query Section
179
+ /*-------------------------------------*/
180
+
181
+ $this->start_controls_section(
182
+ 'query_section',
183
+ array(
184
+ 'label' => __('Query', 'auxin-elements' ),
185
+ )
186
+ );
187
+
188
+ $this->add_control(
189
+ 'product_type',
190
+ array(
191
+ 'label' => __('Products Type','auxin-elements' ),
192
+ 'label_block' => true,
193
+ 'type' => Controls_Manager::SELECT,
194
+ 'options' => array(
195
+ 'recent' => __('Recent Products' , 'auxin-elements'),
196
+ 'featured' => __('Featured Products' , 'auxin-elements'),
197
+ 'top_rated' => __('Top Rated Products', 'auxin-elements'),
198
+ 'best_selling' => __('Best Selling Products' , 'auxin-elements'),
199
+ 'sale' => __('On Sale Products' , 'auxin-elements'),
200
+ 'deal' => __('Deal Products' , 'auxin-elements'),
201
+ ),
202
+ 'default' => 'recent',
203
+ )
204
+ );
205
+
206
+ $this->add_control(
207
+ 'cat',
208
+ array(
209
+ 'label' => __('Categories', 'auxin-elements'),
210
+ 'description' => __('Specifies a category that you want to show posts from it. In order to choose the all categories leave the field empty', 'auxin-elements' ),
211
+ 'type' => Controls_Manager::SELECT2,
212
+ 'multiple' => true,
213
+ 'options' => $this->get_terms(),
214
+ 'default' => array(),
215
+ )
216
+ );
217
+
218
+ $this->add_control(
219
+ 'exclude_without_media',
220
+ array(
221
+ 'label' => __('Exclude products without media','auxin-elements' ),
222
+ 'type' => Controls_Manager::SWITCHER,
223
+ 'label_on' => __( 'On', 'auxin-elements' ),
224
+ 'label_off' => __( 'Off', 'auxin-elements' ),
225
+ 'return_value' => 'yes',
226
+ 'default' => 'yes'
227
+ )
228
+ );
229
+
230
+ $this->add_control(
231
+ 'order_by',
232
+ array(
233
+ 'label' => __('Order by', 'auxin-elements'),
234
+ 'type' => Controls_Manager::SELECT,
235
+ 'default' => 'date',
236
+ 'options' => array(
237
+ 'date' => __('Date', 'auxin-elements'),
238
+ 'menu_order date' => __('Menu Order', 'auxin-elements'),
239
+ 'title' => __('Title', 'auxin-elements'),
240
+ 'ID' => __('ID', 'auxin-elements'),
241
+ 'rand' => __('Random', 'auxin-elements'),
242
+ 'comment_count' => __('Comments', 'auxin-elements'),
243
+ 'modified' => __('Date Modified', 'auxin-elements'),
244
+ 'author' => __('Author', 'auxin-elements'),
245
+ 'post__in' => __('Inserted Post IDs', 'auxin-elements')
246
+ ),
247
+ )
248
+ );
249
+
250
+ $this->add_control(
251
+ 'order',
252
+ array(
253
+ 'label' => __('Order', 'auxin-elements'),
254
+ 'type' => Controls_Manager::SELECT,
255
+ 'default' => 'DESC',
256
+ 'options' => array(
257
+ 'DESC' => __('Descending', 'auxin-elements'),
258
+ 'ASC' => __('Ascending', 'auxin-elements'),
259
+ ),
260
+ )
261
+ );
262
+
263
+ $this->add_control(
264
+ 'only_products__in',
265
+ array(
266
+ 'label' => __('Only products','auxin-elements' ),
267
+ 'description' => __('If you intend to display ONLY specific products, you should specify the products here. You have to insert the Products IDs that are separated by comma (eg. 53,34,87,25).', 'auxin-elements' ),
268
+ 'type' => Controls_Manager::TEXT
269
+ )
270
+ );
271
+
272
+ $this->add_control(
273
+ 'include',
274
+ array(
275
+ 'label' => __('Include products','auxin-elements' ),
276
+ 'description' => __('If you intend to include additional products, you should specify the products here. You have to insert the Products IDs that are separated by comma (eg. 53,34,87,25)', 'auxin-elements' ),
277
+ 'type' => Controls_Manager::TEXT
278
+ )
279
+ );
280
+
281
+ $this->add_control(
282
+ 'exclude',
283
+ array(
284
+ 'label' => __('Exclude products','auxin-elements' ),
285
+ 'description' => __('If you intend to exclude specific products from result, you should specify the products here. You have to insert the Products IDs that are separated by comma (eg. 53,34,87,25)', 'auxin-elements' ),
286
+ 'type' => Controls_Manager::TEXT
287
+ )
288
+ );
289
+
290
+ $this->add_control(
291
+ 'offset',
292
+ array(
293
+ 'label' => __('Start offset','auxin-elements' ),
294
+ 'description' => __('Number of products to displace or pass over.', 'auxin-elements' ),
295
+ 'type' => Controls_Manager::NUMBER,
296
+ 'default' => ''
297
+ )
298
+ );
299
+
300
+ $this->end_controls_section();
301
+
302
+ /*-------------------------------------------------------------------*/
303
+ /* Settings TAB
304
+ /*-------------------------------------------------------------------*/
305
+ /*-----------------------------------------------------------------------------------*/
306
+ /* Rating Style Section
307
+ /*-----------------------------------------------------------------------------------*/
308
+
309
+ $this->start_controls_section(
310
+ 'wrappers_section',
311
+ array(
312
+ 'label' => __( 'Wrappers', 'auxin-elements' ),
313
+ 'tab' => Controls_Manager::TAB_STYLE,
314
+ )
315
+ );
316
+
317
+ $this->add_responsive_control(
318
+ 'wrapper_margin_bottom',
319
+ array(
320
+ 'label' => __( 'Product Bottom space', 'auxin-elements' ),
321
+ 'type' => Controls_Manager::SLIDER,
322
+ 'range' => array(
323
+ 'px' => array(
324
+ 'max' => 100,
325
+ ),
326
+ ),
327
+ 'selectors' => array(
328
+ '{{WRAPPER}} .type-product' => 'padding-bottom: {{SIZE}}{{UNIT}};',
329
+ ),
330
+ )
331
+ );
332
+
333
+ $this->add_responsive_control(
334
+ 'wrapper_info_padding',
335
+ array(
336
+ 'label' => __( 'Info Wrapper Padding', 'auxin-elements' ),
337
+ 'type' => Controls_Manager::DIMENSIONS,
338
+ 'size_units' => array( 'px', '%' ),
339
+ 'selectors' => array(
340
+ '{{WRAPPER}} .aux-shop-info-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
341
+ ),
342
+ )
343
+ );
344
+
345
+ $this->add_responsive_control(
346
+ 'wrapper_meta_padding',
347
+ array(
348
+ 'label' => __( 'Meta Wrapper Padding', 'auxin-elements' ),
349
+ 'type' => Controls_Manager::DIMENSIONS,
350
+ 'size_units' => array( 'px', '%' ),
351
+ 'selectors' => array(
352
+ '{{WRAPPER}} .aux-shop-meta-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
353
+ ),
354
+ )
355
+ );
356
+
357
+ $this->add_responsive_control(
358
+ 'wrapper_desc_padding',
359
+ array(
360
+ 'label' => __( 'Description Wrapper Padding', 'auxin-elements' ),
361
+ 'type' => Controls_Manager::DIMENSIONS,
362
+ 'size_units' => array( 'px', '%' ),
363
+ 'selectors' => array(
364
+ '{{WRAPPER}} .aux-shop-desc-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
365
+ ),
366
+ )
367
+ );
368
+
369
+ $this->add_responsive_control(
370
+ 'wrapper_btn_padding',
371
+ array(
372
+ 'label' => __( 'Buttons Wrapper Padding', 'auxin-elements' ),
373
+ 'type' => Controls_Manager::DIMENSIONS,
374
+ 'size_units' => array( 'px', '%' ),
375
+ 'selectors' => array(
376
+ '{{WRAPPER}} .aux-shop-btns-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
377
+ ),
378
+ )
379
+ );
380
+
381
+ $this->end_controls_section();
382
+
383
+ /*-----------------------------------------------------------------------------------*/
384
+ /* title_style_section
385
+ /*-----------------------------------------------------------------------------------*/
386
+
387
+ $this->start_controls_section(
388
+ 'title_style_section',
389
+ array(
390
+ 'label' => __( 'Title', 'auxin-elements' ),
391
+ 'tab' => Controls_Manager::TAB_STYLE,
392
+ )
393
+ );
394
+
395
+ $this->start_controls_tabs( 'title_colors' );
396
+
397
+ $this->start_controls_tab(
398
+ 'title_color_normal',
399
+ array(
400
+ 'label' => __( 'Normal' , 'auxin-elements' ),
401
+ )
402
+ );
403
+
404
+ $this->add_control(
405
+ 'title_color',
406
+ array(
407
+ 'label' => __( 'Color', 'auxin-elements' ),
408
+ 'type' => Controls_Manager::COLOR,
409
+ 'selectors' => array(
410
+ '{{WRAPPER}} .auxshp-loop-title, {{WRAPPER}} .woocommerce-loop-product__title' => 'color: {{VALUE}};',
411
+ ),
412
+ )
413
+ );
414
+
415
+ $this->end_controls_tab();
416
+
417
+ $this->start_controls_tab(
418
+ 'title_color_hover',
419
+ array(
420
+ 'label' => __( 'Hover' , 'auxin-elements' ),
421
+ )
422
+ );
423
+
424
+ $this->add_control(
425
+ 'title_hover_color',
426
+ array(
427
+ 'label' => __( 'Color', 'auxin-elements' ),
428
+ 'type' => Controls_Manager::COLOR,
429
+ 'selectors' => array(
430
+ '{{WRAPPER}} .auxshp-loop-title:hover, {{WRAPPER}} .woocommerce-loop-product__title:hover' => 'color: {{VALUE}};',
431
+ ),
432
+ )
433
+ );
434
+
435
+ $this->end_controls_tab();
436
+
437
+ $this->end_controls_tabs();
438
+
439
+ $this->add_group_control(
440
+ Group_Control_Typography::get_type(),
441
+ array(
442
+ 'name' => 'title_typography',
443
+ 'scheme' => Typography::TYPOGRAPHY_1,
444
+ 'selector' => '{{WRAPPER}} .auxshp-loop-title, {{WRAPPER}} .woocommerce-loop-product__title',
445
+ )
446
+ );
447
+
448
+ $this->end_controls_section();
449
+
450
+ /*-----------------------------------------------------------------------------------*/
451
+ /* price_style_section
452
+ /*-----------------------------------------------------------------------------------*/
453
+
454
+ $this->start_controls_section(
455
+ 'price_style_section',
456
+ array(
457
+ 'label' => __( 'Price', 'auxin-elements' ),
458
+ 'tab' => Controls_Manager::TAB_STYLE,
459
+ )
460
+ );
461
+
462
+ $this->start_controls_tabs( 'price_colors' );
463
+
464
+ $this->start_controls_tab(
465
+ 'price_color_normal',
466
+ array(
467
+ 'label' => __( 'Normal' , 'auxin-elements' ),
468
+ )
469
+ );
470
+
471
+ $this->add_control(
472
+ 'price_color',
473
+ array(
474
+ 'label' => __( 'Color', 'auxin-elements' ),
475
+ 'type' => Controls_Manager::COLOR,
476
+ 'selectors' => array(
477
+ '{{WRAPPER}} .woocommerce-Price-amount' => 'color: {{VALUE}};',
478
+ ),
479
+ )
480
+ );
481
+
482
+ $this->end_controls_tab();
483
+
484
+ $this->start_controls_tab(
485
+ 'price_color_hover',
486
+ array(
487
+ 'label' => __( 'Hover' , 'auxin-elements' ),
488
+ )
489
+ );
490
+
491
+ $this->add_control(
492
+ 'price_hover_color',
493
+ array(
494
+ 'label' => __( 'Color', 'auxin-elements' ),
495
+ 'type' => Controls_Manager::COLOR,
496
+ 'selectors' => array(
497
+ '{{WRAPPER}} .woocommerce-Price-amount:hover' => 'color: {{VALUE}};',
498
+ ),
499
+ )
500
+ );
501
+
502
+ $this->end_controls_tab();
503
+
504
+ $this->end_controls_tabs();
505
+
506
+ $this->add_group_control(
507
+ Group_Control_Typography::get_type(),
508
+ array(
509
+ 'name' => 'price_typography',
510
+ 'scheme' => Typography::TYPOGRAPHY_1,
511
+ 'selector' => '{{WRAPPER}} .woocommerce-Price-amount',
512
+ )
513
+ );
514
+
515
+ $this->end_controls_section();
516
+
517
+ if ( class_exists( 'AUXSHP') ) {
518
+
519
+ /*-----------------------------------------------------------------------------------*/
520
+ /* info_style_section
521
+ /*-----------------------------------------------------------------------------------*/
522
+
523
+ $this->start_controls_section(
524
+ 'info_style_section',
525
+ array(
526
+ 'label' => __( 'Product Info', 'auxin-elements' ),
527
+ 'tab' => Controls_Manager::TAB_STYLE,
528
+ )
529
+ );
530
+
531
+ $this->start_controls_tabs( 'info_colors' );
532
+
533
+ $this->start_controls_tab(
534
+ 'info_color_normal',
535
+ array(
536
+ 'label' => __( 'Normal' , 'auxin-elements' ),
537
+ )
538
+ );
539
+
540
+ $this->add_control(
541
+ 'info_color',
542
+ array(
543
+ 'label' => __( 'Color', 'auxin-elements' ),
544
+ 'type' => Controls_Manager::COLOR,
545
+ 'selectors' => array(
546
+ '{{WRAPPER}} .aux-shop-meta-terms > a' => 'color: {{VALUE}};',
547
+ ),
548
+ )
549
+ );
550
+
551
+ $this->end_controls_tab();
552
+
553
+ $this->start_controls_tab(
554
+ 'info_color_hover',
555
+ array(
556
+ 'label' => __( 'Hover' , 'auxin-elements' ),
557
+ )
558
+ );
559
+
560
+ $this->add_control(
561
+ 'info_hover_color',
562
+ array(
563
+ 'label' => __( 'Color', 'auxin-elements' ),
564
+ 'type' => Controls_Manager::COLOR,
565
+ 'selectors' => array(
566
+ '{{WRAPPER}} .aux-shop-meta-terms > a:hover' => 'color: {{VALUE}};',
567
+ ),
568
+ )
569
+ );
570
+
571
+ $this->end_controls_tab();
572
+
573
+ $this->end_controls_tabs();
574
+
575
+ $this->add_group_control(
576
+ Group_Control_Typography::get_type(),
577
+ array(
578
+ 'name' => 'info_typography',
579
+ 'scheme' => Typography::TYPOGRAPHY_1,
580
+ 'selector' => '{{WRAPPER}} .aux-shop-meta-terms, {{WRAPPER}} .aux-shop-meta-terms a',
581
+ )
582
+ );
583
+
584
+ $this->end_controls_section();
585
+
586
+ /*-----------------------------------------------------------------------------------*/
587
+ /* Description Style Section
588
+ /*-----------------------------------------------------------------------------------*/
589
+
590
+ $this->start_controls_section(
591
+ 'desc_style_section',
592
+ array(
593
+ 'label' => __( 'Description', 'auxin-elements' ),
594
+ 'tab' => Controls_Manager::TAB_STYLE,
595
+ )
596
+ );
597
+
598
+ $this->start_controls_tabs( 'desc_colors' );
599
+
600
+ $this->start_controls_tab(
601
+ 'desc_color_normal',
602
+ array(
603
+ 'label' => __( 'Normal' , 'auxin-elements' ),
604
+ )
605
+ );
606
+
607
+ $this->add_control(
608
+ 'desc_color',
609
+ array(
610
+ 'label' => __( 'Color', 'auxin-elements' ),
611
+ 'type' => Controls_Manager::COLOR,
612
+ 'selectors' => array(
613
+ '{{WRAPPER}} .aux-shop-desc-wrapper' => 'color: {{VALUE}};',
614
+ ),
615
+ )
616
+ );
617
+
618
+ $this->end_controls_tab();
619
+
620
+ $this->start_controls_tab(
621
+ 'desc_color_hover',
622
+ array(
623
+ 'label' => __( 'Hover' , 'auxin-elements' ),
624
+ )
625
+ );
626
+
627
+ $this->add_control(
628
+ 'desc_hover_color',
629
+ array(
630
+ 'label' => __( 'Color', 'auxin-elements' ),
631
+ 'type' => Controls_Manager::COLOR,
632
+ 'selectors' => array(
633
+ '{{WRAPPER}} .aux-shop-desc-wrapper:hover' => 'color: {{VALUE}};',
634
+ ),
635
+ )
636
+ );
637
+
638
+ $this->end_controls_tab();
639
+
640
+ $this->end_controls_tabs();
641
+
642
+ $this->add_group_control(
643
+ Group_Control_Typography::get_type(),
644
+ array(
645
+ 'name' => 'desc_typography',
646
+ 'scheme' => Typography::TYPOGRAPHY_1,
647
+ 'selector' => '{{WRAPPER}} .aux-shop-desc-wrapper',
648
+ )
649
+ );
650
+
651
+ $this->end_controls_section();
652
+
653
+ /*-----------------------------------------------------------------------------------*/
654
+ /* meta_fields_style_section
655
+ /*-----------------------------------------------------------------------------------*/
656
+
657
+ $this->start_controls_section(
658
+ 'meta_fields_section',
659
+ array(
660
+ 'label' => __( 'Meta Fields', 'auxin-elements' ),
661
+ 'tab' => Controls_Manager::TAB_STYLE,
662
+ )
663
+ );
664
+
665
+ $this->start_controls_tabs( 'meta_fields_colors' );
666
+
667
+ $this->start_controls_tab(
668
+ 'meta_fields_color_normal',
669
+ array(
670
+ 'label' => __( 'Normal' , 'auxin-elements' ),
671
+ )
672
+ );
673
+
674
+ $this->add_control(
675
+ 'meta_fields_color',
676
+ array(
677
+ 'label' => __( 'Color', 'auxin-elements' ),
678
+ 'type' => Controls_Manager::COLOR,
679
+ 'selectors' => array(
680
+ '{{WRAPPER}} .aux-shop-meta-field span' => 'color: {{VALUE}};',
681
+ ),
682
+ )
683
+ );
684
+
685
+ $this->end_controls_tab();
686
+
687
+ $this->start_controls_tab(
688
+ 'meta_fields_color_hover',
689
+ array(
690
+ 'label' => __( 'Hover' , 'auxin-elements' ),
691
+ )
692
+ );
693
+
694
+ $this->add_control(
695
+ 'meta_fields_hover_color',
696
+ array(
697
+ 'label' => __( 'Color', 'auxin-elements' ),
698
+ 'type' => Controls_Manager::COLOR,
699
+ 'selectors' => array(
700
+ '{{WRAPPER}} .aux-shop-meta-field span:hover' => 'color: {{VALUE}};',
701
+ ),
702
+ )
703
+ );
704
+
705
+ $this->end_controls_tab();
706
+
707
+ $this->end_controls_tabs();
708
+
709
+ $this->add_group_control(
710
+ Group_Control_Typography::get_type(),
711
+ array(
712
+ 'name' => 'meta_fields_typography',
713
+ 'scheme' => Typography::TYPOGRAPHY_1,
714
+ 'selector' => '{{WRAPPER}} .aux-shop-meta-field span',
715
+ )
716
+ );
717
+
718
+ $this->add_responsive_control(
719
+ 'meta_fields_padding',
720
+ array(
721
+ 'label' => __( 'Padding', 'auxin-elements' ),
722
+ 'type' => Controls_Manager::DIMENSIONS,
723
+ 'size_units' => array( 'px', '%' ),
724
+ 'selectors' => array(
725
+ '{{WRAPPER}} .aux-shop-meta-field' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
726
+ ),
727
+ )
728
+ );
729
+
730
+ $this->end_controls_section();
731
+
732
+ /*-----------------------------------------------------------------------------------*/
733
+ /* Rating Style Section
734
+ /*-----------------------------------------------------------------------------------*/
735
+
736
+ $this->start_controls_section(
737
+ 'rating_style_section',
738
+ array(
739
+ 'label' => __( 'Rating', 'auxin-elements' ),
740
+ 'tab' => Controls_Manager::TAB_STYLE,
741
+ )
742
+ );
743
+
744
+
745
+ $this->add_control(
746
+ 'rating_empty_color',
747
+ array(
748
+ 'label' => __( 'Empty Color', 'auxin-elements' ),
749
+ 'type' => Controls_Manager::COLOR,
750
+ 'selectors' => array(
751
+ '{{WRAPPER}} .aux-rating-box.aux-star-rating::before' => 'color: {{VALUE}} !important;'
752
+ )
753
+ )
754
+ );
755
+
756
+ $this->add_control(
757
+ 'rating_fill_color',
758
+ array(
759
+ 'label' => __( 'Fill Color', 'auxin-elements' ),
760
+ 'type' => Controls_Manager::COLOR,
761
+ 'selectors' => array(
762
+ '{{WRAPPER}} .aux-rating-box.aux-star-rating span::before' => 'color: {{VALUE}} !important;'
763
+ )
764
+ )
765
+ );
766
+
767
+ $this->add_responsive_control(
768
+ 'rating_size',
769
+ array(
770
+ 'label' => __( 'Size', 'auxin-elements' ),
771
+ 'type' => Controls_Manager::SLIDER,
772
+ 'size_units' => array( 'px', 'em', 'rem' ),
773
+ 'range' => array(
774
+ 'px' => array(
775
+ 'min' => 1,
776
+ 'max' => 200
777
+ )
778
+ ),
779
+ 'selectors' => array(
780
+ '{{WRAPPER}} .aux-star-rating' => 'font-size: {{SIZE}}{{UNIT}};'
781
+ )
782
+ )
783
+ );
784
+
785
+
786
+ $this->end_controls_section();
787
+ }
788
+
789
+ /*-----------------------------------------------------------------------------------*/
790
+ /* Badge Style Section
791
+ /*-----------------------------------------------------------------------------------*/
792
+
793
+ $this->start_controls_section(
794
+ 'badge_style_section',
795
+ array(
796
+ 'label' => __( 'Sales Badge', 'auxin-elements' ),
797
+ 'tab' => Controls_Manager::TAB_STYLE,
798
+ )
799
+ );
800
+
801
+
802
+ $this->start_controls_tabs( 'badge_colors' );
803
+
804
+ $this->start_controls_tab(
805
+ 'badge_color_normal',
806
+ array(
807
+ 'label' => __( 'Normal' , 'auxin-elements' ),
808
+ )
809
+ );
810
+
811
+ $this->add_control(
812
+ 'badge_color',
813
+ array(
814
+ 'label' => __( 'Color', 'auxin-elements' ),
815
+ 'type' => Controls_Manager::COLOR,
816
+ 'selectors' => array(
817
+ '{{WRAPPER}} .onsale, {{WRAPPER}} .auxin-onsale-badge' => 'color: {{VALUE}};',
818
+ ),
819
+ )
820
+ );
821
+
822
+ $this->end_controls_tab();
823
+
824
+ $this->start_controls_tab(
825
+ 'badge_color_hover',
826
+ array(
827
+ 'label' => __( 'Hover' , 'auxin-elements' ),
828
+ )
829
+ );
830
+
831
+ $this->add_control(
832
+ 'badge_hover_color',
833
+ array(
834
+ 'label' => __( 'Color', 'auxin-elements' ),
835
+ 'type' => Controls_Manager::COLOR,
836
+ 'selectors' => array(
837
+ '{{WRAPPER}} .onsale:hover, {{WRAPPER}} .auxin-onsale-badge:hover' => 'color: {{VALUE}};',
838
+ ),
839
+ )
840
+ );
841
+
842
+ $this->end_controls_tab();
843
+
844
+ $this->end_controls_tabs();
845
+
846
+ $this->add_group_control(
847
+ Group_Control_Typography::get_type(),
848
+ array(
849
+ 'name' => 'badge_typography',
850
+ 'scheme' => Typography::TYPOGRAPHY_1,
851
+ 'selector' => '{{WRAPPER}} .onsale, {{WRAPPER}} .auxin-onsale-badge',
852
+ )
853
+ );
854
+
855
+ $this->add_responsive_control(
856
+ 'wrapper_badge_padding',
857
+ array(
858
+ 'label' => __( 'Padding', 'auxin-elements' ),
859
+ 'type' => Controls_Manager::DIMENSIONS,
860
+ 'size_units' => array( 'px', '%' ),
861
+ 'selectors' => array(
862
+ '{{WRAPPER}} .onsale, {{WRAPPER}} .auxin-onsale-badge' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
863
+ ),
864
+ )
865
+ );
866
+
867
+ $this->add_group_control(
868
+ Group_Control_Background::get_type(),
869
+ array(
870
+ 'name' => 'header_background',
871
+ 'label' => __( 'Background', 'auxin-elements' ),
872
+ 'types' => array( 'classic', 'gradient' ),
873
+ 'selector' => '{{WRAPPER}} .onsale, {{WRAPPER}} .auxin-onsale-badge'
874
+ )
875
+ );
876
+
877
+ $this->end_controls_section();
878
+
879
+ if ( class_exists('AUXSHP') ) {
880
+ /*-----------------------------------------------------------------------------------*/
881
+ /* Badge Style Section
882
+ /*-----------------------------------------------------------------------------------*/
883
+
884
+ $this->start_controls_section(
885
+ 'feat_badge_style_section',
886
+ array(
887
+ 'label' => __( 'Featured Badge', 'auxin-elements' ),
888
+ 'tab' => Controls_Manager::TAB_STYLE,
889
+ )
890
+ );
891
+
892
+
893
+ $this->start_controls_tabs( 'feat_badge_colors' );
894
+
895
+ $this->start_controls_tab(
896
+ 'feat_badge_color_normal',
897
+ array(
898
+ 'label' => __( 'Normal' , 'auxin-elements' ),
899
+ )
900
+ );
901
+
902
+ $this->add_control(
903
+ 'feat_badge_color',
904
+ array(
905
+ 'label' => __( 'Color', 'auxin-elements' ),
906
+ 'type' => Controls_Manager::COLOR,
907
+ 'selectors' => array(
908
+ '{{WRAPPER}} .aux-product-featured-badge' => 'color: {{VALUE}};',
909
+ ),
910
+ )
911
+ );
912
+
913
+ $this->end_controls_tab();
914
+
915
+ $this->start_controls_tab(
916
+ 'feat_badge_color_hover',
917
+ array(
918
+ 'label' => __( 'Hover' , 'auxin-elements' ),
919
+ )
920
+ );
921
+
922
+ $this->add_control(
923
+ 'feat_badge_hover_color',
924
+ array(
925
+ 'label' => __( 'Color', 'auxin-elements' ),
926
+ 'type' => Controls_Manager::COLOR,
927
+ 'selectors' => array(
928
+ '{{WRAPPER}} .aux-product-featured-badge:hover' => 'color: {{VALUE}};',
929
+ ),
930
+ )
931
+ );
932
+
933
+ $this->end_controls_tab();
934
+
935
+ $this->end_controls_tabs();
936
+
937
+ $this->add_group_control(
938
+ Group_Control_Typography::get_type(),
939
+ array(
940
+ 'name' => 'feat_badge_typography',
941
+ 'scheme' => Typography::TYPOGRAPHY_1,
942
+ 'selector' => '{{WRAPPER}} .aux-product-featured-badge',
943
+ )
944
+ );
945
+
946
+ $this->add_responsive_control(
947
+ 'wrapper_feat_badge_padding',
948
+ array(
949
+ 'label' => __( 'Padding', 'auxin-elements' ),
950
+ 'type' => Controls_Manager::DIMENSIONS,
951
+ 'size_units' => array( 'px', '%' ),
952
+ 'selectors' => array(
953
+ '{{WRAPPER}} .aux-product-featured-badge' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
954
+ ),
955
+ )
956
+ );
957
+
958
+ $this->add_group_control(
959
+ Group_Control_Background::get_type(),
960
+ array(
961
+ 'name' => 'feat_badge_bg',
962
+ 'label' => __( 'Background', 'auxin-elements' ),
963
+ 'types' => array( 'classic', 'gradient' ),
964
+ 'selector' => '{{WRAPPER}} .aux-product-featured-badge'
965
+ )
966
+ );
967
+
968
+ $this->end_controls_section();
969
+
970
+ }
971
+ /*-----------------------------------------------------------------------------------*/
972
+ /* Button
973
+ /*-----------------------------------------------------------------------------------*/
974
+
975
+ $this->start_controls_section(
976
+ 'btn_section',
977
+ array(
978
+ 'label' => __('Button', 'auxin-elements' ),
979
+ 'tab' => Controls_Manager::TAB_STYLE,
980
+ )
981
+ );
982
+
983
+ $this->start_controls_tabs( 'btn_bg_tab' );
984
+
985
+ $this->start_controls_tab(
986
+ 'btn_bg_normal',
987
+ array(
988
+ 'label' => __( 'Normal' , 'auxin-elements' )
989
+ )
990
+ );
991
+
992
+ $this->add_group_control(
993
+ Group_Control_Background::get_type(),
994
+ array(
995
+ 'name' => 'btn',
996
+ 'label' => __( 'Background', 'auxin-elements' ),
997
+ 'types' => array( 'classic', 'gradient' ),
998
+ 'selector' => '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button',
999
+ )
1000
+ );
1001
+
1002
+ $this->add_group_control(
1003
+ Group_Control_Box_Shadow::get_type(),
1004
+ array(
1005
+ 'name' => 'btn_shadow',
1006
+ 'selector' => '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button'
1007
+ )
1008
+ );
1009
+
1010
+ $this->add_control(
1011
+ 'btn_text_color',
1012
+ array(
1013
+ 'label' => __( 'Color', 'auxin-elements' ),
1014
+ 'type' => Controls_Manager::COLOR,
1015
+ 'selectors' => array(
1016
+ '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button' => 'color: {{VALUE}};',
1017
+ )
1018
+ )
1019
+ );
1020
+
1021
+ $this->add_group_control(
1022
+ Group_Control_Text_Shadow::get_type(),
1023
+ array(
1024
+ 'name' => 'btn_text_shadow',
1025
+ 'label' => __( 'Text Shadow', 'auxin-elements' ),
1026
+ 'selector' => '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button',
1027
+ )
1028
+ );
1029
+
1030
+ $this->add_group_control(
1031
+ Group_Control_Typography::get_type(),
1032
+ array(
1033
+ 'name' => 'btn_text_typography',
1034
+ 'scheme' => Typography::TYPOGRAPHY_1,
1035
+ 'selector' => '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button'
1036
+ )
1037
+ );
1038
+
1039
+ $this->end_controls_tab();
1040
+
1041
+ $this->start_controls_tab(
1042
+ 'btn_bg_hover',
1043
+ array(
1044
+ 'label' => __( 'Hover' , 'auxin-elements' )
1045
+ )
1046
+ );
1047
+
1048
+ $this->add_group_control(
1049
+ Group_Control_Background::get_type(),
1050
+ array(
1051
+ 'name' => 'btn_bg_hover',
1052
+ 'label' => __( 'Background', 'auxin-elements' ),
1053
+ 'types' => array( 'classic', 'gradient' ),
1054
+ 'selector' => '{{WRAPPER}} .add_to_cart_button:hover, {{WRAPPER}} a.button:hover',
1055
+ )
1056
+ );
1057
+
1058
+ $this->add_group_control(
1059
+ Group_Control_Box_Shadow::get_type(),
1060
+ array(
1061
+ 'name' => 'btn_shadow_hover',
1062
+ 'selector' => '{{WRAPPER}} .add_to_cart_button:hover, {{WRAPPER}} a.button:hover'
1063
+ )
1064
+ );
1065
+
1066
+ $this->add_control(
1067
+ 'btn_text_color_hover',
1068
+ array(
1069
+ 'label' => __( 'Color', 'auxin-elements' ),
1070
+ 'type' => Controls_Manager::COLOR,
1071
+ 'selectors' => array(
1072
+ '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button' => 'color: {{VALUE}};',
1073
+ )
1074
+ )
1075
+ );
1076
+
1077
+ $this->add_group_control(
1078
+ Group_Control_Text_Shadow::get_type(),
1079
+ array(
1080
+ 'name' => 'btn_text_shadow_hover',
1081
+ 'label' => __( 'Text Shadow', 'auxin-elements' ),
1082
+ 'selector' => '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button',
1083
+ )
1084
+ );
1085
+
1086
+ $this->add_group_control(
1087
+ Group_Control_Typography::get_type(),
1088
+ array(
1089
+ 'name' => 'btn_text_typography_hover',
1090
+ 'scheme' => Typography::TYPOGRAPHY_1,
1091
+ 'selector' => '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button'
1092
+ )
1093
+ );
1094
+
1095
+ $this->end_controls_tab();
1096
+
1097
+ $this->end_controls_tabs();
1098
+
1099
+ $this->add_responsive_control(
1100
+ 'btn_padding',
1101
+ array(
1102
+ 'label' => __( 'Button Padding', 'auxin-elements' ),
1103
+ 'type' => Controls_Manager::DIMENSIONS,
1104
+ 'size_units' => array( 'px', '%' ),
1105
+ 'selectors' => array(
1106
+ '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1107
+ ),
1108
+ )
1109
+ );
1110
+
1111
+ $this->end_controls_section();
1112
+
1113
+
1114
+ }
1115
+
1116
+ /**
1117
+ * Render image box widget output on the frontend.
1118
+ *
1119
+ * Written in PHP and used to generate the final HTML.
1120
+ *
1121
+ * @since 1.0.0
1122
+ * @access protected
1123
+ */
1124
+ protected function render() {
1125
+
1126
+ $settings = $this->get_settings_for_display();
1127
+
1128
+ $args = array(
1129
+ 'desktop_cnum' => $settings['columns'],
1130
+
1131
+ // Query section
1132
+ 'product_type' => $settings['product_type'],
1133
+
1134
+ // Query section
1135
+ 'cat' => $settings['cat'],
1136
+ 'num' => $settings['num'],
1137
+ 'exclude_without_media' => $settings['exclude_without_media'],
1138
+ 'order_by' => $settings['order_by'],
1139
+ 'order' => $settings['order'],
1140
+ 'include' => $settings['include'],
1141
+ 'exclude' => $settings['exclude'],
1142
+ 'only_products__in' => $settings['only_products__in'],
1143
+
1144
+ );
1145
+
1146
+ // // get the shortcode base blog page
1147
+ echo auxin_widget_products_grid_callback( $args );
1148
+
1149
+ }
1150
+
1151
+ }
includes/elementor/widgets/text.php CHANGED
@@ -6,6 +6,7 @@ use Elementor\Widget_Base;
6
  use Elementor\Controls_Manager;
7
  use Elementor\Group_Control_Image_Size;
8
  use Elementor\Group_Control_Typography;
 
9
  use Elementor\Core\Schemes\Typography;
10
  use Elementor\Group_Control_Border;
11
  use Elementor\Group_Control_Box_Shadow;
@@ -735,6 +736,15 @@ class Text extends Widget_Base {
735
 
736
  $this->end_controls_tabs();
737
 
 
 
 
 
 
 
 
 
 
738
 
739
  $this->add_group_control(
740
  Group_Control_Typography::get_type(),
6
  use Elementor\Controls_Manager;
7
  use Elementor\Group_Control_Image_Size;
8
  use Elementor\Group_Control_Typography;
9
+ use Elementor\Group_Control_Text_Stroke;
10
  use Elementor\Core\Schemes\Typography;
11
  use Elementor\Group_Control_Border;
12
  use Elementor\Group_Control_Box_Shadow;
736
 
737
  $this->end_controls_tabs();
738
 
739
+ if ( class_exists( 'Elementor\Group_Control_Text_Stroke' ) ) {
740
+ $this->add_group_control(
741
+ Group_Control_Text_Stroke::get_type(),
742
+ [
743
+ 'name' => 'title_stroke',
744
+ 'selector' => '{{WRAPPER}} .col-title a, {{WRAPPER}} .col-title'
745
+ ]
746
+ );
747
+ }
748
 
749
  $this->add_group_control(
750
  Group_Control_Typography::get_type(),
includes/elements/products-grid.php ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Products Grid Element
4
+ *
5
+ *
6
+ * @package Auxin
7
+ * @license LICENSE.txt
8
+ * @author averta
9
+ * @link http://phlox.pro/
10
+ * @copyright (c) 2010-2021 averta
11
+ */
12
+
13
+ function auxin_widget_products_grid_callback( $atts, $shortcode_content = null ){
14
+
15
+ // Defining default attributes
16
+ $default_atts = array(
17
+ 'product_type' => '', // available values : recent, featured, top_rated, sale, deal, best_selling
18
+ 'title' => '', // header title (required)
19
+ 'subtitle' => '', // header subtitle
20
+ 'cat' => '',
21
+ 'num' => '8', // max generated entry
22
+ 'exclude_without_media' => 0,
23
+ 'order_by' => 'date',
24
+ 'order' => 'DESC',
25
+ 'only_products__in' => '', // display only these post IDs. array or string comma separated
26
+ 'include' => '', // include these post IDs in result too. array or string comma separated
27
+ 'exclude' => '', // exclude these post IDs from result. array or string comma separated
28
+ 'offset' => '',
29
+ 'desktop_cnum' => 4,
30
+ 'post_type' => 'product',
31
+ 'taxonomy_name' => 'product_cat', // the taxonomy that we intent to display in post info
32
+ 'tax_args' => '',
33
+ 'terms' => '',
34
+ 'extra_classes' => '',
35
+ 'universal_id' => '',
36
+ 'use_wp_query' => false, // true to use the global wp_query, false to use internal custom query
37
+ 'reset_query' => true,
38
+ 'wp_query_args' => array(), // additional wp_query args
39
+ 'query_args' => array(),
40
+ 'custom_wp_query' => '',
41
+ 'template_part_file' => 'products-grid',
42
+ 'extra_template_path' => AUXELS_PUB_DIR . '/templates/woocommerce',
43
+ 'base' => 'aux_products_grid',
44
+ 'base_class' => 'aux-widget-products-grid'
45
+ );
46
+
47
+ $result = auxin_get_widget_scafold( $atts, $default_atts, $shortcode_content );
48
+
49
+ ob_start();
50
+
51
+ wc_setup_loop([
52
+ 'columns'=> $result['parsed_atts']['desktop_cnum']
53
+ ]);
54
+
55
+ echo "<div class='woocommerce woocommerce-page aux-shop-archive'>";
56
+ woocommerce_product_loop_start();
57
+ // widget custom output -----------------------
58
+ include_once auxin_get_template_file( $result['parsed_atts']['template_part_file'], '', $result['parsed_atts']['extra_template_path'] );
59
+ echo auxin_products_grid( $result['parsed_atts'] );
60
+ woocommerce_product_loop_end();
61
+ unset( $GLOBALS['woocommerce_loop'] );
62
+ echo '</div>';
63
+
64
+ return ob_get_clean();
65
+ }
includes/general-functions.php CHANGED
@@ -2417,6 +2417,14 @@ function auxin_get_taxonomies( $args = [], $output = 'names', $operator = 'and'
2417
  function auxin_search_page_results($post_type = 'post',$args = array()) {
2418
  switch ($post_type) {
2419
  case 'product':
 
 
 
 
 
 
 
 
2420
  echo auxin_widget_the_recent_products_callback($args);
2421
  break;
2422
 
2417
  function auxin_search_page_results($post_type = 'post',$args = array()) {
2418
  switch ($post_type) {
2419
  case 'product':
2420
+
2421
+ if ( class_exists('AUXSHP') ) {
2422
+ $args['image_aspect_ratio'] = auxin_get_option( 'product_index_thumb_ratio', '1.33' );
2423
+ } else {
2424
+ $sizes = wc_get_image_size( 'woocommerce_thumbnail' );
2425
+ $args['image_aspect_ratio'] = $sizes['width']/$sizes['height'];
2426
+ }
2427
+
2428
  echo auxin_widget_the_recent_products_callback($args);
2429
  break;
2430
 
includes/index.php CHANGED
@@ -72,6 +72,7 @@ if( auxin_is_plugin_active( 'custom-facebook-feed/custom-facebook-feed.php' ) )
72
  // check if woocommerce is activated then it adds its element to page builder and widget
73
  if( auxin_is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
74
  include_once( 'elements/recent-products.php' );
 
75
  }
76
 
77
  include_once( 'elements/latest-posts-slider.php' );
72
  // check if woocommerce is activated then it adds its element to page builder and widget
73
  if( auxin_is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
74
  include_once( 'elements/recent-products.php' );
75
+ include_once( 'elements/products-grid.php' );
76
  }
77
 
78
  include_once( 'elements/latest-posts-slider.php' );
languages/auxin-elements-fa_IR.po CHANGED
@@ -2,7 +2,7 @@ msgid ""
2
  msgstr ""