sprintf(__('Show Tooltip %s', 'king-addons'), ''), 'type' => Controls_Manager::SWITCHER, 'classes' => 'king-addons-pro-control' ]; } public function add_repeater_args_feature_tooltip_text(): array { return [ 'type' => Controls_Manager::HIDDEN, 'default' => '' ]; } public function add_repeater_args_feature_tooltip_show_icon(): array { return [ 'type' => Controls_Manager::HIDDEN, 'default' => '' ]; } public function add_control_stack_feature_tooltip_section() { } public function add_controls_group_feature_even_bg() { $this->add_control( 'feature_even_bg', [ 'label' => sprintf(__('Enable Even Color %s', 'king-addons'), ''), 'type' => Controls_Manager::SWITCHER, 'classes' => 'king-addons-pro-control no-distance' ] ); } protected function register_controls() { $this->start_controls_section( 'section_pricing_items', [ 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Price Table', 'king-addons'), ] ); if (!king_addons_freemius()->can_use_premium_code__premium_only()) { $this->add_control( 'pricing_table_pro_notice', [ 'type' => Controls_Manager::RAW_HTML, 'raw' => 'Feature Item Tooltip and Even/Odd Feature Item Background Color options are available in the Pro version', 'content_classes' => 'king-addons-pro-notice', ] ); } $repeater = new Repeater(); $repeater->add_control( 'type_select', [ 'label' => esc_html__('Type', 'king-addons'), 'type' => Controls_Manager::SELECT, 'default' => 'heading', 'options' => [ 'heading' => esc_html__('Heading', 'king-addons'), 'price' => esc_html__('Price', 'king-addons'), 'feature' => esc_html__('Feature', 'king-addons'), 'text' => esc_html__('Text', 'king-addons'), 'button' => esc_html__('Button', 'king-addons'), 'divider' => esc_html__('Divider', 'king-addons'), ], 'separator' => 'after', ] ); $repeater->add_control( 'heading_title', [ 'label' => esc_html__('Title', 'king-addons'), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'default' => 'Title', 'condition' => [ 'type_select' => 'heading', ], ] ); $repeater->add_control( 'heading_sub_title', [ 'label' => esc_html__('Sub Title', 'king-addons'), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'default' => 'Subtitle text', 'condition' => [ 'type_select' => 'heading', ], ] ); $repeater->add_control( 'heading_icon_type', [ 'label' => esc_html__('Icon Type', 'king-addons'), 'type' => Controls_Manager::SELECT, 'default' => 'icon', 'options' => [ 'none' => esc_html__('None', 'king-addons'), 'icon' => esc_html__('Icon', 'king-addons'), 'image' => esc_html__('Image', 'king-addons'), ], 'condition' => [ 'type_select' => 'heading', ], ] ); $repeater->add_control( 'heading_image', [ 'label' => esc_html__('Image', 'king-addons'), 'type' => Controls_Manager::MEDIA, 'dynamic' => [ 'active' => true, ], 'condition' => [ 'type_select' => 'heading', 'heading_icon_type' => 'image', ], ] ); $repeater->add_control( 'text', [ 'label' => '', 'type' => Controls_Manager::TEXTAREA, 'dynamic' => [ 'active' => true, ], 'default' => 'Text Element', 'condition' => [ 'type_select' => 'text', ], ] ); $repeater->add_control( 'price', [ 'label' => esc_html__('Price', 'king-addons'), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'default' => '39', 'condition' => [ 'type_select' => 'price', ], ] ); $repeater->add_control( 'sub_price', [ 'label' => esc_html__('Sub Price', 'king-addons'), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'default' => '99', 'condition' => [ 'type_select' => 'price', ], ] ); $repeater->add_control( 'currency_symbol', [ 'label' => esc_html__('Currency Symbol', 'king-addons'), 'type' => Controls_Manager::SELECT, 'options' => [ '' => esc_html__('None', 'king-addons'), 'dollar' => '$ ' . _x('Dollar', 'Currency Symbol', 'king-addons'), 'euro' => ' ' . _x('Euro', 'Currency Symbol', 'king-addons'), 'pound' => '£ ' . _x('Pound Sterling', 'Currency Symbol', 'king-addons'), 'ruble' => '₽ ' . _x('Ruble', 'Currency Symbol', 'king-addons'), 'peso' => '₱ ' . _x('Peso', 'Currency Symbol', 'king-addons'), 'krona' => 'kr ' . _x('Krona', 'Currency Symbol', 'king-addons'), 'lira' => '₤ ' . _x('Lira', 'Currency Symbol', 'king-addons'), 'franc' => '₣ ' . _x('Franc', 'Currency Symbol', 'king-addons'), 'baht' => '฿ ' . _x('Baht', 'Currency Symbol', 'king-addons'), 'shekel' => '₪ ' . _x('Shekel', 'Currency Symbol', 'king-addons'), 'won' => '₩ ' . _x('Won', 'Currency Symbol', 'king-addons'), 'yen' => '¥ ' . _x('Yen/Yuan', 'Currency Symbol', 'king-addons'), 'guilder' => 'ƒ ' . _x('Guilder', 'Currency Symbol', 'king-addons'), 'peseta' => '₧ ' . _x('Peseta', 'Currency Symbol', 'king-addons'), 'real' => 'R$ ' . _x('Real', 'Currency Symbol', 'king-addons'), 'rupee' => '₨ ' . _x('Rupee', 'Currency Symbol', 'king-addons'), 'indian_rupee' => '₹ ' . _x('Rupee (Indian)', 'Currency Symbol', 'king-addons'), 'custom' => esc_html__('Custom', 'king-addons'), ], 'default' => 'dollar', 'condition' => [ 'type_select' => 'price', ], ] ); $repeater->add_control( 'currency', [ 'label' => esc_html__('Currency', 'king-addons'), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'default' => '$', 'condition' => [ 'type_select' => 'price', 'currency_symbol' => 'custom', ], ] ); $repeater->add_control( 'sale', [ 'label' => esc_html__('Sale', 'king-addons'), 'type' => Controls_Manager::SWITCHER, 'condition' => [ 'type_select' => 'price', ], ] ); $repeater->add_control( 'old_price', [ 'label' => esc_html__('Old Price', 'king-addons'), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'default' => '29', 'condition' => [ 'type_select' => 'price', 'sale' => 'yes', ], ] ); $repeater->add_control( 'period', [ 'label' => esc_html__('Period', 'king-addons'), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'default' => '/Year', 'condition' => [ 'type_select' => 'price', ], ] ); $repeater->add_control( 'feature_text', [ 'label' => esc_html__('Text', 'king-addons'), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'default' => 'Feature', 'condition' => [ 'type_select' => 'feature', ], ] ); $repeater->add_control( 'feature_icon_color', [ 'label' => esc_html__('Icon Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => 'rgba(84,89,95,1)', 'selectors' => [ '{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-pricing-table-feature-icon' => 'color: {{VALUE}};', ], 'condition' => [ 'type_select' => 'feature', ], ] ); $repeater->add_control( 'btn_text', [ 'label' => esc_html__('Button Text', 'king-addons'), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'default' => 'Button', 'condition' => [ 'type_select' => 'button', ], ] ); $repeater->add_control( 'btn_id', [ 'label' => esc_html__('Button ID', 'king-addons'), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'placeholder' => 'button-id', 'condition' => [ 'type_select' => 'button', ], ] ); $repeater->add_control( 'btn_url', [ 'type' => Controls_Manager::URL, 'dynamic' => [ 'active' => true, ], 'placeholder' => esc_html__('https://example.com', 'king-addons'), 'show_label' => false, 'condition' => [ 'type_select' => 'button', ], ] ); $repeater->add_control( 'select_icon', [ 'label' => esc_html__('Select Icon', 'king-addons'), 'type' => Controls_Manager::ICONS, 'skin' => 'inline', 'label_block' => false, 'conditions' => [ 'relation' => 'or', 'terms' => [ [ 'name' => 'type_select', 'operator' => '=', 'value' => 'feature', ], [ 'name' => 'type_select', 'operator' => '=', 'value' => 'button', ], [ 'relation' => 'and', 'terms' => [ [ 'name' => 'type_select', 'operator' => '=', 'value' => 'heading', ], [ 'name' => 'heading_icon_type', 'operator' => '=', 'value' => 'icon', ], ], ], ], ], ] ); $repeater->add_control( 'btn_icon_position', [ 'label' => esc_html__('Icon Position', 'king-addons'), 'type' => Controls_Manager::SELECT, 'default' => 'after', 'options' => [ 'before' => esc_html__('Before', 'king-addons'), 'after' => esc_html__('After', 'king-addons'), ], 'condition' => [ 'type_select' => 'button', ], ] ); $repeater->add_control( 'feature_linethrough', [ 'label' => esc_html__('Line Through', 'king-addons'), 'type' => Controls_Manager::SWITCHER, 'condition' => [ 'type_select' => 'feature', ], ] ); $repeater->add_control( 'feature_linethrough_text_color', [ 'label' => esc_html__('Text Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#222222', 'selectors' => [ '{{WRAPPER}} {{CURRENT_ITEM}} span.king-addons-pricing-table-ftext-line-yes span' => 'color: {{VALUE}};', ], 'condition' => [ 'type_select' => 'feature', 'feature_linethrough' => 'yes', ], ] ); $repeater->add_control( 'feature_linethrough_color', [ 'label' => esc_html__('Line Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#222222', 'selectors' => [ '{{WRAPPER}} {{CURRENT_ITEM}} span.king-addons-pricing-table-ftext-line-yes' => 'color: {{VALUE}};', ], 'condition' => [ 'type_select' => 'feature', 'feature_linethrough' => 'yes', ], ] ); $repeater->add_control('feature_tooltip', $this->add_repeater_args_feature_tooltip()); $repeater->add_control('feature_tooltip_show_icon', $this->add_repeater_args_feature_tooltip_show_icon()); $repeater->add_control('feature_tooltip_text', $this->add_repeater_args_feature_tooltip_text()); $repeater->add_control( 'divider_style', [ 'label' => esc_html__('Style', 'king-addons'), 'type' => Controls_Manager::SELECT, 'options' => [ 'solid' => esc_html__('Solid', 'king-addons'), 'double' => esc_html__('Double', 'king-addons'), 'dotted' => esc_html__('Dotted', 'king-addons'), 'dashed' => esc_html__('Dashed', 'king-addons'), 'groove' => esc_html__('Groove', 'king-addons'), ], 'default' => 'dashed', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-divider' => 'border-top-style: {{VALUE}};', ], 'condition' => [ 'type_select' => 'divider', ], ] ); $repeater->add_control( 'divider_bg_color', [ 'label' => esc_html__('Background Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#f7f7f7', 'selectors' => [ '{{WRAPPER}} {{CURRENT_ITEM}}' => 'background-color: {{VALUE}};', ], 'condition' => [ 'type_select' => 'divider', ], ] ); $repeater->add_control( 'divider_color', [ 'label' => esc_html__('Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#222222', 'selectors' => [ '{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-pricing-table-divider' => 'border-top-color: {{VALUE}};', ], 'condition' => [ 'type_select' => 'divider', ], ] ); $repeater->add_responsive_control( 'divider_width', [ 'label' => esc_html__('Width', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px', '%'], 'range' => [ 'px' => [ 'min' => 5, 'max' => 300, ], '%' => [ 'min' => 0, 'max' => 100, ], ], 'default' => [ 'unit' => 'px', 'size' => 60, ], 'selectors' => [ '{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-pricing-table-divider' => 'width: {{SIZE}}{{UNIT}};', ], 'condition' => [ 'type_select' => 'divider', ], ] ); $repeater->add_responsive_control( 'divider_height', [ 'label' => esc_html__('Height', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 1, 'max' => 10, ], ], 'default' => [ 'unit' => 'px', 'size' => 1, ], 'selectors' => [ '{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-pricing-table-divider' => 'border-top-width: {{SIZE}}{{UNIT}};', ], 'condition' => [ 'type_select' => 'divider', ], ] ); $this->add_control( 'pricing_items', [ 'type' => Controls_Manager::REPEATER, 'fields' => $repeater->get_controls(), 'default' => [ [ 'type_select' => 'heading', 'select_icon' => ['value' => 'far fa-star', 'library' => 'fa-regular'], ], [ 'type_select' => 'price', ], [ 'type_select' => 'feature', 'feature_text' => 'Feature 1', 'feature_linethrough' => 'yes', 'feature_icon_color' => '#7a7a7a', 'feature_linethrough_text_color' => '#7a7a7a', 'feature_linethrough_color' => '#7a7a7a', 'select_icon' => ['value' => 'fas fa-check', 'library' => 'fa-solid'], ], [ 'type_select' => 'feature', 'feature_text' => 'Feature 2', 'feature_icon_color' => 'rgba(84,89,95,1)', 'select_icon' => ['value' => 'fas fa-check', 'library' => 'fa-solid'], ], [ 'type_select' => 'feature', 'feature_text' => 'Feature 3', 'feature_icon_color' => '#6DD400', 'select_icon' => ['value' => 'fas fa-check', 'library' => 'fa-solid'], ], [ 'type_select' => 'feature', 'feature_text' => 'Feature 4', 'feature_icon_color' => '#6DD400', 'select_icon' => ['value' => 'fas fa-check', 'library' => 'fa-solid'], ], [ 'type_select' => 'feature', 'feature_text' => 'Feature 5', 'feature_icon_color' => '#6DD400', 'select_icon' => ['value' => 'fas fa-check', 'library' => 'fa-solid'], ], [ 'type_select' => 'button', 'select_icon' => '', ], [ 'type_select' => 'text', ], ], 'title_field' => '<# if( "feature" === type_select ) { #> Feature - {{{ feature_text }}} <# } else if( "heading" === type_select ) { #> Heading - {{{ heading_title }}} <# } else if( "price" === type_select ) { #> Price - {{{ price }}} <# } else if( "text" === type_select ) { #> Text - {{{ text }}} <# } else if( "button" === type_select ) { #> Button - {{{ btn_text }}} <# } else if( "divider" === type_select ) { #> Divider - {{{ divider_style }}} <# } else {#> {{{ type_select }}} <# } #>', ] ); $this->end_controls_section(); $this->start_controls_section( 'section_badge', [ 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Badge', 'king-addons'), 'type' => Controls_Manager::SECTION, ] ); $this->add_control( 'badge_style', [ 'type' => Controls_Manager::SELECT, 'label' => esc_html__('Style', 'king-addons'), 'default' => 'corner', 'options' => [ 'none' => esc_html__('None', 'king-addons'), 'corner' => esc_html__('Corner', 'king-addons'), 'circle' => esc_html__('circle', 'king-addons'), 'flag' => esc_html__('Flag', 'king-addons'), ], ] ); $this->add_control( 'badge_title', [ 'label' => esc_html__(' Title', 'king-addons'), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'default' => 'Sale', 'condition' => [ 'badge_style!' => 'none', ], ] ); $this->add_control( 'badge_hr_position', [ 'label' => esc_html__('Horizontal Position', 'king-addons'), 'type' => Controls_Manager::CHOOSE, 'label_block' => false, 'default' => 'right', 'options' => [ 'left' => [ 'title' => esc_html__('Left', 'king-addons'), 'icon' => 'eicon-h-align-left', ], 'right' => [ 'title' => esc_html__('Right', 'king-addons'), 'icon' => 'eicon-h-align-right', ] ], 'condition' => [ 'badge_style!' => 'none', ], ] ); $this->add_responsive_control( 'badge_circle_size', [ 'label' => esc_html__('Size', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 100, ], ], 'default' => [ 'unit' => 'px', 'size' => 60, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-badge-circle .king-addons-pricing-table-badge-inner' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}}; line-height: {{SIZE}}{{UNIT}};', ], 'condition' => [ 'badge_style' => 'circle', 'badge_style!' => 'none', ], ] ); $this->add_responsive_control( 'badge_circle_top_distance', [ 'label' => esc_html__('Top Distance', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['%'], 'range' => [ '%' => [ 'min' => -50, 'max' => 50, ], ], 'default' => [ 'unit' => '%', 'size' => 40, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-badge-circle' => 'transform: translateX({{badge_circle_side_distance.SIZE}}%) translateY({{SIZE}}%);', ], 'condition' => [ 'badge_style' => 'circle', 'badge_style!' => 'none', ], ] ); $this->add_responsive_control( 'badge_circle_side_distance', [ 'label' => esc_html__('Side Distance', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['%'], 'range' => [ '%' => [ 'min' => -50, 'max' => 50, ], ], 'default' => [ 'unit' => '%', 'size' => 40, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-badge-circle' => 'transform: translateX({{SIZE}}%) translateY({{badge_circle_top_distance.SIZE}}%);', ], 'condition' => [ 'badge_style' => 'circle', 'badge_style!' => 'none', ], ] ); $this->add_responsive_control( 'badge_distance', [ 'label' => esc_html__('Distance', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 80, ], ], 'default' => [ 'unit' => 'px', 'size' => 25, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-badge-corner .king-addons-pricing-table-badge-inner' => 'margin-top: {{SIZE}}{{UNIT}}; transform: translateY(-50%) translateX(-50%) translateX({{SIZE}}{{UNIT}}) rotate(-45deg);', '{{WRAPPER}} .king-addons-pricing-table-badge-flag' => 'top: {{SIZE}}{{UNIT}};', ], 'condition' => [ 'badge_style!' => ['none', 'circle'], ], ] ); $this->end_controls_section(); $this->start_controls_section( 'pr_table_section_hv_animation', [ 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Hover Animation', 'king-addons'), 'tab' => Controls_Manager::SECTION, ] ); $this->add_control( 'hv_animation', [ 'type' => Controls_Manager::SELECT, 'label' => esc_html__('Effect', 'king-addons'), 'default' => 'none', 'options' => [ 'none' => esc_html__('None', 'king-addons'), 'slide' => esc_html__('Slide', 'king-addons'), 'bounce' => esc_html__('Bounce', 'king-addons'), ], 'prefix_class' => 'king-addons-pricing-table-animation-', ] ); $this->add_control( 'hv_animation_duration', [ 'label' => esc_html__('Animation Duration (ms)', 'king-addons'), 'type' => Controls_Manager::NUMBER, 'default' => 200, 'min' => 0, 'step' => 50, 'selectors' => [ '{{WRAPPER}}.king-addons-pricing-table-animation-slide' => 'transition-duration: {{VALUE}}ms;', '{{WRAPPER}}.king-addons-pricing-table-animation-bounce' => 'animation-duration: {{VALUE}}ms;', '{{WRAPPER}}.king-addons-pricing-table-animation-zoom' => 'transition-duration: {{VALUE}}ms;', ], ] ); $this->end_controls_section(); Core::renderProFeaturesSection($this, '', Controls_Manager::RAW_HTML, 'pricing-table', [ 'Tooltip Popup', 'List Item Advanced Tooltip', 'List Item Even/Odd Background Color', 'Advanced Button Animations', ]); $this->start_controls_section( 'pr_table_section_style_heading', [ 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Heading', 'king-addons'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'heading_bg_color', 'types' => ['classic', 'gradient'], 'fields_options' => [ 'color' => [ 'default' => '#f7f7f7', ], 'background' => [ 'default' => 'classic', ] ], 'selector' => '{{WRAPPER}} .king-addons-pricing-table-heading' ] ); $this->add_responsive_control( 'heading_section_padding', [ 'label' => esc_html__('Padding', 'king-addons'), 'type' => Controls_Manager::DIMENSIONS, 'default' => [ 'top' => 25, 'right' => 20, 'bottom' => 25, 'left' => 20, ], 'size_units' => ['px',], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-heading' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'separator' => 'before' ] ); $this->add_control( 'title_section', [ 'label' => esc_html__('Title', 'king-addons'), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_control( 'heading_title_color', [ 'label' => esc_html__('Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#2d2d2d', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-title' => 'color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'heading_title_typography', 'selector' => '{{WRAPPER}} .king-addons-pricing-table-title', ] ); $this->add_control( 'heading_title_distance', [ 'label' => esc_html__('Distance', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 50, ], ], 'default' => [ 'unit' => 'px', 'size' => 0, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-title' => 'margin: 0 0 {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'sub_title_section', [ 'label' => esc_html__('Sub Title', 'king-addons'), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_control( 'heading_sub_title_color', [ 'label' => esc_html__('Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#919191', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-sub-title' => 'color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'heading_sub_title_typography', 'selector' => '{{WRAPPER}} .king-addons-pricing-table-sub-title', ] ); $this->add_control( 'icon_section', [ 'label' => esc_html__('Icon / Image', 'king-addons'), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_control( 'heading_icon_color', [ 'label' => esc_html__('Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#5B03FF', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-icon' => 'color: {{VALUE}};', ], ] ); $this->add_control( 'heading_icon_position', [ 'label' => esc_html__('Icon Position', 'king-addons'), 'type' => Controls_Manager::CHOOSE, 'label_block' => false, 'default' => 'center', 'options' => [ 'left' => [ 'title' => esc_html__('Left', 'king-addons'), 'icon' => 'eicon-h-align-left', ], 'center' => [ 'title' => esc_html__('Center', 'king-addons'), 'icon' => 'eicon-h-align-center', ], 'right' => [ 'title' => esc_html__('Right', 'king-addons'), 'icon' => 'eicon-h-align-right', ] ], 'prefix_class' => 'king-addons-pricing-table-heading-', ] ); $this->add_responsive_control( 'heading_icon_size', [ 'label' => esc_html__('Size', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px', '%'], 'range' => [ 'px' => [ 'min' => 10, 'max' => 500, ], ], 'default' => [ 'unit' => 'px', 'size' => 35, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-icon i' => 'font-size: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .king-addons-pricing-table-icon svg' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .king-addons-pricing-table-icon img' => 'max-width: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'heading_icon_distance', [ 'label' => esc_html__('Distance', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 50, ], ], 'default' => [ 'unit' => 'px', 'size' => 12, ], 'selectors' => [ '{{WRAPPER}}.king-addons-pricing-table-heading-left .king-addons-pricing-table-icon' => 'margin-right: {{SIZE}}{{UNIT}};', '{{WRAPPER}}.king-addons-pricing-table-heading-center .king-addons-pricing-table-icon' => 'margin-bottom: {{SIZE}}{{UNIT}};', '{{WRAPPER}}.king-addons-pricing-table-heading-right .king-addons-pricing-table-icon' => 'margin-left: {{SIZE}}{{UNIT}};', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'pr_table_section_style_price', [ 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Price', 'king-addons'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'price_wrap_bg_color', 'types' => ['classic', 'gradient'], 'fields_options' => [ 'color' => [ 'default' => '#5B03FF', ], 'background' => [ 'default' => 'classic', ] ], 'selector' => '{{WRAPPER}} .king-addons-pricing-table-price' ] ); $this->add_responsive_control( 'price_wrap_padding', [ 'label' => esc_html__('Padding', 'king-addons'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px'], 'default' => [ 'top' => 40, 'right' => 20, 'bottom' => 30, 'left' => 20, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-price' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'separator' => 'before' ] ); $this->add_control( 'price_section', [ 'label' => esc_html__('Price', 'king-addons'), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_control( 'price_color', [ 'label' => esc_html__('Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-price' => 'color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'price_typography', 'selector' => '{{WRAPPER}} .king-addons-pricing-table-price', ] ); $this->add_control( 'sub_price_section', [ 'label' => esc_html__('Sub Price', 'king-addons'), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_responsive_control( 'sub_price_size', [ 'label' => esc_html__('Size', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 100, ], ], 'default' => [ 'unit' => 'px', 'size' => 19, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-sub-price' => 'font-size: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'sub_price_vr_position', [ 'label' => esc_html__('Vertical Position', 'king-addons'), 'type' => Controls_Manager::CHOOSE, 'label_block' => false, 'options' => [ 'top' => [ 'title' => esc_html__('Top', 'king-addons'), 'icon' => 'eicon-v-align-top', ], 'middle' => [ 'title' => esc_html__('Middle', 'king-addons'), 'icon' => 'eicon-v-align-middle', ], 'bottom' => [ 'title' => esc_html__('Bottom', 'king-addons'), 'icon' => 'eicon-v-align-bottom', ], ], 'default' => 'top', 'selectors_dictionary' => [ 'top' => 'flex-start', 'middle' => 'center', 'bottom' => 'flex-end', ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-sub-price' => '-webkit-align-self: {{VALUE}}; align-self: {{VALUE}};', ], ] ); $this->add_control( 'currency_section', [ 'label' => esc_html__('Currency Symbol', 'king-addons'), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_responsive_control( 'currency_size', [ 'label' => esc_html__('Size', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 100, ], ], 'default' => [ 'unit' => 'px', 'size' => 24, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-currency' => 'font-size: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'currency_hr_position', [ 'label' => esc_html__('Alignment', 'king-addons'), 'type' => Controls_Manager::CHOOSE, 'label_block' => false, 'default' => 'before', 'options' => [ 'before' => [ 'title' => esc_html__('Before', 'king-addons'), 'icon' => 'eicon-h-align-left', ], 'after' => [ 'title' => esc_html__('After', 'king-addons'), 'icon' => 'eicon-h-align-right', ], ], ] ); $this->add_control( 'currency_vr_position', [ 'label' => esc_html__('Vertical Position', 'king-addons'), 'type' => Controls_Manager::CHOOSE, 'label_block' => false, 'options' => [ 'top' => [ 'title' => esc_html__('Top', 'king-addons'), 'icon' => 'eicon-v-align-top', ], 'middle' => [ 'title' => esc_html__('Middle', 'king-addons'), 'icon' => 'eicon-v-align-middle', ], 'bottom' => [ 'title' => esc_html__('Bottom', 'king-addons'), 'icon' => 'eicon-v-align-bottom', ], ], 'default' => 'top', 'selectors_dictionary' => [ 'top' => 'flex-start', 'middle' => 'center', 'bottom' => 'flex-end', ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-currency' => '-webkit-align-self: {{VALUE}}; align-self: {{VALUE}};', ], ] ); $this->add_control( 'old_price_section', [ 'label' => esc_html__('Old Price', 'king-addons'), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_control( 'old_price_color', [ 'label' => esc_html__('Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-old-price' => 'color: {{VALUE}};', ], ] ); $this->add_responsive_control( 'old_price_size', [ 'label' => esc_html__('Size', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 100, ], ], 'default' => [ 'unit' => 'px', 'size' => 20, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-old-price' => 'font-size: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'old_price_vr_position', [ 'label' => esc_html__('Vertical Position', 'king-addons'), 'type' => Controls_Manager::CHOOSE, 'label_block' => false, 'options' => [ 'top' => [ 'title' => esc_html__('Top', 'king-addons'), 'icon' => 'eicon-v-align-top', ], 'middle' => [ 'title' => esc_html__('Middle', 'king-addons'), 'icon' => 'eicon-v-align-middle', ], 'bottom' => [ 'title' => esc_html__('Bottom', 'king-addons'), 'icon' => 'eicon-v-align-bottom', ], ], 'default' => 'middle', 'selectors_dictionary' => [ 'top' => 'flex-start', 'middle' => 'center', 'bottom' => 'flex-end', ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-old-price' => '-webkit-align-self: {{VALUE}}; align-self: {{VALUE}};', ], ] ); $this->add_control( 'period_section', [ 'label' => esc_html__('Period', 'king-addons'), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_control( 'period_color', [ 'label' => esc_html__('Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-period' => 'color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'period_typography', 'selector' => '{{WRAPPER}} .king-addons-pricing-table-period', ] ); $this->add_control( 'period_hr_position', [ 'label' => esc_html__('Position', 'king-addons'), 'type' => Controls_Manager::SELECT, 'label_block' => false, 'options' => [ 'below' => esc_html__('Below', 'king-addons'), 'beside' => esc_html__('Beside', 'king-addons'), ], 'default' => 'below', ] ); $this->end_controls_section(); $this->start_controls_section( 'pr_table_section_style_features', [ 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Features', 'king-addons'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'feature_bg_color', [ 'label' => esc_html__('Background Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#f7f7f7', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table section' => 'background-color: {{VALUE}};', ], ] ); $this->add_controls_group_feature_even_bg(); $this->add_responsive_control( 'feature_section_padding', [ 'label' => esc_html__('Padding', 'king-addons'), 'type' => Controls_Manager::DIMENSIONS, 'default' => [ 'top' => 15, 'right' => 15, 'bottom' => 15, 'left' => 15, ], 'size_units' => ['px',], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-feature-inner' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'separator' => 'before', ] ); $this->add_control( 'feature_section_top_distance', [ 'label' => esc_html__('List Top Distance', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 50, ], ], 'default' => [ 'unit' => 'px', 'size' => 0, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-feature:first-of-type' => 'padding-top: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'feature_section_bot_distance', [ 'label' => esc_html__('List Bottom Distance', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 50, ], ], 'default' => [ 'unit' => 'px', 'size' => 0, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-feature:last-of-type' => 'padding-bottom: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'feature_color', [ 'label' => esc_html__('Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#54595f', 'separator' => 'before', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-feature span > span' => 'color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'feature_typography', 'selector' => '{{WRAPPER}} .king-addons-pricing-table-feature', ] ); $this->add_responsive_control( 'feature_align', [ 'label' => esc_html__('Alignment', 'king-addons'), 'type' => Controls_Manager::CHOOSE, 'label_block' => false, 'default' => 'center', 'options' => [ 'flex-start' => [ 'title' => esc_html__('Left', 'king-addons'), 'icon' => 'eicon-text-align-left', ], 'center' => [ 'title' => esc_html__('Center', 'king-addons'), 'icon' => 'eicon-text-align-center', ], 'flex-end' => [ 'title' => esc_html__('Right', 'king-addons'), 'icon' => 'eicon-text-align-right', ], ], 'selectors_dictionary' => [ 'flex-start' => 'justify-content: flex-start; text-align: left;', 'center' => 'justify-content: center; text-align: center;', 'flex-end' => 'justify-content: flex-end; text-align: right;', ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-feature-inner' => '{{VALUE}}', ], ] ); $this->add_responsive_control( 'feature_width', [ 'label' => esc_html__('Width', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'range' => [ '%' => [ 'min' => 10, 'max' => 100, ], 'px' => [ 'min' => 100, 'max' => 1000, ], ], 'size_units' => ['%', 'px'], 'default' => [ 'unit' => 'px', 'size' => 357, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-feature-inner' => 'max-width: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'feature_icon_section', [ 'label' => esc_html__('Icon', 'king-addons'), 'type' => Controls_Manager::HEADING, 'separator' => 'before', ] ); $this->add_responsive_control( 'feature_icon_size', [ 'label' => esc_html__('Size', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 5, 'max' => 30, ], ], 'default' => [ 'unit' => 'px', 'size' => 14, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-feature-icon' => 'font-size: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control_stack_feature_tooltip_section(); $this->add_control( 'feature_divider', [ 'label' => esc_html__('Divider', 'king-addons'), 'type' => Controls_Manager::SWITCHER, 'default' => 'yes', 'label_off' => esc_html__('Off', 'king-addons'), 'label_on' => esc_html__('On', 'king-addons'), 'separator' => 'before', ] ); $this->add_control( 'feature_divider_color', [ 'label' => esc_html__('Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#d6d6d6', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-feature:after' => 'border-bottom-color: {{VALUE}};', ], 'condition' => [ 'feature_divider' => 'yes', ], ] ); $this->add_control( 'feature_divider_type', [ 'label' => esc_html__('Style', 'king-addons'), 'type' => Controls_Manager::SELECT, 'options' => [ 'solid' => esc_html__('Solid', 'king-addons'), 'double' => esc_html__('Double', 'king-addons'), 'dotted' => esc_html__('Dotted', 'king-addons'), 'dashed' => esc_html__('Dashed', 'king-addons'), 'groove' => esc_html__('Groove', 'king-addons'), ], 'default' => 'dashed', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-feature:after' => 'border-bottom-style: {{VALUE}};', ], 'condition' => [ 'feature_divider' => 'yes', ], ] ); $this->add_control( 'feature_divider_weight', [ 'label' => esc_html__('Weight', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 1, 'max' => 5, ], ], 'default' => [ 'size' => 1, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-feature:after' => 'border-bottom-width: {{SIZE}}{{UNIT}};', ], 'condition' => [ 'feature_divider' => 'yes', ], ] ); $this->add_control( 'feature_divider_width', [ 'label' => esc_html__('Width', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['%', 'px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 1000, ], '%' => [ 'min' => 1, 'max' => 100, ], ], 'default' => [ 'unit' => '%', 'size' => 45, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-feature:after' => 'max-width: {{SIZE}}{{UNIT}};', ], 'condition' => [ 'feature_divider' => 'yes', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'pr_table_section_style_btn', [ 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Button', 'king-addons'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'btn_section_bg_color', 'types' => ['classic', 'gradient'], 'fields_options' => [ 'color' => [ 'default' => '#f7f7f7', ], 'background' => [ 'default' => 'classic', ] ], 'selector' => '{{WRAPPER}} .king-addons-pricing-table-button' ] ); $this->add_control( 'btn_section_padding', [ 'label' => esc_html__('Section Padding', 'king-addons'), 'type' => Controls_Manager::DIMENSIONS, 'default' => [ 'top' => 30, 'right' => 0, 'bottom' => 10, 'left' => 0, ], 'size_units' => ['px'], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'separator' => 'before', ] ); $this->add_control( 'btn_section_padding_divider', [ 'type' => Controls_Manager::DIVIDER, 'style' => 'thick', ] ); $this->start_controls_tabs('tabs_btn_style'); $this->start_controls_tab( 'tab_btn_normal', [ 'label' => esc_html__('Normal', 'king-addons'), ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'btn_bg_color', 'types' => ['classic', 'gradient'], 'fields_options' => [ 'color' => [ 'default' => '#000000', ], 'background' => [ 'default' => 'classic', ] ], 'selector' => '{{WRAPPER}} .king-addons-pricing-table-btn' ] ); $this->add_control( 'btn_color', [ 'label' => esc_html__('Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-btn' => 'color: {{VALUE}}', ], ] ); $this->add_control( 'btn_border_color', [ 'label' => esc_html__('Border Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-btn' => 'border-color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'btn_box_shadow', 'selector' => '{{WRAPPER}} .king-addons-pricing-table-btn', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_btn_hover', [ 'label' => esc_html__('Hover', 'king-addons'), ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'btn_hover_bg_color', 'types' => ['classic', 'gradient'], 'fields_options' => [ 'color' => [ 'default' => '#5b03ff', ], 'background' => [ 'default' => 'classic', ] ], 'selector' => '{{WRAPPER}} .king-addons-pricing-table-btn.king-addons-button-none:hover, {{WRAPPER}} .king-addons-pricing-table-btn:before, {{WRAPPER}} .king-addons-pricing-table-btn:after' ] ); $this->add_control( 'btn_hover_color', [ 'label' => esc_html__('Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-btn:hover' => 'color: {{VALUE}}', ], ] ); $this->add_control( 'btn_hover_border_color', [ 'label' => esc_html__('Border Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-btn:hover' => 'border-color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'btn_hover_box_shadow', 'selector' => '{{WRAPPER}} .king-addons-pricing-table-btn:hover', ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->add_control( 'btn_section_anim_divider', [ 'type' => Controls_Manager::DIVIDER, 'style' => 'thick', ] ); $this->add_control( 'btn_animation', [ 'label' => esc_html__('Select Animation', 'king-addons'), 'type' => 'king-addons-button-animations', 'default' => 'king-addons-button-sweep-to-top', ] ); $this->add_control( 'btn_transition_duration', [ 'label' => esc_html__('Transition Duration (ms)', 'king-addons'), 'type' => Controls_Manager::NUMBER, 'default' => 300, 'min' => 0, 'step' => 50, 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-btn' => 'transition-duration: {{VALUE}}ms', '{{WRAPPER}} .king-addons-pricing-table-btn:before' => 'transition-duration: {{VALUE}}ms', '{{WRAPPER}} .king-addons-pricing-table-btn:after' => 'transition-duration: {{VALUE}}ms', ], ] ); $this->add_control( 'btn_animation_height', [ 'label' => esc_html__('Animation Height', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'range' => [ '%' => [ 'min' => 0, 'max' => 100, ], 'px' => [ 'min' => 0, 'max' => 10, ], ], 'size_units' => ['px'], 'default' => [ 'unit' => 'px', 'size' => 3, ], 'selectors' => [ '{{WRAPPER}} [class*="king-addons-button-underline"]:before' => 'height: {{SIZE}}{{UNIT}};', '{{WRAPPER}} [class*="king-addons-button-overline"]:before' => 'height: {{SIZE}}{{UNIT}};', ], 'render_type' => 'template', 'condition' => [ 'btn_animation' => [ 'king-addons-button-underline-from-left', 'king-addons-button-underline-from-center', 'king-addons-button-underline-from-right', 'king-addons-button-underline-reveal', 'king-addons-button-overline-reveal', 'king-addons-button-overline-from-left', 'king-addons-button-overline-from-center', 'king-addons-button-overline-from-right' ] ], ] ); if (!king_addons_freemius()->can_use_premium_code__premium_only()) { $this->add_control( 'team_member_pro_notice_2', [ 'type' => Controls_Manager::RAW_HTML, 'raw' => 'Advanced button animations are available in the Pro version', 'content_classes' => 'king-addons-pro-notice', ] ); } $this->add_control( 'btn_typography_divider', [ 'type' => Controls_Manager::DIVIDER, 'style' => 'thick', ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'btn_typography', 'selector' => '{{WRAPPER}} .king-addons-pricing-table-btn', 'separator' => 'before', ] ); $this->add_responsive_control( 'btn_padding', [ 'label' => esc_html__('Padding', 'king-addons'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px'], 'default' => [ 'top' => 10, 'right' => 40, 'bottom' => 10, 'left' => 40, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-btn' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'separator' => 'before', ] ); $this->add_control( 'btn_border_type', [ 'label' => esc_html__('Border Type', 'king-addons'), 'type' => Controls_Manager::SELECT, 'options' => [ 'none' => esc_html__('None', 'king-addons'), 'solid' => esc_html__('Solid', 'king-addons'), 'double' => esc_html__('Double', 'king-addons'), 'dotted' => esc_html__('Dotted', 'king-addons'), 'dashed' => esc_html__('Dashed', 'king-addons'), 'groove' => esc_html__('Groove', 'king-addons'), ], 'default' => 'none', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-btn' => 'border-style: {{VALUE}};', ], 'separator' => 'before', ] ); $this->add_responsive_control( 'btn_border_width', [ 'label' => esc_html__('Border Width', 'king-addons'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px'], 'default' => [ 'top' => 1, 'right' => 1, 'bottom' => 1, 'left' => 1, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-btn' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'condition' => [ 'btn_border_type!' => 'none', ], ] ); $this->add_responsive_control( 'btn_border_radius', [ 'label' => esc_html__('Border Radius', 'king-addons'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', '%'], 'default' => [ 'top' => 2, 'right' => 2, 'bottom' => 2, 'left' => 2, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-btn' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'separator' => 'before', ] ); $this->end_controls_section(); $this->start_controls_section( 'pr_table_section_style_text', [ 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Text', 'king-addons'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'text_section_bg_color', 'types' => ['classic', 'gradient'], 'fields_options' => [ 'color' => [ 'default' => '#f7f7f7', ], 'background' => [ 'default' => 'classic', ] ], 'selector' => '{{WRAPPER}} .king-addons-pricing-table-text' ] ); $this->add_control( 'text_section_padding', [ 'label' => esc_html__('Padding', 'king-addons'), 'type' => Controls_Manager::DIMENSIONS, 'default' => [ 'top' => 5, 'right' => 70, 'bottom' => 30, 'left' => 70, ], 'size_units' => ['px'], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-text' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'separator' => 'before' ] ); $this->add_control( 'text_color', [ 'type' => Controls_Manager::COLOR, 'label' => esc_html__('Color', 'king-addons'), 'default' => '#a5a5a5', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-text' => 'color: {{VALUE}};', ], 'separator' => 'before' ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'text_typography', 'label' => esc_html__('Typography', 'king-addons'), 'selector' => '{{WRAPPER}} .king-addons-pricing-table-text' ] ); $this->add_control( 'text_align', [ 'label' => esc_html__('Alignment', 'king-addons'), 'type' => Controls_Manager::CHOOSE, 'label_block' => false, 'default' => 'center', 'options' => [ 'left' => [ 'title' => esc_html__('Left', 'king-addons'), 'icon' => 'eicon-text-align-left', ], 'center' => [ 'title' => esc_html__('Center', 'king-addons'), 'icon' => 'eicon-text-align-center', ], 'right' => [ 'title' => esc_html__('Right', 'king-addons'), 'icon' => 'eicon-text-align-right', ], ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-text' => 'text-align: {{VALUE}};', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'pr_table_section_style_badge', [ 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Badge', 'king-addons'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'badge_text_color', [ 'type' => Controls_Manager::COLOR, 'label' => esc_html__('Color', 'king-addons'), 'default' => '#ffffff', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-badge-inner' => 'color: {{VALUE}};', ], ] ); $this->add_control( 'badge_bg_color', [ 'type' => Controls_Manager::COLOR, 'label' => esc_html__('Background Color', 'king-addons'), 'default' => '#e83d17', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-badge-inner' => 'background-color: {{VALUE}};', '{{WRAPPER}} .king-addons-pricing-table-badge-flag:before' => ' border-top-color: {{VALUE}};', ], 'separator' => 'after', ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'badge_typography', 'label' => esc_html__('Typography', 'king-addons'), 'selector' => '{{WRAPPER}} .king-addons-pricing-table-badge-inner' ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'badge_box_shadow', 'selector' => '{{WRAPPER}} .king-addons-pricing-table-badge-inner' ] ); $this->add_responsive_control( 'badge_padding', [ 'label' => esc_html__('Padding', 'king-addons'), 'type' => Controls_Manager::DIMENSIONS, 'default' => [ 'top' => 0, 'right' => 10, 'bottom' => 0, 'left' => 10, ], 'size_units' => ['px'], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table-badge .king-addons-pricing-table-badge-inner' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'separator' => 'before', ] ); $this->end_controls_section(); $this->start_controls_section( 'section_style_wrapper', [ 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Wrapper', 'king-addons'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->start_controls_tabs('tabs_wrapper_style'); $this->start_controls_tab( 'tab_wrapper_normal', [ 'label' => esc_html__('Normal', 'king-addons'), ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'wrapper_bg_color', 'types' => ['classic', 'gradient'], 'fields_options' => [ 'color' => [ 'default' => '#f7f7f7', ], 'background' => [ 'default' => 'classic', ] ], 'selector' => '{{WRAPPER}} .king-addons-pricing-table' ] ); $this->add_control( 'wrapper_border_color', [ 'label' => esc_html__('Border Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#E8E8E8', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table' => 'border-color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'wrapper_box_shadow', 'selector' => '{{WRAPPER}} .king-addons-pricing-table', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_wrapper_hover', [ 'label' => esc_html__('Hover', 'king-addons'), ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'wrapper_bg_hover_color', 'types' => ['classic', 'gradient'], 'fields_options' => [ 'color' => [ 'default' => '#f7f7f7', ], 'background' => [ 'default' => 'classic', ] ], 'selector' => '{{WRAPPER}} .king-addons-pricing-table:hover' ] ); $this->add_control( 'wrapper_hover_border_color', [ 'label' => esc_html__('Border Color', 'king-addons'), 'type' => Controls_Manager::COLOR, 'default' => '#E8E8E8', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table:hover' => 'border-color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'wrapper_hover_box_shadow', 'selector' => '{{WRAPPER}} .king-addons-pricing-table:hover', ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->add_control( 'wrapper_transition_duration', [ 'label' => esc_html__('Transition Duration', 'king-addons'), 'type' => Controls_Manager::NUMBER, 'default' => 0.1, 'min' => 0, 'max' => 5, 'step' => 0.1, 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table' => 'transition-duration: {{VALUE}}s', ], 'separator' => 'before' ] ); $this->add_control( 'wrapper_padding', [ 'label' => esc_html__('Padding', 'king-addons'), 'type' => Controls_Manager::DIMENSIONS, 'default' => [ 'top' => 0, 'right' => 0, 'bottom' => 0, 'left' => 0, ], 'size_units' => ['px',], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'separator' => 'before', ] ); $this->add_control( 'wrapper_border_type', [ 'label' => esc_html__('Border Type', 'king-addons'), 'type' => Controls_Manager::SELECT, 'options' => [ 'none' => esc_html__('None', 'king-addons'), 'solid' => esc_html__('Solid', 'king-addons'), 'double' => esc_html__('Double', 'king-addons'), 'dotted' => esc_html__('Dotted', 'king-addons'), 'dashed' => esc_html__('Dashed', 'king-addons'), 'groove' => esc_html__('Groove', 'king-addons'), ], 'default' => 'none', 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table' => 'border-style: {{VALUE}};', ], 'separator' => 'before' ] ); $this->add_responsive_control( 'wrapper_border_width', [ 'label' => esc_html__('Border Width', 'king-addons'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px'], 'default' => [ 'top' => 1, 'right' => 1, 'bottom' => 1, 'left' => 1, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'condition' => [ 'wrapper_border_type!' => 'none', ], ] ); $this->add_responsive_control( 'wrapper_border_radius', [ 'label' => esc_html__('Border Radius', 'king-addons'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 50, ], ], 'default' => [ 'top' => 0, 'right' => 0, 'bottom' => 0, 'left' => 0, ], 'selectors' => [ '{{WRAPPER}} .king-addons-pricing-table' => 'border-radius: calc({{SIZE}}{{UNIT}} + 2px);', '{{WRAPPER}} .king-addons-pricing-table-item-first' => 'border-top-left-radius: {{SIZE}}{{UNIT}}; border-top-right-radius: {{SIZE}}{{UNIT}};', '{{WRAPPER}} .king-addons-pricing-table-item-last' => 'border-bottom-left-radius: {{SIZE}}{{UNIT}}; border-bottom-right-radius: {{SIZE}}{{UNIT}};', ], 'separator' => 'before' ] ); $this->end_controls_section(); } private function get_currency_symbol($symbol_name): string { $symbols = [ 'dollar' => '$', 'euro' => '', 'pound' => '£', 'ruble' => '₽', 'peso' => '₱', 'krona' => 'kr', 'lira' => '₤', 'franc' => '₣', 'shekel' => '₪', 'baht' => '฿', 'won' => '₩', 'yen' => '¥', 'guilder' => 'ƒ', 'peseta' => '₧', 'real' => 'R$', 'rupee' => '₨', 'indian_rupee' => '₹', ]; return $symbols[$symbol_name] ?? ''; } protected function render() { $settings = $this->get_settings(); if (empty($settings['pricing_items'])) { return; } ?>