usk_is_edit_mode()) { return ['usk-styles']; } else { return ['usk-brand-grid']; } } // public function get_custom_help_url() { // return 'https://youtu.be/a_wJL950Kz4'; // } protected function register_controls() { $this->start_controls_section( 'usk_section_brands', [ 'label' => __('Brand Items', 'ultimate-store-kit'), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $repeater = new Repeater(); $repeater->add_control( 'image', [ 'label' => __('Brand Image', 'ultimate-store-kit'), 'type' => Controls_Manager::MEDIA, 'default' => [ 'url' => Utils::get_placeholder_image_src(), ], ] ); $repeater->add_control( 'brand_name', [ 'label' => __('Brand Name', 'ultimate-store-kit'), 'type' => Controls_Manager::TEXT, 'default' => __('Brand Name', 'ultimate-store-kit'), 'label_block' => true, 'dynamic' => ['active' => true], ] ); $repeater->add_control( 'link', [ 'label' => __('Url', 'ultimate-store-kit'), 'type' => Controls_Manager::URL, 'placeholder' => __('https://your-link.com', 'plugin-domain'), 'show_external' => true, 'default' => [ 'url' => '#', 'is_external' => true, 'nofollow' => true, ], 'label_block' => true, 'dynamic' => ['active' => true], ] ); $this->add_control( 'brand_items', [ 'show_label' => false, 'type' => Controls_Manager::REPEATER, 'fields' => $repeater->get_controls(), 'title_field' => '{{{ name }}}', 'default' => [ ['image' => ['url' => Utils::get_placeholder_image_src()]], ['image' => ['url' => Utils::get_placeholder_image_src()]], ['image' => ['url' => Utils::get_placeholder_image_src()]], ['image' => ['url' => Utils::get_placeholder_image_src()]], ['image' => ['url' => Utils::get_placeholder_image_src()]], ['image' => ['url' => Utils::get_placeholder_image_src()]], ['image' => ['url' => Utils::get_placeholder_image_src()]], ['image' => ['url' => Utils::get_placeholder_image_src()]], ] ] ); $this->end_controls_section(); $this->start_controls_section( 'section_layout', [ 'label' => __('Additional Options', 'ultimate-store-kit'), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_responsive_control( 'columns', [ 'label' => __('Columns', 'ultimate-store-kit'), 'type' => Controls_Manager::SELECT, 'default' => 4, 'tablet_default' => 2, 'mobile_default' => 1, 'options' => [ 1 => '1', 2 => '2', 3 => '3', 4 => '4', 5 => '5', 6 => '6', ], 'selectors' => [ '{{WRAPPER}} .usk-brand-grid' => 'grid-template-columns: repeat({{SIZE}}, 1fr);', ], ] ); $this->add_responsive_control( 'column_gap', [ 'label' => esc_html__('Column Gap', 'ultimate-store-kit'), 'type' => Controls_Manager::SLIDER, 'default' => [ 'size' => 20, ], 'selectors' => [ '{{WRAPPER}} .usk-brand-grid' => 'grid-column-gap: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'row_gap', [ 'label' => esc_html__('Row Gap', 'ultimate-store-kit'), 'type' => Controls_Manager::SLIDER, 'default' => [ 'size' => 20, ], 'selectors' => [ '{{WRAPPER}} .usk-brand-grid' => 'grid-row-gap: {{SIZE}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Image_Size::get_type(), [ 'name' => 'thumbnail', 'default' => 'medium', 'separator' => 'before', 'exclude' => ['custom'] ] ); $this->end_controls_section(); //Style $this->start_controls_section( 'section_style_items', [ 'label' => __('Items', 'ultimate-store-kit'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->start_controls_tabs('tabs_item_style'); $this->start_controls_tab( 'tab_item_normal', [ 'label' => esc_html__('Normal', 'ultimate-store-kit'), ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'item_background', 'selector' => '{{WRAPPER}} .usk-brand-grid-item', ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'item_border', 'label' => esc_html__('Border', 'ultimate-store-kit'), 'fields_options' => [ 'border' => [ 'default' => 'solid', ], 'width' => [ 'default' => [ 'top' => '1', 'right' => '1', 'bottom' => '1', 'left' => '1', 'isLinked' => false, ], ], 'color' => [ 'default' => '#dbdbdb', ], ], 'selector' => '{{WRAPPER}} .usk-brand-grid-item', 'separator' => 'before', ] ); $this->add_responsive_control( 'item_border_radius', [ 'label' => esc_html__('Border Radius', 'ultimate-store-kit'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', 'em', '%'], 'selectors' => [ '{{WRAPPER}} .usk-brand-grid-item' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'item_padding', [ 'label' => esc_html__('Padding', 'ultimate-store-kit'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', 'em', '%'], 'selectors' => [ '{{WRAPPER}} .usk-brand-grid-item' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'item_box_shadow', 'selector' => '{{WRAPPER}} .usk-brand-grid-item', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_item_hover', [ 'label' => esc_html__('Hover', 'ultimate-store-kit'), ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'item_hover_background', 'selector' => '{{WRAPPER}} .usk-brand-grid-item:hover', ] ); $this->add_control( 'item_hover_border_color', [ 'label' => esc_html__('Border Color', 'ultimate-store-kit'), 'type' => Controls_Manager::COLOR, 'default' => '#2B2D42', 'condition' => [ 'item_border_border!' => '', ], 'selectors' => [ '{{WRAPPER}} .usk-brand-grid-item:hover' => 'border-color: {{VALUE}};', ], 'separator' => 'before' ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'item_hover_box_shadow', 'selector' => '{{WRAPPER}} .usk-brand-grid-item:hover', ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); $this->start_controls_section( 'section_style_image', [ 'label' => __('Image', 'ultimate-store-kit'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->start_controls_tabs('tabs_image_style'); $this->start_controls_tab( 'tab_image_normal', [ 'label' => esc_html__('Normal', 'ultimate-store-kit'), ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'image_border', 'selector' => '{{WRAPPER}} .usk-brand-grid-img', ] ); $this->add_responsive_control( 'image_border_radius', [ 'label' => esc_html__('Border Radius', 'ultimate-store-kit'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', 'em', '%'], 'selectors' => [ '{{WRAPPER}} .usk-brand-grid-img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'image_padding', [ 'label' => esc_html__('Padding', 'ultimate-store-kit'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', 'em', '%'], 'selectors' => [ '{{WRAPPER}} .usk-brand-grid-img' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'brand_image_height', [ 'label' => __('Height', 'ultimate-store-kit'), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'min' => 10, 'max' => 500, ], ], 'selectors' => [ '{{WRAPPER}} .usk-brand-grid-img' => 'height: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'brand_image_width', [ 'label' => __('Width', 'ultimate-store-kit'), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'min' => 10, 'max' => 500, ], ], 'selectors' => [ '{{WRAPPER}} .usk-brand-grid-img' => 'width: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'brand_image_opaciry', [ 'label' => __('Opaciry', 'ultimate-store-kit'), 'type' => Controls_Manager::SLIDER, 'default' => [ 'size' => 0.3, ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 1, 'step' => 0.1, ], ], 'selectors' => [ '{{WRAPPER}} .usk-brand-grid-img' => 'opacity: {{SIZE}};', ], ] ); $this->add_group_control( Group_Control_Css_Filter::get_type(), [ 'name' => 'css_filters', 'selector' => '{{WRAPPER}} .usk-brand-grid-img', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_image_hover', [ 'label' => esc_html__('Hover', 'ultimate-store-kit'), ] ); $this->add_control( 'image_hover_border_color', [ 'label' => esc_html__('Border Color', 'ultimate-store-kit'), 'type' => Controls_Manager::COLOR, 'condition' => [ 'image_border_border!' => '', ], 'selectors' => [ '{{WRAPPER}} .usk-brand-grid-item:hover .usk-brand-grid-img' => 'border-color: {{VALUE}};', ], ] ); $this->add_control( 'brand_image_opaciry_hover', [ 'label' => __('Opaciry', 'ultimate-store-kit'), 'type' => Controls_Manager::SLIDER, 'default' => [ 'size' => 1, ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 1, 'step' => 0.1, ], ], 'selectors' => [ '{{WRAPPER}} .usk-brand-grid-item:hover .usk-brand-grid-img' => 'opacity: {{SIZE}};', ], ] ); $this->add_group_control( Group_Control_Css_Filter::get_type(), [ 'name' => 'css_filters_hover', 'selector' => '{{WRAPPER}} .usk-brand-grid-item:hover .usk-brand-grid-img', ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->end_controls_section(); } protected function render() { $settings = $this->get_settings_for_display(); if (empty($settings['brand_items'])) { return; } $this->add_render_attribute('brand-grid', 'class', 'usk-brand-grid'); ?>
print_render_attribute_string('brand-grid'); ?>> add_render_attribute( [ 'link' => [ 'href' => isset($item['link']['url']) && !empty($item['link']['url']) ? esc_url($item['link']['url']) : 'javascript:void(0);', 'target' => $item['link']['is_external'] ? '_blank' : '_self' ] ], '', '', true ); $this->add_render_attribute('item-wrap', 'class', 'usk-brand-grid-item usk-flex usk-flex-middle usk-flex-center', true); ?>
print_render_attribute_string('item-wrap'); ?>> <?php echo esc_html($item['brand_name']); ?> ', wp_kses_post($this->get_render_attribute_string('link')), wp_kses_post($item['brand_name'])); } ?>