about-widget.php
1 year ago
accordion-widget.php
1 year ago
accordion.php
1 year ago
attachment-url.php
1 year ago
audio.php
1 year ago
before-after.php
1 year ago
button.php
1 year ago
code.php
1 year ago
contact-box.php
1 year ago
contact-form.php
1 year ago
custom-list.php
6 months ago
divider.php
1 year ago
dropcap.php
1 year ago
facebook.php
1 year ago
flickr.php
1 year ago
gallery.php
1 year ago
gmap.php
1 year ago
highlight.php
1 year ago
image.php
1 year ago
instagram-feed.php
1 year ago
latest-posts-slider.php
1 year ago
popular-posts-widget.php
1 year ago
products-grid.php
1 year ago
quote.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-posts-widget.php
1 year ago
recent-products.php
1 year ago
related-posts.php
8 years ago
sample-element.php
1 year ago
search.php
1 year ago
socials-list.php
1 year ago
staff.php
1 year ago
tab-widget.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
1 year ago
products-grid.php
73 lines
| 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-2025 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 | $acceptedTemplateFiles = apply_filters( 'auxin_products_grid_accepted_template_files', [ |
| 50 | 'products-grid' |
| 51 | ]); |
| 52 | |
| 53 | if ( ! in_array( $result['parsed_atts']['template_part_file'], $acceptedTemplateFiles ) ) { |
| 54 | return; |
| 55 | } |
| 56 | |
| 57 | ob_start(); |
| 58 | |
| 59 | wc_setup_loop([ |
| 60 | 'columns'=> $result['parsed_atts']['desktop_cnum'] |
| 61 | ]); |
| 62 | |
| 63 | echo "<div class='woocommerce woocommerce-page aux-shop-archive'>"; |
| 64 | woocommerce_product_loop_start(); |
| 65 | // widget custom output ----------------------- |
| 66 | include_once auxin_get_template_file( $result['parsed_atts']['template_part_file'], '', $result['parsed_atts']['extra_template_path'] ); |
| 67 | echo auxin_products_grid( $result['parsed_atts'] ); |
| 68 | woocommerce_product_loop_end(); |
| 69 | unset( $GLOBALS['woocommerce_loop'] ); |
| 70 | echo '</div>'; |
| 71 | |
| 72 | return ob_get_clean(); |
| 73 | } |