PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.17.4
Shortcodes and extra features for Phlox theme v2.17.4
2.17.21 2.17.20 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.6 1.0.9 1.1.0 1.3.0 1.3.1 1.3.10 1.3.14 1.3.2 1.3.3 1.3.6 1.4.0 1.4.1 1.4.2 1.5.0 1.5.2 1.6.0 1.6.2 1.6.4 1.7.0 1.7.2 2.10.0 2.10.1 2.10.3 2.10.5 2.10.7 2.10.8 2.10.9 2.11.0 2.11.1 2.11.2 2.12.0 2.14.0 2.15.0 2.15.2 2.15.4 2.15.5 2.15.6 2.15.7 2.15.8 2.15.9 2.16.0 2.16.1 2.16.2 2.16.3 2.16.4 2.17.0 2.17.1 2.17.12 2.17.13 2.17.14 2.17.15 2.17.16 2.17.2 2.17.3 2.17.4 2.17.5 2.17.6 2.17.8 2.17.9 2.4.12 2.4.13 2.4.14 2.4.16 2.4.18 2.4.19 2.4.9 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.14 2.5.15 2.5.16 2.5.17 2.5.19 2.5.2 2.5.20 2.5.3 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.10 2.6.12 2.6.13 2.6.14 2.6.15 2.6.16 2.6.17 2.6.19 2.6.2 2.6.20 2.6.4 2.6.5 2.6.7 2.7.0 2.7.1 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.9 2.9.0 2.9.12 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.19 2.9.2 2.9.20 2.9.21 2.9.22 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8
auxin-elements / includes / elementor / widgets / products-grid.php
auxin-elements / includes / elementor / widgets Last commit date
theme-elements 1 year ago accordion.php 1 year ago audio.php 4 years ago before-after.php 3 years ago button.php 1 year ago carousel-navigation.php 4 years ago circle-chart.php 1 year ago contact-box.php 4 years ago contact-form.php 1 year ago custom-list.php 1 year ago divider.php 4 years ago gallery.php 1 year ago gmap.php 4 years ago heading-modern.php 1 year ago icon.php 1 year ago image.php 1 year ago mailchimp.php 1 year ago modern-button.php 1 year ago products-grid.php 1 year ago quote.php 1 year ago recent-comments.php 1 year ago recent-posts-grid-carousel.php 1 year ago recent-posts-land-style.php 1 year ago recent-posts-masonry.php 1 year ago recent-posts-tiles-carousel.php 1 year ago recent-posts-tiles.php 1 year ago recent-posts-timeline.php 1 year ago recent-products.php 1 year ago responsive-table.php 1 year ago search.php 4 years ago staff.php 1 year ago svg.php 1 year ago tabs.php 1 year ago testimonial.php 1 year ago text.php 1 year ago touch-slider.php 1 year ago video.php 4 years ago
products-grid.php
1169 lines
1 <?php
2 namespace Auxin\Plugin\CoreElements\Elementor\Elements;
3
4 use Elementor\Widget_Base;
5 use Elementor\Controls_Manager;
6 use Elementor\Group_Control_Typography;
7 use Elementor\Core\Kits\Documents\Tabs\Global_Typography;
8 use Elementor\Group_Control_Box_Shadow;
9 use Elementor\Group_Control_Text_Shadow;
10 use Elementor\Group_Control_Background;
11
12 if ( ! defined( 'ABSPATH' ) ) {
13 exit; // Exit if accessed directly.
14 }
15
16 /**
17 * Elementor 'AdvancedRecentProducts' widget.
18 *
19 * Elementor widget that displays an 'AdvancedRecentProducts' with lightbox.
20 *
21 * @since 1.0.0
22 */
23 class ProductsGrid extends Widget_Base {
24
25 /**
26 * Get widget name.
27 *
28 * Retrieve 'AdvancedRecentProducts' widget name.
29 *
30 * @since 1.0.0
31 * @access public
32 *
33 * @return string Widget name.
34 */
35 public function get_name() {
36 return 'aux_product_grid';
37 }
38
39 /**
40 * Get widget title.
41 *
42 * Retrieve 'AdvancedRecentProducts' widget title.
43 *
44 * @since 1.0.0
45 * @access public
46 *
47 * @return string Widget title.
48 */
49 public function get_title() {
50 return __('Products Grid', 'auxin-elements' );
51 }
52
53 /**
54 * Get widget icon.
55 *
56 * Retrieve 'AdvancedRecentProducts' widget icon.
57 *
58 * @since 1.0.0
59 * @access public
60 *
61 * @return string Widget icon.
62 */
63 public function get_icon() {
64 return 'eicon-woocommerce auxin-badge-pro';
65 }
66
67 /**
68 * Get widget categories.
69 *
70 * Retrieve 'AdvancedRecentProducts' widget icon.
71 *
72 * @since 1.0.0
73 * @access public
74 *
75 * @return string Widget icon.
76 */
77 public function get_categories() {
78 return array( 'auxin-pro' );
79 }
80
81 /**
82 * Retrieve the terms in a given taxonomy or list of taxonomies.
83 *
84 * Retrieve 'AdvancedRecentProducts' widget icon.
85 *
86 * @since 1.0.0
87 * @access public
88 *
89 * @return string Widget icon.
90 */
91 public function get_terms() {
92 // Get terms
93 $terms = get_terms(
94 array(
95 'taxonomy' => 'product_cat',
96 'orderby' => 'count',
97 'hide_empty' => true
98 )
99 );
100
101 // Then create a list
102 $list = array();
103
104 if ( ! is_wp_error( $terms ) && is_array( $terms ) ){
105 foreach ( $terms as $key => $value ) {
106 $list[$value->term_id] = $value->name;
107 }
108 }
109
110 return $list;
111 }
112
113 /**
114 * Register 'AdvancedRecentProducts' widget controls.
115 *
116 * Adds different input fields to allow the user to change and customize the widget settings.
117 *
118 * @since 1.0.0
119 * @access protected
120 */
121 protected function register_controls() {
122 /*-------------------------------------------------------------------*/
123 /* Layout TAB
124 /*-------------------------------------------------------------------*/
125
126 /* Layout Section
127 /*-------------------------------------*/
128
129 $this->start_controls_section(
130 'layout_section',
131 array(
132 'label' => __('Layout', 'auxin-elements' ),
133 'tab' => Controls_Manager::TAB_LAYOUT
134 )
135 );
136
137 $this->add_control(
138 'columns',
139 array(
140 'label' => __( 'Columns', 'auxin-elements' ),
141 'type' => Controls_Manager::SELECT,
142 'default' => '4',
143 'options' => array(
144 '1' => '1',
145 '2' => '2',
146 '3' => '3',
147 '4' => '4',
148 '5' => '5',
149 ),
150 'frontend_available' => true,
151 )
152 );
153
154 $this->add_control(
155 'num',
156 array(
157 'label' => __('Number of posts to show', 'auxin-elements'),
158 'label_block' => true,
159 'type' => Controls_Manager::NUMBER,
160 'default' => '8',
161 'min' => 1,
162 'step' => 1
163 )
164 );
165
166 $this->end_controls_section();
167 /*-------------------------------------------------------------------*/
168 /* Content TAB
169 /*-------------------------------------------------------------------*/
170
171 /* Query Section
172 /*-------------------------------------*/
173
174 $this->start_controls_section(
175 'query_section',
176 array(
177 'label' => __('Query', 'auxin-elements' ),
178 )
179 );
180
181 $this->add_control(
182 'product_type',
183 array(
184 'label' => __('Products Type','auxin-elements' ),
185 'label_block' => true,
186 'type' => Controls_Manager::SELECT,
187 'options' => array(
188 'recent' => __('Recent Products' , 'auxin-elements'),
189 'featured' => __('Featured Products' , 'auxin-elements'),
190 'top_rated' => __('Top Rated Products', 'auxin-elements'),
191 'best_selling' => __('Best Selling Products' , 'auxin-elements'),
192 'sale' => __('On Sale Products' , 'auxin-elements'),
193 'deal' => __('Deal Products' , 'auxin-elements'),
194 ),
195 'default' => 'recent',
196 )
197 );
198
199 $this->add_control(
200 'cat',
201 array(
202 'label' => __('Categories', 'auxin-elements'),
203 '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' ),
204 'type' => Controls_Manager::SELECT2,
205 'multiple' => true,
206 'options' => $this->get_terms(),
207 'default' => array(),
208 )
209 );
210
211 $this->add_control(
212 'exclude_without_media',
213 array(
214 'label' => __('Exclude products without media','auxin-elements' ),
215 'type' => Controls_Manager::SWITCHER,
216 'label_on' => __( 'On', 'auxin-elements' ),
217 'label_off' => __( 'Off', 'auxin-elements' ),
218 'return_value' => 'yes',
219 'default' => 'yes'
220 )
221 );
222
223 $this->add_control(
224 'order_by',
225 array(
226 'label' => __('Order by', 'auxin-elements'),
227 'type' => Controls_Manager::SELECT,
228 'default' => 'date',
229 'options' => array(
230 'date' => __('Date', 'auxin-elements'),
231 'menu_order date' => __('Menu Order', 'auxin-elements'),
232 'title' => __('Title', 'auxin-elements'),
233 'ID' => __('ID', 'auxin-elements'),
234 'rand' => __('Random', 'auxin-elements'),
235 'comment_count' => __('Comments', 'auxin-elements'),
236 'modified' => __('Date Modified', 'auxin-elements'),
237 'author' => __('Author', 'auxin-elements'),
238 'post__in' => __('Inserted Post IDs', 'auxin-elements')
239 ),
240 )
241 );
242
243 $this->add_control(
244 'order',
245 array(
246 'label' => __('Order', 'auxin-elements'),
247 'type' => Controls_Manager::SELECT,
248 'default' => 'DESC',
249 'options' => array(
250 'DESC' => __('Descending', 'auxin-elements'),
251 'ASC' => __('Ascending', 'auxin-elements'),
252 ),
253 )
254 );
255
256 $this->add_control(
257 'only_products__in',
258 array(
259 'label' => __('Only products','auxin-elements' ),
260 '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' ),
261 'type' => Controls_Manager::TEXT
262 )
263 );
264
265 $this->add_control(
266 'include',
267 array(
268 'label' => __('Include products','auxin-elements' ),
269 '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' ),
270 'type' => Controls_Manager::TEXT
271 )
272 );
273
274 $this->add_control(
275 'exclude',
276 array(
277 'label' => __('Exclude products','auxin-elements' ),
278 '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' ),
279 'type' => Controls_Manager::TEXT
280 )
281 );
282
283 $this->add_control(
284 'offset',
285 array(
286 'label' => __('Start offset','auxin-elements' ),
287 'description' => __('Number of products to displace or pass over.', 'auxin-elements' ),
288 'type' => Controls_Manager::NUMBER,
289 'default' => ''
290 )
291 );
292
293 $this->end_controls_section();
294
295 /*-------------------------------------------------------------------*/
296 /* Settings TAB
297 /*-------------------------------------------------------------------*/
298 /*-----------------------------------------------------------------------------------*/
299 /* Rating Style Section
300 /*-----------------------------------------------------------------------------------*/
301
302 $this->start_controls_section(
303 'wrappers_section',
304 array(
305 'label' => __( 'Wrappers', 'auxin-elements' ),
306 'tab' => Controls_Manager::TAB_STYLE,
307 )
308 );
309
310 $this->add_responsive_control(
311 'wrapper_margin_bottom',
312 array(
313 'label' => __( 'Product Bottom space', 'auxin-elements' ),
314 'type' => Controls_Manager::SLIDER,
315 'range' => array(
316 'px' => array(
317 'max' => 100,
318 ),
319 ),
320 'selectors' => array(
321 '{{WRAPPER}} .type-product' => 'padding-bottom: {{SIZE}}{{UNIT}};',
322 ),
323 )
324 );
325
326 $this->add_responsive_control(
327 'wrapper_info_padding',
328 array(
329 'label' => __( 'Info Wrapper Padding', 'auxin-elements' ),
330 'type' => Controls_Manager::DIMENSIONS,
331 'size_units' => array( 'px', '%' ),
332 'selectors' => array(
333 '{{WRAPPER}} .aux-shop-info-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
334 ),
335 )
336 );
337
338 $this->add_responsive_control(
339 'wrapper_meta_padding',
340 array(
341 'label' => __( 'Meta Wrapper Padding', 'auxin-elements' ),
342 'type' => Controls_Manager::DIMENSIONS,
343 'size_units' => array( 'px', '%' ),
344 'selectors' => array(
345 '{{WRAPPER}} .aux-shop-meta-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
346 ),
347 )
348 );
349
350 $this->add_responsive_control(
351 'wrapper_desc_padding',
352 array(
353 'label' => __( 'Description Wrapper Padding', 'auxin-elements' ),
354 'type' => Controls_Manager::DIMENSIONS,
355 'size_units' => array( 'px', '%' ),
356 'selectors' => array(
357 '{{WRAPPER}} .aux-shop-desc-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
358 ),
359 )
360 );
361
362 $this->add_responsive_control(
363 'wrapper_btn_padding',
364 array(
365 'label' => __( 'Buttons Wrapper Padding', 'auxin-elements' ),
366 'type' => Controls_Manager::DIMENSIONS,
367 'size_units' => array( 'px', '%' ),
368 'selectors' => array(
369 '{{WRAPPER}} .aux-shop-btns-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
370 ),
371 )
372 );
373
374 $this->end_controls_section();
375
376 /*-----------------------------------------------------------------------------------*/
377 /* title_style_section
378 /*-----------------------------------------------------------------------------------*/
379
380 $this->start_controls_section(
381 'title_style_section',
382 array(
383 'label' => __( 'Title', 'auxin-elements' ),
384 'tab' => Controls_Manager::TAB_STYLE,
385 )
386 );
387
388 $this->start_controls_tabs( 'title_colors' );
389
390 $this->start_controls_tab(
391 'title_color_normal',
392 array(
393 'label' => __( 'Normal' , 'auxin-elements' ),
394 )
395 );
396
397 $this->add_control(
398 'title_color',
399 array(
400 'label' => __( 'Color', 'auxin-elements' ),
401 'type' => Controls_Manager::COLOR,
402 'selectors' => array(
403 '{{WRAPPER}} .auxshp-loop-title, {{WRAPPER}} .woocommerce-loop-product__title' => 'color: {{VALUE}};',
404 ),
405 )
406 );
407
408 $this->end_controls_tab();
409
410 $this->start_controls_tab(
411 'title_color_hover',
412 array(
413 'label' => __( 'Hover' , 'auxin-elements' ),
414 )
415 );
416
417 $this->add_control(
418 'title_hover_color',
419 array(
420 'label' => __( 'Color', 'auxin-elements' ),
421 'type' => Controls_Manager::COLOR,
422 'selectors' => array(
423 '{{WRAPPER}} .auxshp-loop-title:hover, {{WRAPPER}} .woocommerce-loop-product__title:hover' => 'color: {{VALUE}};',
424 ),
425 )
426 );
427
428 $this->end_controls_tab();
429
430 $this->end_controls_tabs();
431
432 $this->add_group_control(
433 Group_Control_Typography::get_type(),
434 array(
435 'name' => 'title_typography',
436 'global' => [
437 'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
438 ],
439 'selector' => '{{WRAPPER}} .auxshp-loop-title, {{WRAPPER}} .woocommerce-loop-product__title',
440 )
441 );
442
443 $this->end_controls_section();
444
445 /*-----------------------------------------------------------------------------------*/
446 /* price_style_section
447 /*-----------------------------------------------------------------------------------*/
448
449 $this->start_controls_section(
450 'price_style_section',
451 array(
452 'label' => __( 'Price', 'auxin-elements' ),
453 'tab' => Controls_Manager::TAB_STYLE,
454 )
455 );
456
457 $this->start_controls_tabs( 'price_colors' );
458
459 $this->start_controls_tab(
460 'price_color_normal',
461 array(
462 'label' => __( 'Normal' , 'auxin-elements' ),
463 )
464 );
465
466 $this->add_control(
467 'price_color',
468 array(
469 'label' => __( 'Color', 'auxin-elements' ),
470 'type' => Controls_Manager::COLOR,
471 'selectors' => array(
472 '{{WRAPPER}} .woocommerce-Price-amount' => 'color: {{VALUE}};',
473 ),
474 )
475 );
476
477 $this->end_controls_tab();
478
479 $this->start_controls_tab(
480 'price_color_hover',
481 array(
482 'label' => __( 'Hover' , 'auxin-elements' ),
483 )
484 );
485
486 $this->add_control(
487 'price_hover_color',
488 array(
489 'label' => __( 'Color', 'auxin-elements' ),
490 'type' => Controls_Manager::COLOR,
491 'selectors' => array(
492 '{{WRAPPER}} .woocommerce-Price-amount:hover' => 'color: {{VALUE}};',
493 ),
494 )
495 );
496
497 $this->end_controls_tab();
498
499 $this->end_controls_tabs();
500
501 $this->add_group_control(
502 Group_Control_Typography::get_type(),
503 array(
504 'name' => 'price_typography',
505 'global' => [
506 'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
507 ],
508 'selector' => '{{WRAPPER}} .woocommerce-Price-amount',
509 )
510 );
511
512 $this->end_controls_section();
513
514 if ( class_exists( 'AUXSHP') ) {
515
516 /*-----------------------------------------------------------------------------------*/
517 /* info_style_section
518 /*-----------------------------------------------------------------------------------*/
519
520 $this->start_controls_section(
521 'info_style_section',
522 array(
523 'label' => __( 'Product Info', 'auxin-elements' ),
524 'tab' => Controls_Manager::TAB_STYLE,
525 )
526 );
527
528 $this->start_controls_tabs( 'info_colors' );
529
530 $this->start_controls_tab(
531 'info_color_normal',
532 array(
533 'label' => __( 'Normal' , 'auxin-elements' ),
534 )
535 );
536
537 $this->add_control(
538 'info_color',
539 array(
540 'label' => __( 'Color', 'auxin-elements' ),
541 'type' => Controls_Manager::COLOR,
542 'selectors' => array(
543 '{{WRAPPER}} .aux-shop-meta-terms > a' => 'color: {{VALUE}};',
544 ),
545 )
546 );
547
548 $this->end_controls_tab();
549
550 $this->start_controls_tab(
551 'info_color_hover',
552 array(
553 'label' => __( 'Hover' , 'auxin-elements' ),
554 )
555 );
556
557 $this->add_control(
558 'info_hover_color',
559 array(
560 'label' => __( 'Color', 'auxin-elements' ),
561 'type' => Controls_Manager::COLOR,
562 'selectors' => array(
563 '{{WRAPPER}} .aux-shop-meta-terms > a:hover' => 'color: {{VALUE}};',
564 ),
565 )
566 );
567
568 $this->end_controls_tab();
569
570 $this->end_controls_tabs();
571
572 $this->add_group_control(
573 Group_Control_Typography::get_type(),
574 array(
575 'name' => 'info_typography',
576 'global' => [
577 'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
578 ],
579 'selector' => '{{WRAPPER}} .aux-shop-meta-terms, {{WRAPPER}} .aux-shop-meta-terms a',
580 )
581 );
582
583 $this->end_controls_section();
584
585 /*-----------------------------------------------------------------------------------*/
586 /* Description Style Section
587 /*-----------------------------------------------------------------------------------*/
588
589 $this->start_controls_section(
590 'desc_style_section',
591 array(
592 'label' => __( 'Description', 'auxin-elements' ),
593 'tab' => Controls_Manager::TAB_STYLE,
594 )
595 );
596
597 $this->start_controls_tabs( 'desc_colors' );
598
599 $this->start_controls_tab(
600 'desc_color_normal',
601 array(
602 'label' => __( 'Normal' , 'auxin-elements' ),
603 )
604 );
605
606 $this->add_control(
607 'desc_color',
608 array(
609 'label' => __( 'Color', 'auxin-elements' ),
610 'type' => Controls_Manager::COLOR,
611 'selectors' => array(
612 '{{WRAPPER}} .aux-shop-desc-wrapper' => 'color: {{VALUE}};',
613 ),
614 )
615 );
616
617 $this->end_controls_tab();
618
619 $this->start_controls_tab(
620 'desc_color_hover',
621 array(
622 'label' => __( 'Hover' , 'auxin-elements' ),
623 )
624 );
625
626 $this->add_control(
627 'desc_hover_color',
628 array(
629 'label' => __( 'Color', 'auxin-elements' ),
630 'type' => Controls_Manager::COLOR,
631 'selectors' => array(
632 '{{WRAPPER}} .aux-shop-desc-wrapper:hover' => 'color: {{VALUE}};',
633 ),
634 )
635 );
636
637 $this->end_controls_tab();
638
639 $this->end_controls_tabs();
640
641 $this->add_group_control(
642 Group_Control_Typography::get_type(),
643 array(
644 'name' => 'desc_typography',
645 'global' => [
646 'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
647 ],
648 'selector' => '{{WRAPPER}} .aux-shop-desc-wrapper',
649 )
650 );
651
652 $this->end_controls_section();
653
654 /*-----------------------------------------------------------------------------------*/
655 /* meta_fields_style_section
656 /*-----------------------------------------------------------------------------------*/
657
658 $this->start_controls_section(
659 'meta_fields_section',
660 array(
661 'label' => __( 'Meta Fields', 'auxin-elements' ),
662 'tab' => Controls_Manager::TAB_STYLE,
663 )
664 );
665
666 $this->start_controls_tabs( 'meta_fields_colors' );
667
668 $this->start_controls_tab(
669 'meta_fields_color_normal',
670 array(
671 'label' => __( 'Normal' , 'auxin-elements' ),
672 )
673 );
674
675 $this->add_control(
676 'meta_fields_color',
677 array(
678 'label' => __( 'Color', 'auxin-elements' ),
679 'type' => Controls_Manager::COLOR,
680 'selectors' => array(
681 '{{WRAPPER}} .aux-shop-meta-field span' => 'color: {{VALUE}};',
682 ),
683 )
684 );
685
686 $this->end_controls_tab();
687
688 $this->start_controls_tab(
689 'meta_fields_color_hover',
690 array(
691 'label' => __( 'Hover' , 'auxin-elements' ),
692 )
693 );
694
695 $this->add_control(
696 'meta_fields_hover_color',
697 array(
698 'label' => __( 'Color', 'auxin-elements' ),
699 'type' => Controls_Manager::COLOR,
700 'selectors' => array(
701 '{{WRAPPER}} .aux-shop-meta-field span:hover' => 'color: {{VALUE}};',
702 ),
703 )
704 );
705
706 $this->end_controls_tab();
707
708 $this->end_controls_tabs();
709
710 $this->add_group_control(
711 Group_Control_Typography::get_type(),
712 array(
713 'name' => 'meta_fields_typography',
714 'global' => [
715 'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
716 ],
717 'selector' => '{{WRAPPER}} .aux-shop-meta-field span',
718 )
719 );
720
721 $this->add_responsive_control(
722 'meta_fields_padding',
723 array(
724 'label' => __( 'Padding', 'auxin-elements' ),
725 'type' => Controls_Manager::DIMENSIONS,
726 'size_units' => array( 'px', '%' ),
727 'selectors' => array(
728 '{{WRAPPER}} .aux-shop-meta-field' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
729 ),
730 )
731 );
732
733 $this->end_controls_section();
734
735 /*-----------------------------------------------------------------------------------*/
736 /* Rating Style Section
737 /*-----------------------------------------------------------------------------------*/
738
739 $this->start_controls_section(
740 'rating_style_section',
741 array(
742 'label' => __( 'Rating', 'auxin-elements' ),
743 'tab' => Controls_Manager::TAB_STYLE,
744 )
745 );
746
747
748 $this->add_control(
749 'rating_empty_color',
750 array(
751 'label' => __( 'Empty Color', 'auxin-elements' ),
752 'type' => Controls_Manager::COLOR,
753 'selectors' => array(
754 '{{WRAPPER}} .aux-rating-box.aux-star-rating::before' => 'color: {{VALUE}} !important;'
755 )
756 )
757 );
758
759 $this->add_control(
760 'rating_fill_color',
761 array(
762 'label' => __( 'Fill Color', 'auxin-elements' ),
763 'type' => Controls_Manager::COLOR,
764 'selectors' => array(
765 '{{WRAPPER}} .aux-rating-box.aux-star-rating span::before' => 'color: {{VALUE}} !important;'
766 )
767 )
768 );
769
770 $this->add_responsive_control(
771 'rating_size',
772 array(
773 'label' => __( 'Size', 'auxin-elements' ),
774 'type' => Controls_Manager::SLIDER,
775 'size_units' => array( 'px', 'em', 'rem' ),
776 'range' => array(
777 'px' => array(
778 'min' => 1,
779 'max' => 200
780 )
781 ),
782 'selectors' => array(
783 '{{WRAPPER}} .aux-star-rating' => 'font-size: {{SIZE}}{{UNIT}};'
784 )
785 )
786 );
787
788
789 $this->end_controls_section();
790 }
791
792 /*-----------------------------------------------------------------------------------*/
793 /* Badge Style Section
794 /*-----------------------------------------------------------------------------------*/
795
796 $this->start_controls_section(
797 'badge_style_section',
798 array(
799 'label' => __( 'Sales Badge', 'auxin-elements' ),
800 'tab' => Controls_Manager::TAB_STYLE,
801 )
802 );
803
804
805 $this->start_controls_tabs( 'badge_colors' );
806
807 $this->start_controls_tab(
808 'badge_color_normal',
809 array(
810 'label' => __( 'Normal' , 'auxin-elements' ),
811 )
812 );
813
814 $this->add_control(
815 'badge_color',
816 array(
817 'label' => __( 'Color', 'auxin-elements' ),
818 'type' => Controls_Manager::COLOR,
819 'selectors' => array(
820 '{{WRAPPER}} .onsale, {{WRAPPER}} .auxin-onsale-badge' => 'color: {{VALUE}};',
821 ),
822 )
823 );
824
825 $this->end_controls_tab();
826
827 $this->start_controls_tab(
828 'badge_color_hover',
829 array(
830 'label' => __( 'Hover' , 'auxin-elements' ),
831 )
832 );
833
834 $this->add_control(
835 'badge_hover_color',
836 array(
837 'label' => __( 'Color', 'auxin-elements' ),
838 'type' => Controls_Manager::COLOR,
839 'selectors' => array(
840 '{{WRAPPER}} .onsale:hover, {{WRAPPER}} .auxin-onsale-badge:hover' => 'color: {{VALUE}};',
841 ),
842 )
843 );
844
845 $this->end_controls_tab();
846
847 $this->end_controls_tabs();
848
849 $this->add_group_control(
850 Group_Control_Typography::get_type(),
851 array(
852 'name' => 'badge_typography',
853 'global' => [
854 'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
855 ],
856 'selector' => '{{WRAPPER}} .onsale, {{WRAPPER}} .auxin-onsale-badge',
857 )
858 );
859
860 $this->add_responsive_control(
861 'wrapper_badge_padding',
862 array(
863 'label' => __( 'Padding', 'auxin-elements' ),
864 'type' => Controls_Manager::DIMENSIONS,
865 'size_units' => array( 'px', '%' ),
866 'selectors' => array(
867 '{{WRAPPER}} .onsale, {{WRAPPER}} .auxin-onsale-badge' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
868 ),
869 )
870 );
871
872 $this->add_group_control(
873 Group_Control_Background::get_type(),
874 array(
875 'name' => 'header_background',
876 'label' => __( 'Background', 'auxin-elements' ),
877 'types' => array( 'classic', 'gradient' ),
878 'selector' => '{{WRAPPER}} .onsale, {{WRAPPER}} .auxin-onsale-badge'
879 )
880 );
881
882 $this->end_controls_section();
883
884 if ( class_exists('AUXSHP') ) {
885 /*-----------------------------------------------------------------------------------*/
886 /* Badge Style Section
887 /*-----------------------------------------------------------------------------------*/
888
889 $this->start_controls_section(
890 'feat_badge_style_section',
891 array(
892 'label' => __( 'Featured Badge', 'auxin-elements' ),
893 'tab' => Controls_Manager::TAB_STYLE,
894 )
895 );
896
897
898 $this->start_controls_tabs( 'feat_badge_colors' );
899
900 $this->start_controls_tab(
901 'feat_badge_color_normal',
902 array(
903 'label' => __( 'Normal' , 'auxin-elements' ),
904 )
905 );
906
907 $this->add_control(
908 'feat_badge_color',
909 array(
910 'label' => __( 'Color', 'auxin-elements' ),
911 'type' => Controls_Manager::COLOR,
912 'selectors' => array(
913 '{{WRAPPER}} .aux-product-featured-badge' => 'color: {{VALUE}};',
914 ),
915 )
916 );
917
918 $this->end_controls_tab();
919
920 $this->start_controls_tab(
921 'feat_badge_color_hover',
922 array(
923 'label' => __( 'Hover' , 'auxin-elements' ),
924 )
925 );
926
927 $this->add_control(
928 'feat_badge_hover_color',
929 array(
930 'label' => __( 'Color', 'auxin-elements' ),
931 'type' => Controls_Manager::COLOR,
932 'selectors' => array(
933 '{{WRAPPER}} .aux-product-featured-badge:hover' => 'color: {{VALUE}};',
934 ),
935 )
936 );
937
938 $this->end_controls_tab();
939
940 $this->end_controls_tabs();
941
942 $this->add_group_control(
943 Group_Control_Typography::get_type(),
944 array(
945 'name' => 'feat_badge_typography',
946 'global' => [
947 'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
948 ],
949 'selector' => '{{WRAPPER}} .aux-product-featured-badge',
950 )
951 );
952
953 $this->add_responsive_control(
954 'wrapper_feat_badge_padding',
955 array(
956 'label' => __( 'Padding', 'auxin-elements' ),
957 'type' => Controls_Manager::DIMENSIONS,
958 'size_units' => array( 'px', '%' ),
959 'selectors' => array(
960 '{{WRAPPER}} .aux-product-featured-badge' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
961 ),
962 )
963 );
964
965 $this->add_group_control(
966 Group_Control_Background::get_type(),
967 array(
968 'name' => 'feat_badge_bg',
969 'label' => __( 'Background', 'auxin-elements' ),
970 'types' => array( 'classic', 'gradient' ),
971 'selector' => '{{WRAPPER}} .aux-product-featured-badge'
972 )
973 );
974
975 $this->end_controls_section();
976
977 }
978 /*-----------------------------------------------------------------------------------*/
979 /* Button
980 /*-----------------------------------------------------------------------------------*/
981
982 $this->start_controls_section(
983 'btn_section',
984 array(
985 'label' => __('Button', 'auxin-elements' ),
986 'tab' => Controls_Manager::TAB_STYLE,
987 )
988 );
989
990 $this->start_controls_tabs( 'btn_bg_tab' );
991
992 $this->start_controls_tab(
993 'btn_bg_normal',
994 array(
995 'label' => __( 'Normal' , 'auxin-elements' )
996 )
997 );
998
999 $this->add_group_control(
1000 Group_Control_Background::get_type(),
1001 array(
1002 'name' => 'btn',
1003 'label' => __( 'Background', 'auxin-elements' ),
1004 'types' => array( 'classic', 'gradient' ),
1005 'selector' => '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button',
1006 )
1007 );
1008
1009 $this->add_group_control(
1010 Group_Control_Box_Shadow::get_type(),
1011 array(
1012 'name' => 'btn_shadow',
1013 'selector' => '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button'
1014 )
1015 );
1016
1017 $this->add_control(
1018 'btn_text_color',
1019 array(
1020 'label' => __( 'Color', 'auxin-elements' ),
1021 'type' => Controls_Manager::COLOR,
1022 'selectors' => array(
1023 '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button' => 'color: {{VALUE}};',
1024 )
1025 )
1026 );
1027
1028 $this->add_group_control(
1029 Group_Control_Text_Shadow::get_type(),
1030 array(
1031 'name' => 'btn_text_shadow',
1032 'label' => __( 'Text Shadow', 'auxin-elements' ),
1033 'selector' => '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button',
1034 )
1035 );
1036
1037 $this->add_group_control(
1038 Group_Control_Typography::get_type(),
1039 array(
1040 'name' => 'btn_text_typography',
1041 'global' => [
1042 'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
1043 ],
1044 'selector' => '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button'
1045 )
1046 );
1047
1048 $this->end_controls_tab();
1049
1050 $this->start_controls_tab(
1051 'btn_bg_hover',
1052 array(
1053 'label' => __( 'Hover' , 'auxin-elements' )
1054 )
1055 );
1056
1057 $this->add_group_control(
1058 Group_Control_Background::get_type(),
1059 array(
1060 'name' => 'btn_bg_hover',
1061 'label' => __( 'Background', 'auxin-elements' ),
1062 'types' => array( 'classic', 'gradient' ),
1063 'selector' => '{{WRAPPER}} .add_to_cart_button:hover, {{WRAPPER}} a.button:hover',
1064 )
1065 );
1066
1067 $this->add_group_control(
1068 Group_Control_Box_Shadow::get_type(),
1069 array(
1070 'name' => 'btn_shadow_hover',
1071 'selector' => '{{WRAPPER}} .add_to_cart_button:hover, {{WRAPPER}} a.button:hover'
1072 )
1073 );
1074
1075 $this->add_control(
1076 'btn_text_color_hover',
1077 array(
1078 'label' => __( 'Color', 'auxin-elements' ),
1079 'type' => Controls_Manager::COLOR,
1080 'selectors' => array(
1081 '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button' => 'color: {{VALUE}};',
1082 )
1083 )
1084 );
1085
1086 $this->add_group_control(
1087 Group_Control_Text_Shadow::get_type(),
1088 array(
1089 'name' => 'btn_text_shadow_hover',
1090 'label' => __( 'Text Shadow', 'auxin-elements' ),
1091 'selector' => '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button',
1092 )
1093 );
1094
1095 $this->add_group_control(
1096 Group_Control_Typography::get_type(),
1097 array(
1098 'name' => 'btn_text_typography_hover',
1099 'global' => [
1100 'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
1101 ],
1102 'selector' => '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button'
1103 )
1104 );
1105
1106 $this->end_controls_tab();
1107
1108 $this->end_controls_tabs();
1109
1110 $this->add_responsive_control(
1111 'btn_padding',
1112 array(
1113 'label' => __( 'Button Padding', 'auxin-elements' ),
1114 'type' => Controls_Manager::DIMENSIONS,
1115 'size_units' => array( 'px', '%' ),
1116 'selectors' => array(
1117 '{{WRAPPER}} .add_to_cart_button, {{WRAPPER}} a.button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1118 ),
1119 )
1120 );
1121
1122 $this->end_controls_section();
1123
1124
1125 }
1126
1127 /**
1128 * Render image box widget output on the frontend.
1129 *
1130 * Written in PHP and used to generate the final HTML.
1131 *
1132 * @since 1.0.0
1133 * @access protected
1134 */
1135 protected function render() {
1136
1137 // Check whether required resources are available
1138 if( ! auxin_is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
1139 auxin_elementor_plugin_missing_notice( array( 'plugin_name' => __( 'WooCommerce', 'auxin-elements' ) ) );
1140 return;
1141 }
1142
1143 $settings = $this->get_settings_for_display();
1144
1145 $args = array(
1146 'desktop_cnum' => $settings['columns'],
1147
1148 // Query section
1149 'product_type' => $settings['product_type'],
1150
1151 // Query section
1152 'cat' => $settings['cat'],
1153 'num' => $settings['num'],
1154 'exclude_without_media' => $settings['exclude_without_media'],
1155 'order_by' => $settings['order_by'],
1156 'order' => $settings['order'],
1157 'include' => $settings['include'],
1158 'exclude' => $settings['exclude'],
1159 'only_products__in' => $settings['only_products__in'],
1160
1161 );
1162
1163 // // get the shortcode base blog page
1164 echo auxin_widget_products_grid_callback( $args );
1165
1166 }
1167
1168 }
1169