if ( ! empty( $settings['direction'] ) ) { $render_attributes['dir'] = $settings['direction']; } return $render_attributes; } public function get_loop_header_widget_classes(): array { return [ 'swiper' ]; } public function before_skin_render() { add_filter( 'elementor/document/wrapper_attributes', [ $this, 'add_swiper_slide_attributes_to_loop_item' ], 10, 2 ); add_filter( 'elementor/skin/loop_header_attributes', [ $this, 'add_loop_header_attributes' ], 10, 1 ); } public function after_skin_render() { remove_filter( 'elementor/document/wrapper_attributes', [ $this, 'add_swiper_slide_attributes_to_loop_item' ] ); remove_filter( 'elementor/skin/loop_header_attributes', [ $this, 'add_loop_header_attributes' ] ); } protected function register_layout_section() { parent::register_layout_section(); $this->start_injection( [ 'of' => 'template_id', ] ); $this->add_control( 'posts_per_page', [ 'label' => esc_html__( 'Number of slides', 'elementor-pro' ), 'type' => Controls_Manager::NUMBER, 'default' => 6, 'min' => 1, 'condition' => [ 'template_id!' => '', ], 'separator' => 'before', ] ); $this->add_carousel_layout_controls( [ 'css_prefix' => '', 'slides_to_show_custom_settings' => [ 'default' => '3', 'widescreen_default' => '3', 'laptop_default' => '3', 'tablet_extra_default' => '3', 'tablet_default' => '2', 'mobile_extra_default' => '2', 'mobile_default' => '1', 'condition' => [ 'posts_per_page!' => 1, 'template_id!' => '', ], 'selectors' => [ '{{WRAPPER}}' => '--swiper-slides-to-display: {{VALUE}}', ], ], 'slides_to_scroll_custom_settings' => [ 'default' => '1', 'condition' => [ 'posts_per_page!' => 1, 'template_id!' => '', ], ], 'equal_height_custom_settings' => [ 'condition' => [ 'posts_per_page!' => 1, 'template_id!' => '', ], 'selectors' => [ '{{WRAPPER}} .swiper-slide > .elementor-element' => 'height: 100%', ], ], 'slides_on_display' => 8, ] ); // Location for the Edit handle. $this->add_control( 'edit_handle_selector', [ 'label' => esc_html__( 'Edit Handle Selector', 'elementor-pro' ), 'type' => Controls_Manager::HIDDEN, 'default' => '.elementor-widget-container', 'render_type' => 'none', 'frontend_available' => true, ] ); $this->end_injection(); } }