usk_is_edit_mode()) { return ['usk-all-styles']; } else { return ['usk-font', 'usk-shiny-grid', 'slick-modal']; } } // public function get_custom_help_url() { // return 'https://youtu.be/3VkvEpVaNAM'; // } public function get_query() { return $this->_query; } protected function register_controls() { $this->start_controls_section( 'section_woocommerce_layout', [ 'label' => esc_html__('Layout', 'ultimate-store-kit'), ] ); $this->add_control( 'layout_style', [ 'label' => esc_html__('Style', 'ultimate-store-kit'), 'type' => Controls_Manager::SELECT, 'default' => 'grid', 'options' => [ 'grid' => esc_html__('Grid', 'ultimate-store-kit'), 'list' => esc_html__('List', 'ultimate-store-kit'), ], ] ); $this->add_responsive_control( 'columns', [ 'label' => esc_html__('Columns', 'ultimate-store-kit'), 'type' => Controls_Manager::SELECT, 'default' => '3', 'tablet_default' => '2', 'mobile_default' => '1', 'options' => [ '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', ], 'condition' => [ 'layout_style' => 'grid' ], 'selectors' => [ '{{WRAPPER}} .usk-shiny-grid .usk-grid' => 'grid-template-columns: repeat({{VALUE}}, 1fr);', ], 'render_type' => 'template' ] ); $this->add_responsive_control( 'items_columns_gap', [ 'label' => esc_html__('Columns Gap', 'ultimate-store-kit'), 'type' => Controls_Manager::SLIDER, 'default' => [ 'size' => 30, ], 'selectors' => [ '{{WRAPPER}} .usk-shiny-grid .usk-grid' => 'grid-column-gap: {{SIZE}}px;', ], ] ); $this->add_responsive_control( 'items_row_gap', [ 'label' => esc_html__('Row Gap', 'ultimate-store-kit'), 'type' => Controls_Manager::SLIDER, 'default' => [ 'size' => 30, ], 'selectors' => [ '{{WRAPPER}} .usk-shiny-grid .usk-grid' => 'grid-row-gap: {{SIZE}}px;', ], ] ); $this->register_global_controls_grid_layout(); $this->add_control( 'show_tab', [ 'label' => esc_html__('Columns Filter', 'ultimate-store-kit'), 'type' => Controls_Manager::SWITCHER, 'separator' => 'before' ] ); $this->add_control( 'filter_column_lists', [ 'label' => __('Select Column Type', 'ultimate-store-kit'), 'type' => Controls_Manager::SELECT2, 'label_block' => true, 'multiple' => true, 'options' => [ 'list-2' => __('List', 'ultimate-store-kit'), 'grid-2' => __('Column 2', 'ultimate-store-kit'), 'grid-3' => __('Column 3', 'ultimate-store-kit'), 'grid-4' => __('Column 4', 'ultimate-store-kit'), 'grid-5' => __('Column 5', 'ultimate-store-kit'), 'grid-6' => __('Column 6', 'ultimate-store-kit'), ], 'condition' => [ 'show_tab' => 'yes' ], 'default' => ['list-2', 'grid-2', 'grid-3', 'grid-4'], ] ); $this->add_control( 'show_result_count', [ 'label' => esc_html__('Result Count', 'ultimate-store-kit'), 'type' => Controls_Manager::SWITCHER, 'label_on' => esc_html__('Show', 'ultimate-store-kit'), 'label_off' => esc_html__('Hide', 'ultimate-store-kit'), 'return_value' => 'yes', 'default' => 'yes', 'separator' => 'before', 'condition' => [ 'show_tab' => 'yes' ] ] ); $this->add_control( 'show_pagination', [ 'label' => esc_html__('Pagination', 'ultimate-store-kit'), 'type' => Controls_Manager::SWITCHER, 'separator' => 'before' ] ); $this->end_controls_section(); $this->start_controls_section( 'section_post_query_builder', [ 'label' => __('Query', 'ultimate-store-kit'), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->register_query_builder_controls(); $this->register_controls_wc_additional(); $this->end_controls_section(); $this->register_global_controls_additional(); $this->register_global_controls_grid_columns(); $this->register_global_controls_result_count(); $this->register_global_controls_grid_items(); $this->register_global_controls_grid_image(); $this->register_global_controls_content(); $this->register_global_controls_title(); $this->register_global_controls_category(); $this->register_global_controls_excerpt(); $this->register_global_controls_price(); $this->register_global_controls_rating(); $this->register_global_controls_badge(); $this->register_global_controls_add_to_cart(); $this->register_global_controls_action_btn(); $this->register_global_controls_grid_pagination(); } public function render_header() { $settings = $this->get_settings_for_display(); $this->add_render_attribute('usk-shiny-grid', 'class', 'usk-shiny-grid usk-grid-carousel usk-css-grid', true); $this->add_render_attribute('usk-shiny-grid', 'data-filter', [$settings['show_tab']]); ?>
print_render_attribute_string('usk-shiny-grid'); ?>> template_grid_columns(); ?>
get_settings_for_display(); if ('yes' == $settings['show_cart']) : ?> 1, 'class' => implode( ' ', array_filter( [ 'usk-button', 'product_type_' . $product->get_type(), $product->is_purchasable() && $product->is_in_stock() ? 'add_to_cart_button' : '', $product->supports('ajax_add_to_cart') && $product->is_purchasable() && $product->is_in_stock() ? 'ajax_add_to_cart' : '', ] ) ), 'attributes' => [ 'data-product_id' => $product->get_id(), 'data-product_sku' => $product->get_sku(), 'aria-label' => $product->add_to_cart_description(), 'rel' => 'nofollow', ], ]; $args = apply_filters('woocommerce_loop_add_to_cart_args', wp_parse_args($defaults), $product); if (isset($args['attributes']['aria-label'])) { $args['attributes']['aria-label'] = wp_strip_all_tags($args['attributes']['aria-label']); } echo wp_kses_post(apply_filters( 'woocommerce_loop_add_to_cart_link', // WPCS: XSS ok. sprintf( '%s ', esc_url($product->add_to_cart_url()), esc_attr(isset($args['quantity']) ? $args['quantity'] : 1), esc_attr(isset($args['class']) ? $args['class'] : 'button'), isset($args['attributes']) ? wc_implode_html_attributes($args['attributes']) : '', esc_html($product->add_to_cart_text()) ), $product, $args )); }; ?> get_settings_for_display(); $gallery_thumbs = $product->get_gallery_image_ids(); $product_image = wp_get_attachment_image_url(get_post_thumbnail_id(), $settings['image_size']); if ($gallery_thumbs) { foreach ($gallery_thumbs as $key => $gallery_thumb) { if ($key == 0) : $gallery_image_link = wp_get_attachment_image_url($gallery_thumb, $settings['image_size']); endif; } } else { $gallery_image_link = wp_get_attachment_image_url(get_post_thumbnail_id(), $settings['image_size']); } ?>
<?php echo esc_html(get_the_title()); ?> <?php echo esc_html(get_the_title()); ?> render_add_to_cart(); ?>
register_global_template_add_to_wishlist($tooltip_position); ?> register_global_template_add_to_compare($tooltip_position); ?> register_global_template_quick_view($product->get_id(), $tooltip_position); ?>
register_global_template_badge_label(); ?>
['aria-hidden' => []], 'span' => ['class' => []], 'bdi' => [], 'ins' => [], ]; if (isset($output)) { echo wp_kses($output, $tags); } } public function render_loop_item() { $settings = $this->get_settings_for_display(); $this->query_product(); $wp_query = $this->get_query(); if ($settings['layout_style'] === 'grid') { $this->add_render_attribute('usk-grid', 'class', ['usk-grid', 'usk-grid-layout', 'usk-grid-' . $settings['columns'] . '']); } else { $this->add_render_attribute('usk-grid', 'class', ['usk-grid', 'usk-list-layout', 'usk-grid-2']); } if ($wp_query->have_posts()) { ?>
print_render_attribute_string('usk-grid'); ?>"> have_posts()) : $wp_query->the_post(); global $product; $rating_count = $product->get_rating_count(); $average = $product->get_average_rating(); if ($settings['show_rating'] == 'yes') { $have_rating = 'usk-have-rating'; } else { $have_rating = ''; } $categories = str_replace(',', '', wc_get_product_category_list($product->get_id())); ?>
render_image(); ?>
%2$s', esc_attr($settings['category_tags']), wp_kses_post($categories)); ?> <%1$s class="title">%3$s', esc_attr($settings['title_tags']), esc_url($product->get_permalink()), esc_html($product->get_title())); endif; ?>
get_short_description(), $settings['excerpt_limit'], '…')); ?>
print_price_output($product->get_price_html()); ?>
register_global_template_wc_rating($average, $rating_count)); ?>
render_header(); $this->render_loop_item(); $this->render_footer(); } public function query_product() { $default = $this->getGroupControlQueryArgs(); $this->_query = new WP_Query($default); } protected function template_grid_columns() { $settings = $this->get_settings_for_display(); $this->query_product(); $wp_query = $this->get_query(); if (get_query_var('paged')) { $paged = get_query_var('paged'); } elseif (get_query_var('page')) { $paged = get_query_var('page'); } else { $paged = 1; } $args = array( 'total' => $wp_query->found_posts, 'per_page' => $settings['product_limit'], 'current' => $paged, ); if ($settings['show_tab'] == 'yes') : ?>