FileMaster
Search
Toggle Dark Mode
Home
/
.
/
wp-content
/
plugins
/
surecart
/
app
/
src
/
Integrations
/
Elementor
/
Widgets
Edit File: Quantity.php
<?php namespace SureCart\Integrations\Elementor\Widgets; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } /** * Quantity widget. */ class Quantity extends \Elementor\Widget_Base { /** * Get widget name. * * @return string */ public function get_name() { return 'surecart-quantity'; } /** * Get widget title. * * @return string */ public function get_title() { return esc_html__( 'Quantity', 'surecart' ); } /** * Get widget icon. * * @return string */ public function get_icon() { return 'eicon-plus'; } /** * Get the widget keywords. * * @return array */ public function get_keywords() { return array( 'surecart', 'quantity', 'cart' ); } /** * Get the widget categories. * * @return array */ public function get_categories() { return array( 'surecart-elementor-elements' ); } /** * Get style dependencies. * * @return array */ public function get_style_depends() { return array( 'surecart-quantity-selector', 'surecart-input-group' ); } /** * Register the widget content settings. * * @return void */ private function register_content_settings() { $this->start_controls_section( 'section_content', [ 'label' => esc_html__( 'Content', 'surecart' ), ] ); $this->add_control( 'label', [ 'label' => esc_html__( 'Label', 'surecart' ), 'type' => \Elementor\Controls_Manager::TEXT, 'placeholder' => esc_html__( 'Quantity', 'surecart' ), 'default' => esc_html__( 'Quantity', 'surecart' ), ] ); $this->end_controls_section(); } /** * Register the widget style settings. * * @return void */ private function register_style_settings() { $selector = '{{WRAPPER}} .wp-block-surecart-product-quantity'; $label_selector = $selector . ' .sc-form-label'; $input_selector = $selector . ' .sc-quantity-selector'; $this->start_controls_section( 'section_quantity_label_style', array( 'label' => esc_html__( 'Label', 'surecart' ), 'tab' => \Elementor\Controls_Manager::TAB_STYLE, ) ); $this->add_control( 'quantity_text_color', array( 'label' => esc_html__( 'Text Color', 'surecart' ), 'type' => \Elementor\Controls_Manager::COLOR, 'selectors' => array( $selector => 'color: {{VALUE}}', $label_selector => 'color: {{VALUE}}', ), ) ); $this->add_group_control( \Elementor\Group_Control_Typography::get_type(), array( 'name' => 'quantity_typography', 'label' => esc_html__( 'Typography', 'surecart' ), 'selector' => $label_selector, ) ); $this->end_controls_section(); $this->start_controls_section( 'section_quantity_input_style', array( 'label' => esc_html__( 'Input', 'surecart' ), 'tab' => \Elementor\Controls_Manager::TAB_STYLE, ) ); $this->add_group_control( \Elementor\Group_Control_Typography::get_type(), array( 'name' => 'input_typography', 'label' => esc_html__( 'Typography', 'surecart' ), 'selector' => $input_selector, ) ); $this->add_responsive_control( 'quantity_width', array( 'label' => esc_html__( 'Width', 'surecart' ), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => [ 'px', 'em', '%' ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 1000, ], 'em' => [ 'min' => 0, 'max' => 100, ], ], 'selectors' => array( $input_selector => 'width: {{SIZE}}{{UNIT}};', ), ) ); $this->add_group_control( \Elementor\Group_Control_Border::get_type(), [ 'name' => 'selected_amount_border', 'selector' => $input_selector, ] ); $this->add_control( 'quantity_border_radius', array( 'label' => esc_html__( 'Border Radius', 'surecart' ), 'type' => \Elementor\Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => array( $input_selector => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->end_controls_section(); } /** * Register the widget controls. * * @return void */ protected function register_controls() { $this->register_content_settings(); $this->register_style_settings(); } /** * Render the widget output on the frontend. * * @return void */ protected function render() { $settings = $this->get_settings_for_display(); if ( \Elementor\Plugin::$instance->editor->is_edit_mode() ) { ?> <div class="wp-block-surecart-product-quantity"> <label class="sc-form-label"><?php echo esc_html( $settings['label'] ); ?></label> <div class="sc-input-group sc-quantity-selector" > <div class="sc-input-group-text sc-quantity-selector__decrease"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <line x1="5" y1="12" x2="19" y2="12" /> </svg> </div> <input class="sc-form-control sc-quantity-selector__control" value="1" type="number" /> <div class="sc-input-group-text sc-quantity-selector__increase"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <line x1="12" y1="5" x2="12" y2="19" /> <line x1="5" y1="12" x2="19" y2="12" /> </svg> </div> </div> </div> <?php return; } ?> <div <?php $this->print_render_attribute_string( 'wrapper' ); ?>> <!-- wp:surecart/product-quantity { "label" : "<?php echo esc_attr( $settings['label'] ); ?>"} /--> </div> <?php } /** * Render the widget output on the editor. * * @return void */ protected function content_template() { ?> <div class="wp-block-surecart-product-quantity"> <label class="sc-form-label">{{{ settings.label }}}</label> <div class="sc-input-group sc-quantity-selector" > <div class="sc-input-group-text sc-quantity-selector__decrease"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <line x1="5" y1="12" x2="19" y2="12" /> </svg> </div> <input class="sc-form-control sc-quantity-selector__control" value={0} type="number" /> <div class="sc-input-group-text sc-quantity-selector__increase"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <line x1="12" y1="5" x2="12" y2="19" /> <line x1="5" y1="12" x2="19" y2="12" /> </svg> </div> </div> </div> <?php } }
Save
Back