PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 3.2.6
ShopBuilder – WooCommerce Builder For Elementor v3.2.6
3.4.2 3.4.1 3.4.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 All 63 releases
← All changes | app/Models/ModuleList.php +158 -525 3.4.23.2.6 View file →
@@ -7,9 +7,8 @@
7 7
8 8 namespace RadiusTheme\SB\Models;
9 9
10 10 use RadiusTheme\SB\Helpers\Fns;
11 -use RadiusTheme\SB\Helpers\SvgIcons;
12 11 use RadiusTheme\SB\Models\Base\ListModel;
13 12 use RadiusTheme\SB\Modules\Badges\Badges;
14 13 use RadiusTheme\SB\Modules\CheckoutEditor\CheckoutFns;
15 14 use RadiusTheme\SB\Modules\VariationSwatches\SwatchesFns;
@@ -68,8 +67,9 @@
68 67 'badge' => 'new',
69 68 'package' => 'free',
70 69 'active' => 'on',
71 70 'base_class' => VariationSwatches::class,
71 + 'category' => 'general',
72 72 'active_field' => [
73 73 'label' => esc_html__( 'Enable Variation Swatches Module?', 'shopbuilder' ),
74 74 'help' => esc_html__( 'Switch on to enable variation swatches module.', 'shopbuilder' ),
75 75 ],
@@ -95,8 +95,9 @@
95 95 'rtsb/module/variation_swatches/options',
96 96 [
97 97 'id' => 'variation_swatches',
98 98 'external' => true,
99 + 'category' => 'general',
99 100 'title' => esc_html__( 'Variation Swatches', 'shopbuilder' ),
100 101 'pluginSlug' => 'woo-product-variation-swatches',
101 102 'pluginIsInstalled' => Fns::check_plugin_installed( 'woo-product-variation-swatches/woo-product-variation-swatches.php' ),
102 103 'pluginIsActive' => Fns::check_plugin_active( 'woo-product-variation-swatches/woo-product-variation-swatches.php' ),
@@ -126,8 +127,9 @@
126 127 'badge' => 'new',
127 128 'package' => 'free',
128 129 'active' => 'on',
129 130 'base_class' => VariationGalleryInit::class,
131 + 'category' => 'general',
130 132 'active_field' => [
131 133 'label' => esc_html__( 'Enable Variation Gallery Module?', 'shopbuilder' ),
132 134 'help' => esc_html__( 'Switch on to enable variation gallery module.', 'shopbuilder' ),
133 135 ],
@@ -149,8 +151,9 @@
149 151 'rtsb/module/variation_gallery/options',
150 152 [
151 153 'id' => 'variation_gallery',
152 154 'external' => true,
155 + 'category' => 'general',
153 156 'title' => esc_html__( 'Variation Gallery', 'shopbuilder' ),
154 157 'pluginSlug' => 'woo-product-variation-gallery',
155 158 'pluginIsInstalled' => Fns::check_plugin_installed( 'woo-product-variation-gallery/woo-product-variation-gallery.php' ),
156 159 'pluginIsActive' => Fns::check_plugin_active( 'woo-product-variation-gallery/woo-product-variation-gallery.php' ),
@@ -178,8 +181,9 @@
178 181 [
179 182 'id' => 'quick_view',
180 183 'title' => esc_html__( 'Quick View', 'shopbuilder' ),
181 184 'base_class' => QuickView::class,
185 + 'category' => 'general',
182 186 'active' => 'on',
183 187 'package' => 'free',
184 188 'active_field' => [
185 189 'label' => esc_html__( 'Enable Quick View?', 'shopbuilder' ),
@@ -199,14 +203,14 @@
199 203 'loop_btn_position' => [
200 204 'id' => 'loop_btn_position',
201 205 'type' => 'select',
202 206 'value' => 'custom',
203 - 'label' => esc_html__( 'Showcase Button Position', 'shopbuilder' ),
204 - 'help' => esc_html__( 'Manage quick view button position in product showcases (Shop, Related, Upsells, Cross-sells, etc.).', 'shopbuilder' ),
207 + 'label' => esc_html__( 'Shop Page Button Position', 'shopbuilder' ),
208 + 'help' => esc_html__( 'You can manage quick view button position in shop page.', 'shopbuilder' ),
205 209 'tab' => 'general',
206 210 'options' => [
207 - 'before_add_to_cart' => esc_html__( 'Above Add To Cart', 'shopbuilder' ),
208 - 'after_add_to_cart' => esc_html__( 'Below Add To Cart', 'shopbuilder' ),
211 + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ),
212 + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ),
209 213 'shortcode' => esc_html__( 'Use Shortcode', 'shopbuilder' ),
210 214 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ),
211 215 ],
212 216
@@ -290,11 +294,11 @@
290 294 ],
291 295
292 296 'modal_height' => [
293 297 'id' => 'modal_height',
294 - 'label' => esc_html__( 'Modal Height (in px)', 'shopbuilder' ),
295 - 'help' => esc_html__( 'Quick view button modal height. Example: 450', 'shopbuilder' ),
296 - 'type' => 'number',
298 + 'label' => esc_html__( 'Modal Height', 'shopbuilder' ),
299 + 'help' => esc_html__( 'Quick view button modal height. Example: 450px', 'shopbuilder' ),
300 + 'type' => 'text',
297 301 'value' => '',
298 302 'tab' => 'style',
299 303 ],
300 304
@@ -343,8 +347,9 @@
343 347 'title' => esc_html__( 'Wishlist', 'shopbuilder' ),
344 348 'package' => 'free',
345 349 'active' => 'on',
346 350 'base_class' => Wishlist::class,
351 + 'category' => 'general',
347 352 'active_field' => [
348 353 'label' => esc_html__( 'Enable Wishlist?', 'shopbuilder' ),
349 354 'help' => esc_html__( 'Switch on to enable wishlist module.', 'shopbuilder' ),
350 355 ],
@@ -376,9 +381,9 @@
376 381 ],
377 382 'wishlist_shop_wrapper_heading' => [
378 383 'id' => 'wishlist_shop_wrapper_heading',
379 384 'type' => 'title',
380 - 'label' => esc_html__( 'Product Showcase Settings', 'shopbuilder' ),
385 + 'label' => esc_html__( 'Shop Page Settings', 'shopbuilder' ),
381 386 'tab' => 'button',
382 387 ],
383 388 'show_btn_on_loop' => [
384 389 'id' => 'show_btn_on_loop',
@@ -383,9 +388,9 @@
383 388 'show_btn_on_loop' => [
384 389 'id' => 'show_btn_on_loop',
385 390 'value' => 'on',
386 391 'type' => 'switch',
387 - 'label' => esc_html__( 'Show in Product Showcase', 'shopbuilder' ),
392 + 'label' => esc_html__( 'Show in Shop Page', 'shopbuilder' ),
388 393 'tab' => 'button',
389 394 ],
390 395 'loop_btn_position' => [
391 396 'id' => 'loop_btn_position',
@@ -390,13 +395,13 @@
390 395 'loop_btn_position' => [
391 396 'id' => 'loop_btn_position',
392 397 'type' => 'select',
393 398 'value' => 'custom',
394 - 'label' => esc_html__( 'Showcase Button Position', 'shopbuilder' ),
395 - 'help' => esc_html__( 'Manage wishlist button position in product showcases (Shop, Related, Upsells, Cross-sells, etc.).', 'shopbuilder' ),
399 + 'label' => esc_html__( 'Shop Page Button Position', 'shopbuilder' ),
400 + 'help' => esc_html__( 'You can manage wishlist button position in shop page.', 'shopbuilder' ),
396 401 'options' => [
397 - 'before_add_to_cart' => esc_html__( 'Above Add To Cart', 'shopbuilder' ),
398 - 'after_add_to_cart' => esc_html__( 'Below Add To Cart', 'shopbuilder' ),
402 + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ),
403 + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ),
399 404 'shortcode' => esc_html__( 'Use Shortcode', 'shopbuilder' ),
400 405 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ),
401 406 ],
402 407 'dependency' => [
@@ -503,10 +508,10 @@
503 508 'help' => esc_html__( 'You can manage compare button position in single product page.', 'shopbuilder' ),
504 509 'type' => 'select',
505 510 'value' => 'custom',
506 511 'options' => [
507 - 'before_add_to_cart' => esc_html__( 'Above Add To Cart', 'shopbuilder' ),
508 - 'after_add_to_cart' => esc_html__( 'Below Add To Cart', 'shopbuilder' ),
512 + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ),
513 + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ),
509 514 'after_thumbnail' => esc_html__( 'After Image', 'shopbuilder' ),
510 515 'after_summary' => esc_html__( 'After Summary', 'shopbuilder' ),
511 516 'shortcode' => esc_html__( 'Use Shortcode', 'shopbuilder' ),
512 517 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ),
@@ -709,8 +714,9 @@
709 714 'rtsb/module/compare/options',
710 715 [
711 716 'id' => 'compare',
712 717 'base_class' => Compare::class,
718 + 'category' => 'general',
713 719 'title' => esc_html__( 'Product Compare', 'shopbuilder' ),
714 720 'package' => 'free',
715 721 'active' => 'on',
716 722 'active_field' => [
@@ -722,9 +728,9 @@
722 728 [
723 729 'compare_shop_wrapper_heading' => [
724 730 'id' => 'compare_shop_wrapper_heading',
725 731 'type' => 'title',
726 - 'label' => esc_html__( 'Product Showcase Settings', 'shopbuilder' ),
732 + 'label' => esc_html__( 'Shop Page Settings', 'shopbuilder' ),
727 733 'tab' => 'button',
728 734 ],
729 735 'show_btn_on_loop' => [
730 736 'id' => 'show_btn_on_loop',
@@ -729,9 +735,9 @@
729 735 'show_btn_on_loop' => [
730 736 'id' => 'show_btn_on_loop',
731 737 'value' => 'on',
732 738 'type' => 'switch',
733 - 'label' => esc_html__( 'Show in Product Showcase', 'shopbuilder' ),
739 + 'label' => esc_html__( 'Show in Shop Page', 'shopbuilder' ),
734 740 'tab' => 'button',
735 741 ],
736 742 'loop_btn_position' => [
737 743 'id' => 'loop_btn_position',
@@ -736,13 +742,13 @@
736 742 'loop_btn_position' => [
737 743 'id' => 'loop_btn_position',
738 744 'type' => 'select',
739 745 'value' => 'custom',
740 - 'label' => esc_html__( 'Showcase Button Position', 'shopbuilder' ),
741 - 'help' => esc_html__( 'Manage compare button position in product showcases (Shop, Related, Upsells, Cross-sells, etc.).', 'shopbuilder' ),
746 + 'label' => esc_html__( 'Shop Page Button Position', 'shopbuilder' ),
747 + 'help' => esc_html__( 'You can manage wishlist button position in shop page.', 'shopbuilder' ),
742 748 'options' => [
743 - 'before_add_to_cart' => esc_html__( 'Above Add To Cart', 'shopbuilder' ),
744 - 'after_add_to_cart' => esc_html__( 'Below Add To Cart', 'shopbuilder' ),
749 + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ),
750 + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ),
745 751 'shortcode' => esc_html__( 'Use Shortcode', 'shopbuilder' ),
746 752 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ),
747 753 ],
748 754 'dependency' => [
@@ -849,10 +855,10 @@
849 855 'help' => esc_html__( 'You can manage compare button position in single product page.', 'shopbuilder' ),
850 856 'type' => 'select',
851 857 'value' => 'custom',
852 858 'options' => [
853 - 'before_add_to_cart' => esc_html__( 'Above Add To Cart', 'shopbuilder' ),
854 - 'after_add_to_cart' => esc_html__( 'Below Add To Cart', 'shopbuilder' ),
859 + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ),
860 + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ),
855 861 'after_thumbnail' => esc_html__( 'After Image', 'shopbuilder' ),
856 862 'after_summary' => esc_html__( 'After Summary', 'shopbuilder' ),
857 863 'shortcode' => esc_html__( 'Use Shortcode', 'shopbuilder' ),
858 864 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ),
@@ -1432,12 +1438,12 @@
1432 1438 'rtsb/module/bulk_discounts/options',
1433 1439 [
1434 1440 'id' => 'bulk_discounts',
1435 1441 'active' => '',
1436 - 'title' => esc_html__( 'Volume Discount', 'shopbuilder' ),
1442 + 'title' => esc_html__( 'Bulk Discounts', 'shopbuilder' ),
1437 1443 'active_field' => [
1438 - 'label' => esc_html__( 'Enable Volume Discount?', 'shopbuilder' ),
1439 - 'help' => esc_html__( 'Switch on to enable volume discount module.', 'shopbuilder' ),
1444 + 'label' => esc_html__( 'Enable Bulk Discounts?', 'shopbuilder' ),
1445 + 'help' => esc_html__( 'Switch on to enable bulk discounts module.', 'shopbuilder' ),
1440 1446 ],
1441 1447 'package' => $this->pro_package(),
1442 1448 'fields' => Fns::pro_version_notice( '1.10.0', 'general', 'ShopBuilder Pro', false ),
1443 1449 ]
@@ -1590,185 +1596,12 @@
1590 1596 'package' => $this->pro_package(),
1591 1597 'fields' => Fns::pro_version_notice( '2.1.11', 'general', 'ShopBuilder Pro', false ),
1592 1598 ]
1593 1599 ),
1594 - 'mega_menu' => apply_filters(
1595 - 'rtsb/module/mega_menu/options',
1596 - [
1597 - 'id' => 'mega_menu',
1598 - 'active' => '',
1599 - 'title' => esc_html__( 'Mega Menu', 'shopbuilder' ),
1600 - 'active_field' => [
1601 - 'label' => esc_html__( 'Enable Mega Menu?', 'shopbuilder' ),
1602 - 'help' => esc_html__( 'Switch on to enable Mega Menu module.', 'shopbuilder' ),
1603 - ],
1604 - 'package' => $this->pro_package(),
1605 - 'fields' => Fns::pro_version_notice( '2.1.12', 'general', 'ShopBuilder Pro', false ),
1606 - ]
1607 - ),
1608 1600 ];
1609 - // Inject icons, descriptions and links per module.
1610 - $meta = self::module_meta();
1611 - foreach ( $list as $key => &$item ) {
1612 - if ( isset( $meta[ $key ] ) ) {
1613 - $item['icon'] = SvgIcons::get( $meta[ $key ]['icon'] ?? 'default' );
1614 - $item['description'] = $meta[ $key ]['desc'] ?? '';
1615 - } else {
1616 - $item['icon'] = SvgIcons::get( 'default' );
1617 - $item['description'] = '';
1618 - }
1619 - $item['links'] = [
1620 - 'doc' => '',
1621 - 'video' => '',
1622 - ];
1623 - }
1624 - unset( $item );
1625 -
1626 1601 return apply_filters( 'rtsb/core/modules/raw_list', $list );
1627 1602 }
1628 -
1629 1603 /**
1630 - * Module icon and description metadata.
1631 - *
1632 - * @return array<string, array{icon: string, desc: string}>
1633 - */
1634 - private static function module_meta() {
1635 - return [
1636 - 'variation_swatches' => [
1637 - 'icon' => 'dots',
1638 - 'desc' => 'Replace dropdowns with color, image, label, or radio swatches.',
1639 - ],
1640 - 'variation_gallery' => [
1641 - 'icon' => 'image',
1642 - 'desc' => 'Show a unique product gallery for every variation.',
1643 - ],
1644 - 'quick_view' => [
1645 - 'icon' => 'eye',
1646 - 'desc' => 'Open a popup product preview from grids without a full page load.',
1647 - ],
1648 - 'wishlist' => [
1649 - 'icon' => 'heart',
1650 - 'desc' => 'Let customers save products to a wishlist they can revisit or share.',
1651 - ],
1652 - 'compare' => [
1653 - 'icon' => 'flip_box',
1654 - 'desc' => 'Side-by-side product attribute comparison with sticky header.',
1655 - ],
1656 - 'product_badges' => [
1657 - 'icon' => 'onsale',
1658 - 'desc' => 'Sale, new, featured, low-stock, and custom badges with rules.',
1659 - ],
1660 - 'checkout_fields_editor' => [
1661 - 'icon' => 'form',
1662 - 'desc' => 'Add, edit, reorder, or remove billing, shipping, and checkout fields.',
1663 - ],
1664 - 'shopify_checkout' => [
1665 - 'icon' => 'cart',
1666 - 'desc' => 'Single-page Shopify-style checkout with autofill and express pay.',
1667 - ],
1668 - 'mini_cart' => [
1669 - 'icon' => 'cart',
1670 - 'desc' => 'Sliding cart drawer with AJAX add-to-cart and quantity edits.',
1671 - ],
1672 - 'product_size_chart' => [
1673 - 'icon' => 'ruler',
1674 - 'desc' => 'Per-category size guides with units, conversion, and modal preview.',
1675 - ],
1676 - 'customize_my_account' => [
1677 - 'icon' => 'user',
1678 - 'desc' => 'Build the customer dashboard with custom tabs, fields, and layouts.',
1679 - ],
1680 - 'pre_order' => [
1681 - 'icon' => 'countdown',
1682 - 'desc' => 'Accept orders before launch with deposit and scheduled release.',
1683 - ],
1684 - 'currency_switcher' => [
1685 - 'icon' => 'currency',
1686 - 'desc' => 'Geo-detected switcher with live exchange rates and pricing rules.',
1687 - ],
1688 - 'product_add_ons' => [
1689 - 'icon' => 'grid',
1690 - 'desc' => 'Optional extras like gift wrap and warranties with conditional pricing.',
1691 - ],
1692 - 'sales_notification' => [
1693 - 'icon' => 'notification',
1694 - 'desc' => 'Real-time sales popups to create social proof and urgency.',
1695 - ],
1696 - 'flash_sale_countdown' => [
1697 - 'icon' => 'flash',
1698 - 'desc' => 'Scheduled flash sale countdown timers with auto-pricing.',
1699 - ],
1700 - 'quick_checkout' => [
1701 - 'icon' => 'checkout',
1702 - 'desc' => 'One-click checkout from product pages, skipping the cart.',
1703 - ],
1704 - 'multi_step_checkout' => [
1705 - 'icon' => 'multi_step',
1706 - 'desc' => 'Break checkout into guided steps with progress indicator.',
1707 - ],
1708 - 'back_order' => [
1709 - 'icon' => 'document',
1710 - 'desc' => 'Allow orders on out-of-stock products with availability dates.',
1711 - ],
1712 - 'sticky_add_to_cart' => [
1713 - 'icon' => 'button',
1714 - 'desc' => 'Sticky add-to-cart bar that follows the user on product pages.',
1715 - ],
1716 - 'smart_coupons' => [
1717 - 'icon' => 'discount',
1718 - 'desc' => 'Advanced coupon rules, URL coupons, and auto-apply conditions.',
1719 - ],
1720 - 'bulk_discounts' => [
1721 - 'icon' => 'pricing',
1722 - 'desc' => 'Tiered quantity-based pricing tables for bulk purchases.',
1723 - ],
1724 - 'bogo_bxgy_free_gift_discounts' => [
1725 - 'icon' => 'star',
1726 - 'desc' => 'Buy-one-get-one, buy-X-get-Y, and free gift promotions.',
1727 - ],
1728 - 'partial_pay' => [
1729 - 'icon' => 'payment',
1730 - 'desc' => 'Allow customers to pay in installments or deposits.',
1731 - ],
1732 - 'gift_card' => [
1733 - 'icon' => 'coupon',
1734 - 'desc' => 'Digital gift cards with email delivery and balance management.',
1735 - ],
1736 - 'pdf_invoice' => [
1737 - 'icon' => 'note',
1738 - 'desc' => 'Auto-generated PDF invoices and packing slips for orders.',
1739 - ],
1740 - 'extended_cross_sell' => [
1741 - 'icon' => 'grid',
1742 - 'desc' => 'Extended cross-sell recommendations across cart and checkout.',
1743 - ],
1744 - 'abandoned_cart_recovery' => [
1745 - 'icon' => 'cart',
1746 - 'desc' => 'Automated email nudges, discount triggers, and recovery analytics.',
1747 - ],
1748 - 'popup_builder' => [
1749 - 'icon' => 'popup',
1750 - 'desc' => 'Create promotional popups with triggers, targeting, and templates.',
1751 - ],
1752 - 'save_for_buy_later' => [
1753 - 'icon' => 'heart',
1754 - 'desc' => 'Save cart items for later purchase with one-click restore.',
1755 - ],
1756 - 'catalog_mode' => [
1757 - 'icon' => 'list',
1758 - 'desc' => 'Hide prices and add-to-cart buttons for catalog-only browsing.',
1759 - ],
1760 - 'back_in_stock_notifier' => [
1761 - 'icon' => 'notification',
1762 - 'desc' => 'Email notifications when out-of-stock products become available.',
1763 - ],
1764 - 'mega_menu' => [
1765 - 'icon' => 'grid',
1766 - 'desc' => 'Multi-column mega menus with widgets, images, and icons.',
1767 - ],
1768 - ];
1769 - }
1770 - /**
1771 1604 * Get All Menu
1772 1605 */
1773 1606 public function get_all_menu() {
1774 1607 $manus = [
@@ -3050,179 +2883,8 @@
3050 2883 ],
3051 2884 ],
3052 2885 ],
3053 2886 ],
3054 - 'cart_button_styles_settings' => [
3055 - 'id' => 'cart_button_styles_settings',
3056 - 'type' => 'title',
3057 - 'tab' => 'styles',
3058 - 'label' => esc_html__( 'Cart Button Style', 'shopbuilder' ),
3059 - 'dependency' => [
3060 - 'rules' => [
3061 - [
3062 - 'item' => 'modules.shopify_checkout.cart_icon_source',
3063 - 'value' => 'select_icon',
3064 - 'operator' => '==',
3065 - ],
3066 - ],
3067 - ],
3068 - ],
3069 - 'cart_button_height' => [
3070 - 'id' => 'cart_button_height',
3071 - 'label' => esc_html__( 'Button Height (px)', 'shopbuilder' ),
3072 - 'type' => 'slider',
3073 - 'min' => 10,
3074 - 'max' => 200,
3075 - 'unit' => 'px',
3076 - 'tab' => 'styles',
3077 - 'dependency' => [
3078 - 'rules' => [
3079 - [
3080 - 'item' => 'modules.shopify_checkout.cart_icon_source',
3081 - 'value' => 'select_icon',
3082 - 'operator' => '==',
3083 - ],
3084 - ],
3085 - ],
3086 - ],
3087 - 'cart_button_width' => [
3088 - 'id' => 'cart_button_width',
3089 - 'label' => esc_html__( 'Button Width (px)', 'shopbuilder' ),
3090 - 'type' => 'slider',
3091 - 'min' => 10,
3092 - 'max' => 200,
3093 - 'unit' => 'px',
3094 - 'tab' => 'styles',
3095 - 'dependency' => [
3096 - 'rules' => [
3097 - [
3098 - 'item' => 'modules.shopify_checkout.cart_icon_source',
3099 - 'value' => 'select_icon',
3100 - 'operator' => '==',
3101 - ],
3102 - ],
3103 - ],
3104 - ],
3105 - 'cart_button_padding' => [
3106 - 'id' => 'cart_button_padding',
3107 - 'label' => esc_html__( 'Padding (px)', 'shopbuilder' ),
3108 - 'type' => 'slider',
3109 - 'min' => 0,
3110 - 'max' => 50,
3111 - 'unit' => 'px',
3112 - 'tab' => 'styles',
3113 - 'dependency' => [
3114 - 'rules' => [
3115 - [
3116 - 'item' => 'modules.shopify_checkout.cart_icon_source',
3117 - 'value' => 'select_icon',
3118 - 'operator' => '==',
3119 - ],
3120 - ],
3121 - ],
3122 - ],
3123 - 'cart_button_border_style' => [
3124 - 'id' => 'cart_button_border_style',
3125 - 'label' => esc_html__( 'Border Style', 'shopbuilder' ),
3126 - 'type' => 'select',
3127 - 'options' => [
3128 - 'none' => esc_html__( 'None', 'shopbuilder' ),
3129 - 'solid' => esc_html__( 'Solid', 'shopbuilder' ),
3130 - 'dashed' => esc_html__( 'Dashed', 'shopbuilder' ),
3131 - 'dotted' => esc_html__( 'Dotted', 'shopbuilder' ),
3132 - ],
3133 - 'tab' => 'styles',
3134 - 'dependency' => [
3135 - 'rules' => [
3136 - [
3137 - 'item' => 'modules.shopify_checkout.cart_icon_source',
3138 - 'value' => 'select_icon',
3139 - 'operator' => '==',
3140 - ],
3141 - ],
3142 - ],
3143 - ],
3144 - 'cart_button_border_width' => [
3145 - 'id' => 'cart_button_border_width',
3146 - 'label' => esc_html__( 'Border Width (px)', 'shopbuilder' ),
3147 - 'type' => 'slider',
3148 - 'min' => 0,
3149 - 'max' => 10,
3150 - 'unit' => 'px',
3151 - 'tab' => 'styles',
3152 - 'dependency' => [
3153 - 'rules' => [
3154 - [
3155 - 'item' => 'modules.shopify_checkout.cart_icon_source',
3156 - 'value' => 'select_icon',
3157 - 'operator' => '==',
3158 - ],
3159 - ],
3160 - ],
3161 - ],
3162 - 'cart_button_border_color' => [
3163 - 'id' => 'cart_button_border_color',
3164 - 'label' => esc_html__( 'Border Color', 'shopbuilder' ),
3165 - 'tab' => 'styles',
3166 - 'type' => 'color',
3167 - 'dependency' => [
3168 - 'rules' => [
3169 - [
3170 - 'item' => 'modules.shopify_checkout.cart_icon_source',
3171 - 'value' => 'select_icon',
3172 - 'operator' => '==',
3173 - ],
3174 - ],
3175 - ],
3176 - ],
3177 - 'cart_button_border_radius' => [
3178 - 'id' => 'cart_button_border_radius',
3179 - 'label' => esc_html__( 'Border Radius (px)', 'shopbuilder' ),
3180 - 'type' => 'slider',
3181 - 'min' => 0,
3182 - 'max' => 100,
3183 - 'unit' => 'px',
3184 - 'tab' => 'styles',
3185 - 'dependency' => [
3186 - 'rules' => [
3187 - [
3188 - 'item' => 'modules.shopify_checkout.cart_icon_source',
3189 - 'value' => 'select_icon',
3190 - 'operator' => '==',
3191 - ],
3192 - ],
3193 - ],
3194 - ],
3195 - 'cart_button_bg_color' => [
3196 - 'id' => 'cart_button_bg_color',
3197 - 'label' => esc_html__( 'Background Color', 'shopbuilder' ),
3198 - 'tab' => 'styles',
3199 - 'type' => 'color',
3200 - 'dependency' => [
3201 - 'rules' => [
3202 - [
3203 - 'item' => 'modules.shopify_checkout.cart_icon_source',
3204 - 'value' => 'select_icon',
3205 - 'operator' => '==',
3206 - ],
3207 - ],
3208 - ],
3209 - ],
3210 - 'cart_button_hover_bg_color' => [
3211 - 'id' => 'cart_button_hover_bg_color',
3212 - 'label' => esc_html__( 'Hover Background Color', 'shopbuilder' ),
3213 - 'tab' => 'styles',
3214 - 'type' => 'color',
3215 - 'dependency' => [
3216 - 'rules' => [
3217 - [
3218 - 'item' => 'modules.shopify_checkout.cart_icon_source',
3219 - 'value' => 'select_icon',
3220 - 'operator' => '==',
3221 - ],
3222 - ],
3223 - ],
3224 - ],
3225 2887 'footer_menu_styles_settings' => [
3226 2888 'id' => 'footer_menu_styles_settings',
3227 2889 'type' => 'title',
3228 2890 'tab' => 'styles',
@@ -3442,10 +3104,10 @@
3442 3104 'options' => [
3443 3105 'above_image' => esc_html__( 'Floating Above Image', 'shopbuilder' ),
3444 3106 'before_product_title' => esc_html__( 'Before Product Title', 'shopbuilder' ),
3445 3107 'after_product_title' => esc_html__( 'After Product Title', 'shopbuilder' ),
3446 - 'before_add_to_cart' => esc_html__( 'Above Add To Cart', 'shopbuilder' ),
3447 - 'after_add_to_cart' => esc_html__( 'Below Add To Cart', 'shopbuilder' ),
3108 + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ),
3109 + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ),
3448 3110 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ),
3449 3111 ],
3450 3112 'tab' => 'group',
3451 3113 ],
@@ -3524,10 +3186,10 @@
3524 3186 'label' => esc_html__( 'Product Page Group Position', 'shopbuilder' ),
3525 3187 'help' => esc_html__( 'Choose the group badges position in product page.', 'shopbuilder' ),
3526 3188 'options' => [
3527 3189 'above_image' => esc_html__( 'Floating Above Image', 'shopbuilder' ),
3528 - 'before_add_to_cart' => esc_html__( 'Above Add To Cart', 'shopbuilder' ),
3529 - 'after_add_to_cart' => esc_html__( 'Below Add To Cart', 'shopbuilder' ),
3190 + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ),
3191 + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ),
3530 3192 'after_summary' => esc_html__( 'After Summary', 'shopbuilder' ),
3531 3193 'after_short_desc' => esc_html__( 'After Short Description', 'shopbuilder' ),
3532 3194 'shortcode' => esc_html__( 'Use Shortcode', 'shopbuilder' ),
3533 3195 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ),
@@ -4133,8 +3795,26 @@
4133 3795 'label' => esc_html__( 'Enable Tooltip', 'shopbuilder' ),
4134 3796 'help' => esc_html__( 'Enable / Disable plugin default tooltip on each product attribute.', 'shopbuilder' ),
4135 3797 'tab' => 'general',
4136 3798 ],
3799 + 'shape_style' => [
3800 + 'id' => 'shape_style',
3801 + 'label' => esc_html__( 'Default Shape Style', 'shopbuilder' ),
3802 + 'help' => esc_html__( 'Attribute Shape Style. Note: This option will not be applied to radio and button attributes.', 'shopbuilder' ),
3803 + 'type' => 'image_select',
3804 + 'value' => 'rounded',
3805 + 'options' => [
3806 + 'rounded' => [
3807 + 'label' => esc_html__( 'Rounded Shape', 'shopbuilder' ),
3808 + 'url' => esc_url( rtsb()->get_assets_uri( 'images/variation-swatch/rounded-shape.svg' ) ),
3809 + ],
3810 + 'squared' => [
3811 + 'label' => esc_html__( 'Squared Shape', 'shopbuilder' ),
3812 + 'url' => esc_url( rtsb()->get_assets_uri( 'images/variation-swatch/squared-shape.svg' ) ),
3813 + ],
3814 + ],
3815 + 'tab' => 'general',
3816 + ],
4137 3817 'shape_style_checkmark' => [
4138 3818 'id' => 'shape_style_checkmark',
4139 3819 'type' => 'switch',
4140 3820 'isPro' => ! rtsb()->has_pro(),
@@ -4161,10 +3841,10 @@
4161 3841 'id' => 'show_term_name_beside_label',
4162 3842 'type' => 'switch',
4163 3843 'isPro' => ! rtsb()->has_pro(),
4164 3844 'default' => false,
4165 - 'label' => esc_html__( 'Show Selected Term Name', 'shopbuilder' ),
4166 - 'help' => esc_html__( 'Displays the selected attribute value next to its label (e.g. "Color: Red").', 'shopbuilder' ),
3845 + 'label' => esc_html__( 'Show Term Name', 'shopbuilder' ),
3846 + 'help' => esc_html__( 'Selected term name will show beside attribute label.', 'shopbuilder' ),
4167 3847 'tab' => 'general',
4168 3848 ],
4169 3849 'disabled_attribute_behavior' => [
4170 3850 'id' => 'disabled_attribute_behavior',
@@ -4334,10 +4014,10 @@
4334 4014 'options' => apply_filters(
4335 4015 'rtsb_showcase_swatches_positions',
4336 4016 [
4337 4017 'custom_hook' => esc_html__( 'Custom Hook', 'shopbuilder' ),
4338 - 'before_add_to_cart' => esc_html__( 'Above Add To Cart', 'shopbuilder' ),
4339 - 'after_add_to_cart' => esc_html__( 'Below Add To Cart', 'shopbuilder' ),
4018 + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ),
4019 + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ),
4340 4020 ]
4341 4021 ),
4342 4022 'dependency' => [
4343 4023 'rules' => [
@@ -4568,9 +4248,9 @@
4568 4248 'attribute_border_radius' => [
4569 4249 'id' => 'attribute_border_radius',
4570 4250 'label' => esc_html__( 'Attribute Border Radius', 'shopbuilder' ),
4571 4251 'isPro' => ! rtsb()->has_pro(),
4572 - 'help' => esc_html__( 'Set the border radius (in px) for attribute items. Use a small value for squared corners or a large value (e.g. 100+) for fully rounded / circular swatches.', 'shopbuilder' ),
4252 + 'help' => esc_html__( 'Set the border radius (in px) for attribute items to control how rounded the corners appear.', 'shopbuilder' ),
4573 4253 'type' => 'slider',
4574 4254 'min' => 0,
4575 4255 'max' => 200,
4576 4256 'unit' => 'px',
@@ -4632,19 +4312,8 @@
4632 4312 'unit' => 'px',
4633 4313 'value' => 16,
4634 4314 'tab' => 'style',
4635 4315 ],
4636 - 'details_page_radio_size' => [
4637 - 'id' => 'details_page_radio_size',
4638 - 'label' => esc_html__( 'Radio Attribute Size', 'shopbuilder' ),
4639 - 'help' => esc_html__( 'Set the size (in px) for radio-button variation attributes. Independent from the Variation Item Width/Height settings.', 'shopbuilder' ),
4640 - 'type' => 'slider',
4641 - 'min' => 10,
4642 - 'max' => 80,
4643 - 'unit' => 'px',
4644 - 'value' => 25,
4645 - 'tab' => 'style',
4646 - ],
4647 4316 'showcase_attribute_size' => [
4648 4317 'id' => 'showcase_attribute_size',
4649 4318 'type' => 'title',
4650 4319 'label' => esc_html__( 'Shop Page / Product Showcase Attributes Size', 'shopbuilder' ),
@@ -4682,19 +4351,8 @@
4682 4351 'unit' => 'px',
4683 4352 'value' => 16,
4684 4353 'tab' => 'style',
4685 4354 ],
4686 - 'showcase_radio_size' => [
4687 - 'id' => 'showcase_radio_size',
4688 - 'label' => esc_html__( 'Radio Attribute Size', 'shopbuilder' ),
4689 - 'help' => esc_html__( 'Set the size (in px) for radio-button variation attributes in shop/showcase contexts.', 'shopbuilder' ),
4690 - 'type' => 'slider',
4691 - 'min' => 10,
4692 - 'max' => 80,
4693 - 'unit' => 'px',
4694 - 'value' => 25,
4695 - 'tab' => 'style',
4696 - ],
4697 4355 'tooltip_style' => [
4698 4356 'id' => 'tooltip_style',
4699 4357 'type' => 'title',
4700 4358 'label' => esc_html__( 'Tooltip Style', 'shopbuilder' ),
@@ -4699,22 +4357,8 @@
4699 4357 'type' => 'title',
4700 4358 'label' => esc_html__( 'Tooltip Style', 'shopbuilder' ),
4701 4359 'tab' => 'style',
4702 4360 ],
4703 - 'tooltip_text_color' => [
4704 - 'id' => 'tooltip_text_color',
4705 - 'label' => esc_html__( 'Tooltip Text Color', 'shopbuilder' ),
4706 - 'type' => 'color',
4707 - 'value' => '#ffffff',
4708 - 'tab' => 'style',
4709 - ],
4710 - 'tooltip_bg_color' => [
4711 - 'id' => 'tooltip_bg_color',
4712 - 'label' => esc_html__( 'Tooltip Background Color', 'shopbuilder' ),
4713 - 'type' => 'color',
4714 - 'value' => '#333333',
4715 - 'tab' => 'style',
4716 - ],
4717 4361 'tooltip_images_padding' => [
4718 4362 'id' => 'tooltip_images_padding',
4719 4363 'label' => esc_html__( 'Tooltip Images Padding', 'shopbuilder' ),
4720 4364 'type' => 'slider',
@@ -4723,16 +4367,29 @@
4723 4367 'unit' => 'px',
4724 4368 'value' => 3,
4725 4369 'tab' => 'style',
4726 4370 ],
4371 + 'tooltip_bg_color' => [
4372 + 'id' => 'tooltip_bg_color',
4373 + 'label' => esc_html__( 'Tooltip Background Color', 'shopbuilder' ),
4374 + 'type' => 'color',
4375 + 'value' => '#333333',
4376 + 'tab' => 'style',
4377 + ],
4727 4378 'tooltip_image_bg_color' => [
4728 - 'id' => 'tooltip_image_bg_color',
4379 + 'id' => 'tooltip_bg_color',
4729 4380 'label' => esc_html__( 'Tooltip Image Background Color', 'shopbuilder' ),
4730 4381 'type' => 'color',
4731 4382 'value' => '#333333',
4732 4383 'tab' => 'style',
4733 4384 ],
4734 -
4385 + 'tooltip_text_color' => [
4386 + 'id' => 'tooltip_text_color',
4387 + 'label' => esc_html__( 'Tooltip Text Color', 'shopbuilder' ),
4388 + 'type' => 'color',
4389 + 'value' => '#ffffff',
4390 + 'tab' => 'style',
4391 + ],
4735 4392 ]
4736 4393 ); // @phpstan-ignore-line
4737 4394 }
4738 4395 /**
@@ -4741,15 +4398,9 @@
4741 4398 public function get_variation_gallery_fields() {
4742 4399 return apply_filters(
4743 4400 'rtsb/module/variation_gallery/fields',
4744 4401 [
4745 - 'main_image_controls_title' => [
4746 - 'id' => 'main_image_controls_title',
4747 - 'type' => 'title',
4748 - 'label' => esc_html__( 'Main Image Controls', 'shopbuilder' ),
4749 - 'tab' => 'general',
4750 - ],
4751 - 'image_zoom' => [
4402 + 'image_zoom' => [
4752 4403 'id' => 'image_zoom',
4753 4404 'type' => 'switch',
4754 4405 'default' => false,
4755 4406 'label' => esc_html__( 'Zoom Gallery image', 'shopbuilder' ),
@@ -4754,9 +4405,9 @@
4754 4405 'default' => false,
4755 4406 'label' => esc_html__( 'Zoom Gallery image', 'shopbuilder' ),
4756 4407 'tab' => 'general',
4757 4408 ],
4758 - 'lightBox' => [
4409 + 'lightBox' => [
4759 4410 'id' => 'lightBox',
4760 4411 'type' => 'switch',
4761 4412 'default' => false,
4762 4413 'label' => esc_html__( 'Enable Images lightBox', 'shopbuilder' ),
@@ -4761,9 +4412,9 @@
4761 4412 'default' => false,
4762 4413 'label' => esc_html__( 'Enable Images lightBox', 'shopbuilder' ),
4763 4414 'tab' => 'general',
4764 4415 ],
4765 - 'lightBox_button_position' => [
4416 + 'lightBox_button_position' => [
4766 4417 'id' => 'lightBox_button_position',
4767 4418 'type' => 'select',
4768 4419 'value' => 'top-right',
4769 4420 'label' => esc_html__( 'Zoom Button Position', 'shopbuilder' ),
@@ -4775,26 +4426,61 @@
4775 4426 'bottom-left' => esc_html__( 'Bottom Left', 'shopbuilder' ),
4776 4427 ],
4777 4428 'tab' => 'general',
4778 4429 ],
4779 -
4780 - 'adaptive_height' => [
4430 + 'thumbnails_columns' => [
4431 + 'id' => 'thumbnails_columns',
4432 + 'type' => 'slider',
4433 + 'label' => esc_html__( 'Thumbnails Items per row / slider view', 'shopbuilder' ),
4434 + 'help' => esc_html__( 'Product Thumbnails Item Image. Default value is: 4. Limit: 2-8. The field required for slider.', 'shopbuilder' ),
4435 + 'min' => 2,
4436 + 'max' => 8,
4437 + 'unit' => '',
4438 + 'value' => 4,
4439 + 'tab' => 'general',
4440 + ],
4441 + 'thumbnails_gap' => [
4442 + 'id' => 'thumbnails_gap',
4443 + 'type' => 'slider',
4444 + 'label' => esc_html__( 'Thumbnails Gap', 'shopbuilder' ),
4445 + 'help' => esc_html__( 'Product Thumbnails Gap In Pixel. Default value is: 0. Limit: 0-50.', 'shopbuilder' ),
4446 + 'min' => 0,
4447 + 'max' => 50,
4448 + 'unit' => 'px',
4449 + 'value' => 0,
4450 + 'tab' => 'general',
4451 + ],
4452 + 'gallery_style' => [
4453 + 'id' => 'gallery_style',
4454 + 'type' => 'select',
4455 + 'value' => 'bottom',
4456 + 'label' => esc_html__( 'Gallery Style', 'shopbuilder' ),
4457 + 'isPro' => ! rtsb()->has_pro(),
4458 + 'options' => [
4459 + 'bottom' => esc_html__( 'Thumbnail Position Bottom', 'shopbuilder' ),
4460 + 'left' => esc_html__( 'Thumbnail Position Left', 'shopbuilder' ),
4461 + 'right' => esc_html__( 'Thumbnail Position Right', 'shopbuilder' ),
4462 + 'grid' => esc_html__( 'Grid View Images', 'shopbuilder' ),
4463 + ],
4464 + 'tab' => 'general',
4465 + ],
4466 + 'adaptive_height' => [
4781 4467 'id' => 'adaptive_height',
4782 4468 'type' => 'switch',
4783 4469 'default' => false,
4784 - 'label' => esc_html__( 'Main Images Slider Adaptive Height', 'shopbuilder' ),
4470 + 'label' => esc_html__( 'Main Slider Adaptive Height', 'shopbuilder' ),
4785 4471 'tab' => 'general',
4786 4472 'dependency' => [
4787 4473 'rules' => [
4788 4474 [
4789 4475 'item' => 'modules.variation_gallery.gallery_style',
4790 - 'value' => 'grid',
4791 - 'operator' => '!=',
4476 + 'value' => 'bottom',
4477 + 'operator' => '==',
4792 4478 ],
4793 4479 ],
4794 4480 ],
4795 4481 ],
4796 - 'main_slider_alignment' => [
4482 + 'main_slider_alignment' => [
4797 4483 'id' => 'main_slider_alignment',
4798 4484 'type' => 'switch',
4799 4485 'value' => 'center',
4800 4486 'label' => esc_html__( 'Main Image Middle Position', 'shopbuilder' ),
@@ -4809,13 +4495,14 @@
4809 4495 ],
4810 4496 ],
4811 4497 ],
4812 4498 ],
4813 - 'main_image_transition_effect' => [
4499 +
4500 + 'main_image_transition_effect' => [
4814 4501 'id' => 'main_image_transition_effect',
4815 4502 'type' => 'select',
4816 4503 'value' => 'slide',
4817 - 'label' => esc_html__( 'Transition Effect For Main Image Carousel', 'shopbuilder' ),
4504 + 'label' => esc_html__( 'Main Image Transition Effect', 'shopbuilder' ),
4818 4505 'isPro' => ! rtsb()->has_pro(),
4819 4506 'options' => [
4820 4507 'slide' => esc_html__( 'Slide', 'shopbuilder' ),
4821 4508 'fade' => esc_html__( 'Fade', 'shopbuilder' ),
@@ -4830,96 +4517,49 @@
4830 4517 ],
4831 4518 ],
4832 4519 ],
4833 4520 ],
4834 - 'preloader' => [
4835 - 'id' => 'preloader',
4836 - 'type' => 'switch',
4837 - 'default' => false,
4838 - 'label' => esc_html__( 'Preloader', 'shopbuilder' ),
4839 - 'help' => esc_html__( 'Show a loading animation while the gallery images are being loaded.', 'shopbuilder' ),
4840 - 'tab' => 'general',
4841 - ],
4842 - 'preloader_image' => [
4843 - 'id' => 'preloader_image',
4844 - 'type' => 'fileupload',
4845 - 'label' => esc_html__( 'Preloader Image', 'shopbuilder' ),
4846 - 'help' => esc_html__( 'Upload a custom preloader image to replace the default loading animation. Recommended size: 60x60 pixels.', 'shopbuilder' ),
4847 - 'tab' => 'general',
4848 - // Preserve the { id, source } media array on save (the default text
4849 - // sanitizer would flatten it to an empty string and drop the upload).
4850 - 'sanitize_fn' => [ Fns::class, 'sanitize_fileupload_value' ],
4851 - 'dependency' => [
4521 + 'thumb_image_section_width' => [
4522 + 'id' => 'thumb_image_section_width',
4523 + 'type' => 'slider',
4524 + 'label' => esc_html__( 'Thumbnail Image Section Width', 'shopbuilder' ),
4525 + 'help' => esc_html__( 'Product Thumbnails Section Width In Pixel.', 'shopbuilder' ),
4526 + 'min' => 150,
4527 + 'max' => 1000,
4528 + 'unit' => 'px',
4529 + 'value' => 150,
4530 + 'tab' => 'general',
4531 + 'dependency' => [
4852 4532 'rules' => [
4853 4533 [
4854 - 'item' => 'modules.variation_gallery.preloader',
4855 - 'value' => 'on',
4856 - 'operator' => '==',
4534 + 'item' => 'modules.variation_gallery.gallery_style',
4535 + 'value' => [ 'left', 'right' ],
4536 + 'operator' => 'in',
4857 4537 ],
4858 4538 ],
4859 4539 ],
4860 4540 ],
4861 - 'gallery_change_effect' => [
4862 - 'id' => 'gallery_change_effect',
4863 - 'type' => 'select',
4864 - 'value' => 'blur',
4865 - 'label' => esc_html__( 'Gallery Change Effect', 'shopbuilder' ),
4866 - 'help' => esc_html__( 'Choose the visual effect applied to the gallery when switching between variations.', 'shopbuilder' ),
4867 - 'options' => [
4868 - 'blur' => esc_html__( 'Blur', 'shopbuilder' ),
4869 - 'fade' => esc_html__( 'Fade', 'shopbuilder' ),
4870 - 'gray' => esc_html__( 'Gray', 'shopbuilder' ),
4871 - 'none' => esc_html__( 'No Effect', 'shopbuilder' ),
4541 + 'image_section_height' => [
4542 + 'id' => 'image_section_height',
4543 + 'type' => 'slider',
4544 + 'label' => esc_html__( 'Slider Height/Image Section Height', 'shopbuilder' ),
4545 + 'help' => esc_html__( 'Product Thumbnails And Main Image Section Height In Pixel.', 'shopbuilder' ),
4546 + 'min' => 400,
4547 + 'max' => 2000,
4548 + 'unit' => 'px',
4549 + 'value' => 500,
4550 + 'tab' => 'general',
4551 + 'dependency' => [
4552 + 'rules' => [
4553 + [
4554 + 'item' => 'modules.variation_gallery.gallery_style',
4555 + 'value' => [ 'left', 'right' ],
4556 + 'operator' => 'in',
4557 + ],
4558 + ],
4872 4559 ],
4873 - 'tab' => 'general',
4874 4560 ],
4875 - 'gallery_thumbnail_controls_title' => [
4876 - 'id' => 'gallery_thumbnail_controls_title',
4877 - 'type' => 'title',
4878 - 'label' => esc_html__( 'Gallery / Thumbnail Item Controls', 'shopbuilder' ),
4879 - 'tab' => 'general',
4880 - ],
4881 - 'gallery_style' => [
4882 - 'id' => 'gallery_style',
4883 - 'type' => 'select',
4884 - 'value' => 'bottom',
4885 - 'label' => esc_html__( 'Thumbnail Position/Gallery Style', 'shopbuilder' ),
4886 - // Bottom, left and right are free. Grid needs the pro templates, so
4887 - // it is only offered when pro is active; a value saved while pro was
4888 - // active degrades to bottom via GalleryFns::get_gallery_style().
4889 - 'options' => array_merge(
4890 - [
4891 - 'bottom' => esc_html__( 'Thumbnail Position Bottom', 'shopbuilder' ),
4892 - 'left' => esc_html__( 'Thumbnail Position Left', 'shopbuilder' ),
4893 - 'right' => esc_html__( 'Thumbnail Position Right', 'shopbuilder' ),
4894 - ],
4895 - rtsb()->has_pro() ? [ 'grid' => esc_html__( 'Grid View Images', 'shopbuilder' ) ] : []
4896 - ),
4897 - 'tab' => 'general',
4898 - ],
4899 - 'thumbnails_columns' => [
4900 - 'id' => 'thumbnails_columns',
4901 - 'type' => 'slider',
4902 - 'label' => esc_html__( 'Thumbnail Items', 'shopbuilder' ),
4903 - 'help' => esc_html__( 'Add slides per view, or items per row if the slider is not activated.', 'shopbuilder' ),
4904 - 'min' => 2,
4905 - 'max' => 8,
4906 - 'unit' => '',
4907 - 'value' => 4,
4908 - 'tab' => 'general',
4909 - ],
4910 - 'thumbnails_gap' => [
4911 - 'id' => 'thumbnails_gap',
4912 - 'type' => 'slider',
4913 - 'label' => esc_html__( 'Thumbnails Gap', 'shopbuilder' ),
4914 - 'help' => esc_html__( 'Product Thumbnails Gap In Pixel. Default value is: 0. Limit: 0-50.', 'shopbuilder' ),
4915 - 'min' => 0,
4916 - 'max' => 50,
4917 - 'unit' => 'px',
4918 - 'value' => 10,
4919 - 'tab' => 'general',
4920 - ],
4921 - 'main_image_border_color' => [
4561 + 'main_image_border_color' => [
4922 4562 'id' => 'main_image_border_color',
4923 4563 'label' => esc_html__( 'Main Image Border Color', 'shopbuilder' ),
4924 4564 'tab' => 'styles',
4925 4565 'type' => 'color',
@@ -4932,22 +4572,15 @@
4932 4572 ],
4933 4573 ],
4934 4574 ],
4935 4575 ],
4936 - 'thumbnail_item_border_color' => [
4576 + 'thumbnail_item_border_color' => [
4937 4577 'id' => 'thumbnail_item_border_color',
4938 4578 'label' => esc_html__( 'Thumbnail item Border Color', 'shopbuilder' ),
4939 4579 'tab' => 'styles',
4940 4580 'type' => 'color',
4941 4581 ],
4942 - 'thumbnail_active_border_color' => [
4943 - 'id' => 'thumbnail_active_border_color',
4944 - 'label' => esc_html__( 'Active Thumbnail Border Color', 'shopbuilder' ),
4945 - 'help' => esc_html__( 'Border color of the currently selected thumbnail.', 'shopbuilder' ),
4946 - 'tab' => 'styles',
4947 - 'type' => 'color',
4948 - ],
4949 - 'thumbnail_item_inner_padding' => [
4582 + 'thumbnail_item_inner_padding' => [
4950 4583 'id' => 'thumbnail_item_inner_padding',
4951 4584 'type' => 'slider',
4952 4585 'label' => esc_html__( 'Thumbnail Item Inner Padding', 'shopbuilder' ),
4953 4586 'min' => 0,
@@ -4955,9 +4588,9 @@
4955 4588 'unit' => 'px',
4956 4589 'value' => 10,
4957 4590 'tab' => 'styles',
4958 4591 ],
4959 - 'thumbnail_item_border_radius' => [
4592 + 'thumbnail_item_border_radius' => [
4960 4593 'id' => 'thumbnail_item_border_radius',
4961 4594 'type' => 'slider',
4962 4595 'label' => esc_html__( 'Thumbnail Item Border Radius', 'shopbuilder' ),
4963 4596 'min' => 0,