start_section(
esc_html__( 'Content Visibility', 'shopbuilder' ),
self::$tab
);
$fields['general_visibility'] = $obj->el_heading( esc_html__( 'General Visibility', 'shopbuilder' ) );
$fields['show_title'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Product Title?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show product title.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
];
$fields['show_short_desc'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Short Description?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show product short description.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'condition' => [ 'layout!' => [ 'grid-layout2', 'slider-layout2' ] ],
];
$fields['show_price'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Product Price?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show product price.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
];
$fields['show_rating'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Product Rating?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show product rating.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
];
$fields['show_badges'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Product Badges?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show product badges.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
];
$fields['show_categories'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Product Categories?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show product categories.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'condition' => [ 'layout!' => [ 'grid-layout2', 'slider-layout2' ] ],
];
$fields['single_category'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Only First Category?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show only the first category.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
'condition' => [
'show_categories' => [ 'yes' ],
'layout!' => [ 'grid-layout2', 'slider-layout2' ],
],
];
$fields['action_btn_visibility'] = $obj->el_heading( esc_html__( 'Action Buttons Visibility', 'shopbuilder' ), 'before' );
$fields['show_add_to_cart'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Add to Cart Button?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show product add to cart.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
];
$wishlist = Fns::get_options( 'modules', 'wishlist' );
$compare = Fns::get_options( 'modules', 'compare' );
$quick_view = Fns::get_options( 'modules', 'quick_view' );
if ( 'on' === ( $wishlist['active'] ?? '' ) ) {
$fields['show_wishlist'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Wishlist Button?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show product wishlist.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
];
}
if ( 'on' === ( $quick_view['active'] ?? '' ) ) {
$fields['show_quick_view'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Quick View Button?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show product quick view.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
];
}
if ( 'on' === ( $compare['active'] ?? '' ) ) {
$fields['show_compare'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Compare Button?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show product compare.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
];
}
$fields['visibility_section_end'] = $obj->end_section();
return apply_filters( 'rtsb/elements/elementor/visibility_control', $fields, $obj );
}
/**
* Content ordering section
*
* @param object $obj Reference object.
*
* @return array
*/
public static function content_ordering( $obj ) {
$fields['ordering_section'] = $obj->start_section(
esc_html__( 'Content Ordering', 'shopbuilder' ),
self::$tab
);
$fields['ordering_note'] = [
'type' => 'html',
'raw' => '',
'content_classes' => 'elementor-panel-heading-title',
];
$fields['custom_ordering'] = [
'type' => 'switch',
'label' => esc_html__( 'Enable Custom Ordering?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to enable elements custom ordering.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'separator' => $obj->pro_class(),
'classes' => $obj->pro_class(),
'condition' => [
'layout!' => [ 'grid-layout4', 'list-layout5', 'list-layout6', 'slider-layout4', 'slider-layout8' ],
],
];
$fields['ordering_section_end'] = $obj->end_section();
return apply_filters( 'rtsb/elementor/ordering_control', $fields, $obj );
}
/**
* Action buttons section
*
* @param object $obj Reference object.
*
* @return array
*/
public static function action_buttons( $obj ) {
$fields['action_visibility_section'] = $obj->start_section(
esc_html__( 'Action Buttons', 'shopbuilder' ),
self::$tab
);
$fields['add_to_cart_note'] = $obj->el_heading(
esc_html__( 'Add to Cart Button', 'shopbuilder' ),
'default',
[],
[ 'show_add_to_cart' => [ 'yes' ] ]
);
// TODO:: Variable product button text change option.
$fields['show_cart_text'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Add to Cart Text?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show add to cart text.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
'condition' => [ 'show_add_to_cart' => [ 'yes' ] ],
];
$fields['add_to_cart_text'] = [
'type' => 'text',
'label' => esc_html__( 'Add to Cart Text', 'shopbuilder' ),
'default' => esc_html__( 'Add to Cart', 'shopbuilder' ),
'description' => esc_html__( 'Please enter the add to cart text.', 'shopbuilder' ),
'condition' => [
'show_cart_text' => [ 'yes' ],
'show_add_to_cart' => [ 'yes' ],
],
'label_block' => true,
];
$fields['add_to_cart_success_text'] = [
'type' => 'text',
'label' => esc_html__( 'Add to Cart Success Text', 'shopbuilder' ),
'default' => esc_html__( 'Added!', 'shopbuilder' ),
'description' => esc_html__( 'Please enter the add to cart success text.', 'shopbuilder' ),
'condition' => [
'show_cart_text' => [ 'yes' ],
'show_add_to_cart' => [ 'yes' ],
],
'label_block' => true,
];
$fields['show_cart_icon'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Add to Cart Icon?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show add to cart icon.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
'condition' => [ 'show_add_to_cart' => [ 'yes' ] ],
];
$fields['add_to_cart_icon'] = [
'type' => 'icons',
'label' => esc_html__( 'Choose Add to Cart Icon', 'shopbuilder' ),
'default' => [
'value' => 'rtsb-icon rtsb-icon-cart',
'library' => 'rtsb-fonts',
],
'condition' => [
'show_cart_icon' => [ 'yes' ],
'show_add_to_cart' => [ 'yes' ],
],
];
$fields['add_to_cart_success_icon'] = [
'type' => 'icons',
'label' => esc_html__( 'Choose Add to Cart Success Icon', 'shopbuilder' ),
'default' => [
'value' => 'rtsb-icon rtsb-icon-check',
'library' => 'rtsb-fonts',
],
'condition' => [
'show_cart_icon' => [ 'yes' ],
'show_add_to_cart' => [ 'yes' ],
],
];
$fields['wishlist_note'] = $obj->el_heading(
esc_html__( 'Wishlist Button', 'shopbuilder' ),
'before',
[],
[ 'show_wishlist' => [ 'yes' ] ]
);
$fields['show_wishlist_text'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Wishlist Text?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show wishlist text.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => false,
'condition' => [ 'show_wishlist' => [ 'yes' ] ],
];
$fields['show_wishlist_icon'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Wishlist Icon?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show wishlist icon.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
'condition' => [ 'show_wishlist' => [ 'yes' ] ],
];
$fields['wishlist_icon'] = [
'type' => 'icons',
'label' => esc_html__( 'Choose Wishlist Icon', 'shopbuilder' ),
'default' => [
'value' => 'rtsb-icon rtsb-icon-heart-empty',
'library' => 'rtsb-fonts',
],
'condition' => [
'show_wishlist' => [ 'yes' ],
'show_wishlist_icon' => [ 'yes' ],
],
];
$fields['wishlist_icon_added'] = [
'type' => 'icons',
'label' => esc_html__( 'Choose Wishlist Success Icon', 'shopbuilder' ),
'default' => [
'value' => 'rtsb-icon rtsb-icon-heart',
'library' => 'rtsb-fonts',
],
'condition' => [ 'show_wishlist' => [ 'yes' ] ],
];
$fields['quick_view_note'] = $obj->el_heading(
esc_html__( 'Quick View Button', 'shopbuilder' ),
'before',
[],
[ 'show_quick_view' => [ 'yes' ] ]
);
$fields['show_quick_view_text'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Quick View Text?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show quick view text.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => false,
'condition' => [ 'show_quick_view' => [ 'yes' ] ],
];
$fields['show_quick_view_icon'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Quick View Icon?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show quick view icon.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
'condition' => [ 'show_quick_view' => [ 'yes' ] ],
];
$fields['quick_view_icon'] = [
'type' => 'icons',
'label' => esc_html__( 'Choose Quick View Icon', 'shopbuilder' ),
'default' => [
'value' => 'rtsb-icon rtsb-icon-eye',
'library' => 'rtsb-fonts',
],
'condition' => [
'show_quick_view' => [ 'yes' ],
'show_quick_view_icon' => [ 'yes' ],
],
];
$fields['compare_note'] = $obj->el_heading(
esc_html__( 'Compare Button', 'shopbuilder' ),
'before',
[],
[ 'show_compare' => [ 'yes' ] ]
);
$fields['show_compare_text'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Compare Text?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show compare text.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => false,
'condition' => [ 'show_compare' => [ 'yes' ] ],
];
$fields['show_compare_icon'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Compare Icon?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show compare icon.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
'condition' => [ 'show_compare' => [ 'yes' ] ],
];
$fields['comparison_icon'] = [
'type' => 'icons',
'label' => esc_html__( 'Choose Compare Icon', 'shopbuilder' ),
'default' => [
'value' => 'rtsb-icon rtsb-icon-exchange',
'library' => 'rtsb-fonts',
],
'condition' => [
'show_compare' => [ 'yes' ],
'show_compare_icon' => [ 'yes' ],
],
];
$fields['comparison_icon_added'] = [
'type' => 'icons',
'label' => esc_html__( 'Choose Compare Success Icon', 'shopbuilder' ),
'default' => [
'value' => 'rtsb-icon rtsb-icon-check',
'library' => 'rtsb-fonts',
],
'condition' => [ 'show_compare' => [ 'yes' ] ],
];
$fields['action_visibility_section_end'] = $obj->end_section();
return apply_filters( 'rtsb/elements/elementor/action_buttons', $fields, $obj );
}
/**
* Category Visibility section
*
* @param object $obj Reference object.
*
* @return array
*/
public static function cat_content_visibility( $obj ) {
$status = ! rtsb()->has_pro();
$fields['cat_visibility_section'] = $obj->start_section(
esc_html__( 'Content Visibility', 'shopbuilder' ),
self::$tab
);
$fields['show_title'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Category Title?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show category title.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
];
$fields['show_short_desc'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Category Description?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show category description.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
];
$fields['show_count'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Product Count?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show product count.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
];
$fields['show_badges'] = [
'type' => 'switch',
'label' => esc_html__( 'Show Custom Badge?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to show custom category badge.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
'condition' => [ 'layout!' => [ 'category-layout1', 'category-layout2' ] ],
];
if ( 'rtsb-product-categories-general' === $obj->rtsb_base ) {
$fields['show_count']['separator'] = rtsb()->has_pro() ? 'default' : 'after';
$fields['active_cat_slider'] = [
'type' => 'switch',
'label' => esc_html__( 'Active Category Slider?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to active category slider.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'classes' => $obj->pro_class(),
'is_pro' => $status,
];
}
$fields['cat_visibility_section_end'] = $obj->end_section();
return $fields;
}
/**
* Image section
*
* @param object $obj Reference object.
*
* @return array
*/
public static function image( $obj ) {
$fields['image_section'] = $obj->start_section(
esc_html__( 'Product Images', 'shopbuilder' ),
'settings'
);
$fields['show_featured_image'] = [
'type' => 'switch',
'label' => esc_html__( 'Display Featured Image?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to display featured image.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
'separator' => rtsb()->has_pro() ? 'default' : 'after',
];
$fields['show_product_gallery'] = [
'type' => 'switch',
'label' => esc_html__( 'Activate Product Image Gallery Slider', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to display product image gallery slider.', 'shopbuilder' ),
'classes' => $obj->pro_class(),
'condition' => [ 'show_featured_image' => [ 'yes' ] ],
];
$fields['show_hover_image'] = [
'type' => 'switch',
'label' => esc_html__( 'Display Gallery Image on Hover?', 'shopbuilder' ),
'description' => __( 'Switch on to display gallery image on hover.
Note: It will display the first gallery image on hover.', 'shopbuilder' ) . ( function_exists( 'rtwpvsp' ) ? esc_html__( ' It will not work if variation swatches are enabled.', 'shopbuilder' ) : '' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'separator' => rtsb()->has_pro() ? 'default' : 'before-short',
'default' => 'yes',
'condition' => rtsb()->has_pro() ? [
'show_featured_image' => [ 'yes' ],
'show_product_gallery!' => [ 'yes' ],
] : [ 'show_featured_image' => [ 'yes' ] ],
];
$fields['image_hover_animation'] = [
'type' => 'select2',
'label' => esc_html__( 'Image Hover Animation', 'shopbuilder' ),
'description' => esc_html__( 'Please choose image hover animation.', 'shopbuilder' ),
'options' => [
'zoom_in' => esc_html__( 'Zoom In', 'shopbuilder' ),
'zoom_out' => esc_html__( 'Zoom Out', 'shopbuilder' ),
'none' => esc_html__( 'None', 'shopbuilder' ),
],
'label_block' => true,
'condition' => [ 'show_featured_image' => [ 'yes' ] ],
'default' => 'zoom_in',
'separator' => rtsb()->has_pro() ? 'default' : 'after',
];
$fields['gallery_hover_animation'] = [
'type' => 'select2',
'label' => esc_html__( 'Gallery Image Hover Animation', 'shopbuilder' ),
'description' => esc_html__( 'Please choose gallery image hover animation.', 'shopbuilder' ),
'options' => [
'fade' => esc_html__( 'Fade', 'shopbuilder' ),
'slide' => esc_html__( 'Slide Up', 'shopbuilder' ),
'slide-down' => esc_html__( 'Slide Down', 'shopbuilder' ),
'slide-left' => esc_html__( 'Slide Left', 'shopbuilder' ),
'slide-right' => esc_html__( 'Slide Right', 'shopbuilder' ),
],
'label_block' => true,
'condition' => rtsb()->has_pro() ? [
'show_featured_image' => [ 'yes' ],
'show_hover_image' => [ 'yes' ],
'show_product_gallery!' => [ 'yes' ],
] : [
'show_featured_image' => [ 'yes' ],
'show_hover_image' => [ 'yes' ],
],
'default' => 'fade',
'classes' => $obj->pro_class(),
];
$fields['image_size_note'] = $obj->el_heading(
esc_html__( 'Image Size', 'shopbuilder' ),
'before',
[],
[ 'show_featured_image' => [ 'yes' ] ]
);
$fields = array_merge( $fields, self::image_size_controls( 'grid' ) );
$fields['image_section_end'] = $obj->end_section();
return $fields;
}
/**
* Category Image section
*
* @param object $obj Reference object.
*
* @return array
*/
public static function cat_image( $obj ) {
$fields['cat_image_section'] = $obj->start_section(
esc_html__( 'Image', 'shopbuilder' ),
self::$tab
);
$fields['show_cat_image'] = [
'type' => 'switch',
'label' => esc_html__( 'Display Category Image?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to display category image.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
];
$fields['show_custom_image'] = [
'type' => 'switch',
'label' => esc_html__( 'Add Custom Image?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to select a custom category image. Setting a custom image will override the category image.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'classes' => $obj->pro_class(),
];
$fields['custom_image'] = [
'type' => 'media',
'label' => esc_html__( 'Upload Custom Image', 'shopbuilder' ),
'description' => esc_html__( 'Please choose the custom category image. It will override the default image.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'condition' => [
'show_custom_image' => [ 'yes' ],
'layout' => [ 'category-single-layout1', 'category-single-layout2' ],
],
'default' => [
'url' => \Elementor\Utils::get_placeholder_image_src(),
],
];
$fields['show_overlay'] = [
'type' => 'switch',
'label' => esc_html__( 'Enable Image Overlay?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to enable image overlay.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'separator' => 'before',
'condition' => [
'layout' => [ 'category-single-layout1' ],
],
];
$fields['image_hover_animation'] = [
'type' => 'select2',
'label' => esc_html__( 'Image Hover Animation', 'shopbuilder' ),
'description' => esc_html__( 'Please choose image hover animation.', 'shopbuilder' ),
'options' => [
'zoom_in' => esc_html__( 'Zoom In', 'shopbuilder' ),
'zoom_out' => esc_html__( 'Zoom Out', 'shopbuilder' ),
'none' => esc_html__( 'None', 'shopbuilder' ),
],
'label_block' => true,
'condition' => [
'show_cat_image' => [ 'yes' ],
'layout!' => [ 'category-layout4' ],
],
'default' => 'zoom_in',
'separator' => rtsb()->has_pro() ? 'default' : 'before-short',
];
$fields['cat_image_size_note'] = $obj->el_heading(
esc_html__( 'Image Size', 'shopbuilder' ),
'before',
[],
[ 'show_cat_image' => [ 'yes' ] ]
);
$fields = array_merge( $fields, self::image_size_controls( 'catgory' ) );
$fields['cat_image_section_end'] = $obj->end_section();
return apply_filters( 'rtsb/elements/elementor/cat_image_control', $fields, $obj );
}
/**
* Image Size Controls.
*
* @param string $type Type.
*
* @return array
*/
public static function image_size_controls( $type ) {
$conditions = [
'relation' => 'and',
'terms' => [],
];
if ( 'grid' === $type ) {
$conditions['terms'][] = [
'relation' => 'or',
'terms' => [
[
'name' => 'show_featured_image',
'operator' => '==',
'value' => 'yes',
],
],
];
} else {
$conditions['terms'][] = [
'relation' => 'or',
'terms' => [
[
'name' => 'show_cat_image',
'operator' => '==',
'value' => 'yes',
],
[
'name' => 'show_custom_image',
'operator' => '==',
'value' => 'yes',
],
],
];
}
$fields['image'] = [
'type' => 'select2',
'label' => esc_html__( 'Select Image Size', 'shopbuilder' ),
'description' => esc_html__( 'Please select the image size.', 'shopbuilder' ),
'options' => Fns::get_image_sizes(),
'default' => 'woocommerce_thumbnail',
'label_block' => true,
'content_classes' => 'elementor-descriptor',
'conditions' => $conditions,
];
$conditions['terms'][] = [
'relation' => 'or',
'terms' => [
[
'name' => 'image',
'operator' => '==',
'value' => 'rtsb_custom',
],
],
];
$fields['image_custom_dimension'] = [
'type' => 'image-dimensions',
'label' => esc_html__( 'Enter Custom Image Size', 'shopbuilder' ),
'label_block' => true,
'show_label' => true,
'default' => [
'width' => 400,
'height' => 400,
],
'conditions' => $conditions,
];
$fields['image_crop'] = [
'type' => 'select2',
'label' => esc_html__( 'Image Crop', 'shopbuilder' ),
'description' => esc_html__( 'Please click on "Apply" to update the image.', 'shopbuilder' ),
'options' => [
'soft' => esc_html__( 'Soft Crop', 'shopbuilder' ),
'hard' => esc_html__( 'Hard Crop', 'shopbuilder' ),
],
'default' => 'hard',
'conditions' => $conditions,
];
$fields['image_custom_dimension_note'] = [
'type' => 'html',
'raw' => sprintf(
'%s',
esc_html__( 'Please note that, if you enter image size larger than the actual image itself, the image sizes will fallback to the full image dimension.', 'shopbuilder' )
),
'conditions' => $conditions,
];
return $fields;
}
/**
* Slider section
*
* @param object $obj Reference object.
*
* @return array
*/
public static function slider_settings( $obj ) {
$status = ! rtsb()->has_pro();
$fields['slider_control_section'] = $obj->start_section(
esc_html__( 'Slider Settings', 'shopbuilder' ),
self::$tab
);
$fields['slider_control_note'] = $obj->el_heading(
esc_html__( 'Controls', 'shopbuilder' ),
'default'
);
$fields['slider_nav'] = [
'type' => 'switch',
'label' => esc_html__( 'Navigation Arrows', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to enable slider navigation arrows.', 'shopbuilder' ),
'default' => 'yes',
];
$fields['slider_nav_position'] = [
'type' => 'select2',
'label' => esc_html__( 'Navigation Arrows Position', 'shopbuilder' ),
'options' => [
'top' => esc_html__( 'Top', 'shopbuilder' ),
'standard' => esc_html__( 'Middle', 'shopbuilder' ),
'bottom' => esc_html__( 'Bottom', 'shopbuilder' ),
],
'description' => esc_html__( 'Please select the slider arrows position.', 'shopbuilder' ),
'default' => 'standard',
'label_block' => true,
'separator' => rtsb()->has_pro() ? 'default' : 'after',
'condition' => [ 'slider_nav' => [ 'yes' ] ],
];
$fields['always_show_nav'] = [
'type' => 'switch',
'label' => esc_html__( 'Always Show Arrows', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to enable always showing navigation arrows.', 'shopbuilder' ),
'classes' => $obj->pro_class(),
'is_pro' => $status,
'condition' => [ 'slider_nav' => [ 'yes' ] ],
];
if ( rtsb()->has_pro() ) {
$fields['always_show_nav']['condition']['slider_nav_position'] = 'standard';
}
$fields['slider_left_arrow_icon'] = [
'label' => esc_html__( 'Left Arrow Icon', 'shopbuilder' ),
'description' => esc_html__( 'Please choose the slider left arrow icon.', 'shopbuilder' ),
'type' => 'icons',
'default' => [
'value' => 'fas fa-chevron-left',
'library' => 'fa-solid',
],
'separator' => rtsb()->has_pro() ? 'default' : 'before-short',
'condition' => [ 'slider_nav' => 'yes' ],
];
$fields['slider_right_arrow_icon'] = [
'label' => esc_html__( 'Right Arrow Icon', 'shopbuilder' ),
'description' => esc_html__( 'Please choose the slider right arrow icon.', 'shopbuilder' ),
'type' => 'icons',
'default' => [
'value' => 'fas fa-chevron-right',
'library' => 'fa-solid',
],
'condition' => [ 'slider_nav' => 'yes' ],
];
$fields['slider_pagi'] = [
'type' => 'switch',
'label' => esc_html__( 'Dot Pagination', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to enable slider dot pagination.', 'shopbuilder' ),
'default' => 'yes',
];
$fields['slider_dynamic_pagi'] = [
'type' => 'switch',
'label' => esc_html__( 'Dynamic Pagination', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'description' => esc_html__( 'It will keep only few bullets visible at the same time.', 'shopbuilder' ),
'condition' => [ 'slider_pagi' => 'yes' ],
];
$fields['slider_loop'] = [
'type' => 'switch',
'label' => esc_html__( 'Infinite Loop', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to enable slider infinite loop.', 'shopbuilder' ),
'condition' => [ 'tax_filter!' => [ 'yes' ] ],
];
$fields['slider_auto_height'] = [
'type' => 'switch',
'label' => esc_html__( 'Auto Height', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to enable slider dynamic height.', 'shopbuilder' ),
];
$fields['slider_lazy_load'] = [
'type' => 'switch',
'label' => esc_html__( 'Image Lazy Load', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to enable slider image lazy load.', 'shopbuilder' ),
'condition' => [ 'tax_filter!' => [ 'yes' ] ],
];
$fields['slide_speed'] = [
'type' => 'number',
'label' => esc_html__( 'Slide Speed (in ms)', 'shopbuilder' ),
'description' => esc_html__( 'Please enter the duration of transition between slides (in ms).', 'shopbuilder' ),
'default' => 2000,
'separator' => $status ? 'default elementor-control-separator-after' : 'default',
];
$fields['slider_slide_animation'] = [
'type' => 'switch',
'label' => esc_html__( 'Enable Slide Effect', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to enable zoom-in effect when sliding.', 'shopbuilder' ),
'default' => '',
'classes' => $obj->pro_class(),
'is_pro' => $status,
];
$fields['slider_autoplay_note'] = $obj->el_heading(
esc_html__( 'Autoplay', 'shopbuilder' ),
'before'
);
$fields['slide_autoplay'] = [
'type' => 'switch',
'label' => esc_html__( 'Enable Autoplay?', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to enable slider autoplay.', 'shopbuilder' ),
'default' => 'yes',
];
$fields['pause_hover'] = [
'type' => 'switch',
'label' => esc_html__( 'Pause on Mouse Hover?', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to enable slider autoplay pause on mouse hover.', 'shopbuilder' ),
'default' => 'yes',
'condition' => [ 'slide_autoplay' => 'yes' ],
];
$fields['autoplay_timeout'] = [
'type' => 'number',
'label' => esc_html__( 'Autoplay Delay (in ms)', 'shopbuilder' ),
'default' => 5000,
'description' => esc_html__( 'Please select autoplay interval delay (in ms).', 'shopbuilder' ),
'condition' => [ 'slide_autoplay' => 'yes' ],
];
$fields['slider_control_section_end'] = $obj->end_section();
return $fields;
}
/**
* Title section
*
* @param object $obj Reference object.
*
* @return array
*/
public static function product_title( $obj ) {
$condition = [
'show_title' => [ 'yes' ],
];
$fields['product_title_section'] = $obj->start_section(
esc_html__( 'Product Title', 'shopbuilder' ),
self::$tab,
[],
$condition
);
$fields['title_tag'] = [
'type' => 'select2',
'label' => esc_html__( 'Product Title Tag', 'shopbuilder' ),
'options' => ControlHelper::heading_tags(),
'label_block' => true,
'default' => 'h3',
'description' => esc_html__( 'Please select the product title tag.', 'shopbuilder' ),
];
// TODO: Will be activated later.
// $fields['title_hover'] = [
// 'type' => 'switch',
// 'label' => esc_html__( 'Title Hover Underline', 'shopbuilder' ),
// 'default' => 200,
// 'description' => esc_html__( 'Switch on to enable title hover underline.', 'shopbuilder' ),
// 'classes' => $obj->pro_class(),
// ];
$fields['title_limit'] = [
'type' => 'select2',
'label' => esc_html__( 'Product Title Limit', 'shopbuilder' ),
'options' => [
'default' => esc_html__( 'Default', 'shopbuilder' ),
'1-line' => esc_html__( 'Show in 1 line', 'shopbuilder' ),
'2-lines' => esc_html__( 'Show in 2 lines', 'shopbuilder' ),
'3-lines' => esc_html__( 'Show in 3 lines', 'shopbuilder' ),
'custom' => esc_html__( 'Custom', 'shopbuilder' ),
],
'label_block' => true,
'default' => 'default',
'description' => esc_html__( 'Please select the product title limit.', 'shopbuilder' ),
];
$fields['title_limit_custom'] = [
'type' => 'number',
'label' => esc_html__( 'Custom Character Limit', 'shopbuilder' ),
'default' => 200,
'description' => esc_html__( 'Please enter the product title character limit.', 'shopbuilder' ),
'condition' => [ 'title_limit' => [ 'custom' ] ],
];
$fields['product_title_section_end'] = $obj->end_section();
return $fields;
}
/**
* Title section
*
* @param object $obj Reference object.
*
* @return array
*/
public static function section_title( $obj ) {
$condition = [
'show_section_title' => [ 'yes' ],
];
$fields['section_title_section'] = $obj->start_section(
esc_html__( 'Section Title', 'shopbuilder' ),
self::$tab,
[],
$condition
);
$fields['section_title_tag'] = [
'type' => 'select2',
'label' => esc_html__( 'Section Title Tag', 'shopbuilder' ),
'options' => ControlHelper::heading_tags(),
'label_block' => true,
'default' => 'h2',
'description' => esc_html__( 'Please select the section title tag.', 'shopbuilder' ),
];
$fields['section_title_text'] = [
'type' => 'text',
'label' => esc_html__( 'Section Title Text', 'shopbuilder' ),
'default' => esc_html__( 'Section Title', 'shopbuilder' ),
'description' => esc_html__( 'Please enter the section title text.', 'shopbuilder' ),
'label_block' => true,
];
$fields['section_title_section_end'] = $obj->end_section();
return $fields;
}
/**
* Category Title section
*
* @param object $obj Reference object.
*
* @return array
*/
public static function cat_title( $obj ) {
$condition = [
'show_title' => [ 'yes' ],
];
$fields['category_title_section'] = $obj->start_section(
esc_html__( 'Category Title', 'shopbuilder' ),
self::$tab,
[],
$condition
);
$fields['title_tag'] = [
'type' => 'select2',
'label' => esc_html__( 'Category Title Tag', 'shopbuilder' ),
'options' => ControlHelper::heading_tags(),
'label_block' => true,
'default' => 'h3',
'description' => esc_html__( 'Please select the category title tag.', 'shopbuilder' ),
'separator' => rtsb()->has_pro() ? 'before-short' : 'default',
];
$fields['show_custom_title'] = [
'type' => 'switch',
'label' => esc_html__( 'Enable Custom Title?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to display alternate custom title.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'classes' => $obj->pro_class(),
'separator' => rtsb()->has_pro() ? 'before-short' : 'default',
'condition' => [ 'layout' => [ 'category-single-layout1' ] ],
];
$fields['custom_title'] = [
'type' => 'textarea',
'label' => esc_html__( 'Alternate Custom Title', 'shopbuilder' ),
'description' => esc_html__( 'Please enter an alternate custom title.', 'shopbuilder' ),
'condition' => [
'show_custom_title' => [ 'yes' ],
'layout' => [ 'category-single-layout1' ],
],
'classes' => $obj->pro_class(),
'separator' => rtsb()->has_pro() ? 'before-short' : 'default',
];
$fields['title_limit'] = [
'type' => 'select2',
'label' => esc_html__( 'Category Title Limit', 'shopbuilder' ),
'options' => [
'default' => esc_html__( 'Default', 'shopbuilder' ),
'1-line' => esc_html__( 'Show in 1 line', 'shopbuilder' ),
'2-lines' => esc_html__( 'Show in 2 lines', 'shopbuilder' ),
'3-lines' => esc_html__( 'Show in 3 lines', 'shopbuilder' ),
'custom' => esc_html__( 'Custom', 'shopbuilder' ),
],
'label_block' => true,
'default' => 'default',
'separator' => rtsb()->has_pro() ? 'default' : 'before',
'description' => esc_html__( 'Please select the category title limit.', 'shopbuilder' ),
];
$fields['title_limit_custom'] = [
'type' => 'number',
'label' => esc_html__( 'Custom Character Limit', 'shopbuilder' ),
'default' => 200,
'description' => esc_html__( 'Please select the category title custom limit.', 'shopbuilder' ),
'condition' => [ 'title_limit' => [ 'custom' ] ],
];
$fields['category_title_section_end'] = $obj->end_section();
return $fields;
}
/**
* Excerpt section
*
* @param object $obj Reference object.
*
* @return array
*/
public static function product_excerpt( $obj ) {
$condition = [
'show_short_desc' => [ 'yes' ],
];
$fields['product_excerpt_section'] = $obj->start_section(
esc_html__( 'Short Description', 'shopbuilder' ),
self::$tab,
[],
$condition
);
$fields['excerpt_limit'] = [
'type' => 'select2',
'label' => esc_html__( 'Short Description Limit', 'shopbuilder' ),
'description' => esc_html__( 'Please select the product short description limit.', 'shopbuilder' ),
'options' => [
'default' => esc_html__( 'Default', 'shopbuilder' ),
'1-line' => esc_html__( 'Show in 1 line', 'shopbuilder' ),
'2-lines' => esc_html__( 'Show in 2 lines', 'shopbuilder' ),
'3-lines' => esc_html__( 'Show in 3 lines', 'shopbuilder' ),
'custom' => esc_html__( 'Custom', 'shopbuilder' ),
],
'label_block' => true,
'default' => 'default',
];
$fields['excerpt_limit_custom'] = [
'type' => 'number',
'label' => esc_html__( 'Custom Character Limit', 'shopbuilder' ),
'default' => 200,
'description' => esc_html__( 'Please enter the product short description character limit.', 'shopbuilder' ),
'condition' => [ 'excerpt_limit' => [ 'custom' ] ],
];
$fields['product_excerpt_section_end'] = $obj->end_section();
return $fields;
}
/**
* Category Excerpt section
*
* @param object $obj Reference object.
*
* @return array
*/
public static function cat_excerpt( $obj ) {
$condition = [
'show_short_desc' => [ 'yes' ],
];
$fields['cat_excerpt_section'] = $obj->start_section(
esc_html__( 'Category Description', 'shopbuilder' ),
self::$tab,
[],
$condition
);
$fields['desciption_note'] = [
'type' => 'html',
'raw' => '',
'content_classes' => 'elementor-panel-heading-title',
'condition' => [ 'layout' => [ 'category-single-layout1' ] ],
];
$fields['show_custom_description'] = [
'type' => 'switch',
'label' => esc_html__( 'Enable Custom Description?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to display alternate custom description.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'classes' => $obj->pro_class(),
'separator' => rtsb()->has_pro() ? 'before-short' : $obj->pro_class(),
'condition' => [ 'layout' => [ 'category-single-layout1' ] ],
];
$fields['custom_description'] = [
'type' => 'textarea',
'label' => esc_html__( 'Alternate Custom Description', 'shopbuilder' ),
'description' => esc_html__( 'Please enter an alternate custom description.', 'shopbuilder' ),
'condition' => [
'show_custom_description' => [ 'yes' ],
'layout' => [ 'category-single-layout1' ],
],
'classes' => $obj->pro_class(),
'separator' => rtsb()->has_pro() ? 'before-short' : 'default',
];
$fields['excerpt_position'] = [
'type' => 'select2',
'label' => esc_html__( 'Category Description Position', 'shopbuilder' ),
'description' => esc_html__( 'Please select the category short description position.', 'shopbuilder' ),
'options' => [
'above' => esc_html__( 'Top', 'shopbuilder' ),
'below' => esc_html__( 'Bottom', 'shopbuilder' ),
],
'label_block' => true,
'condition' => [ 'layout!' => [ 'category-layout2' ] ],
'default' => 'below',
];
$fields['excerpt_limit'] = [
'type' => 'select2',
'label' => esc_html__( 'Category Description Limit', 'shopbuilder' ),
'description' => esc_html__( 'Please select the category short description limit.', 'shopbuilder' ),
'options' => [
'default' => esc_html__( 'Default', 'shopbuilder' ),
'1-line' => esc_html__( 'Show in 1 line', 'shopbuilder' ),
'2-lines' => esc_html__( 'Show in 2 lines', 'shopbuilder' ),
'3-lines' => esc_html__( 'Show in 3 lines', 'shopbuilder' ),
'custom' => esc_html__( 'Custom', 'shopbuilder' ),
],
'label_block' => true,
'default' => 'default',
];
$fields['excerpt_limit_custom'] = [
'type' => 'number',
'label' => esc_html__( 'Custom Character Limit', 'shopbuilder' ),
'default' => 200,
'description' => esc_html__( 'Please select the category short description custom limit.', 'shopbuilder' ),
'condition' => [ 'excerpt_limit' => [ 'custom' ] ],
];
$fields['cat_excerpt_section_end'] = $obj->end_section();
return $fields;
}
/**
* Variation swatch section
*
* @param object $obj Reference object.
*
* @return array
*/
public static function variation_swatch( $obj ) {
if ( ! function_exists( 'rtwpvsp' ) ) {
return [];
}
$condition = [
'show_swatches' => [ 'yes' ],
];
$fields['variation_swatch_section'] = $obj->start_section(
esc_html__( 'Variation Swatches', 'shopbuilder' ),
self::$tab,
[],
$condition
);
$fields['swatch_position'] = [
'type' => 'select2',
'label' => esc_html__( 'Swatches Display Position', 'shopbuilder' ),
'description' => esc_html__( 'Please select the variation swatches display position.', 'shopbuilder' ),
'options' => [
'top' => esc_html__( 'Top of Content', 'shopbuilder' ),
'title' => esc_html__( 'With Product Title', 'shopbuilder' ),
'price' => esc_html__( 'WIth Product Price', 'shopbuilder' ),
],
'label_block' => true,
'default' => 'top',
];
$fields['swatch_type'] = [
'type' => 'select2',
'label' => esc_html__( 'Swatches Type', 'shopbuilder' ),
'description' => esc_html__( 'Please select the variation swatches display type (only work with color swatch).', 'shopbuilder' ),
'options' => [
'square' => esc_html__( 'Square', 'shopbuilder' ),
'circle' => esc_html__( 'Circle', 'shopbuilder' ),
],
'label_block' => true,
'default' => 'circle',
];
$fields['swatch_margin'] = [
'mode' => 'responsive',
'type' => 'dimensions',
'label' => esc_html__( 'Margin', 'shopbuilder' ),
'size_units' => [ 'px', '%', 'em' ],
'selectors' => [ '{{WRAPPER}} .rtsb-swatches' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;' ],
];
$fields['variation_swatch_section_end'] = $obj->end_section();
return $fields;
}
/**
* Badge section
*
* @param object $obj Reference object.
*
* @return array
*/
public static function badges( $obj ) {
$condition = [
'show_badges' => [ 'yes' ],
'layout!' => [ 'category-layout1', 'category-layout2' ],
];
$fields['badges_section'] = $obj->start_section(
esc_html__( 'Badges', 'shopbuilder' ),
self::$tab,
[],
$condition
);
$fields['custom_badge_preset'] = [
'type' => 'rtsb-image-selector',
'label' => esc_html__( 'Custom Badge Appearance', 'shopbuilder' ),
'options' => ControlHelper::badge_presets(),
'default' => 'preset1',
];
$fields['sale_badges_type'] = [
'type' => 'select2',
'label' => esc_html__( 'Sale Badge Type', 'shopbuilder' ),
'description' => esc_html__( 'Please select the badge type.', 'shopbuilder' ),
'options' => [
'percentage' => esc_html__( 'Show Sale Percentage', 'shopbuilder' ),
'text' => esc_html__( 'Show Sale Text', 'shopbuilder' ),
],
'default' => 'percentage',
'label_block' => true,
'condition' => [ 'layout!' => [ 'category-single-layout1', 'category-single-layout2', 'category-layout1', 'category-layout2', 'category-layout3' ] ],
];
$fields['sale_badges_text'] = [
'type' => 'text',
'label' => esc_html__( 'Sale Badge Text', 'shopbuilder' ),
'default' => esc_html__( 'Sale', 'shopbuilder' ),
'description' => esc_html__( 'Please enter the sale badge text.', 'shopbuilder' ),
'label_block' => true,
'condition' => [
'sale_badges_type' => [ 'text' ],
'layout!' => [ 'category-single-layout1', 'category-single-layout2', 'category-layout1', 'category-layout2', 'category-layout3' ],
],
];
$fields['stock_badges_text'] = [
'type' => 'text',
'label' => esc_html__( 'Out of Stock Badge Text', 'shopbuilder' ),
'default' => esc_html__( 'Out of Stock', 'shopbuilder' ),
'description' => esc_html__( 'Please enter the out of stock badge text.', 'shopbuilder' ),
'label_block' => true,
'condition' => [ 'layout!' => [ 'category-single-layout1', 'category-single-layout2', 'category-layout1', 'category-layout2', 'category-layout3' ] ],
];
$fields['custom_badge_text'] = [
'type' => 'text',
'label' => esc_html__( 'Custom Badge Text', 'shopbuilder' ),
'description' => esc_html__( 'Please enter the custom badge text.', 'shopbuilder' ),
'label_block' => true,
'default' => esc_html__( 'Popular', 'shopbuilder' ),
'condition' => [ 'layout' => [ 'category-single-layout1', 'category-single-layout2', 'category-layout1', 'category-layout2' ] ],
];
$fields['badges_section_end'] = $obj->end_section();
return apply_filters( 'rtsb/elementor/badges', $fields, $obj );
}
/**
* Count section
*
* @param object $obj Reference object.
*
* @return array
*/
public static function cat_count_settings( $obj ) {
$condition = [
'show_count' => [ 'yes' ],
];
$fields['count_section'] = $obj->start_section(
esc_html__( 'Product Count', 'shopbuilder' ),
self::$tab,
[],
$condition
);
$fields['count_display_type'] = [
'type' => 'select2',
'label' => esc_html__( 'Display Position', 'shopbuilder' ),
'description' => esc_html__( 'Please choose the count display position.', 'shopbuilder' ),
'options' => [
'flex' => esc_html__( 'Same Line with Title', 'shopbuilder' ),
'block' => esc_html__( 'After Title', 'shopbuilder' ),
],
'label_block' => true,
'default' => 'block',
'render_type' => 'template',
'condition' => [ 'layout!' => [ 'category-layout2' ] ],
'selectors' => [
$obj->selectors['cat_count_settings']['count_display_type'] => 'display: {{VALUE}};',
],
];
$fields['before_count'] = [
'type' => 'text',
'label' => esc_html__( 'Text Before Count', 'shopbuilder' ),
'description' => esc_html__( 'Please enter the text to show before count.', 'shopbuilder' ),
];
$fields['after_count'] = [
'type' => 'text',
'label' => esc_html__( 'Text After Count', 'shopbuilder' ),
'description' => esc_html__( 'Please enter the text to show after count.', 'shopbuilder' ),
'default' => esc_html__( ' Products', 'shopbuilder' ),
];
$fields['count_section_end'] = $obj->end_section();
return $fields;
}
/**
* Pagination section
*
* @param object $obj Reference object.
*
* @return array
*/
public static function links( $obj ) {
$fields['links_section'] = $obj->start_section(
esc_html__( 'Links', 'shopbuilder' ),
self::$tab
);
$obj->start_section( 'links_section', esc_html__( 'Detail Page', 'shopbuilder' ), self::$tab );
$fields['title_link'] = [
'type' => 'switch',
'label' => esc_html__( 'Title Clickable?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to enable title linking.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
];
$fields['image_link'] = [
'type' => 'switch',
'label' => esc_html__( 'Image Clickable?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to enable image linking.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
];
$fields['hover_btn_note'] = $obj->el_heading(
esc_html__( 'Hover Button', 'shopbuilder' ),
'before',
[],
[ 'layout' => [ 'grid-layout2', 'slider-layout2' ] ]
);
$fields['hover_btn_text'] = [
'type' => 'text',
'label' => esc_html__( 'Hover Button Text', 'shopbuilder' ),
'description' => esc_html__( 'Please enter the button text.', 'shopbuilder' ),
'default' => esc_html__( 'See Details', 'shopbuilder' ),
'condition' => [ 'layout' => [ 'grid-layout2', 'slider-layout2' ] ],
];
$fields['show_hover_btn_icon'] = [
'type' => 'switch',
'label' => esc_html__( 'Enable Hover Button Icon?', 'shopbuilder' ),
'description' => esc_html__( 'Switch on to enable hover button icon.', 'shopbuilder' ),
'label_on' => esc_html__( 'On', 'shopbuilder' ),
'label_off' => esc_html__( 'Off', 'shopbuilder' ),
'default' => 'yes',
'condition' => [ 'layout' => [ 'grid-layout2', 'slider-layout2' ] ],
];
$fields['hover_btn_icon'] = [
'type' => 'icons',
'label' => esc_html__( 'Choose Icon', 'shopbuilder' ),
'description' => esc_html__( 'Please choose the hover button icon.', 'shopbuilder' ),
'default' => [
'value' => 'fas fa-angle-right',
'library' => 'fa-solid',
],
'condition' => [
'show_hover_btn_icon' => [ 'yes' ],
'layout' => [ 'grid-layout2', 'slider-layout2' ],
],
];
$fields['custom_link'] = [
'type' => 'link',
'label' => esc_html__( 'Alternate Custom Link', 'shopbuilder' ),
'description' => esc_html__( 'Please enter an alternate custom link.', 'shopbuilder' ),
'placeholder' => esc_html__( 'https://custom-link.com', 'shopbuilder' ),
'options' => [ 'url', 'is_external', 'nofollow' ],
'condition' => [ 'layout' => [ 'category-single-layout1' ] ],
];
$fields['links_section_end'] = $obj->end_section();
return $fields;
}
}