start_controls_section( 'slides_section', [ 'label' => esc_html__( 'Slides', 'elementor-addon' ), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'slides', [ 'label' => esc_html__( 'Images', 'elementor-addon' ), 'type' => Controls_Manager::GALLERY, 'default' => [], ] ); $this->end_controls_section(); // ---- Текстовий блок поверх ---- $this->start_controls_section( 'overlay_section', [ 'label' => esc_html__( 'Overlay Content', 'elementor-addon' ), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'overlay_title', [ 'label' => esc_html__( 'Title', 'elementor-addon' ), 'type' => Controls_Manager::TEXT, 'default' => esc_html__( 'Custom Slider Title', 'elementor-addon' ), 'placeholder' => esc_html__( 'Enter title', 'elementor-addon' ), 'label_block' => true, ] ); $this->add_control( 'overlay_text', [ 'label' => esc_html__( 'Text', 'elementor-addon' ), 'type' => Controls_Manager::TEXTAREA, 'default' => esc_html__( 'Your description goes here.', 'elementor-addon' ), 'placeholder' => esc_html__( 'Enter description', 'elementor-addon' ), 'rows' => 3, ] ); $this->add_control( 'overlay_link', [ 'label' => esc_html__( 'Button Link', 'elementor-addon' ), 'type' => Controls_Manager::URL, 'placeholder' => 'https://example.com', 'default' => [ 'url' => '', 'is_external' => false, 'nofollow' => false, ], ] ); $this->add_control( 'overlay_link_text', [ 'label' => esc_html__( 'Button Text', 'elementor-addon' ), 'type' => Controls_Manager::TEXT, 'default' => esc_html__( 'Learn more', 'elementor-addon' ), 'placeholder' => esc_html__( 'Enter button text', 'elementor-addon' ), 'condition' => [ 'overlay_link[url]!' => '', ], ] ); $this->end_controls_section(); // ---- Налаштування анімації (необов’язково) ---- $this->start_controls_section( 'settings_section', [ 'label' => esc_html__( 'Slider Settings', 'elementor-addon' ), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'autoplay_delay', [ 'label' => esc_html__( 'Autoplay Delay (ms)', 'elementor-addon' ), 'type' => Controls_Manager::NUMBER, 'default' => 4000, 'min' => 1000, 'step' => 500, ] ); $this->add_control( 'transition_speed', [ 'label' => esc_html__( 'Transition Speed (ms)', 'elementor-addon' ), 'type' => Controls_Manager::NUMBER, 'default' => 1200, 'min' => 200, 'step' => 100, ] ); $this->end_controls_section(); } protected function render() { $settings = $this->get_settings_for_display(); if ( empty( $settings['slides'] ) ) { return; } $slider_id = 'custom-slider-' . $this->get_id(); $autoplay_delay = ! empty( $settings['autoplay_delay'] ) ? (int) $settings['autoplay_delay'] : 4000; $transition_speed = ! empty( $settings['transition_speed'] ) ? (int) $settings['transition_speed'] : 1200; $overlay_title = ! empty( $settings['overlay_title'] ) ? $settings['overlay_title'] : ''; $overlay_text = ! empty( $settings['overlay_text'] ) ? $settings['overlay_text'] : ''; $overlay_link = ! empty( $settings['overlay_link']['url'] ) ? $settings['overlay_link'] : null; $overlay_link_text = ! empty( $settings['overlay_link_text'] ) ? $settings['overlay_link_text'] : ''; ?>