start_controls_section( 'section_content', [ 'label' => __( 'Cart', 'admore-widgets-suite' ), ] ); $this->add_control( 'cart_icon', [ 'label' => __( 'Icon', 'admore-widgets-suite' ), 'type' => Controls_Manager::ICONS, 'default' => [ 'value' => 'eicon-cart', 'library' => 'eicon' ], ] ); $this->add_control( 'show_text', [ 'label' => __( 'Show Text', 'admore-widgets-suite' ), 'type' => Controls_Manager::SWITCHER, 'default' => '', 'return_value' => 'yes', ] ); $this->add_control( 'cart_text', [ 'label' => __( 'Text', 'admore-widgets-suite' ), 'type' => Controls_Manager::TEXT, 'default' => __( 'Cart', 'admore-widgets-suite' ), 'condition' => [ 'show_text' => 'yes' ], ] ); $this->add_control( 'show_subtotal', [ 'label' => __( 'Show Subtotal', 'admore-widgets-suite' ), 'type' => Controls_Manager::SWITCHER, 'default' => '', 'return_value' => 'yes', ] ); $this->add_control( 'trigger', [ 'label' => __( 'Open On', 'admore-widgets-suite' ), 'type' => Controls_Manager::SELECT, 'default' => 'click', 'options' => [ 'click' => __( 'Click', 'admore-widgets-suite' ), 'hover' => __( 'Hover', 'admore-widgets-suite' ), ], ] ); $this->add_control( 'show_when_empty', [ 'label' => __( 'Show When Cart is Empty', 'admore-widgets-suite' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'return_value' => 'yes', ] ); $this->end_controls_section(); // ── STYLE: Trigger Button ─────────────────────────────────────────── $this->start_controls_section( 'style_trigger', [ 'label' => __( 'Trigger Button', 'admore-widgets-suite' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->start_controls_tabs( 'trigger_tabs' ); $this->start_controls_tab( 'trigger_normal', [ 'label' => __( 'Normal', 'admore-widgets-suite' ) ] ); $this->add_control( 'trigger_color', [ 'label' => __( 'Color', 'admore-widgets-suite' ), 'type' => Controls_Manager::COLOR, 'default' => '#1e293b', 'selectors' => [ '{{WRAPPER}} .eppro-wmc-trigger' => 'color: {{VALUE}};' ], ] ); $this->add_control( 'trigger_bg', [ 'label' => __( 'Background', 'admore-widgets-suite' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .eppro-wmc-trigger' => 'background-color: {{VALUE}};' ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'trigger_hover', [ 'label' => __( 'Hover', 'admore-widgets-suite' ) ] ); $this->add_control( 'trigger_color_hover', [ 'label' => __( 'Color', 'admore-widgets-suite' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .eppro-wmc-trigger:hover' => 'color: {{VALUE}};' ], ] ); $this->add_control( 'trigger_bg_hover', [ 'label' => __( 'Background', 'admore-widgets-suite' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .eppro-wmc-trigger:hover' => 'background-color: {{VALUE}};' ], ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->add_control( 'icon_size', [ 'label' => __( 'Icon Size', 'admore-widgets-suite' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 12, 'max' => 60 ] ], 'default' => [ 'size' => 22 ], 'separator' => 'before', 'selectors' => [ '{{WRAPPER}} .eppro-wmc-icon' => 'font-size: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .eppro-wmc-icon i' => 'font-size: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .eppro-wmc-icon svg' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'trigger_typography', 'label' => __( 'Text Typography', 'admore-widgets-suite' ), 'selector' => '{{WRAPPER}} .eppro-wmc-text', ] ); $this->add_responsive_control( 'trigger_padding', [ 'label' => __( 'Padding', 'admore-widgets-suite' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em' ], 'default' => [ 'top' => '8', 'right' => '14', 'bottom' => '8', 'left' => '14', 'unit' => 'px', 'isLinked' => false ], 'selectors' => [ '{{WRAPPER}} .eppro-wmc-trigger' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};' ], 'separator' => 'before', ] ); $this->add_control( 'trigger_radius', [ 'label' => __( 'Border Radius', 'admore-widgets-suite' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'default' => [ 'size' => 6 ], 'selectors' => [ '{{WRAPPER}} .eppro-wmc-trigger' => 'border-radius: {{SIZE}}{{UNIT}};' ], ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'trigger_border', 'selector' => '{{WRAPPER}} .eppro-wmc-trigger', ] ); $this->end_controls_section(); // ── STYLE: Count Badge ────────────────────────────────────────────── $this->start_controls_section( 'style_badge', [ 'label' => __( 'Count Badge', 'admore-widgets-suite' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'badge_bg', [ 'label' => __( 'Background', 'admore-widgets-suite' ), 'type' => Controls_Manager::COLOR, 'default' => '#7c3aed', 'selectors' => [ '{{WRAPPER}} .eppro-wmc-count' => 'background-color: {{VALUE}};' ], ] ); $this->add_control( 'badge_color', [ 'label' => __( 'Text Color', 'admore-widgets-suite' ), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .eppro-wmc-count' => 'color: {{VALUE}};' ], ] ); $this->add_control( 'badge_size', [ 'label' => __( 'Size', 'admore-widgets-suite' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 12, 'max' => 32 ] ], 'default' => [ 'size' => 18 ], 'selectors' => [ '{{WRAPPER}} .eppro-wmc-count' => 'min-width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}}; font-size: calc({{SIZE}}{{UNIT}} * 0.62);', ], ] ); $this->end_controls_section(); // ── STYLE: Dropdown ───────────────────────────────────────────────── $this->start_controls_section( 'style_dropdown', [ 'label' => __( 'Cart Dropdown', 'admore-widgets-suite' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'dropdown_width', [ 'label' => __( 'Width', 'admore-widgets-suite' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 200, 'max' => 600 ] ], 'default' => [ 'size' => 320 ], 'selectors' => [ '{{WRAPPER}} .eppro-wmc-dropdown' => 'width: {{SIZE}}{{UNIT}};' ], ] ); $this->add_control( 'dropdown_bg', [ 'label' => __( 'Background', 'admore-widgets-suite' ), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .eppro-wmc-dropdown' => 'background-color: {{VALUE}};' ], ] ); $this->add_responsive_control( 'dropdown_padding', [ 'label' => __( 'Padding', 'admore-widgets-suite' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em' ], 'default' => [ 'top' => '16', 'right' => '16', 'bottom' => '16', 'left' => '16', 'unit' => 'px', 'isLinked' => true ], 'selectors' => [ '{{WRAPPER}} .eppro-wmc-dropdown' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};' ], ] ); $this->add_control( 'dropdown_radius', [ 'label' => __( 'Border Radius', 'admore-widgets-suite' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'default' => [ 'size' => 8 ], 'selectors' => [ '{{WRAPPER}} .eppro-wmc-dropdown' => 'border-radius: {{SIZE}}{{UNIT}};' ], ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'dropdown_border', 'selector' => '{{WRAPPER}} .eppro-wmc-dropdown', ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'dropdown_shadow', 'selector' => '{{WRAPPER}} .eppro-wmc-dropdown', ] ); $this->end_controls_section(); } protected function render(): void { if ( ! class_exists( 'WooCommerce' ) ) { if ( \Elementor\Plugin::$instance->editor->is_edit_mode() ) { echo '
' . esc_html__( 'WooCommerce Required', 'admore-widgets-suite' ) . '
' . esc_html__( 'Please install and activate WooCommerce to use this widget.', 'admore-widgets-suite' ) . '