| @@ -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' ), |
| @@ -655,54 +660,20 @@ | ||
| 655 | 660 | 'label' => esc_html__( 'Wishlist Table Fields Visibility', 'shopbuilder' ), |
| 656 | 661 | 'tab' => 'page', |
| 657 | 662 | ], |
| 658 | 663 | |
| 659 | - 'shortcode_list_heading' => [ | |
| 660 | - 'id' => 'shortcode_list_heading', | |
| 661 | - 'type' => 'title', | |
| 662 | - 'label' => esc_html__( 'Available Shortcodes', 'shopbuilder' ), | |
| 663 | - 'tab' => 'shortcodes', | |
| 664 | - ], | |
| 665 | - 'shortcode_wishlist_table' => [ | |
| 666 | - 'type' => 'raw', | |
| 667 | - 'label' => esc_html__( 'Wishlist Table', 'shopbuilder' ), | |
| 668 | - 'html' => '<code>[rtsb_wishlist]</code><p class="description">' | |
| 669 | - . esc_html__( 'Displays the wishlist table with all added products. Use this shortcode on the wishlist page.', 'shopbuilder' ) | |
| 670 | - . '</p>', | |
| 671 | - 'tab' => 'shortcodes', | |
| 672 | - ], | |
| 673 | - 'shortcode_wishlist_button' => [ | |
| 674 | - 'type' => 'raw', | |
| 675 | - 'label' => esc_html__( 'Wishlist Button', 'shopbuilder' ), | |
| 676 | - 'html' => '<code>[rtsb_wishlist_button]</code><p class="description">' | |
| 677 | - . esc_html__( 'Displays the "Add to Wishlist" button. Use inside a product loop or on a single product page.', 'shopbuilder' ) | |
| 678 | - . '</p>', | |
| 679 | - 'tab' => 'shortcodes', | |
| 680 | - ], | |
| 681 | - 'shortcode_wishlist_counter' => [ | |
| 682 | - 'type' => 'raw', | |
| 683 | - 'label' => esc_html__( 'Wishlist Counter', 'shopbuilder' ), | |
| 684 | - 'html' => '<code>[rtsb_wishlist_counter]</code><p class="description">' | |
| 685 | - . esc_html__( 'Displays the wishlist item count. Place it in the header or menu to show total wishlist items.', 'shopbuilder' ) | |
| 686 | - . '</p>', | |
| 687 | - 'tab' => 'shortcodes', | |
| 688 | - ], | |
| 689 | - | |
| 690 | 664 | ] |
| 691 | 665 | ), |
| 692 | 666 | 'tabs' => [ |
| 693 | - 'general' => [ | |
| 667 | + 'general' => [ | |
| 694 | 668 | 'title' => esc_html__( 'General', 'shopbuilder' ), |
| 695 | 669 | ], |
| 696 | - 'button' => [ | |
| 670 | + 'button' => [ | |
| 697 | 671 | 'title' => esc_html__( 'Button', 'shopbuilder' ), |
| 698 | 672 | ], |
| 699 | - 'page' => [ | |
| 673 | + 'page' => [ | |
| 700 | 674 | 'title' => esc_html__( 'Page', 'shopbuilder' ), |
| 701 | 675 | ], |
| 702 | - 'shortcodes' => [ | |
| 703 | - 'title' => esc_html__( 'Shortcodes', 'shopbuilder' ), | |
| 704 | - ], | |
| 705 | 676 | ], |
| 706 | 677 | ] |
| 707 | 678 | ), |
| 708 | 679 | 'compare' => apply_filters( |
| @@ -709,8 +680,9 @@ | ||
| 709 | 680 | 'rtsb/module/compare/options', |
| 710 | 681 | [ |
| 711 | 682 | 'id' => 'compare', |
| 712 | 683 | 'base_class' => Compare::class, |
| 684 | + 'category' => 'general', | |
| 713 | 685 | 'title' => esc_html__( 'Product Compare', 'shopbuilder' ), |
| 714 | 686 | 'package' => 'free', |
| 715 | 687 | 'active' => 'on', |
| 716 | 688 | 'active_field' => [ |
| @@ -722,9 +694,9 @@ | ||
| 722 | 694 | [ |
| 723 | 695 | 'compare_shop_wrapper_heading' => [ |
| 724 | 696 | 'id' => 'compare_shop_wrapper_heading', |
| 725 | 697 | 'type' => 'title', |
| 726 | - 'label' => esc_html__( 'Product Showcase Settings', 'shopbuilder' ), | |
| 698 | + 'label' => esc_html__( 'Shop Page Settings', 'shopbuilder' ), | |
| 727 | 699 | 'tab' => 'button', |
| 728 | 700 | ], |
| 729 | 701 | 'show_btn_on_loop' => [ |
| 730 | 702 | 'id' => 'show_btn_on_loop', |
| @@ -729,9 +701,9 @@ | ||
| 729 | 701 | 'show_btn_on_loop' => [ |
| 730 | 702 | 'id' => 'show_btn_on_loop', |
| 731 | 703 | 'value' => 'on', |
| 732 | 704 | 'type' => 'switch', |
| 733 | - 'label' => esc_html__( 'Show in Product Showcase', 'shopbuilder' ), | |
| 705 | + 'label' => esc_html__( 'Show in Shop Page', 'shopbuilder' ), | |
| 734 | 706 | 'tab' => 'button', |
| 735 | 707 | ], |
| 736 | 708 | 'loop_btn_position' => [ |
| 737 | 709 | 'id' => 'loop_btn_position', |
| @@ -736,13 +708,13 @@ | ||
| 736 | 708 | 'loop_btn_position' => [ |
| 737 | 709 | 'id' => 'loop_btn_position', |
| 738 | 710 | 'type' => 'select', |
| 739 | 711 | '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' ), | |
| 712 | + 'label' => esc_html__( 'Shop Page Button Position', 'shopbuilder' ), | |
| 713 | + 'help' => esc_html__( 'You can manage wishlist button position in shop page.', 'shopbuilder' ), | |
| 742 | 714 | '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' ), | |
| 715 | + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ), | |
| 716 | + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ), | |
| 745 | 717 | 'shortcode' => esc_html__( 'Use Shortcode', 'shopbuilder' ), |
| 746 | 718 | 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ), |
| 747 | 719 | ], |
| 748 | 720 | 'dependency' => [ |
| @@ -849,10 +821,10 @@ | ||
| 849 | 821 | 'help' => esc_html__( 'You can manage compare button position in single product page.', 'shopbuilder' ), |
| 850 | 822 | 'type' => 'select', |
| 851 | 823 | 'value' => 'custom', |
| 852 | 824 | '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' ), | |
| 825 | + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ), | |
| 826 | + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ), | |
| 855 | 827 | 'after_thumbnail' => esc_html__( 'After Image', 'shopbuilder' ), |
| 856 | 828 | 'after_summary' => esc_html__( 'After Summary', 'shopbuilder' ), |
| 857 | 829 | 'shortcode' => esc_html__( 'Use Shortcode', 'shopbuilder' ), |
| 858 | 830 | 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ), |
| @@ -1432,9 +1404,9 @@ | ||
| 1432 | 1404 | 'rtsb/module/bulk_discounts/options', |
| 1433 | 1405 | [ |
| 1434 | 1406 | 'id' => 'bulk_discounts', |
| 1435 | 1407 | 'active' => '', |
| 1436 | - 'title' => esc_html__( 'Volume Discount', 'shopbuilder' ), | |
| 1408 | + 'title' => esc_html__( 'Bulk Discounts', 'shopbuilder' ), | |
| 1437 | 1409 | 'active_field' => [ |
| 1438 | 1410 | 'label' => esc_html__( 'Enable Bulk Discounts?', 'shopbuilder' ), |
| 1439 | 1411 | 'help' => esc_html__( 'Switch on to enable bulk discounts module.', 'shopbuilder' ), |
| 1440 | 1412 | ], |
| @@ -1559,216 +1531,15 @@ | ||
| 1559 | 1531 | 'label' => esc_html__( 'Enable Save Cart For Buy Later?', 'shopbuilder' ), |
| 1560 | 1532 | 'help' => esc_html__( 'Switch on to enable Save Cart For Buy Later.', 'shopbuilder' ), |
| 1561 | 1533 | ], |
| 1562 | 1534 | 'package' => $this->pro_package(), |
| 1563 | - 'fields' => Fns::pro_version_notice( '2.1.8', 'general', 'ShopBuilder Pro', false ), | |
| 1535 | + 'fields' => Fns::pro_version_notice( '2.1.7', 'general', 'ShopBuilder Pro', false ), | |
| 1564 | 1536 | ] |
| 1565 | 1537 | ), |
| 1566 | - 'catalog_mode' => apply_filters( | |
| 1567 | - 'rtsb/module/catalog_mode/options', | |
| 1568 | - [ | |
| 1569 | - 'id' => 'catalog_mode', | |
| 1570 | - 'active' => '', | |
| 1571 | - 'title' => esc_html__( 'Catalog Mode', 'shopbuilder' ), | |
| 1572 | - 'active_field' => [ | |
| 1573 | - 'label' => esc_html__( 'Enable Catalog Mode?', 'shopbuilder' ), | |
| 1574 | - 'help' => esc_html__( 'Switch on to enable Catalog Mode.', 'shopbuilder' ), | |
| 1575 | - ], | |
| 1576 | - 'package' => $this->pro_package(), | |
| 1577 | - 'fields' => Fns::pro_version_notice( '2.1.9', 'general', 'ShopBuilder Pro', false ), | |
| 1578 | - ] | |
| 1579 | - ), | |
| 1580 | - 'back_in_stock_notifier' => apply_filters( | |
| 1581 | - 'rtsb/module/back_in_stock_notifier/options', | |
| 1582 | - [ | |
| 1583 | - 'id' => 'back_in_stock_notifier', | |
| 1584 | - 'active' => '', | |
| 1585 | - 'title' => esc_html__( 'Back In Stock Notifier', 'shopbuilder' ), | |
| 1586 | - 'active_field' => [ | |
| 1587 | - 'label' => esc_html__( 'Enable Back In Stock Notifier?', 'shopbuilder' ), | |
| 1588 | - 'help' => esc_html__( 'Switch on to enable Back In Stock Notifier.', 'shopbuilder' ), | |
| 1589 | - ], | |
| 1590 | - 'package' => $this->pro_package(), | |
| 1591 | - 'fields' => Fns::pro_version_notice( '2.1.11', 'general', 'ShopBuilder Pro', false ), | |
| 1592 | - ] | |
| 1593 | - ), | |
| 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 | 1538 | ]; |
| 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 | 1539 | return apply_filters( 'rtsb/core/modules/raw_list', $list ); |
| 1627 | 1540 | } |
| 1628 | - | |
| 1629 | 1541 | /** |
| 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 | 1542 | * Get All Menu |
| 1772 | 1543 | */ |
| 1773 | 1544 | public function get_all_menu() { |
| 1774 | 1545 | $manus = [ |
| @@ -3050,179 +2821,8 @@ | ||
| 3050 | 2821 | ], |
| 3051 | 2822 | ], |
| 3052 | 2823 | ], |
| 3053 | 2824 | ], |
| 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 | 2825 | 'footer_menu_styles_settings' => [ |
| 3226 | 2826 | 'id' => 'footer_menu_styles_settings', |
| 3227 | 2827 | 'type' => 'title', |
| 3228 | 2828 | 'tab' => 'styles', |
| @@ -3442,10 +3042,10 @@ | ||
| 3442 | 3042 | 'options' => [ |
| 3443 | 3043 | 'above_image' => esc_html__( 'Floating Above Image', 'shopbuilder' ), |
| 3444 | 3044 | 'before_product_title' => esc_html__( 'Before Product Title', 'shopbuilder' ), |
| 3445 | 3045 | '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' ), | |
| 3046 | + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ), | |
| 3047 | + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ), | |
| 3448 | 3048 | 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ), |
| 3449 | 3049 | ], |
| 3450 | 3050 | 'tab' => 'group', |
| 3451 | 3051 | ], |
| @@ -3524,10 +3124,10 @@ | ||
| 3524 | 3124 | 'label' => esc_html__( 'Product Page Group Position', 'shopbuilder' ), |
| 3525 | 3125 | 'help' => esc_html__( 'Choose the group badges position in product page.', 'shopbuilder' ), |
| 3526 | 3126 | 'options' => [ |
| 3527 | 3127 | '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' ), | |
| 3128 | + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ), | |
| 3129 | + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ), | |
| 3530 | 3130 | 'after_summary' => esc_html__( 'After Summary', 'shopbuilder' ), |
| 3531 | 3131 | 'after_short_desc' => esc_html__( 'After Short Description', 'shopbuilder' ), |
| 3532 | 3132 | 'shortcode' => esc_html__( 'Use Shortcode', 'shopbuilder' ), |
| 3533 | 3133 | 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ), |
| @@ -4133,8 +3733,26 @@ | ||
| 4133 | 3733 | 'label' => esc_html__( 'Enable Tooltip', 'shopbuilder' ), |
| 4134 | 3734 | 'help' => esc_html__( 'Enable / Disable plugin default tooltip on each product attribute.', 'shopbuilder' ), |
| 4135 | 3735 | 'tab' => 'general', |
| 4136 | 3736 | ], |
| 3737 | + 'shape_style' => [ | |
| 3738 | + 'id' => 'shape_style', | |
| 3739 | + 'label' => esc_html__( 'Default Shape Style', 'shopbuilder' ), | |
| 3740 | + 'help' => esc_html__( 'Attribute Shape Style. Note: This option will not be applied to radio and button attributes.', 'shopbuilder' ), | |
| 3741 | + 'type' => 'image_select', | |
| 3742 | + 'value' => 'rounded', | |
| 3743 | + 'options' => [ | |
| 3744 | + 'rounded' => [ | |
| 3745 | + 'label' => esc_html__( 'Rounded Shape', 'shopbuilder' ), | |
| 3746 | + 'url' => esc_url( rtsb()->get_assets_uri( 'images/variation-swatch/rounded-shape.svg' ) ), | |
| 3747 | + ], | |
| 3748 | + 'squared' => [ | |
| 3749 | + 'label' => esc_html__( 'Squared Shape', 'shopbuilder' ), | |
| 3750 | + 'url' => esc_url( rtsb()->get_assets_uri( 'images/variation-swatch/squared-shape.svg' ) ), | |
| 3751 | + ], | |
| 3752 | + ], | |
| 3753 | + 'tab' => 'general', | |
| 3754 | + ], | |
| 4137 | 3755 | 'shape_style_checkmark' => [ |
| 4138 | 3756 | 'id' => 'shape_style_checkmark', |
| 4139 | 3757 | 'type' => 'switch', |
| 4140 | 3758 | 'isPro' => ! rtsb()->has_pro(), |
| @@ -4304,27 +3922,8 @@ | ||
| 4304 | 3922 | ], |
| 4305 | 3923 | ], |
| 4306 | 3924 | 'tab' => 'showcase_shop', |
| 4307 | 3925 | ], |
| 4308 | - 'showcase_image_size' => [ | |
| 4309 | - 'id' => 'showcase_image_size', | |
| 4310 | - 'label' => esc_html__( 'Showcase Image Size', 'shopbuilder' ), | |
| 4311 | - 'help' => __( 'Choose showcase variation image size.', 'shopbuilder' ) , | |
| 4312 | - 'type' => 'select', | |
| 4313 | - 'isPro' => ! rtsb()->has_pro(), | |
| 4314 | - 'value' => 'woocommerce_thumbnail', | |
| 4315 | - 'options' => array_diff_key( Fns::get_image_sizes(), [ 'rtsb_custom' => '' ] ), | |
| 4316 | - 'dependency' => [ | |
| 4317 | - 'rules' => [ | |
| 4318 | - [ | |
| 4319 | - 'item' => 'modules.variation_swatches.enable_showcase_swatches', | |
| 4320 | - 'value' => 'on', | |
| 4321 | - 'operator' => '==', | |
| 4322 | - ], | |
| 4323 | - ], | |
| 4324 | - ], | |
| 4325 | - 'tab' => 'showcase_shop', | |
| 4326 | - ], | |
| 4327 | 3926 | 'showcase_swatches_position' => [ |
| 4328 | 3927 | 'id' => 'showcase_swatches_position', |
| 4329 | 3928 | 'label' => esc_html__( 'Swatches Position', 'shopbuilder' ), |
| 4330 | 3929 | 'help' => esc_html__( 'Display showcase swatches in a specific position.', 'shopbuilder' ) . '<br/>' . __( 'Note: Some themes remove or override default WooCommerce hooks. If the swatches do not appear as expected, you may need to manually set a custom position.', 'shopbuilder' ), |
| @@ -4334,10 +3933,10 @@ | ||
| 4334 | 3933 | 'options' => apply_filters( |
| 4335 | 3934 | 'rtsb_showcase_swatches_positions', |
| 4336 | 3935 | [ |
| 4337 | 3936 | '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' ), | |
| 3937 | + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ), | |
| 3938 | + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ), | |
| 4340 | 3939 | ] |
| 4341 | 3940 | ), |
| 4342 | 3941 | 'dependency' => [ |
| 4343 | 3942 | 'rules' => [ |
| @@ -4568,9 +4167,9 @@ | ||
| 4568 | 4167 | 'attribute_border_radius' => [ |
| 4569 | 4168 | 'id' => 'attribute_border_radius', |
| 4570 | 4169 | 'label' => esc_html__( 'Attribute Border Radius', 'shopbuilder' ), |
| 4571 | 4170 | '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' ), | |
| 4171 | + 'help' => esc_html__( 'Set the border radius (in px) for attribute items to control how rounded the corners appear.', 'shopbuilder' ), | |
| 4573 | 4172 | 'type' => 'slider', |
| 4574 | 4173 | 'min' => 0, |
| 4575 | 4174 | 'max' => 200, |
| 4576 | 4175 | 'unit' => 'px', |
| @@ -4632,19 +4231,8 @@ | ||
| 4632 | 4231 | 'unit' => 'px', |
| 4633 | 4232 | 'value' => 16, |
| 4634 | 4233 | 'tab' => 'style', |
| 4635 | 4234 | ], |
| 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 | 4235 | 'showcase_attribute_size' => [ |
| 4648 | 4236 | 'id' => 'showcase_attribute_size', |
| 4649 | 4237 | 'type' => 'title', |
| 4650 | 4238 | 'label' => esc_html__( 'Shop Page / Product Showcase Attributes Size', 'shopbuilder' ), |
| @@ -4682,19 +4270,8 @@ | ||
| 4682 | 4270 | 'unit' => 'px', |
| 4683 | 4271 | 'value' => 16, |
| 4684 | 4272 | 'tab' => 'style', |
| 4685 | 4273 | ], |
| 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 | 4274 | 'tooltip_style' => [ |
| 4698 | 4275 | 'id' => 'tooltip_style', |
| 4699 | 4276 | 'type' => 'title', |
| 4700 | 4277 | 'label' => esc_html__( 'Tooltip Style', 'shopbuilder' ), |
| @@ -4699,22 +4276,8 @@ | ||
| 4699 | 4276 | 'type' => 'title', |
| 4700 | 4277 | 'label' => esc_html__( 'Tooltip Style', 'shopbuilder' ), |
| 4701 | 4278 | 'tab' => 'style', |
| 4702 | 4279 | ], |
| 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 | 4280 | 'tooltip_images_padding' => [ |
| 4718 | 4281 | 'id' => 'tooltip_images_padding', |
| 4719 | 4282 | 'label' => esc_html__( 'Tooltip Images Padding', 'shopbuilder' ), |
| 4720 | 4283 | 'type' => 'slider', |
| @@ -4723,16 +4286,29 @@ | ||
| 4723 | 4286 | 'unit' => 'px', |
| 4724 | 4287 | 'value' => 3, |
| 4725 | 4288 | 'tab' => 'style', |
| 4726 | 4289 | ], |
| 4290 | + 'tooltip_bg_color' => [ | |
| 4291 | + 'id' => 'tooltip_bg_color', | |
| 4292 | + 'label' => esc_html__( 'Tooltip Background Color', 'shopbuilder' ), | |
| 4293 | + 'type' => 'color', | |
| 4294 | + 'value' => '#333333', | |
| 4295 | + 'tab' => 'style', | |
| 4296 | + ], | |
| 4727 | 4297 | 'tooltip_image_bg_color' => [ |
| 4728 | - 'id' => 'tooltip_image_bg_color', | |
| 4298 | + 'id' => 'tooltip_bg_color', | |
| 4729 | 4299 | 'label' => esc_html__( 'Tooltip Image Background Color', 'shopbuilder' ), |
| 4730 | 4300 | 'type' => 'color', |
| 4731 | 4301 | 'value' => '#333333', |
| 4732 | 4302 | 'tab' => 'style', |
| 4733 | 4303 | ], |
| 4734 | - | |
| 4304 | + 'tooltip_text_color' => [ | |
| 4305 | + 'id' => 'tooltip_text_color', | |
| 4306 | + 'label' => esc_html__( 'Tooltip Text Color', 'shopbuilder' ), | |
| 4307 | + 'type' => 'color', | |
| 4308 | + 'value' => '#ffffff', | |
| 4309 | + 'tab' => 'style', | |
| 4310 | + ], | |
| 4735 | 4311 | ] |
| 4736 | 4312 | ); // @phpstan-ignore-line |
| 4737 | 4313 | } |
| 4738 | 4314 | /** |
| @@ -4741,15 +4317,9 @@ | ||
| 4741 | 4317 | public function get_variation_gallery_fields() { |
| 4742 | 4318 | return apply_filters( |
| 4743 | 4319 | 'rtsb/module/variation_gallery/fields', |
| 4744 | 4320 | [ |
| 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' => [ | |
| 4321 | + 'image_zoom' => [ | |
| 4752 | 4322 | 'id' => 'image_zoom', |
| 4753 | 4323 | 'type' => 'switch', |
| 4754 | 4324 | 'default' => false, |
| 4755 | 4325 | 'label' => esc_html__( 'Zoom Gallery image', 'shopbuilder' ), |
| @@ -4754,9 +4324,9 @@ | ||
| 4754 | 4324 | 'default' => false, |
| 4755 | 4325 | 'label' => esc_html__( 'Zoom Gallery image', 'shopbuilder' ), |
| 4756 | 4326 | 'tab' => 'general', |
| 4757 | 4327 | ], |
| 4758 | - 'lightBox' => [ | |
| 4328 | + 'lightBox' => [ | |
| 4759 | 4329 | 'id' => 'lightBox', |
| 4760 | 4330 | 'type' => 'switch', |
| 4761 | 4331 | 'default' => false, |
| 4762 | 4332 | 'label' => esc_html__( 'Enable Images lightBox', 'shopbuilder' ), |
| @@ -4761,9 +4331,9 @@ | ||
| 4761 | 4331 | 'default' => false, |
| 4762 | 4332 | 'label' => esc_html__( 'Enable Images lightBox', 'shopbuilder' ), |
| 4763 | 4333 | 'tab' => 'general', |
| 4764 | 4334 | ], |
| 4765 | - 'lightBox_button_position' => [ | |
| 4335 | + 'lightBox_button_position' => [ | |
| 4766 | 4336 | 'id' => 'lightBox_button_position', |
| 4767 | 4337 | 'type' => 'select', |
| 4768 | 4338 | 'value' => 'top-right', |
| 4769 | 4339 | 'label' => esc_html__( 'Zoom Button Position', 'shopbuilder' ), |
| @@ -4775,26 +4345,61 @@ | ||
| 4775 | 4345 | 'bottom-left' => esc_html__( 'Bottom Left', 'shopbuilder' ), |
| 4776 | 4346 | ], |
| 4777 | 4347 | 'tab' => 'general', |
| 4778 | 4348 | ], |
| 4779 | - | |
| 4780 | - 'adaptive_height' => [ | |
| 4349 | + 'thumbnails_columns' => [ | |
| 4350 | + 'id' => 'thumbnails_columns', | |
| 4351 | + 'type' => 'slider', | |
| 4352 | + 'label' => esc_html__( 'Thumbnails Items per row / slider view', 'shopbuilder' ), | |
| 4353 | + 'help' => esc_html__( 'Product Thumbnails Item Image. Default value is: 4. Limit: 2-8. The field required for slider.', 'shopbuilder' ), | |
| 4354 | + 'min' => 2, | |
| 4355 | + 'max' => 8, | |
| 4356 | + 'unit' => '', | |
| 4357 | + 'value' => 4, | |
| 4358 | + 'tab' => 'general', | |
| 4359 | + ], | |
| 4360 | + 'thumbnails_gap' => [ | |
| 4361 | + 'id' => 'thumbnails_gap', | |
| 4362 | + 'type' => 'slider', | |
| 4363 | + 'label' => esc_html__( 'Thumbnails Gap', 'shopbuilder' ), | |
| 4364 | + 'help' => esc_html__( 'Product Thumbnails Gap In Pixel. Default value is: 0. Limit: 0-50.', 'shopbuilder' ), | |
| 4365 | + 'min' => 0, | |
| 4366 | + 'max' => 50, | |
| 4367 | + 'unit' => 'px', | |
| 4368 | + 'value' => 0, | |
| 4369 | + 'tab' => 'general', | |
| 4370 | + ], | |
| 4371 | + 'gallery_style' => [ | |
| 4372 | + 'id' => 'gallery_style', | |
| 4373 | + 'type' => 'select', | |
| 4374 | + 'value' => 'bottom', | |
| 4375 | + 'label' => esc_html__( 'Gallery Style', 'shopbuilder' ), | |
| 4376 | + 'isPro' => ! rtsb()->has_pro(), | |
| 4377 | + 'options' => [ | |
| 4378 | + 'bottom' => esc_html__( 'Thumbnail Position Bottom', 'shopbuilder' ), | |
| 4379 | + 'left' => esc_html__( 'Thumbnail Position Left', 'shopbuilder' ), | |
| 4380 | + 'right' => esc_html__( 'Thumbnail Position Right', 'shopbuilder' ), | |
| 4381 | + 'grid' => esc_html__( 'Grid View Images', 'shopbuilder' ), | |
| 4382 | + ], | |
| 4383 | + 'tab' => 'general', | |
| 4384 | + ], | |
| 4385 | + 'adaptive_height' => [ | |
| 4781 | 4386 | 'id' => 'adaptive_height', |
| 4782 | 4387 | 'type' => 'switch', |
| 4783 | 4388 | 'default' => false, |
| 4784 | - 'label' => esc_html__( 'Main Images Slider Adaptive Height', 'shopbuilder' ), | |
| 4389 | + 'label' => esc_html__( 'Main Slider Adaptive Height', 'shopbuilder' ), | |
| 4785 | 4390 | 'tab' => 'general', |
| 4786 | 4391 | 'dependency' => [ |
| 4787 | 4392 | 'rules' => [ |
| 4788 | 4393 | [ |
| 4789 | 4394 | 'item' => 'modules.variation_gallery.gallery_style', |
| 4790 | - 'value' => 'grid', | |
| 4791 | - 'operator' => '!=', | |
| 4395 | + 'value' => 'bottom', | |
| 4396 | + 'operator' => '==', | |
| 4792 | 4397 | ], |
| 4793 | 4398 | ], |
| 4794 | 4399 | ], |
| 4795 | 4400 | ], |
| 4796 | - 'main_slider_alignment' => [ | |
| 4401 | + 'main_slider_alignment' => [ | |
| 4797 | 4402 | 'id' => 'main_slider_alignment', |
| 4798 | 4403 | 'type' => 'switch', |
| 4799 | 4404 | 'value' => 'center', |
| 4800 | 4405 | 'label' => esc_html__( 'Main Image Middle Position', 'shopbuilder' ), |
| @@ -4809,13 +4414,14 @@ | ||
| 4809 | 4414 | ], |
| 4810 | 4415 | ], |
| 4811 | 4416 | ], |
| 4812 | 4417 | ], |
| 4813 | - 'main_image_transition_effect' => [ | |
| 4418 | + | |
| 4419 | + 'main_image_transition_effect' => [ | |
| 4814 | 4420 | 'id' => 'main_image_transition_effect', |
| 4815 | 4421 | 'type' => 'select', |
| 4816 | 4422 | 'value' => 'slide', |
| 4817 | - 'label' => esc_html__( 'Transition Effect For Main Image Carousel', 'shopbuilder' ), | |
| 4423 | + 'label' => esc_html__( 'Main Image Transition Effect', 'shopbuilder' ), | |
| 4818 | 4424 | 'isPro' => ! rtsb()->has_pro(), |
| 4819 | 4425 | 'options' => [ |
| 4820 | 4426 | 'slide' => esc_html__( 'Slide', 'shopbuilder' ), |
| 4821 | 4427 | 'fade' => esc_html__( 'Fade', 'shopbuilder' ), |
| @@ -4830,92 +4436,49 @@ | ||
| 4830 | 4436 | ], |
| 4831 | 4437 | ], |
| 4832 | 4438 | ], |
| 4833 | 4439 | ], |
| 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' => [ | |
| 4440 | + 'thumb_image_section_width' => [ | |
| 4441 | + 'id' => 'thumb_image_section_width', | |
| 4442 | + 'type' => 'slider', | |
| 4443 | + 'label' => esc_html__( 'Thumbnail Image Section Width', 'shopbuilder' ), | |
| 4444 | + 'help' => esc_html__( 'Product Thumbnails Section Width In Pixel.', 'shopbuilder' ), | |
| 4445 | + 'min' => 150, | |
| 4446 | + 'max' => 1000, | |
| 4447 | + 'unit' => 'px', | |
| 4448 | + 'value' => 150, | |
| 4449 | + 'tab' => 'general', | |
| 4450 | + 'dependency' => [ | |
| 4852 | 4451 | 'rules' => [ |
| 4853 | 4452 | [ |
| 4854 | - 'item' => 'modules.variation_gallery.preloader', | |
| 4855 | - 'value' => 'on', | |
| 4856 | - 'operator' => '==', | |
| 4453 | + 'item' => 'modules.variation_gallery.gallery_style', | |
| 4454 | + 'value' => [ 'left', 'right' ], | |
| 4455 | + 'operator' => 'in', | |
| 4857 | 4456 | ], |
| 4858 | 4457 | ], |
| 4859 | 4458 | ], |
| 4860 | 4459 | ], |
| 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' ), | |
| 4460 | + 'image_section_height' => [ | |
| 4461 | + 'id' => 'image_section_height', | |
| 4462 | + 'type' => 'slider', | |
| 4463 | + 'label' => esc_html__( 'Slider Height/Image Section Height', 'shopbuilder' ), | |
| 4464 | + 'help' => esc_html__( 'Product Thumbnails And Main Image Section Height In Pixel.', 'shopbuilder' ), | |
| 4465 | + 'min' => 400, | |
| 4466 | + 'max' => 2000, | |
| 4467 | + 'unit' => 'px', | |
| 4468 | + 'value' => 500, | |
| 4469 | + 'tab' => 'general', | |
| 4470 | + 'dependency' => [ | |
| 4471 | + 'rules' => [ | |
| 4472 | + [ | |
| 4473 | + 'item' => 'modules.variation_gallery.gallery_style', | |
| 4474 | + 'value' => [ 'left', 'right' ], | |
| 4475 | + 'operator' => 'in', | |
| 4476 | + ], | |
| 4477 | + ], | |
| 4872 | 4478 | ], |
| 4873 | - 'tab' => 'general', | |
| 4874 | 4479 | ], |
| 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 | - 'isPro' => ! rtsb()->has_pro(), | |
| 4887 | - 'options' => [ | |
| 4888 | - 'bottom' => esc_html__( 'Thumbnail Position Bottom', 'shopbuilder' ), | |
| 4889 | - 'left' => esc_html__( 'Thumbnail Position Left', 'shopbuilder' ), | |
| 4890 | - 'right' => esc_html__( 'Thumbnail Position Right', 'shopbuilder' ), | |
| 4891 | - 'grid' => esc_html__( 'Grid View Images', 'shopbuilder' ), | |
| 4892 | - ], | |
| 4893 | - 'tab' => 'general', | |
| 4894 | - ], | |
| 4895 | - 'thumbnails_columns' => [ | |
| 4896 | - 'id' => 'thumbnails_columns', | |
| 4897 | - 'type' => 'slider', | |
| 4898 | - 'label' => esc_html__( 'Thumbnail Items', 'shopbuilder' ), | |
| 4899 | - 'help' => esc_html__( 'Add slides per view, or items per row if the slider is not activated.', 'shopbuilder' ), | |
| 4900 | - 'min' => 2, | |
| 4901 | - 'max' => 8, | |
| 4902 | - 'unit' => '', | |
| 4903 | - 'value' => 4, | |
| 4904 | - 'tab' => 'general', | |
| 4905 | - ], | |
| 4906 | - 'thumbnails_gap' => [ | |
| 4907 | - 'id' => 'thumbnails_gap', | |
| 4908 | - 'type' => 'slider', | |
| 4909 | - 'label' => esc_html__( 'Thumbnails Gap', 'shopbuilder' ), | |
| 4910 | - 'help' => esc_html__( 'Product Thumbnails Gap In Pixel. Default value is: 0. Limit: 0-50.', 'shopbuilder' ), | |
| 4911 | - 'min' => 0, | |
| 4912 | - 'max' => 50, | |
| 4913 | - 'unit' => 'px', | |
| 4914 | - 'value' => 10, | |
| 4915 | - 'tab' => 'general', | |
| 4916 | - ], | |
| 4917 | - 'main_image_border_color' => [ | |
| 4480 | + 'main_image_border_color' => [ | |
| 4918 | 4481 | 'id' => 'main_image_border_color', |
| 4919 | 4482 | 'label' => esc_html__( 'Main Image Border Color', 'shopbuilder' ), |
| 4920 | 4483 | 'tab' => 'styles', |
| 4921 | 4484 | 'type' => 'color', |
| @@ -4928,22 +4491,15 @@ | ||
| 4928 | 4491 | ], |
| 4929 | 4492 | ], |
| 4930 | 4493 | ], |
| 4931 | 4494 | ], |
| 4932 | - 'thumbnail_item_border_color' => [ | |
| 4495 | + 'thumbnail_item_border_color' => [ | |
| 4933 | 4496 | 'id' => 'thumbnail_item_border_color', |
| 4934 | 4497 | 'label' => esc_html__( 'Thumbnail item Border Color', 'shopbuilder' ), |
| 4935 | 4498 | 'tab' => 'styles', |
| 4936 | 4499 | 'type' => 'color', |
| 4937 | 4500 | ], |
| 4938 | - 'thumbnail_active_border_color' => [ | |
| 4939 | - 'id' => 'thumbnail_active_border_color', | |
| 4940 | - 'label' => esc_html__( 'Active Thumbnail Border Color', 'shopbuilder' ), | |
| 4941 | - 'help' => esc_html__( 'Border color of the currently selected thumbnail.', 'shopbuilder' ), | |
| 4942 | - 'tab' => 'styles', | |
| 4943 | - 'type' => 'color', | |
| 4944 | - ], | |
| 4945 | - 'thumbnail_item_inner_padding' => [ | |
| 4501 | + 'thumbnail_item_inner_padding' => [ | |
| 4946 | 4502 | 'id' => 'thumbnail_item_inner_padding', |
| 4947 | 4503 | 'type' => 'slider', |
| 4948 | 4504 | 'label' => esc_html__( 'Thumbnail Item Inner Padding', 'shopbuilder' ), |
| 4949 | 4505 | 'min' => 0, |
| @@ -4951,9 +4507,9 @@ | ||
| 4951 | 4507 | 'unit' => 'px', |
| 4952 | 4508 | 'value' => 10, |
| 4953 | 4509 | 'tab' => 'styles', |
| 4954 | 4510 | ], |
| 4955 | - 'thumbnail_item_border_radius' => [ | |
| 4511 | + 'thumbnail_item_border_radius' => [ | |
| 4956 | 4512 | 'id' => 'thumbnail_item_border_radius', |
| 4957 | 4513 | 'type' => 'slider', |
| 4958 | 4514 | 'label' => esc_html__( 'Thumbnail Item Border Radius', 'shopbuilder' ), |
| 4959 | 4515 | 'min' => 0, |