template_instance = Premium_Template_Tags::getInstance();
}
/**
* Retrieve Widget Name.
*
* @since 1.0.0
* @access public
*/
public function get_name() {
return 'premium-woo-cta';
}
/**
* Retrieve Widget Title.
*
* @since 1.0.0
* @access public
*/
public function get_title() {
return __( 'Woo CTA', 'premium-addons-for-elementor' );
}
/**
* Retrieve Widget Keywords.
*
* @since 1.0.0
* @access public
*
* @return string Widget keywords.
*/
public function get_keywords() {
return array( 'pa', 'premium woo cta', 'product', 'woocommerce', 'cart', 'wishlist', 'compare' );
}
/**
* Retrieve Widget Dependent CSS.
*
* @since 1.0.0
* @access public
*
* @return array CSS script handles.
*/
public function get_style_depends() {
return array(
'elementor-icons',
'woocommerce-general',
'premium-addons',
);
}
/**
* Retrieve Widget Dependent JS.
*
* @since 1.0.0
* @access public
*
* @return array JS script handles.
*/
public function get_script_depends() {
$draw_scripts = $this->check_icon_draw() ? array(
'pa-fontawesome-all',
'pa-tweenmax',
'pa-motionpath',
) : array();
return array_merge(
$draw_scripts,
array(
'lottie-js',
'premium-woo-cta',
)
);
}
/**
* Retrieve Widget Icon.
*
* @since 1.0.0
* @access public
*
* @return string widget icon.
*/
public function get_icon() {
return 'pa-woo-cta';
}
/**
* Retrieve Widget Categories.
*
* @since 1.5.1
* @access public
*
* @return array Widget categories.
*/
public function get_categories() {
return array( 'premium-elements' );
}
/**
* Retrieve Widget Support URL.
*
* @access public
*
* @return string support URL.
*/
public function get_custom_help_url() {
return 'https://premiumaddons.com/support/';
}
/**
* Register Woo CTA controls.
*
* @since 1.0.0
* @access protected
*/
protected function register_controls() {
$draw_icon = $this->check_icon_draw();
$this->start_controls_section(
'section_content',
array(
'label' => __( 'General', 'premium-addons-for-elementor' ),
)
);
$this->add_control(
'button_action',
array(
'label' => __( 'Button Type', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SELECT,
'default' => 'add_to_cart',
'options' => array(
'add_to_cart' => __( 'Add to Cart', 'premium-addons-for-elementor' ),
'add_to_wishlist' => apply_filters( 'pa_pro_label', __( 'Add to Wishlist (Pro)', 'premium-addons-for-elementor' ) ),
'add_to_compare' => apply_filters( 'pa_pro_label', __( 'Add to Compare (Pro)', 'premium-addons-for-elementor' ) ),
),
)
);
do_action( 'pa_woo_cta_notice_controls', $this );
$this->add_control(
'use_current_product',
array(
'label' => __( 'Use Current Product', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
)
);
$this->add_control(
'current_product_notice',
array(
'raw' => __( 'This option is used with Elementor single product page template.', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::RAW_HTML,
'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
'condition' => array(
'use_current_product' => 'yes',
),
)
);
$products = Premium_Template_Tags::get_default_posts_list( 'product' );
$this->add_control(
'product_id',
array(
'label' => __( 'Select Product', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SELECT,
'options' => $products,
'condition' => array(
'use_current_product!' => 'yes',
),
)
);
$this->add_control(
'show_quantity',
array(
'label' => __( 'Show Quantity Field', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'condition' => array(
'button_action' => array( 'add_to_cart' ),
),
)
);
$this->add_control(
'redirect_to_cart',
array(
'label' => __( 'Automatically Redirect to Cart Page', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'condition' => array(
'button_action' => array( 'add_to_cart' ),
),
)
);
$this->add_control(
'product_unavailable_message',
array(
'label' => __( 'Product Unavailable Message', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::TEXT,
'default' => __( 'Out of Stock', 'premium-addons-for-elementor' ),
'label_block' => true,
)
);
$this->add_control(
'connect_to_pa_mc',
array(
'label' => __( 'Automatically Open The Mini Cart List', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'description' => __( 'Use this option to open the Premium Mini Cart when a product is added.', 'premium-addons-for-elementor' ),
)
);
$this->add_control(
'connected_mc_id',
array(
'label' => __( 'Widget ID', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::TEXT,
'label_block' => true,
'description' => __( 'Add your Premium Mini Cart widget custom ID ( EX: #my-custom-id )', 'premium-addons-for-elementor' ),
'condition' => array(
'connect_to_pa_mc' => array( 'yes' ),
),
)
);
$this->end_controls_section();
$this->start_controls_section(
'section_button',
array(
'label' => __( 'Button', 'premium-addons-for-elementor' ),
)
);
$this->add_control(
'cart_button_text',
array(
'label' => __( 'Text', 'premium-addons-for-elementor' ),
'default' => __( 'Add to Cart', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::TEXT,
'dynamic' => array( 'active' => true ),
'label_block' => true,
'condition' => array(
'button_action' => array( 'add_to_cart' ),
),
)
);
do_action( 'pa_woo_cta_text_controls', $this );
$common_conditions = array(
'icon_switcher' => 'yes',
);
$this->add_control(
'icon_switcher',
array(
'label' => __( 'Icon', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'separator' => 'before',
)
);
$this->add_control(
'icon_type',
array(
'label' => __( 'Icon Type', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SELECT,
'options' => array(
'icon' => __( 'Icon', 'premium-addons-for-elementor' ),
'image' => __( 'Image', 'premium-addons-for-elementor' ),
'lottie' => __( 'Lottie Animation', 'premium-addons-for-elementor' ),
'svg' => __( 'SVG Code', 'premium-addons-for-elementor' ),
),
'default' => 'icon',
'condition' => $common_conditions,
)
);
$this->add_control(
'icon',
array(
'label' => __( 'Icon', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::ICONS,
'default' => array(
'value' => 'fa fa-shopping-cart',
'library' => 'solid',
),
'conditions' => array(
'relation' => 'or',
'terms' => array(
array(
'terms' => array(
array(
'name' => 'icon_switcher',
'value' => 'yes',
),
array(
'name' => 'icon_type',
'value' => 'icon',
),
),
),
),
),
)
);
$this->add_control(
'custom_svg',
array(
'label' => __( 'SVG Code', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::TEXTAREA,
'description' => 'You can use these sites to create SVGs: Google Fonts and Boxy SVG',
'conditions' => array(
'relation' => 'or',
'terms' => array(
array(
'terms' => array(
array(
'name' => 'icon_switcher',
'value' => 'yes',
),
array(
'name' => 'icon_type',
'value' => 'svg',
),
),
),
),
),
)
);
$draw_icon_conditions = array(
'terms' => array(
array(
'name' => 'icon[library]',
'operator' => '!==',
'value' => 'svg',
),
array(
'relation' => 'or',
'terms' => array(
array(
'terms' => array(
array(
'name' => 'icon_switcher',
'value' => 'yes',
),
array(
'relation' => 'or',
'terms' => array(
array(
'name' => 'icon_type',
'value' => 'icon',
),
array(
'name' => 'icon_type',
'value' => 'svg',
),
),
),
),
),
),
),
),
);
$this->add_control(
'draw_svg',
array(
'label' => __( 'Draw Icon', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'description' => __( 'Enable this option to make the icon drawable. See ', 'premium-addons-for-elementor' ) . 'tutorial',
'classes' => $draw_icon ? '' : 'editor-pa-control-disabled',
'conditions' => $draw_icon_conditions,
)
);
$draw_icon_conditions['terms'] = array_merge(
$draw_icon_conditions['terms'],
array(
array(
'name' => 'draw_svg',
'value' => 'yes',
),
)
);
if ( $draw_icon ) {
$this->add_control(
'path_width',
array(
'label' => __( 'Path Thickness', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'range' => array(
'px' => array(
'min' => 0,
'max' => 50,
'step' => 0.1,
),
),
'conditions' => $draw_icon_conditions,
'selectors' => array(
'{{WRAPPER}} .premium-woo-cta-button svg:not(.premium-btn-svg) *' => 'stroke-width: {{SIZE}}',
),
)
);
$this->add_control(
'svg_sync',
array(
'label' => __( 'Draw All Paths Together', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'conditions' => $draw_icon_conditions,
)
);
$this->add_control(
'svg_loop',
array(
'label' => __( 'Loop', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'true',
'default' => 'true',
'conditions' => $draw_icon_conditions,
)
);
$this->add_control(
'frames',
array(
'label' => __( 'Speed', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::NUMBER,
'description' => __( 'Larger value means longer animation duration.', 'premium-addons-for-elementor' ),
'default' => 5,
'min' => 1,
'max' => 100,
'conditions' => $draw_icon_conditions,
)
);
$this->add_control(
'svg_reverse',
array(
'label' => __( 'Reverse', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'true',
'conditions' => $draw_icon_conditions,
)
);
$this->add_control(
'svg_hover',
array(
'label' => __( 'Only Play on Hover', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'true',
'conditions' => $draw_icon_conditions,
)
);
$this->add_control(
'svg_yoyo',
array(
'label' => __( 'Yoyo Effect', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'conditions' => $draw_icon_conditions,
)
);
} elseif ( method_exists( 'PremiumAddons\Includes\Helper_Functions', 'get_draw_svg_notice' ) ) {
Helper_Functions::get_draw_svg_notice(
$this,
'cta',
array_merge(
$common_conditions,
array(
'icon_type' => array( 'icon', 'svg' ),
'icon[library]!' => 'svg',
)
)
);
}
$this->add_control(
'custom_image',
array(
'label' => __( 'Select Image', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::MEDIA,
'dynamic' => array( 'active' => true ),
'default' => array(
'url' => Utils::get_placeholder_image_src(),
),
'conditions' => array(
'relation' => 'or',
'terms' => array(
array(
'terms' => array(
array(
'name' => 'icon_switcher',
'value' => 'yes',
),
array(
'name' => 'icon_type',
'value' => 'image',
),
),
),
),
),
)
);
$this->add_control(
'lottie_source',
array(
'label' => __( 'Source', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SELECT,
'options' => array(
'url' => __( 'External URL', 'premium-addons-for-elementor' ),
'file' => __( 'Media File', 'premium-addons-for-elementor' ),
),
'default' => 'url',
'conditions' => array(
'relation' => 'or',
'terms' => array(
array(
'terms' => array(
array(
'name' => 'icon_switcher',
'value' => 'yes',
),
array(
'name' => 'icon_type',
'value' => 'lottie',
),
),
),
),
),
)
);
$this->add_control(
'lottie_url',
array(
'label' => __( 'Animation JSON URL', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::TEXT,
'dynamic' => array( 'active' => true ),
'description' => 'Get JSON code URL from here',
'label_block' => true,
'conditions' => array(
'terms' => array(
array(
'name' => 'lottie_source',
'value' => 'url',
),
array(
'relation' => 'or',
'terms' => array(
array(
'terms' => array(
array(
'name' => 'icon_switcher',
'value' => 'yes',
),
array(
'name' => 'icon_type',
'value' => 'lottie',
),
),
),
),
),
),
),
)
);
$this->add_control(
'lottie_file',
array(
'label' => __( 'Upload JSON File', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::MEDIA,
'media_type' => 'application/json',
'conditions' => array(
'terms' => array(
array(
'name' => 'lottie_source',
'value' => 'file',
),
array(
'relation' => 'or',
'terms' => array(
array(
'terms' => array(
array(
'name' => 'icon_switcher',
'value' => 'yes',
),
array(
'name' => 'icon_type',
'value' => 'lottie',
),
),
),
),
),
),
),
)
);
$this->add_control(
'lottie_loop',
array(
'label' => __( 'Loop', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'true',
'default' => 'true',
'conditions' => array(
'relation' => 'or',
'terms' => array(
array(
'terms' => array(
array(
'name' => 'icon_switcher',
'value' => 'yes',
),
array(
'name' => 'icon_type',
'value' => 'lottie',
),
),
),
),
),
)
);
$this->add_control(
'lottie_reverse',
array(
'label' => __( 'Reverse', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'true',
'conditions' => array(
'relation' => 'or',
'terms' => array(
array(
'terms' => array(
array(
'name' => 'icon_switcher',
'value' => 'yes',
),
array(
'name' => 'icon_type',
'value' => 'lottie',
),
),
),
),
),
)
);
$this->add_control(
'lottie_hover',
array(
'label' => __( 'Only Play on Hover', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SWITCHER,
'return_value' => 'true',
'conditions' => array(
'relation' => 'or',
'terms' => array(
array(
'terms' => array(
array(
'name' => 'icon_switcher',
'value' => 'yes',
),
array(
'name' => 'icon_type',
'value' => 'lottie',
),
),
),
),
),
)
);
$this->add_responsive_control(
'icon_position',
array(
'label' => __( 'Icon Position', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::CHOOSE,
'options' => array(
'2' => array(
'title' => __( 'Before', 'premium-addons-for-elementor' ),
'icon' => 'eicon-order-start',
),
'-1' => array(
'title' => __( 'After', 'premium-addons-for-elementor' ),
'icon' => 'eicon-order-end',
),
),
'default' => '2',
'toggle' => false,
'selectors' => array(
'{{WRAPPER}} .premium-button-text-icon-wrapper' => 'order: {{VALUE}}',
),
'condition' => array(
'icon_switcher' => 'yes',
),
)
);
$this->add_control(
'icon_size',
array(
'label' => __( 'Icon Size', 'premium-addons-pro' ),
'type' => Controls_Manager::SLIDER,
'size_units' => array( 'px', 'em' ),
'default' => array(
'size' => 30,
),
'selectors' => array(
'{{WRAPPER}} .premium-woo-cta-button i' => 'font-size: {{SIZE}}{{UNIT}}',
'{{WRAPPER}} .premium-woo-cta-button svg' => 'width: {{SIZE}}{{UNIT}} !important; height: {{SIZE}}{{UNIT}} !important',
'{{WRAPPER}} .premium-woo-cta-button img' => 'width: {{SIZE}}{{UNIT}};',
),
'conditions' => array(
'relation' => 'or',
'terms' => array(
array(
'terms' => array(
array(
'name' => 'icon_switcher',
'value' => 'yes',
),
),
),
),
),
)
);
$this->add_responsive_control(
'icon_spacing',
array(
'label' => __( 'Icon Spacing', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'default' => array(
'size' => 16,
),
'selectors' => array(
'{{WRAPPER}} .premium-woo-cta-button' => 'column-gap: {{SIZE}}px;',
),
'condition' => $common_conditions,
)
);
$this->add_control(
'button_size',
array(
'label' => __( 'Size', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SELECT,
'default' => 'lg',
'options' => array(
'sm' => __( 'Small', 'premium-addons-for-elementor' ),
'md' => __( 'Medium', 'premium-addons-for-elementor' ),
'lg' => __( 'Large', 'premium-addons-for-elementor' ),
'block' => __( 'Block', 'premium-addons-for-elementor' ),
),
'label_block' => true,
'separator' => 'before',
)
);
$this->add_responsive_control(
'button_align',
array(
'label' => __( 'Alignment', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::CHOOSE,
'options' => array(
'left' => array(
'title' => __( 'Left', 'premium-addons-for-elementor' ),
'icon' => 'eicon-text-align-left',
),
'center' => array(
'title' => __( 'Center', 'premium-addons-for-elementor' ),
'icon' => 'eicon-text-align-center',
),
'right' => array(
'title' => __( 'Right', 'premium-addons-for-elementor' ),
'icon' => 'eicon-text-align-right',
),
),
'selectors' => array(
'{{WRAPPER}} .premium-woo-btn-container' => 'justify-content: {{VALUE}}',
),
'default' => 'center',
'toggle' => false,
)
);
Helper_Functions::add_btn_hover_controls( $this, array() );
$this->end_controls_section();
// button style section.
$this->start_controls_section(
'section_style',
array(
'label' => __( 'Button', 'premium-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_STYLE,
)
);
$this->add_group_control(
Group_Control_Typography::get_type(),
array(
'name' => 'button_typo',
'global' => array(
'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
),
'selector' => '{{WRAPPER}} .premium-woo-btn-text',
)
);
$this->add_control(
'svg_color',
array(
'label' => __( 'After Draw Fill Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => false,
'separator' => 'after',
'conditions' => array(
'terms' => array(
array(
'name' => 'draw_svg',
'value' => 'yes',
),
array(
'relation' => 'or',
'terms' => array(
array(
'terms' => array(
array(
'name' => 'icon_switcher',
'value' => 'yes',
),
array(
'name' => 'icon_type',
'value' => 'icon',
),
),
),
),
),
),
),
)
);
$this->start_controls_tabs( 'woo_cta_button_style_tabs' );
$this->start_controls_tab(
'woo_cta_button_style_normal',
array(
'label' => __( 'Normal', 'premium-addons-for-elementor' ),
)
);
$this->add_control(
'woo_button_text_color',
array(
'label' => __( 'Text Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_SECONDARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-woo-cta-button .premium-woo-btn-text' => 'color: {{VALUE}};',
),
)
);
$this->add_control(
'button_icon_color',
array(
'label' => __( 'Icon Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_SECONDARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-woo-cta-button i' => 'color: {{VALUE}};',
'{{WRAPPER}} .premium-woo-btn-icon *' => 'fill: {{VALUE}}',
),
'conditions' => array(
'relation' => 'or',
'terms' => array(
array(
'terms' => array(
array(
'name' => 'icon_switcher',
'value' => 'yes',
),
array(
'name' => 'icon_type',
'value' => 'icon',
),
),
),
),
),
)
);
if ( $draw_icon ) {
$this->add_control(
'stroke_color',
array(
'label' => __( 'Stroke Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_ACCENT,
),
'selectors' => array(
'{{WRAPPER}} .premium-woo-btn-icon *' => 'stroke: {{VALUE}};',
),
'conditions' => array(
'relation' => 'or',
'terms' => array(
array(
'terms' => array(
array(
'name' => 'icon_switcher',
'value' => 'yes',
),
array(
'name' => 'icon_type',
'value' => 'icon',
),
array(
'name' => 'icon_type',
'value' => 'svg',
),
),
),
),
),
)
);
}
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'woo_cta_button_background',
'types' => array( 'classic', 'gradient' ),
'fields_options' => array(
'color' => array(
'global' => array(
'default' => Global_Colors::COLOR_PRIMARY,
),
),
),
'selector' => '{{WRAPPER}} .premium-woo-cta-button, {{WRAPPER}} .premium-button-style2-shutinhor:before , {{WRAPPER}} .premium-button-style2-shutinver:before , {{WRAPPER}} .premium-button-style5-radialin:before , {{WRAPPER}} .premium-button-style5-rectin:before',
)
);
$this->add_group_control(
Group_Control_Border::get_type(),
array(
'name' => 'woo_cta_button_border',
'selector' => '{{WRAPPER}} .premium-woo-cta-button',
)
);
$this->add_control(
'woo_box_button_radius',
array(
'label' => __( 'Border Radius', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => array( 'px', 'em', '%' ),
'default' => array(
'size' => 0,
),
'selectors' => array(
'{{WRAPPER}} .premium-woo-cta-button' => 'border-radius: {{SIZE}}{{UNIT}};',
),
)
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
array(
'label' => __( 'Shadow', 'premium-addons-for-elementor' ),
'name' => 'woo_cta_button_box_shadow',
'selector' => '{{WRAPPER}} .premium-woo-cta-button',
)
);
$this->add_responsive_control(
'woo_cta_button_margin',
array(
'label' => __( 'Margin', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-woo-btn-container' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
),
)
);
$this->add_responsive_control(
'woo_cta_button_padding',
array(
'label' => __( 'Padding', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-woo-cta-button, {{WRAPPER}} .premium-button-line6::after' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
),
)
);
$this->end_controls_tab();
$this->start_controls_tab(
'woo_cta_button_style_hover',
array(
'label' => __( 'Hover', 'premium-addons-for-elementor' ),
)
);
$this->add_control(
'woo_button_text_hover_color',
array(
'label' => __( 'Text Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_PRIMARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-woo-cta-button:hover .premium-woo-btn-text , {{WRAPPER}} .premium-button-line6::after' => 'color: {{VALUE}};',
),
)
);
$this->add_control(
'button_icon_color_hover',
array(
'label' => __( 'Icon Color', 'premium-addons-pro' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_PRIMARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-woo-cta-button:hover i' => 'color: {{VALUE}};',
'{{WRAPPER}} .premium-woo-cta-button:hover .premium-woo-btn-icon *' => 'fill: {{VALUE}}',
),
'conditions' => array(
'relation' => 'or',
'terms' => array(
array(
'terms' => array(
array(
'name' => 'icon_switcher',
'value' => 'yes',
),
array(
'name' => 'icon_type',
'value' => 'icon',
),
),
),
),
),
)
);
$this->add_control(
'underline_color',
array(
'label' => __( 'Line Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_SECONDARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-btn-svg' => 'stroke: {{VALUE}};',
'{{WRAPPER}} .premium-button-line2::before, {{WRAPPER}} .premium-button-line4::before, {{WRAPPER}} .premium-button-line5::before, {{WRAPPER}} .premium-button-line5::after, {{WRAPPER}} .premium-button-line6::before, {{WRAPPER}} .premium-button-line7::before' => 'background-color: {{VALUE}};',
),
'condition' => array(
'premium_button_hover_effect' => 'style8',
),
)
);
$this->add_control(
'first_layer_hover',
array(
'label' => __( 'Layer #1 Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_SECONDARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-button-style7 .premium-button-text-icon-wrapper:before' => 'background-color: {{VALUE}}',
),
'condition' => array(
'premium_button_hover_effect' => 'style7',
),
)
);
$this->add_control(
'second_layer_hover',
array(
'label' => __( 'Layer #2 Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_TEXT,
),
'selectors' => array(
'{{WRAPPER}} .premium-button-style7 .premium-button-text-icon-wrapper:after' => 'background-color: {{VALUE}}',
),
'condition' => array(
'premium_button_hover_effect' => 'style7',
),
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'woo_cta_button_background_hover',
'types' => array( 'classic', 'gradient' ),
'fields_options' => array(
'color' => array(
'global' => array(
'default' => Global_Colors::COLOR_TEXT,
),
),
),
'selector' => '{{WRAPPER}} .premium-button-none:hover, {{WRAPPER}} .premium-button-style8:hover, {{WRAPPER}} .premium-button-style1:before, {{WRAPPER}} .premium-button-style2-shutouthor:before, {{WRAPPER}} .premium-button-style2-shutoutver:before, {{WRAPPER}} .premium-button-style2-shutinhor, {{WRAPPER}} .premium-button-style2-shutinver, {{WRAPPER}} .premium-button-style2-dshutinhor:before, {{WRAPPER}} .premium-button-style2-dshutinver:before, {{WRAPPER}} .premium-button-style2-scshutouthor:before, {{WRAPPER}} .premium-button-style2-scshutoutver:before, {{WRAPPER}} .premium-button-style5-radialin, {{WRAPPER}} .premium-button-style5-radialout:before, {{WRAPPER}} .premium-button-style5-rectin, {{WRAPPER}} .premium-button-style5-rectout:before, {{WRAPPER}} .premium-button-style6-bg, {{WRAPPER}} .premium-button-style6:before',
'condition' => array(
'premium_button_hover_effect!' => 'style7',
),
),
);
$this->add_group_control(
Group_Control_Border::get_type(),
array(
'name' => 'woo_cta_button_border_hover',
'selector' => '{{WRAPPER}} .premium-woo-cta-button:hover',
)
);
$this->add_control(
'woo_cta_button_border_radius_hover',
array(
'label' => __( 'Border Radius', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-woo-cta-button:hover' => 'border-radius: {{SIZE}}{{UNIT}};',
),
)
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
array(
'label' => __( 'Shadow', 'premium-addons-for-elementor' ),
'name' => 'woo_cta_button_shadow_hover',
'selector' => '{{WRAPPER}} .premium-woo-cta-button:hover',
)
);
$this->add_responsive_control(
'woo_cta_button_margin_hover',
array(
'label' => __( 'Margin', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-woo-cta-button:hover' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
),
)
);
$this->add_responsive_control(
'woo_cta_button_padding_hover',
array(
'label' => __( 'Padding', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-woo-cta-button:hover' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
),
)
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->end_controls_section();
// Quantity style section.
$this->start_controls_section(
'quantity_style',
array(
'label' => __( ' Quantity style', 'premium-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => array(
'button_action' => array( 'add_to_cart' ),
'show_quantity' => 'yes',
),
)
);
$this->add_group_control(
Group_Control_Typography::get_type(),
array(
'name' => 'quantity_typography',
'label' => __( 'Typography', 'premium-addons-for-elementor' ),
'global' => array(
'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
),
'selector' => '{{WRAPPER}} .product-quantity , {{WRAPPER}} .grouped_product_qty',
)
);
$this->add_control(
'product_qunatity_color',
array(
'label' => __( 'Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_SECONDARY,
),
'selectors' => array(
'{{WRAPPER}} .product-quantity , {{WRAPPER}} .grouped_product_qty' => 'color: {{VALUE}};',
),
)
);
$this->add_responsive_control(
'quantity_spacing',
array(
'label' => __( 'Quantity Spacing', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'default' => array(
'size' => 10,
),
'selectors' => array(
'{{WRAPPER}} .premium-woo-btn-container' => 'gap: {{SIZE}}px;',
),
)
);
$this->start_controls_tabs( 'woo_cta_quantity_style_tabs' );
$this->start_controls_tab(
'woo_cta_quantity_style_normal',
array(
'label' => __( 'Normal', 'premium-addons-for-elementor' ),
)
);
$this->add_control(
'quantity_input_background_color',
array(
'label' => __( 'Input Background Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} .product-quantity , {{WRAPPER}} .grouped_product_qty' => 'background-color: {{VALUE}};',
),
)
);
$this->add_control(
'quantity_icons_background_color',
array(
'label' => __( 'Plus And Minus Background Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} .quantity-button' => 'background-color: {{VALUE}};',
),
)
);
$this->add_control(
'quantity_border_color',
array(
'label' => __( 'Border Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} .product-quantity , {{WRAPPER}} .grouped_product_qty , {{WRAPPER}} .quantity-button' => 'border-color: {{VALUE}};',
),
)
);
$this->end_controls_tab();
$this->start_controls_tab(
'woo_cta_quantity_style_hover',
array(
'label' => __( 'Hover', 'premium-addons-for-elementor' ),
)
);
$this->add_control(
'quantity_input_background_color_hover',
array(
'label' => __( 'Input Background Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} .product-quantity:hover , {{WRAPPER}} .grouped_product_qty:hover' => 'background-color: {{VALUE}};',
),
)
);
$this->add_control(
'quantity_icons_background_color_hover',
array(
'label' => __( 'Plus And Minus Background Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} .quantity-button:hover' => 'background-color: {{VALUE}};',
),
)
);
$this->add_control(
'quantity_border_color_hover',
array(
'label' => __( 'Border Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'selectors' => array(
'{{WRAPPER}} .product-quantity:hover , {{WRAPPER}} .grouped_product_qty:hover , {{WRAPPER}} .quantity-button:hover' => 'border-color: {{VALUE}};',
),
)
);
$this->end_controls_tab();
$this->end_controls_tabs( 'woo_cta_quantity_style_tabs' );
$this->end_controls_section();
// product message unavilabe style section.
$this->start_controls_section(
'product_message',
array(
'label' => __( 'Product Message', 'premium-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_STYLE,
)
);
$this->add_control(
'product_message_color',
array(
'label' => __( 'Text Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'global' => array(
'default' => Global_Colors::COLOR_PRIMARY,
),
'selectors' => array(
'{{WRAPPER}} .premium-unavailable-message , {{WRAPPER}} .view-cart-button , {{WRAPPER}} .pro-wish , {{WRAPPER}} .premium-cta-message-box ' => 'color: {{VALUE}};',
),
)
);
$this->add_group_control(
Group_Control_Typography::get_type(),
array(
'name' => 'mesaage_typography',
'global' => array(
'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
),
'selector' => '{{WRAPPER}} .premium-unavailable-message , {{WRAPPER}} .view-cart-button , {{WRAPPER}} .pro-wish , {{WRAPPER}} .premium-cta-message-box ',
)
);
$this->add_responsive_control(
'message_margin',
array(
'label' => __( 'Margin', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'default' => array(
'size' => 10,
),
'separator' => 'before',
'selectors' => array(
'{{WRAPPER}} .premium-unavailable-message , {{WRAPPER}} .view-cart-button , {{WRAPPER}} .pro-wish , {{WRAPPER}} .premium-cta-message-box ' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
),
)
);
$this->end_controls_section();
// variation style section.
$this->start_controls_section(
'section_variation_styles',
array(
'label' => __( 'Groupred/Variations Table Product', 'premium-addons-for-elementor' ),
'tab' => Controls_Manager::TAB_STYLE,
)
);
// table varation style.
$this->add_control(
'table_style',
array(
'label' => __( 'Variations Table Style', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::HEADING,
)
);
$this->start_controls_tabs( 'woo_cta_varation_table_style_tabs' );
$this->start_controls_tab(
'variation_table_style_normal_tab',
array(
'label' => __( 'Normal', 'premium-addons-for-elementor' ),
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'variation_table_background',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-variations , {{WRAPPER}} .premium-grouped-product',
)
);
$this->add_responsive_control(
'variation_table_padding',
array(
'label' => __( 'Padding', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-variations , {{WRAPPER}} .premium-grouped-product' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
),
)
);
$this->add_group_control(
Group_Control_Border::get_type(),
array(
'name' => 'variation_table_border',
'selector' => '{{WRAPPER}} .premium-variations , {{WRAPPER}} .premium-grouped-product',
)
);
$this->add_control(
'variation_table_border_radius',
array(
'label' => __( 'Border Radius', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => array( 'px', '%', 'em' ),
'selectors' => array(
'{{WRAPPER}} .premium-variations , {{WRAPPER}} .premium-grouped-product' => 'border-radius: {{SIZE}}{{UNIT}};',
),
)
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
array(
'label' => __( 'Shadow', 'premium-addons-for-elementor' ),
'name' => 'variation_table_shadow',
'selector' => '{{WRAPPER}} .premium-variations , {{WRAPPER}} .premium-grouped-product',
)
);
$this->end_controls_tab();
$this->start_controls_tab(
'variation_table_style_hover_tab',
array(
'label' => __( 'Hover', 'premium-addons-for-elementor' ),
)
);
$this->add_group_control(
Group_Control_Background::get_type(),
array(
'name' => 'variation_table_background_hover',
'types' => array( 'classic', 'gradient' ),
'selector' => '{{WRAPPER}} .premium-variations:hover {{WRAPPER}} .premium-grouped-product:hover',
)
);
$this->add_responsive_control(
'variation_table_padding_hover',
array(
'label' => __( 'Padding', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-variations , {{WRAPPER}} .premium-grouped-product' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
),
)
);
$this->add_group_control(
Group_Control_Border::get_type(),
array(
'name' => 'variation_table_border_hover',
'selector' => '{{WRAPPER}} .premium-variations:hover , {{WRAPPER}} .premium-grouped-product:hover',
)
);
$this->add_control(
'variation_table_border_radius_hover',
array(
'label' => __( 'Border Radius', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => array( 'px', '%', 'em' ),
'selectors' => array(
'{{WRAPPER}} .premium-variations:hover , {{WRAPPER}} .premium-grouped-product:hover' => 'border-radius: {{SIZE}}{{UNIT}};',
),
)
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
array(
'label' => __( 'Shadow', 'premium-addons-for-elementor' ),
'name' => 'variation_table_shadow_hover',
'selector' => '{{WRAPPER}} .premium-variations:hover , {{WRAPPER}} .premium-grouped-product:hover',
)
);
$this->end_controls_tab();
$this->end_controls_tabs( 'woo_cta_varation_table_style_tabs' );
$this->add_control(
'attribute_label',
array(
'label' => __( 'Attribute Name', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::HEADING,
)
);
$this->add_group_control(
Group_Control_Typography::get_type(),
array(
'name' => 'attribute_typography',
'label' => __( 'Label Typography', 'premium-addons-for-elementor' ),
'global' => array(
'default' => Global_Typography::TYPOGRAPHY_PRIMARY,
),
'selector' => '{{WRAPPER}} .premium-variations th label , {{WRAPPER}} .premium-grouped-product th , {{WRAPPER}} .premium-grouped-product td',
)
);
$this->start_controls_tabs( 'attribute_varation_style_tabs' );
$this->start_controls_tab(
'variation_attribute_style_normal_tab',
array(
'label' => __( 'Normal', 'premium-addons-for-elementor' ),
)
);
$this->add_control(
'attribute_label_color',
array(
'label' => __( 'Label Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'default' => '#333333',
'selectors' => array(
'{{WRAPPER}} .premium-variations th label , {{WRAPPER}} .premium-grouped-product th' => 'color: {{VALUE}};',
),
)
);
$this->add_control(
'attribute_label_odd_bg_color',
array(
'label' => __( 'Odd Background Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'default' => '#F2F2F2',
'selectors' => array(
'{{WRAPPER}} .premium-variations tr:nth-child(odd) th , {{WRAPPER}} .premium-grouped-product th:nth-child(odd)' => 'background-color: {{VALUE}};',
),
)
);
$this->add_control(
'attribute_label_even_bg_color',
array(
'label' => __( 'Even Background Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'default' => '#FFFFFF',
'selectors' => array(
'{{WRAPPER}} .premium-variations tr:nth-child(even) th , {{WRAPPER}} .premium-grouped-product tr th:nth-child(even) ' => 'background-color: {{VALUE}};',
),
)
);
$this->add_responsive_control(
'attribute_label_padding',
array(
'label' => __( 'Padding', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-variations th , {{WRAPPER}} .premium-variations td' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .premium-grouped-product th , {{WRAPPER}} .premium-grouped-product td' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
),
)
);
$this->end_controls_tab();
$this->start_controls_tab(
'variation_attribute_style_normal_tab_hover',
array(
'label' => __( 'Hover', 'premium-addons-for-elementor' ),
)
);
$this->add_control(
'attribute_label_color_hover',
array(
'label' => __( 'Label Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'default' => '#333333',
'selectors' => array(
'{{WRAPPER}} .premium-variations th label:hover , {{WRAPPER}} .premium-grouped-product th:hover ' => 'color: {{VALUE}};',
),
)
);
$this->add_control(
'attribute_label_odd_bg_color_hover',
array(
'label' => __( 'Odd Background Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'default' => '#FFFFFF',
'selectors' => array(
'{{WRAPPER}} .premium-variations tr:nth-child(odd) th:hover , {{WRAPPER}} .premium-grouped-product tr th:nth-child(odd):hover' => 'background-color: {{VALUE}};',
),
)
);
$this->add_control(
'attribute_label_even_bg_color_hover',
array(
'label' => __( 'Even Background Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'default' => '#F2F2F2',
'selectors' => array(
'{{WRAPPER}} .premium-variations tr:nth-child(even) th:hover , {{WRAPPER}} .premium-grouped-product tr th:nth-child(even):hover' => 'background-color: {{VALUE}};',
),
)
);
$this->add_responsive_control(
'attribute_label_padding_hover',
array(
'label' => __( 'Padding', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => array( 'px', 'em', '%' ),
'selectors' => array(
'{{WRAPPER}} .premium-variations th:hover , {{WRAPPER}} .premium-variations td:hover' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .premium-grouped-product th:hover , {{WRAPPER}} .premium-grouped-product td:hover' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
),
)
);
$this->end_controls_tab();
$this->end_controls_tabs( 'attribute_varation_style_tabs' );
$this->add_control(
'woo_content_table_style',
array(
'label' => __( 'Content Table Style', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::HEADING,
)
);
$this->add_group_control(
Group_Control_Typography::get_type(),
array(
'name' => 'content_grouped_table',
'label' => __( 'Content Typography', 'premium-addons-for-elementor' ),
'selector' => '{{WRAPPER}} .premium-grouped-product td',
)
);
$this->add_control(
'content_table_color',
array(
'label' => __( 'Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'default' => '#787878',
'selectors' => array(
'{{WRAPPER}} .premium-grouped-product td' => 'color: {{VALUE}};',
),
)
);
$this->add_control(
'variation_td_odd_content_bg_color',
array(
'label' => __( 'Odd Background Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'default' => '#F2F2F2',
'selectors' => array(
'{{WRAPPER}} .premium-variations tr:nth-child(odd) td , {{WRAPPER}} .premium-grouped-product tr:nth-child(odd) td ' => 'background-color: {{VALUE}};',
),
)
);
$this->add_control(
'variation_td_even_content_bg_color',
array(
'label' => __( 'Even Background Color', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::COLOR,
'default' => '#FFFFFF',
'selectors' => array(
'{{WRAPPER}} .premium-variations tr:nth-child(even) td, {{WRAPPER}} .premium-grouped-product tr:nth-child(even) td' => 'background-color: {{VALUE}};',
),
)
);
$this->add_control(
'select_style',
array(
'label' => __( 'Select Style', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::HEADING,
)
);
$this->add_group_control(
Group_Control_Border::get_type(),
array(
'name' => 'variations_select',
'selector' => '{{WRAPPER}} .premium-variations .product-attribute',
)
);
$this->add_control(
'variation_select_border_radius',
array(
'label' => __( 'Border Radius', 'premium-addons-for-elementor' ),
'type' => Controls_Manager::SLIDER,
'size_units' => array( 'px', 'em', '%' ),
'default' => array(
'size' => 0,
),
'selectors' => array(
'{{WRAPPER}} .premium-variations .product-attribute' => 'border-radius: {{SIZE}}{{UNIT}};',
),
)
);
$this->end_controls_section();
}
/**
* Render Get Woocommerce Product Variations
*
* @since 4.10.36
* @access private
*
* @param number $product_id product id.
*/
private function get_woocommerce_product_attributes_for_add_to_cart( $product_id ) {
$product = wc_get_product( $product_id );
if ( ! $product || ! $product->is_type( 'variable' ) ) {
return array();
}
$attributes = $product->get_attributes();
$attribute_terms = array();
foreach ( $attributes as $attribute_name => $attribute ) {
if ( $attribute->is_taxonomy() ) {
$taxonomy = $attribute->get_taxonomy();
$terms = get_terms(
array(
'taxonomy' => $taxonomy,
'hide_empty' => false,
)
);
if ( ! is_wp_error( $terms ) ) {
$attribute_terms[ $taxonomy ] = $terms;
}
} else {
$attribute_terms[ $attribute_name ] = $attribute->get_options();
}
}
return $attribute_terms;
}
/**
* Render Image Icon
*
* @since 4.10.36
* @access private
*/
private function render_image_icon() {
$settings = $this->get_settings_for_display();
$icon_type = $settings['icon_type'];
$alt = Control_Media::get_image_alt( $settings['custom_image'] );
$this->add_render_attribute(
'icon_img',
array(
'src' => $settings['custom_image']['url'],
'alt' => $alt,
)
);
if ( 'image' === $icon_type ) {
$this->add_render_attribute( 'icon_img', 'class', 'premium-woo-btn-icon' );
}
?>
get_render_attribute_string( 'icon_img' ) ); ?>>
get_settings_for_display();
$papro_activated = apply_filters( 'papro_activated', false );
if ( ! $papro_activated || version_compare( PREMIUM_PRO_ADDONS_VERSION, '2.9.20', '<' ) ) {
if ( 'add_to_cart' !== $settings['button_action'] ) {
?>
Product | Price | Quantity |
---|---|---|
get_name() ); ?> | get_price() ) ); ?> |
|