PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 2.4.2
ShopBuilder – WooCommerce Builder For Elementor v2.4.2
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 +250 -3113 3.4.22.4.2 View file →
@@ -7,19 +7,12 @@
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;
13 +use RadiusTheme\SB\Modules\CheckoutEditor\CheckoutEditorInit;
14 14 use RadiusTheme\SB\Modules\CheckoutEditor\CheckoutFns;
15 -use RadiusTheme\SB\Modules\VariationSwatches\SwatchesFns;
16 -use RadiusTheme\SB\Modules\ShopifyCheckout\ShopifyCheckout;
17 -use RadiusTheme\SB\Modules\CheckoutEditor\CheckoutEditorInit;
18 -use RadiusTheme\SB\Modules\AbandonedCartRecovery\CartRecoveryInit;
19 -use RadiusTheme\SB\Modules\VariationSwatches\VariationSwatches;
20 -use RadiusTheme\SB\Modules\VariationGallery\VariationGalleryInit;
21 -use RadiusTheme\SB\Modules\AbandonedCartRecovery\CartRecoveryOptions;
22 15 use RadiusTheme\SB\Traits\SingletonTrait;
23 16 use RadiusTheme\SB\Modules\Compare\Compare;
24 17 use RadiusTheme\SB\Modules\WishList\Wishlist;
25 18 use RadiusTheme\SB\Modules\Compare\CompareFns;
@@ -57,129 +50,16 @@
57 50 *
58 51 * @return mixed|null
59 52 */
60 53 protected function raw_list() {
61 - $isSwatchActive = false;
62 - $isGalleryActive = false;
63 - $variationSwatch = apply_filters(
64 - 'rtsb/module/variation_swatches/options',
65 - [
66 - 'id' => 'variation_swatches',
67 - 'title' => esc_html__( 'Variation Swatches', 'shopbuilder' ),
68 - 'badge' => 'new',
69 - 'package' => 'free',
70 - 'active' => 'on',
71 - 'base_class' => VariationSwatches::class,
72 - 'active_field' => [
73 - 'label' => esc_html__( 'Enable Variation Swatches Module?', 'shopbuilder' ),
74 - 'help' => esc_html__( 'Switch on to enable variation swatches module.', 'shopbuilder' ),
75 - ],
76 - 'tabs' => [
77 - 'general' => [
78 - 'title' => esc_html__( 'General', 'shopbuilder' ),
79 - ],
80 - 'showcase_shop' => [
81 - 'title' => esc_html__( 'Showcase / Shop', 'shopbuilder' ),
82 - ],
83 - 'style' => [
84 - 'title' => esc_html__( 'Style', 'shopbuilder' ),
85 - ],
86 - ],
87 - 'fields' => $this->get_variation_swatches_fields(),
88 - ],
89 - $isSwatchActive
90 - );
91 -
92 - if ( Fns::check_plugin_active( 'woo-product-variation-swatches/woo-product-variation-swatches.php' ) ) {
93 - $isSwatchActive = true;
94 - $variationSwatch = apply_filters(
95 - 'rtsb/module/variation_swatches/options',
96 - [
97 - 'id' => 'variation_swatches',
98 - 'external' => true,
99 - 'title' => esc_html__( 'Variation Swatches', 'shopbuilder' ),
100 - 'pluginSlug' => 'woo-product-variation-swatches',
101 - 'pluginIsInstalled' => Fns::check_plugin_installed( 'woo-product-variation-swatches/woo-product-variation-swatches.php' ),
102 - 'pluginIsActive' => Fns::check_plugin_active( 'woo-product-variation-swatches/woo-product-variation-swatches.php' ),
103 - 'pluginActiveUrl' => add_query_arg(
104 - [
105 - '_wpnonce' => wp_create_nonce( 'activate-plugin_woo-product-variation-swatches/woo-product-variation-swatches.php' ),
106 - 'action' => 'activate',
107 - 'plugin' => 'woo-product-variation-swatches/woo-product-variation-swatches.php',
108 - ],
109 - admin_url( 'plugins.php' )
110 - ),
111 - 'help' => __( 'Currently using an external plugin. You can disable the external plugin and enable the built-in module for better performance. You’ll need to reconfigure settings if you switch to built-in module.', 'shopbuilder' ),
112 - 'package' => 'free',
113 - 'active_field' => [
114 - 'disable' => false,
115 - ],
116 - 'fields' => [],
117 - ],
118 - $isSwatchActive
119 - );
120 - }
121 - $variationGallery = apply_filters(
122 - 'rtsb/module/variation_gallery/options',
123 - [
124 - 'id' => 'variation_gallery',
125 - 'title' => esc_html__( 'Variation Gallery', 'shopbuilder' ),
126 - 'badge' => 'new',
127 - 'package' => 'free',
128 - 'active' => 'on',
129 - 'base_class' => VariationGalleryInit::class,
130 - 'active_field' => [
131 - 'label' => esc_html__( 'Enable Variation Gallery Module?', 'shopbuilder' ),
132 - 'help' => esc_html__( 'Switch on to enable variation gallery module.', 'shopbuilder' ),
133 - ],
134 - 'tabs' => [
135 - 'general' => [
136 - 'title' => esc_html__( 'General', 'shopbuilder' ),
137 - ],
138 - 'styles' => [
139 - 'title' => esc_html__( 'Styles', 'shopbuilder' ),
140 - ],
141 - ],
142 - 'fields' => $this->get_variation_gallery_fields(),
143 - ],
144 - $isGalleryActive
145 - );
146 - if ( Fns::check_plugin_active( 'woo-product-variation-gallery/woo-product-variation-gallery.php' ) ) {
147 - $isGalleryActive = true;
148 - $variationGallery = apply_filters(
149 - 'rtsb/module/variation_gallery/options',
150 - [
151 - 'id' => 'variation_gallery',
152 - 'external' => true,
153 - 'title' => esc_html__( 'Variation Gallery', 'shopbuilder' ),
154 - 'pluginSlug' => 'woo-product-variation-gallery',
155 - 'pluginIsInstalled' => Fns::check_plugin_installed( 'woo-product-variation-gallery/woo-product-variation-gallery.php' ),
156 - 'pluginIsActive' => Fns::check_plugin_active( 'woo-product-variation-gallery/woo-product-variation-gallery.php' ),
157 - 'pluginActiveUrl' => add_query_arg(
158 - [
159 - '_wpnonce' => wp_create_nonce( 'activate-plugin_woo-product-variation-gallery/woo-product-variation-gallery.php' ),
160 - 'action' => 'activate',
161 - 'plugin' => 'woo-product-variation-gallery/woo-product-variation-gallery.php',
162 - ],
163 - admin_url( 'plugins.php' )
164 - ),
165 - 'help' => __( 'Currently using an external plugin. You can disable the external plugin and enable the built-in module for better performance. You’ll need to reconfigure settings if you switch to built-in module.', 'shopbuilder' ),
166 - 'package' => 'free',
167 - 'active_field' => [
168 - 'disable' => false,
169 - ],
170 - 'fields' => [],
171 - ],
172 - $isGalleryActive
173 - );
174 - }
175 54 $list = [
176 - 'quick_view' => apply_filters(
55 + 'quick_view' => apply_filters(
177 56 'rtsb/module/quick_view/options',
178 57 [
179 58 'id' => 'quick_view',
180 59 'title' => esc_html__( 'Quick View', 'shopbuilder' ),
181 60 'base_class' => QuickView::class,
61 + 'category' => 'general',
182 62 'active' => 'on',
183 63 'package' => 'free',
184 64 'active_field' => [
185 65 'label' => esc_html__( 'Enable Quick View?', 'shopbuilder' ),
@@ -199,14 +79,14 @@
199 79 'loop_btn_position' => [
200 80 'id' => 'loop_btn_position',
201 81 'type' => 'select',
202 82 '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' ),
83 + 'label' => esc_html__( 'Shop Page Button Position', 'shopbuilder' ),
84 + 'help' => esc_html__( 'You can manage quick view button position in shop page.', 'shopbuilder' ),
205 85 'tab' => 'general',
206 86 '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' ),
87 + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ),
88 + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ),
209 89 'shortcode' => esc_html__( 'Use Shortcode', 'shopbuilder' ),
210 90 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ),
211 91 ],
212 92
@@ -290,11 +170,11 @@
290 170 ],
291 171
292 172 'modal_height' => [
293 173 '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',
174 + 'label' => esc_html__( 'Modal Height', 'shopbuilder' ),
175 + 'help' => esc_html__( 'Quick view button modal height. Example: 450px', 'shopbuilder' ),
176 + 'type' => 'text',
297 177 'value' => '',
298 178 'tab' => 'style',
299 179 ],
300 180
@@ -335,9 +215,9 @@
335 215 ]
336 216 ),
337 217 ]
338 218 ),
339 - 'wishlist' => apply_filters(
219 + 'wishlist' => apply_filters(
340 220 'rtsb/module/wishlist/options',
341 221 [
342 222 'id' => 'wishlist',
343 223 'title' => esc_html__( 'Wishlist', 'shopbuilder' ),
@@ -343,8 +223,9 @@
343 223 'title' => esc_html__( 'Wishlist', 'shopbuilder' ),
344 224 'package' => 'free',
345 225 'active' => 'on',
346 226 'base_class' => Wishlist::class,
227 + 'category' => 'general',
347 228 'active_field' => [
348 229 'label' => esc_html__( 'Enable Wishlist?', 'shopbuilder' ),
349 230 'help' => esc_html__( 'Switch on to enable wishlist module.', 'shopbuilder' ),
350 231 ],
@@ -376,9 +257,9 @@
376 257 ],
377 258 'wishlist_shop_wrapper_heading' => [
378 259 'id' => 'wishlist_shop_wrapper_heading',
379 260 'type' => 'title',
380 - 'label' => esc_html__( 'Product Showcase Settings', 'shopbuilder' ),
261 + 'label' => esc_html__( 'Shop Page Settings', 'shopbuilder' ),
381 262 'tab' => 'button',
382 263 ],
383 264 'show_btn_on_loop' => [
384 265 'id' => 'show_btn_on_loop',
@@ -383,9 +264,9 @@
383 264 'show_btn_on_loop' => [
384 265 'id' => 'show_btn_on_loop',
385 266 'value' => 'on',
386 267 'type' => 'switch',
387 - 'label' => esc_html__( 'Show in Product Showcase', 'shopbuilder' ),
268 + 'label' => esc_html__( 'Show in Shop Page', 'shopbuilder' ),
388 269 'tab' => 'button',
389 270 ],
390 271 'loop_btn_position' => [
391 272 'id' => 'loop_btn_position',
@@ -390,13 +271,13 @@
390 271 'loop_btn_position' => [
391 272 'id' => 'loop_btn_position',
392 273 'type' => 'select',
393 274 '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' ),
275 + 'label' => esc_html__( 'Shop Page Button Position', 'shopbuilder' ),
276 + 'help' => esc_html__( 'You can manage wishlist button position in shop page.', 'shopbuilder' ),
396 277 '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' ),
278 + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ),
279 + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ),
399 280 'shortcode' => esc_html__( 'Use Shortcode', 'shopbuilder' ),
400 281 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ),
401 282 ],
402 283 'dependency' => [
@@ -503,10 +384,10 @@
503 384 'help' => esc_html__( 'You can manage compare button position in single product page.', 'shopbuilder' ),
504 385 'type' => 'select',
505 386 'value' => 'custom',
506 387 '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' ),
388 + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ),
389 + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ),
509 390 'after_thumbnail' => esc_html__( 'After Image', 'shopbuilder' ),
510 391 'after_summary' => esc_html__( 'After Summary', 'shopbuilder' ),
511 392 'shortcode' => esc_html__( 'Use Shortcode', 'shopbuilder' ),
512 393 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ),
@@ -631,8 +512,26 @@
631 512 'value' => esc_html__( 'Browse Wishlist', 'shopbuilder' ),
632 513 'placeholder' => esc_html__( 'Browse Wishlist', 'shopbuilder' ),
633 514 'tab' => 'general',
634 515 ],
516 + /*
517 + * TODO:: Will Implement Later.
518 + 'redirect_cart' => array(
519 + 'id' => 'redirect_cart',
520 + 'type' => 'switch',
521 + 'help' => esc_html__( 'Redirect users to the cart page when they add a product to the cart from the wishlist page', 'shopbuilder' ),
522 + 'label' => esc_html__( 'Redirect to Cart', 'shopbuilder' ),
523 + 'tab' => 'page',
524 + ),
525 + 'remove_after_add_to_cart' => array(
526 + 'value' => 'on',
527 + 'id' => 'remove_after_add_to_cart',
528 + 'type' => 'switch',
529 + 'help' => esc_html__( 'Remove the product from the wishlist after it has been added to the cart', 'shopbuilder' ),
530 + 'label' => esc_html__( 'Remove if Added to Cart', 'shopbuilder' ),
531 + 'tab' => 'page',
532 + ),
533 + */
635 534 'page' => [
636 535 'id' => 'page',
637 536 'type' => 'select',
638 537 'label' => esc_html__( 'Select Wishlist Page', 'shopbuilder' ),
@@ -655,62 +554,29 @@
655 554 'label' => esc_html__( 'Wishlist Table Fields Visibility', 'shopbuilder' ),
656 555 'tab' => 'page',
657 556 ],
658 557
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 558 ]
691 559 ),
692 560 'tabs' => [
693 - 'general' => [
561 + 'general' => [
694 562 'title' => esc_html__( 'General', 'shopbuilder' ),
695 563 ],
696 - 'button' => [
564 + 'button' => [
697 565 'title' => esc_html__( 'Button', 'shopbuilder' ),
698 566 ],
699 - 'page' => [
567 + 'page' => [
700 568 'title' => esc_html__( 'Page', 'shopbuilder' ),
701 569 ],
702 - 'shortcodes' => [
703 - 'title' => esc_html__( 'Shortcodes', 'shopbuilder' ),
704 - ],
705 570 ],
706 571 ]
707 572 ),
708 - 'compare' => apply_filters(
573 + 'compare' => apply_filters(
709 574 'rtsb/module/compare/options',
710 575 [
711 576 'id' => 'compare',
712 577 'base_class' => Compare::class,
578 + 'category' => 'general',
713 579 'title' => esc_html__( 'Product Compare', 'shopbuilder' ),
714 580 'package' => 'free',
715 581 'active' => 'on',
716 582 'active_field' => [
@@ -722,9 +588,9 @@
722 588 [
723 589 'compare_shop_wrapper_heading' => [
724 590 'id' => 'compare_shop_wrapper_heading',
725 591 'type' => 'title',
726 - 'label' => esc_html__( 'Product Showcase Settings', 'shopbuilder' ),
592 + 'label' => esc_html__( 'Shop Page Settings', 'shopbuilder' ),
727 593 'tab' => 'button',
728 594 ],
729 595 'show_btn_on_loop' => [
730 596 'id' => 'show_btn_on_loop',
@@ -729,9 +595,9 @@
729 595 'show_btn_on_loop' => [
730 596 'id' => 'show_btn_on_loop',
731 597 'value' => 'on',
732 598 'type' => 'switch',
733 - 'label' => esc_html__( 'Show in Product Showcase', 'shopbuilder' ),
599 + 'label' => esc_html__( 'Show in Shop Page', 'shopbuilder' ),
734 600 'tab' => 'button',
735 601 ],
736 602 'loop_btn_position' => [
737 603 'id' => 'loop_btn_position',
@@ -736,13 +602,13 @@
736 602 'loop_btn_position' => [
737 603 'id' => 'loop_btn_position',
738 604 'type' => 'select',
739 605 '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' ),
606 + 'label' => esc_html__( 'Shop Page Button Position', 'shopbuilder' ),
607 + 'help' => esc_html__( 'You can manage wishlist button position in shop page.', 'shopbuilder' ),
742 608 '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' ),
609 + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ),
610 + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ),
745 611 'shortcode' => esc_html__( 'Use Shortcode', 'shopbuilder' ),
746 612 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ),
747 613 ],
748 614 'dependency' => [
@@ -849,10 +715,10 @@
849 715 'help' => esc_html__( 'You can manage compare button position in single product page.', 'shopbuilder' ),
850 716 'type' => 'select',
851 717 'value' => 'custom',
852 718 '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' ),
719 + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ),
720 + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ),
855 721 'after_thumbnail' => esc_html__( 'After Image', 'shopbuilder' ),
856 722 'after_summary' => esc_html__( 'After Summary', 'shopbuilder' ),
857 723 'shortcode' => esc_html__( 'Use Shortcode', 'shopbuilder' ),
858 724 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ),
@@ -873,19 +739,19 @@
873 739 'label' => ' ',
874 740 'html' => sprintf(
875 741 /* translators: 1: The shortcode.*/
876 742 esc_html__( 'Choose where to show button on the product page. Copy this shortcode %1$s and paste it where you want to show the button.', 'shopbuilder' ),
877 - '<code>[rtsb_compare_button]</code> '
743 + '<code>[rtsb_wishlist_button]</code> '
878 744 ),
879 745 'dependency' => [
880 746 'rules' => [
881 747 [
882 - 'item' => 'modules.compare.show_btn_product_page',
748 + 'item' => 'modules.wishlist.show_btn_product_page',
883 749 'value' => 'on',
884 750 'operator' => '==',
885 751 ],
886 752 [
887 - 'item' => 'modules.compare.product_btn_position',
753 + 'item' => 'modules.wishlist.product_btn_position',
888 754 'value' => 'shortcode',
889 755 'operator' => '==',
890 756 ],
891 757 ],
@@ -1027,11 +893,90 @@
1027 893
1028 894 ],
1029 895 ]
1030 896 ),
1031 - 'variation_swatches' => $variationSwatch,
1032 - 'variation_gallery' => $variationGallery,
1033 - 'product_badges' => apply_filters(
897 + 'variation_swatches' => apply_filters(
898 + 'rtsb/module/variation_swatches/options',
899 + [
900 + 'id' => 'variation_swatches',
901 + 'external' => true,
902 + 'category' => 'general',
903 + 'title' => esc_html__( 'Variation Swatches', 'shopbuilder' ),
904 + 'pluginSlug' => 'woo-product-variation-swatches',
905 + 'pluginIsInstalled' => Fns::check_plugin_installed( 'woo-product-variation-swatches/woo-product-variation-swatches.php' ),
906 + 'pluginIsActive' => Fns::check_plugin_active( 'woo-product-variation-swatches/woo-product-variation-swatches.php' ),
907 + 'pluginActiveUrl' => add_query_arg(
908 + [
909 + '_wpnonce' => wp_create_nonce( 'activate-plugin_woo-product-variation-swatches/woo-product-variation-swatches.php' ),
910 + 'action' => 'activate',
911 + 'plugin' => 'woo-product-variation-swatches/woo-product-variation-swatches.php',
912 + ],
913 + admin_url( 'plugins.php' )
914 + ),
915 + 'help' => __( 'This module requires: <a href="https://wordpress.org/plugins/woo-product-variation-swatches/">Variation Swatches for WooCommerce</a>.', 'shopbuilder' ),
916 + 'package' => 'free',
917 + 'active_field' => [
918 + 'disable' => false,
919 + ],
920 + 'fields' => [],
921 + ]
922 + ),
923 + 'variation_gallery' => apply_filters(
924 + 'rtsb/module/variation_gallery/options',
925 + [
926 + 'id' => 'variation_gallery',
927 + 'external' => true,
928 + 'category' => 'general',
929 + 'title' => esc_html__( 'Variation Gallery', 'shopbuilder' ),
930 + 'pluginSlug' => 'woo-product-variation-gallery',
931 + 'pluginIsInstalled' => Fns::check_plugin_installed( 'woo-product-variation-gallery/woo-product-variation-gallery.php' ),
932 + 'pluginIsActive' => Fns::check_plugin_active( 'woo-product-variation-gallery/woo-product-variation-gallery.php' ),
933 + 'pluginActiveUrl' => add_query_arg(
934 + [
935 + '_wpnonce' => wp_create_nonce( 'activate-plugin_woo-product-variation-gallery/woo-product-variation-gallery.php' ),
936 + 'action' => 'activate',
937 + 'plugin' => 'woo-product-variation-gallery/woo-product-variation-gallery.php',
938 + ],
939 + admin_url( 'plugins.php' )
940 + ),
941 + 'help' => __( 'This module requires: <a href="https://wordpress.org/plugins/woo-product-variation-gallery/">Variation Images Gallery for WooCommerce</a>.', 'shopbuilder' ),
942 + 'package' => 'free',
943 + 'active_field' => [
944 + 'disable' => false,
945 + ],
946 + 'fields' => [],
947 + ]
948 + ),
949 + 'mini_cart' => apply_filters(
950 + 'rtsb/module/mini_cart/options',
951 + [
952 + 'id' => 'mini_cart',
953 + 'active' => '',
954 + 'title' => esc_html__( 'Mini Cart', 'shopbuilder' ),
955 + 'package' => $this->pro_package(),
956 + 'active_field' => [
957 + 'label' => esc_html__( 'Enable Mini Cart?', 'shopbuilder' ),
958 + 'help' => esc_html__( 'Switch on to enable mini cart module.', 'shopbuilder' ),
959 + ],
960 + 'is_active' => true,
961 + 'fields' => Fns::pro_version_notice( '1.0.0' ),
962 + ]
963 + ),
964 + 'product_size_chart' => apply_filters(
965 + 'rtsb/module/product_size_chart/options',
966 + [
967 + 'id' => 'product_size_chart',
968 + 'active' => '',
969 + 'title' => esc_html__( 'Product Size Chart', 'shopbuilder' ),
970 + 'package' => $this->pro_package(),
971 + 'active_field' => [
972 + 'label' => esc_html__( 'Enable Product Size Chart?', 'shopbuilder' ),
973 + 'help' => esc_html__( 'Switch on to enable Product Size Chart module.', 'shopbuilder' ),
974 + ],
975 + 'fields' => Fns::pro_version_notice( '1.0.0' ),
976 + ]
977 + ),
978 + 'product_badges' => apply_filters(
1034 979 'rtsb/module/product_badges/options',
1035 980 [
1036 981 'id' => 'product_badges',
1037 982 'active' => '',
@@ -1055,9 +1000,68 @@
1055 1000 ],
1056 1001 ],
1057 1002 ]
1058 1003 ),
1059 - 'checkout_fields_editor' => apply_filters(
1004 + 'customize_my_account' => apply_filters(
1005 + 'rtsb/module/customize_my_account/options',
1006 + [
1007 + 'id' => 'customize_my_account',
1008 + 'active' => '',
1009 + 'title' => esc_html__( 'Customize My Account', 'shopbuilder' ),
1010 + 'package' => $this->pro_package(),
1011 + 'active_field' => [
1012 + 'label' => esc_html__( 'Enable Customize My Account?', 'shopbuilder' ),
1013 + 'help' => esc_html__( 'Switch on to enable customize my account module.', 'shopbuilder' ),
1014 + ],
1015 + 'fields' => Fns::pro_version_notice( '1.4.0' ),
1016 + ]
1017 + ),
1018 + 'pre_order' => apply_filters(
1019 + 'rtsb/module/pre_order/options',
1020 + [
1021 + 'id' => 'pre_order',
1022 + 'active' => '',
1023 + 'title' => esc_html__( 'Pre-Order', 'shopbuilder' ),
1024 + 'package' => $this->pro_package(),
1025 + 'active_field' => [
1026 + 'label' => esc_html__( 'Enable Pre-Order?', 'shopbuilder' ),
1027 + 'help' => esc_html__( 'Switch on to enable pre-order module.', 'shopbuilder' ),
1028 + ],
1029 + 'fields' => Fns::pro_version_notice( '1.5.0' ),
1030 + ]
1031 + ),
1032 + 'currency_switcher' => apply_filters(
1033 + 'rtsb/module/currency_switcher/options',
1034 + [
1035 + 'id' => 'currency_switcher',
1036 + 'active' => '',
1037 + 'title' => esc_html__( 'Currency Switcher', 'shopbuilder' ),
1038 + 'package' => $this->pro_package(),
1039 + 'active_field' => [
1040 + 'label' => esc_html__( 'Enable Currency Switcher?', 'shopbuilder' ),
1041 + 'help' => esc_html__( 'Switch on to enable currency switcher module.', 'shopbuilder' ),
1042 + ],
1043 + 'is_active' => true,
1044 + 'fields' => Fns::pro_version_notice( '1.5.0' ),
1045 + ]
1046 + ),
1047 + 'product_add_ons' => apply_filters(
1048 + 'rtsb/module/product_add_ons/options',
1049 + [
1050 + 'id' => 'product_add_ons',
1051 + 'active' => '',
1052 + 'title' => esc_html__( 'Product Add-Ons', 'shopbuilder' ),
1053 + 'package' => $this->pro_package(),
1054 + 'active_field' => [
1055 + 'label' => esc_html__( 'Enable Product Add-Ons?', 'shopbuilder' ),
1056 + 'help' => esc_html__( 'Switch on to enable product add-ons module.', 'shopbuilder' ),
1057 + ],
1058 + 'is_active' => true,
1059 + 'fields' => Fns::pro_version_notice( '1.6.0' ),
1060 + ]
1061 + ),
1062 + // Checkout Fields Manager.
1063 + 'checkout_fields_editor' => apply_filters(
1060 1064 'rtsb/module/checkout_fields_editor/options',
1061 1065 [
1062 1066 'id' => 'checkout_fields_editor',
1063 1067 'active' => '',
@@ -1214,124 +1218,9 @@
1214 1218 ],
1215 1219 ],
1216 1220 ]
1217 1221 ),
1218 - 'shopify_checkout' => apply_filters(
1219 - 'rtsb/module/shopify_checkout/options',
1220 - [
1221 - 'id' => 'shopify_checkout',
1222 - 'active' => '',
1223 - 'title' => esc_html__( 'Shopify Checkout', 'shopbuilder' ),
1224 - 'base_class' => ShopifyCheckout::class,
1225 - 'active_field' => [
1226 - 'label' => esc_html__( 'Enable Shopify Checkout?', 'shopbuilder' ),
1227 - 'help' => esc_html__( 'Switch on to enable Shopify Checkout module.', 'shopbuilder' ),
1228 - ],
1229 - 'fields' => $this->shopify_checkout_options(),
1230 - 'tabs' => [
1231 - 'general' => [
1232 - 'title' => esc_html__( 'General', 'shopbuilder' ),
1233 - ],
1234 - 'multi-step' => [
1235 - 'title' => esc_html__( 'Multi-Step', 'shopbuilder' ),
1236 - ],
1237 - 'styles' => [
1238 - 'title' => esc_html__( 'General Styles', 'shopbuilder' ),
1239 - ],
1240 - 'btn-styles' => [
1241 - 'title' => esc_html__( 'Button Styles', 'shopbuilder' ),
1242 - ],
1243 - ],
1244 - ]
1245 - ),
1246 - 'mini_cart' => apply_filters(
1247 - 'rtsb/module/mini_cart/options',
1248 - [
1249 - 'id' => 'mini_cart',
1250 - 'active' => '',
1251 - 'title' => esc_html__( 'Mini Cart', 'shopbuilder' ),
1252 - 'package' => $this->pro_package(),
1253 - 'active_field' => [
1254 - 'label' => esc_html__( 'Enable Mini Cart?', 'shopbuilder' ),
1255 - 'help' => esc_html__( 'Switch on to enable mini cart module.', 'shopbuilder' ),
1256 - ],
1257 - 'is_active' => true,
1258 - 'fields' => Fns::pro_version_notice( '1.0.0' ),
1259 - ]
1260 - ),
1261 - 'product_size_chart' => apply_filters(
1262 - 'rtsb/module/product_size_chart/options',
1263 - [
1264 - 'id' => 'product_size_chart',
1265 - 'active' => '',
1266 - 'title' => esc_html__( 'Product Size Chart', 'shopbuilder' ),
1267 - 'package' => $this->pro_package(),
1268 - 'active_field' => [
1269 - 'label' => esc_html__( 'Enable Product Size Chart?', 'shopbuilder' ),
1270 - 'help' => esc_html__( 'Switch on to enable Product Size Chart module.', 'shopbuilder' ),
1271 - ],
1272 - 'fields' => Fns::pro_version_notice( '1.0.0' ),
1273 - ]
1274 - ),
1275 - 'customize_my_account' => apply_filters(
1276 - 'rtsb/module/customize_my_account/options',
1277 - [
1278 - 'id' => 'customize_my_account',
1279 - 'active' => '',
1280 - 'title' => esc_html__( 'Customize My Account', 'shopbuilder' ),
1281 - 'package' => $this->pro_package(),
1282 - 'active_field' => [
1283 - 'label' => esc_html__( 'Enable Customize My Account?', 'shopbuilder' ),
1284 - 'help' => esc_html__( 'Switch on to enable customize my account module.', 'shopbuilder' ),
1285 - ],
1286 - 'fields' => Fns::pro_version_notice( '1.4.0' ),
1287 - ]
1288 - ),
1289 - 'pre_order' => apply_filters(
1290 - 'rtsb/module/pre_order/options',
1291 - [
1292 - 'id' => 'pre_order',
1293 - 'active' => '',
1294 - 'title' => esc_html__( 'Pre-Order', 'shopbuilder' ),
1295 - 'package' => $this->pro_package(),
1296 - 'active_field' => [
1297 - 'label' => esc_html__( 'Enable Pre-Order?', 'shopbuilder' ),
1298 - 'help' => esc_html__( 'Switch on to enable pre-order module.', 'shopbuilder' ),
1299 - ],
1300 - 'fields' => Fns::pro_version_notice( '1.5.0' ),
1301 - ]
1302 - ),
1303 - 'currency_switcher' => apply_filters(
1304 - 'rtsb/module/currency_switcher/options',
1305 - [
1306 - 'id' => 'currency_switcher',
1307 - 'active' => '',
1308 - 'title' => esc_html__( 'Currency Switcher', 'shopbuilder' ),
1309 - 'package' => $this->pro_package(),
1310 - 'active_field' => [
1311 - 'label' => esc_html__( 'Enable Currency Switcher?', 'shopbuilder' ),
1312 - 'help' => esc_html__( 'Switch on to enable currency switcher module.', 'shopbuilder' ),
1313 - ],
1314 - 'is_active' => true,
1315 - 'fields' => Fns::pro_version_notice( '1.5.0' ),
1316 - ]
1317 - ),
1318 - 'product_add_ons' => apply_filters(
1319 - 'rtsb/module/product_add_ons/options',
1320 - [
1321 - 'id' => 'product_add_ons',
1322 - 'active' => '',
1323 - 'title' => esc_html__( 'Product Add-Ons', 'shopbuilder' ),
1324 - 'package' => $this->pro_package(),
1325 - 'active_field' => [
1326 - 'label' => esc_html__( 'Enable Product Add-Ons?', 'shopbuilder' ),
1327 - 'help' => esc_html__( 'Switch on to enable product add-ons module.', 'shopbuilder' ),
1328 - ],
1329 - 'is_active' => true,
1330 - 'fields' => Fns::pro_version_notice( '1.6.0' ),
1331 - ]
1332 - ),
1333 - 'sales_notification' => apply_filters(
1222 + 'sales_notification' => apply_filters(
1334 1223 'rtsb/module/sales_notification/options',
1335 1224 [
1336 1225 'id' => 'sales_notification',
1337 1226 'active' => '',
@@ -1343,9 +1232,9 @@
1343 1232 ],
1344 1233 'fields' => Fns::pro_version_notice( '1.0.0' ),
1345 1234 ]
1346 1235 ),
1347 - 'flash_sale_countdown' => apply_filters(
1236 + 'flash_sale_countdown' => apply_filters(
1348 1237 'rtsb/module/flash_sale_countdown/options',
1349 1238 [
1350 1239 'id' => 'flash_sale_countdown',
1351 1240 'active' => '',
@@ -1357,9 +1246,9 @@
1357 1246 ],
1358 1247 'fields' => Fns::pro_version_notice( '1.0.0' ),
1359 1248 ]
1360 1249 ),
1361 - 'quick_checkout' => apply_filters(
1250 + 'quick_checkout' => apply_filters(
1362 1251 'rtsb/module/quick_checkout/options',
1363 1252 [
1364 1253 'id' => 'quick_checkout',
1365 1254 'active' => '',
@@ -1371,9 +1260,9 @@
1371 1260 ],
1372 1261 'fields' => Fns::pro_version_notice( '1.1.0' ),
1373 1262 ]
1374 1263 ),
1375 - 'multi_step_checkout' => apply_filters(
1264 + 'multi_step_checkout' => apply_filters(
1376 1265 'rtsb/module/multi_step_checkout/options',
1377 1266 [
1378 1267 'id' => 'multi_step_checkout',
1379 1268 'active' => '',
@@ -1385,9 +1274,9 @@
1385 1274 ],
1386 1275 'fields' => Fns::pro_version_notice( '1.0.0' ),
1387 1276 ]
1388 1277 ),
1389 - 'back_order' => apply_filters(
1278 + 'back_order' => apply_filters(
1390 1279 'rtsb/module/back_order/options',
1391 1280 [
1392 1281 'id' => 'back_order',
1393 1282 'active' => '',
@@ -1396,12 +1285,12 @@
1396 1285 'active_field' => [
1397 1286 'label' => esc_html__( 'Enable Back-Order?', 'shopbuilder' ),
1398 1287 'help' => esc_html__( 'Switch on to enable back-order module.', 'shopbuilder' ),
1399 1288 ],
1400 - 'fields' => Fns::pro_version_notice( '1.3.0', 'general', 'Back-Order', false ),
1289 + 'fields' => Fns::pro_version_notice( '1.3.0' ),
1401 1290 ]
1402 1291 ),
1403 - 'sticky_add_to_cart' => apply_filters(
1292 + 'sticky_add_to_cart' => apply_filters(
1404 1293 'rtsb/module/sticky_add_to_cart/options',
1405 1294 [
1406 1295 'id' => 'sticky_add_to_cart',
1407 1296 'active' => '',
@@ -1410,1953 +1299,16 @@
1410 1299 'active_field' => [
1411 1300 'label' => esc_html__( 'Enable Sticky Add-To-Cart?', 'shopbuilder' ),
1412 1301 'help' => esc_html__( 'Switch on to enable sticky add-to-cart module.', 'shopbuilder' ),
1413 1302 ],
1414 - 'fields' => Fns::pro_version_notice( '1.7.0', 'general', 'Sticky Add-To-Cart', false ),
1303 + 'fields' => Fns::pro_version_notice( '1.6.0' ),
1415 1304 ]
1416 1305 ),
1417 - 'smart_coupons' => apply_filters(
1418 - 'rtsb/module/smart_coupons/options',
1419 - [
1420 - 'id' => 'smart_coupons',
1421 - 'active' => '',
1422 - 'title' => esc_html__( 'Smart Coupons', 'shopbuilder' ),
1423 - 'package' => $this->pro_package(),
1424 - 'active_field' => [
1425 - 'label' => esc_html__( 'Enable Smart Coupons?', 'shopbuilder' ),
1426 - 'help' => esc_html__( 'Switch on to enable smart coupons module.', 'shopbuilder' ),
1427 - ],
1428 - 'fields' => Fns::pro_version_notice( '1.10.0', 'general', 'ShopBuilder Pro', false ),
1429 - ]
1430 - ),
1431 - 'bulk_discounts' => apply_filters(
1432 - 'rtsb/module/bulk_discounts/options',
1433 - [
1434 - 'id' => 'bulk_discounts',
1435 - 'active' => '',
1436 - 'title' => esc_html__( 'Volume Discount', 'shopbuilder' ),
1437 - 'active_field' => [
1438 - 'label' => esc_html__( 'Enable Volume Discount?', 'shopbuilder' ),
1439 - 'help' => esc_html__( 'Switch on to enable volume discount module.', 'shopbuilder' ),
1440 - ],
1441 - 'package' => $this->pro_package(),
1442 - 'fields' => Fns::pro_version_notice( '1.10.0', 'general', 'ShopBuilder Pro', false ),
1443 - ]
1444 - ),
1445 - 'bogo_bxgy_free_gift_discounts' => apply_filters(
1446 - 'rtsb/module/bogo_bxgy_free_gift_discounts/options',
1447 - [
1448 - 'id' => 'bogo_bxgy_free_gift_discounts',
1449 - 'active' => '',
1450 - 'title' => esc_html__( 'Buy X Get Y | BOGO', 'shopbuilder' ),
1451 - 'active_field' => [
1452 - 'label' => esc_html__( 'Enable Buy X Get Y | BOGO?', 'shopbuilder' ),
1453 - 'help' => esc_html__( 'Switch on to enable Buy X Get Y | BOGO module.', 'shopbuilder' ),
1454 - ],
1455 - 'package' => $this->pro_package(),
1456 - 'fields' => Fns::pro_version_notice( '1.11.0', 'general', 'ShopBuilder Pro', false ),
1457 - ]
1458 - ),
1459 - 'partial_pay' => apply_filters(
1460 - 'rtsb/module/partial_pay/options',
1461 - [
1462 - 'id' => 'partial_pay',
1463 - 'active' => '',
1464 - 'title' => esc_html__( 'Partial Pay', 'shopbuilder' ),
1465 - 'active_field' => [
1466 - 'label' => esc_html__( 'Enable Partial Pay?', 'shopbuilder' ),
1467 - 'help' => esc_html__( 'Switch on to enable partial pay module.', 'shopbuilder' ),
1468 - ],
1469 - 'package' => $this->pro_package(),
1470 - 'fields' => Fns::pro_version_notice( '1.12.0', 'general', 'ShopBuilder Pro', false ),
1471 - ]
1472 - ),
1473 - 'gift_card' => apply_filters(
1474 - 'rtsb/module/gift_card/options',
1475 - [
1476 - 'id' => 'gift_card',
1477 - 'active' => '',
1478 - 'title' => esc_html__( 'Gift Card', 'shopbuilder' ),
1479 - 'active_field' => [
1480 - 'label' => esc_html__( 'Enable Gift Card?', 'shopbuilder' ),
1481 - 'help' => esc_html__( 'Switch on to enable Gift Card module.', 'shopbuilder' ),
1482 - ],
1483 - 'package' => $this->pro_package(),
1484 - 'fields' => Fns::pro_version_notice( '1.10.0' ),
1485 - ]
1486 - ),
1487 - 'pdf_invoice' => apply_filters(
1488 - 'rtsb/module/pdf_invoice/options',
1489 - [
1490 - 'id' => 'pdf_invoice',
1491 - 'active' => '',
1492 - 'title' => esc_html__( 'PDF Invoice', 'shopbuilder' ),
1493 - 'active_field' => [
1494 - 'label' => esc_html__( 'Enable PDF Invoice?', 'shopbuilder' ),
1495 - 'help' => esc_html__( 'Switch on to enable PDF Invoice module.', 'shopbuilder' ),
1496 - ],
1497 - 'package' => $this->pro_package(),
1498 - 'fields' => Fns::pro_version_notice( '2.1.0', 'general', 'ShopBuilder Pro', false ),
1499 - ]
1500 - ),
1501 - 'extended_cross_sell' => apply_filters(
1502 - 'rtsb/module/extended_cross_sell/options',
1503 - [
1504 - 'id' => 'extended_cross_sell',
1505 - 'active' => '',
1506 - 'title' => esc_html__( 'Extended Cross Sell', 'shopbuilder' ),
1507 - 'active_field' => [
1508 - 'label' => esc_html__( 'Enable Extended Cross Sell?', 'shopbuilder' ),
1509 - 'help' => esc_html__( 'Switch on to enable Extended Cross Sell.', 'shopbuilder' ),
1510 - ],
1511 - 'package' => $this->pro_package(),
1512 - 'fields' => Fns::pro_version_notice( '2.1.4', 'general', 'ShopBuilder Pro', false ),
1513 - ]
1514 - ),
1515 - 'abandoned_cart_recovery' => apply_filters(
1516 - 'rtsb/module/abandoned_cart_recovery/options',
1517 - [
1518 - 'id' => 'abandoned_cart_recovery',
1519 - 'active' => '',
1520 - 'badge' => 'new',
1521 - 'title' => esc_html__( 'Abandoned Cart Recovery', 'shopbuilder' ),
1522 - 'active_field' => [
1523 - 'label' => esc_html__( 'Enable Abandoned Cart Recovery?', 'shopbuilder' ),
1524 - 'help' => esc_html__( 'Cart will be considered abandoned if order is not completed in cut-off time.', 'shopbuilder' ),
1525 - ],
1526 - 'fields' => CartRecoveryOptions::get_cart_recovery_fields(),
1527 - 'base_class' => CartRecoveryInit::class,
1528 - 'tabs' => [
1529 - 'general' => [
1530 - 'title' => esc_html__( 'General', 'shopbuilder' ),
1531 - ],
1532 - 'emailTemplates' => [
1533 - 'title' => esc_html__( 'Email Templates', 'shopbuilder' ),
1534 - ],
1535 - ],
1536 - ]
1537 - ),
1538 - 'popup_builder' => apply_filters(
1539 - 'rtsb/module/popup_builder/options',
1540 - [
1541 - 'id' => 'popup_builder',
1542 - 'active' => '',
1543 - 'title' => esc_html__( 'Popup Builder', 'shopbuilder' ),
1544 - 'active_field' => [
1545 - 'label' => esc_html__( 'Enable Popup Builder?', 'shopbuilder' ),
1546 - 'help' => esc_html__( 'Switch on to enable Popup Builder.', 'shopbuilder' ),
1547 - ],
1548 - 'package' => $this->pro_package(),
1549 - 'fields' => Fns::pro_version_notice( '2.1.5', 'general', 'ShopBuilder Pro', false ),
1550 - ]
1551 - ),
1552 - 'save_for_buy_later' => apply_filters(
1553 - 'rtsb/module/save_for_buy_later/options',
1554 - [
1555 - 'id' => 'save_for_buy_later',
1556 - 'active' => '',
1557 - 'title' => esc_html__( 'Save Cart For Buy Later', 'shopbuilder' ),
1558 - 'active_field' => [
1559 - 'label' => esc_html__( 'Enable Save Cart For Buy Later?', 'shopbuilder' ),
1560 - 'help' => esc_html__( 'Switch on to enable Save Cart For Buy Later.', 'shopbuilder' ),
1561 - ],
1562 - 'package' => $this->pro_package(),
1563 - 'fields' => Fns::pro_version_notice( '2.1.8', 'general', 'ShopBuilder Pro', false ),
1564 - ]
1565 - ),
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 1306 ];
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 1307 return apply_filters( 'rtsb/core/modules/raw_list', $list );
1627 1308 }
1628 1309
1629 - /**
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 - * Get All Menu
1772 - */
1773 - public function get_all_menu() {
1774 - $manus = [
1775 - 'none' => esc_html__( 'None', 'shopbuilder' ),
1776 - ];
1777 - $nav_menus = wp_get_nav_menus();
1778 - if ( empty( $nav_menus ) ) {
1779 - return $manus;
1780 - }
1781 - foreach ( $nav_menus as $menu ) {
1782 - $manus[ $menu->slug ] = $menu->name;
1783 - }
1784 - return $manus;
1785 - }
1786 - /**
1787 - * Sticky add-to-cart module options.
1788 - *
1789 - * @return array
1790 - */
1791 - public function shopify_checkout_options() {
1792 - $notice = [];
1793 - if ( defined( 'RTSBPRO_VERSION' ) && version_compare( RTSBPRO_VERSION, '1.8.0', '<' ) ) {
1794 - $notice = Fns::pro_version_notice( '1.8.0', 'general', 'ShopBuilder Pro', false );
1795 - }
1796 - $fields = $notice + [
1797 - 'general_settings' => [
1798 - 'id' => 'general_settings',
1799 - 'type' => 'title',
1800 - 'label' => esc_html__( 'Settings', 'shopbuilder' ),
1801 - 'tab' => 'general',
1802 - ],
1803 - 'shopify_page_logo' => [
1804 - 'id' => 'shopify_page_logo',
1805 - 'type' => 'fileupload',
1806 - 'label' => esc_html__( 'Upload Checkout Page Logo', 'shopbuilder' ),
1807 - 'help' => esc_html__( 'Please upload your custom logo to display on the checkout page.', 'shopbuilder' ),
1808 - 'tab' => 'general',
1809 - ],
1810 - 'shopify_logo_height' => [
1811 - 'id' => 'shopify_logo_height',
1812 - 'label' => esc_html__( 'Logo Height (px)', 'shopbuilder' ),
1813 - 'help' => esc_html__( 'Specify the height of the checkout page logo in px.', 'shopbuilder' ),
1814 - 'type' => 'slider',
1815 - 'min' => 10,
1816 - 'max' => 200,
1817 - 'unit' => 'px',
1818 - 'value' => 40,
1819 - 'tab' => 'general',
1820 - ],
1821 - 'cart_icon_source' => [
1822 - 'id' => 'cart_icon_source',
1823 - 'label' => esc_html__( 'Cart Icon', 'shopbuilder' ),
1824 - 'help' => sprintf(
1825 - // translators: %s for pro message.
1826 - __( 'Choose a cart icon to display in your checkout\'s header. <br />%s', 'shopbuilder' ),
1827 - ! rtsb()->has_pro()
1828 - ? sprintf(
1829 - '<a target="_blank" href="' . esc_url( rtsb()->pro_version_link() ) . '">%s </a> %s ',
1830 - esc_html__( 'Upgrade to PRO', 'shopbuilder' ),
1831 - esc_html__( 'to unlock custom image icon.', 'shopbuilder' )
1832 - )
1833 - : ''
1834 - ),
1835 - 'type' => 'select',
1836 - 'value' => 'none',
1837 - 'isPro' => ! rtsb()->has_pro(),
1838 - 'options' => [
1839 - 'none' => esc_html__( 'None', 'shopbuilder' ),
1840 - 'select_icon' => esc_html__( 'Select Icon', 'shopbuilder' ),
1841 - 'upload_icon' => esc_html__( 'Upload Icon', 'shopbuilder' ),
1842 - ],
1843 - 'tab' => 'general',
1844 - ],
1845 - 'cart_icon' => [
1846 - 'id' => 'cart_icon',
1847 - 'label' => esc_html__( 'Select Cart Icon', 'shopbuilder' ),
1848 - 'help' => esc_html__( 'Please choose the icon.', 'shopbuilder' ),
1849 - 'type' => 'icon_select',
1850 - 'searchable' => true,
1851 - 'options' => Fns::get_icons(),
1852 - 'value' => 'cart-2',
1853 - 'tab' => 'general',
1854 - 'dependency' => [
1855 - 'rules' => [
1856 - [
1857 - 'item' => 'modules.shopify_checkout.cart_icon_source',
1858 - 'value' => 'select_icon',
1859 - 'operator' => '==',
1860 - ],
1861 - ],
1862 - ],
1863 - ],
1864 1310
1865 - 'cart_image_icon' => [
1866 - 'id' => 'cart_image_icon',
1867 - 'type' => 'fileupload',
1868 - 'label' => esc_html__( 'Upload Custom Icon', 'shopbuilder' ),
1869 - 'help' => esc_html__( 'Please upload your custom image icon.', 'shopbuilder' ),
1870 - 'tab' => 'general',
1871 - 'dependency' => [
1872 - 'rules' => [
1873 - [
1874 - 'item' => 'modules.shopify_checkout.cart_icon_source',
1875 - 'value' => 'upload_icon',
1876 - 'operator' => '==',
1877 - ],
1878 - ],
1879 - ],
1880 - ],
1881 -
1882 - 'email_field_title' => [
1883 - 'id' => 'email_field_title',
1884 - 'type' => 'text',
1885 - 'label' => esc_html__( 'Email Field Section Title', 'shopbuilder' ),
1886 - 'help' => esc_html__( 'Enter the custom title to be displayed above the email field section.', 'shopbuilder' ),
1887 - 'value' => esc_html__( 'Contact', 'shopbuilder' ),
1888 - 'tab' => 'general',
1889 - ],
1890 -
1891 - 'billing_address_field_title' => [
1892 - 'id' => 'billing_address_field_title',
1893 - 'type' => 'text',
1894 - 'label' => esc_html__( 'Billing Fields Section Title', 'shopbuilder' ),
1895 - 'help' => esc_html__( 'Enter the custom title to be displayed above the billing fields section', 'shopbuilder' ),
1896 - 'value' => esc_html__( 'Billing address', 'shopbuilder' ),
1897 - 'tab' => 'general',
1898 - ],
1899 -
1900 - 'enable_multi_step' => [
1901 - 'id' => 'enable_multi_step',
1902 - 'type' => 'switch',
1903 - 'isPro' => ! rtsb()->has_pro(),
1904 - 'label' => esc_html__( 'Multi-Step Checkout', 'shopbuilder' ),
1905 - 'help' => esc_html__( 'Enable multi-step checkout to simplify the purchasing process.', 'shopbuilder' ),
1906 - 'tab' => 'multi-step',
1907 - ],
1908 - 'step_menu_settings' => [
1909 - 'id' => 'step_menu_settings',
1910 - 'type' => 'title',
1911 - 'label' => esc_html__( 'Step Settings ', 'shopbuilder' ),
1912 - 'tab' => 'multi-step',
1913 - 'dependency' => [
1914 - 'rules' => [
1915 - [
1916 - 'item' => 'modules.shopify_checkout.enable_multi_step',
1917 - 'value' => 'on',
1918 - 'operator' => '==',
1919 - ],
1920 - ],
1921 - ],
1922 - ],
1923 -
1924 - 'show_step_menu' => [
1925 - 'id' => 'show_step_menu',
1926 - 'type' => 'switch',
1927 - 'isPro' => ! rtsb()->has_pro(),
1928 - 'label' => esc_html__( 'Show Step Menu', 'shopbuilder' ),
1929 - 'help' => esc_html__( 'Enable to display the step navigation menu during checkout.', 'shopbuilder' ),
1930 - 'tab' => 'multi-step',
1931 - 'value' => 'on',
1932 - 'dependency' => [
1933 - 'rules' => [
1934 - [
1935 - 'item' => 'modules.shopify_checkout.enable_multi_step',
1936 - 'value' => 'on',
1937 - 'operator' => '==',
1938 - ],
1939 - ],
1940 - ],
1941 - ],
1942 - 'show_cart_menu' => [
1943 - 'id' => 'show_cart_menu',
1944 - 'type' => 'switch',
1945 - 'isPro' => ! rtsb()->has_pro(),
1946 - 'label' => esc_html__( 'Show Cart Menu', 'shopbuilder' ),
1947 - 'help' => esc_html__( 'Enable this option to display the cart item in the step menu.', 'shopbuilder' ),
1948 - 'tab' => 'multi-step',
1949 - 'dependency' => [
1950 - 'rules' => [
1951 - [
1952 - 'item' => 'modules.shopify_checkout.enable_multi_step',
1953 - 'value' => 'on',
1954 - 'operator' => '==',
1955 - ],
1956 - [
1957 - 'item' => 'modules.shopify_checkout.show_step_menu',
1958 - 'value' => 'on',
1959 - 'operator' => '==',
1960 - ],
1961 - ],
1962 - ],
1963 - ],
1964 - 'cart_text' => [
1965 - 'id' => 'cart_text',
1966 - 'type' => 'text',
1967 - 'isPro' => ! rtsb()->has_pro(),
1968 - 'label' => esc_html__( 'Cart Step Title', 'shopbuilder' ),
1969 - 'help' => esc_html__( 'Enter the cart step menu title.', 'shopbuilder' ),
1970 - 'value' => esc_html__( 'Cart', 'shopbuilder' ),
1971 - 'tab' => 'multi-step',
1972 - 'dependency' => [
1973 - 'rules' => [
1974 - [
1975 - 'item' => 'modules.shopify_checkout.show_step_menu',
1976 - 'value' => 'on',
1977 - 'operator' => '==',
1978 - ],
1979 - [
1980 - 'item' => 'modules.shopify_checkout.show_cart_menu',
1981 - 'value' => 'on',
1982 - 'operator' => '==',
1983 - ],
1984 - ],
1985 - ],
1986 - ],
1987 -
1988 - 'billing_text' => [
1989 - 'id' => 'billing_text',
1990 - 'type' => 'text',
1991 - 'isPro' => ! rtsb()->has_pro(),
1992 - 'label' => esc_html__( 'Billing Step Title', 'shopbuilder' ),
1993 - 'help' => esc_html__( 'Enter the billing step menu title.', 'shopbuilder' ),
1994 - 'value' => esc_html__( 'Billing', 'shopbuilder' ),
1995 - 'tab' => 'multi-step',
1996 - 'dependency' => [
1997 - 'rules' => [
1998 - [
1999 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2000 - 'value' => 'on',
2001 - 'operator' => '==',
2002 - ],
2003 - [
2004 - 'item' => 'modules.shopify_checkout.show_step_menu',
2005 - 'value' => 'on',
2006 - 'operator' => '==',
2007 - ],
2008 - ],
2009 - ],
2010 - ],
2011 -
2012 - 'shipping_text' => [
2013 - 'id' => 'shipping_text',
2014 - 'type' => 'text',
2015 - 'isPro' => ! rtsb()->has_pro(),
2016 - 'label' => esc_html__( 'Shipping Step Title', 'shopbuilder' ),
2017 - 'help' => esc_html__( 'Enter the shipping step menu title.', 'shopbuilder' ),
2018 - 'value' => esc_html__( 'Shipping', 'shopbuilder' ),
2019 - 'tab' => 'multi-step',
2020 - 'dependency' => [
2021 - 'rules' => [
2022 - [
2023 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2024 - 'value' => 'on',
2025 - 'operator' => '==',
2026 - ],
2027 - [
2028 - 'item' => 'modules.shopify_checkout.show_step_menu',
2029 - 'value' => 'on',
2030 - 'operator' => '==',
2031 - ],
2032 - ],
2033 - ],
2034 - ],
2035 -
2036 - 'shipping_method_text' => [
2037 - 'id' => 'shipping_method_text',
2038 - 'type' => 'text',
2039 - 'isPro' => ! rtsb()->has_pro(),
2040 - 'label' => esc_html__( 'Shipping Method Step Title', 'shopbuilder' ),
2041 - 'help' => esc_html__( 'Enter the shipping method step menu title.', 'shopbuilder' ),
2042 - 'value' => esc_html__( 'Shipping Method ', 'shopbuilder' ),
2043 - 'tab' => 'multi-step',
2044 - 'dependency' => [
2045 - 'rules' => [
2046 - [
2047 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2048 - 'value' => 'on',
2049 - 'operator' => '==',
2050 - ],
2051 - [
2052 - 'item' => 'modules.shopify_checkout.show_step_menu',
2053 - 'value' => 'on',
2054 - 'operator' => '==',
2055 - ],
2056 - ],
2057 - ],
2058 - ],
2059 -
2060 - 'payment_text' => [
2061 - 'id' => 'payment_text',
2062 - 'type' => 'text',
2063 - 'isPro' => ! rtsb()->has_pro(),
2064 - 'label' => esc_html__( 'Payment Method Step Title', 'shopbuilder' ),
2065 - 'help' => esc_html__( 'Enter the payment method step menu title.', 'shopbuilder' ),
2066 - 'value' => esc_html__( 'Payment', 'shopbuilder' ),
2067 - 'tab' => 'multi-step',
2068 - 'dependency' => [
2069 - 'rules' => [
2070 - [
2071 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2072 - 'value' => 'on',
2073 - 'operator' => '==',
2074 - ],
2075 - [
2076 - 'item' => 'modules.shopify_checkout.show_step_menu',
2077 - 'value' => 'on',
2078 - 'operator' => '==',
2079 - ],
2080 - ],
2081 - ],
2082 - ],
2083 -
2084 - 'next_button_settings' => [
2085 - 'id' => 'next_button_settings',
2086 - 'type' => 'title',
2087 - 'label' => esc_html__( 'Button Settings', 'shopbuilder' ),
2088 - 'tab' => 'multi-step',
2089 - 'dependency' => [
2090 - 'rules' => [
2091 - [
2092 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2093 - 'value' => 'on',
2094 - 'operator' => '==',
2095 - ],
2096 - ],
2097 - ],
2098 - ],
2099 -
2100 - 'shop_continue_btn' => [
2101 - 'id' => 'shop_continue_btn',
2102 - 'type' => 'switch',
2103 - 'isPro' => ! rtsb()->has_pro(),
2104 - 'label' => esc_html__( 'Show Next Button', 'shopbuilder' ),
2105 - 'help' => esc_html__( 'Enable this option to display the \'Next\' button.', 'shopbuilder' ),
2106 - 'tab' => 'multi-step',
2107 - 'value' => 'on',
2108 - 'dependency' => [
2109 - 'rules' => [
2110 - [
2111 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2112 - 'value' => 'on',
2113 - 'operator' => '==',
2114 - ],
2115 - ],
2116 - ],
2117 - ],
2118 - 'continue_btn_text_for_shipping' => [
2119 - 'id' => 'continue_btn_text_for_shipping',
2120 - 'type' => 'text',
2121 - 'isPro' => ! rtsb()->has_pro(),
2122 - 'label' => esc_html__( 'Next Button Label for Shipping', 'shopbuilder' ),
2123 - 'value' => esc_html__( 'Next', 'shopbuilder' ),
2124 - 'tab' => 'multi-step',
2125 - 'dependency' => [
2126 - 'rules' => [
2127 - [
2128 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2129 - 'value' => 'on',
2130 - 'operator' => '==',
2131 - ],
2132 - [
2133 - 'item' => 'modules.shopify_checkout.shop_continue_btn',
2134 - 'value' => 'on',
2135 - 'operator' => '==',
2136 - ],
2137 - ],
2138 - ],
2139 - ],
2140 - 'continue_btn_text_for_shipping_method' => [
2141 - 'id' => 'continue_btn_text_for_shipping_method',
2142 - 'type' => 'text',
2143 - 'isPro' => ! rtsb()->has_pro(),
2144 - 'label' => esc_html__( 'Next Button Label for Shipping Method', 'shopbuilder' ),
2145 - 'value' => esc_html__( 'Next', 'shopbuilder' ),
2146 - 'tab' => 'multi-step',
2147 - 'dependency' => [
2148 - 'rules' => [
2149 - [
2150 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2151 - 'value' => 'on',
2152 - 'operator' => '==',
2153 - ],
2154 - [
2155 - 'item' => 'modules.shopify_checkout.shop_continue_btn',
2156 - 'value' => 'on',
2157 - 'operator' => '==',
2158 - ],
2159 - ],
2160 - ],
2161 - ],
2162 - 'continue_btn_text_for_payment' => [
2163 - 'id' => 'continue_btn_text_for_payment',
2164 - 'type' => 'text',
2165 - 'label' => esc_html__( 'Next Button Label for Payment', 'shopbuilder' ),
2166 - 'value' => esc_html__( 'Next', 'shopbuilder' ),
2167 - 'tab' => 'multi-step',
2168 - 'dependency' => [
2169 - 'rules' => [
2170 - [
2171 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2172 - 'value' => 'on',
2173 - 'operator' => '==',
2174 - ],
2175 - [
2176 - 'item' => 'modules.shopify_checkout.shop_continue_btn',
2177 - 'value' => 'on',
2178 - 'operator' => '==',
2179 - ],
2180 - ],
2181 - ],
2182 - ],
2183 - 'shop_return_btn' => [
2184 - 'id' => 'shop_return_btn',
2185 - 'type' => 'switch',
2186 - 'isPro' => ! rtsb()->has_pro(),
2187 - 'label' => esc_html__( 'Show Back Button', 'shopbuilder' ),
2188 - 'help' => esc_html__( 'Enable this option to display the \'Back\' button.', 'shopbuilder' ),
2189 - 'tab' => 'multi-step',
2190 - 'value' => 'on',
2191 - 'dependency' => [
2192 - 'rules' => [
2193 - [
2194 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2195 - 'value' => 'on',
2196 - 'operator' => '==',
2197 - ],
2198 - ],
2199 - ],
2200 - ],
2201 - 'return_btn_text_for_billing' => [
2202 - 'id' => 'return_btn_text_for_billing',
2203 - 'type' => 'text',
2204 - 'isPro' => ! rtsb()->has_pro(),
2205 - 'label' => esc_html__( 'Back Button Label for Billing', 'shopbuilder' ),
2206 - 'value' => esc_html__( 'Prev', 'shopbuilder' ),
2207 - 'tab' => 'multi-step',
2208 - 'dependency' => [
2209 - 'rules' => [
2210 - [
2211 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2212 - 'value' => 'on',
2213 - 'operator' => '==',
2214 - ],
2215 - [
2216 - 'item' => 'modules.shopify_checkout.shop_return_btn',
2217 - 'value' => 'on',
2218 - 'operator' => '==',
2219 - ],
2220 - ],
2221 - ],
2222 - ],
2223 -
2224 - 'return_btn_text_for_shipping' => [
2225 - 'id' => 'return_btn_text_for_shipping',
2226 - 'type' => 'text',
2227 - 'isPro' => ! rtsb()->has_pro(),
2228 - 'label' => esc_html__( 'Back Button Label for Shipping', 'shopbuilder' ),
2229 - 'value' => esc_html__( 'Prev', 'shopbuilder' ),
2230 - 'tab' => 'multi-step',
2231 - 'dependency' => [
2232 - 'rules' => [
2233 - [
2234 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2235 - 'value' => 'on',
2236 - 'operator' => '==',
2237 - ],
2238 - [
2239 - 'item' => 'modules.shopify_checkout.shop_return_btn',
2240 - 'value' => 'on',
2241 - 'operator' => '==',
2242 - ],
2243 - ],
2244 - ],
2245 - ],
2246 -
2247 - 'return_btn_text_for_shipping_method' => [
2248 - 'id' => 'return_btn_text_for_shipping_method',
2249 - 'type' => 'text',
2250 - 'isPro' => ! rtsb()->has_pro(),
2251 - 'label' => esc_html__( 'Back Button Label for Shipping Method', 'shopbuilder' ),
2252 - 'value' => esc_html__( 'Prev', 'shopbuilder' ),
2253 - 'tab' => 'multi-step',
2254 - 'dependency' => [
2255 - 'rules' => [
2256 - [
2257 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2258 - 'value' => 'on',
2259 - 'operator' => '==',
2260 - ],
2261 - [
2262 - 'item' => 'modules.shopify_checkout.shop_return_btn',
2263 - 'value' => 'on',
2264 - 'operator' => '==',
2265 - ],
2266 - ],
2267 - ],
2268 - ],
2269 -
2270 - 'order_review_settings' => [
2271 - 'id' => 'order_review_settings',
2272 - 'type' => 'title',
2273 - 'label' => esc_html__( 'Order Reviews', 'shopbuilder' ),
2274 - 'tab' => 'general',
2275 - ],
2276 - 'order_review_item_link' => [
2277 - 'id' => 'order_review_item_link',
2278 - 'type' => 'switch',
2279 - 'label' => esc_html__( 'Link Product Titles', 'shopbuilder' ),
2280 - 'help' => esc_html__( 'Enable to make product titles clickable, linking to their product pages.', 'shopbuilder' ),
2281 - 'value' => '',
2282 - 'tab' => 'general',
2283 - ],
2284 - 'extra_content' => [
2285 - 'id' => 'extra_content',
2286 - 'label' => esc_html__( 'Display Additional Data', 'shopbuilder' ),
2287 - 'help' => esc_html__( 'Enter custom text to display below the Order Review section. You can include custom HTML content. Shortcodes are also supported here.', 'shopbuilder' ),
2288 - 'type' => 'text_editor',
2289 - 'isPro' => ! rtsb()->has_pro(),
2290 - 'sanitize_fn' => 'pass_all',
2291 - 'tab' => 'general',
2292 - ],
2293 -
2294 - 'footer_settings' => [
2295 - 'id' => 'footer_settings',
2296 - 'type' => 'title',
2297 - 'label' => esc_html__( 'Footer', 'shopbuilder' ),
2298 - 'tab' => 'general',
2299 - ],
2300 -
2301 - 'footer_menu' => [
2302 - 'id' => 'footer_menu',
2303 - 'label' => esc_html__( 'Footer Menu', 'shopbuilder' ),
2304 - 'help' => esc_html__( 'Select a menu to display in the footer section of your checkout page.', 'shopbuilder' ),
2305 - 'type' => 'select',
2306 - 'value' => 'none',
2307 - 'options' => $this->get_all_menu(),
2308 - 'tab' => 'general',
2309 - ],
2310 -
2311 - 'footer_text' => [
2312 - 'id' => 'footer_text',
2313 - 'type' => 'text',
2314 - 'label' => esc_html__( 'Footer Text', 'shopbuilder' ),
2315 - 'help' => esc_html__( 'Enter custom text to display in the footer section of your checkout page. You can use {year} placeholder to display the current year.', 'shopbuilder' ),
2316 - 'value' => esc_html__( 'Copyright @{year} | All rights reserved', 'shopbuilder' ),
2317 - 'tab' => 'general',
2318 - ],
2319 -
2320 - // Place Order.
2321 - 'login_button_styles_settings' => [
2322 - 'id' => 'login_button_styles_settings',
2323 - 'type' => 'title',
2324 - 'tab' => 'btn-styles',
2325 - 'label' => esc_html__( 'Login Button Style', 'shopbuilder' ),
2326 - ],
2327 - 'login_button_height' => [
2328 - 'id' => 'login_button_height',
2329 - 'label' => esc_html__( 'Height (px)', 'shopbuilder' ),
2330 - 'type' => 'slider',
2331 - 'min' => 10,
2332 - 'max' => 100,
2333 - 'unit' => 'px',
2334 - 'value' => 50,
2335 - 'tab' => 'btn-styles',
2336 - ],
2337 - 'login_button_width' => [
2338 - 'id' => 'login_button_width',
2339 - 'label' => esc_html__( 'Width (px)', 'shopbuilder' ),
2340 - 'type' => 'slider',
2341 - 'min' => 10,
2342 - 'max' => 1000,
2343 - 'unit' => 'px',
2344 - 'tab' => 'btn-styles',
2345 - ],
2346 - 'login_button_font_size' => [
2347 - 'id' => 'login_button_font_size',
2348 - 'label' => esc_html__( 'Font Size (px)', 'shopbuilder' ),
2349 - 'type' => 'slider',
2350 - 'min' => 10,
2351 - 'max' => 50,
2352 - 'unit' => 'px',
2353 - 'value' => 15,
2354 - 'tab' => 'btn-styles',
2355 - ],
2356 - 'login_button_bg_color' => [
2357 - 'id' => 'login_button_bg_color',
2358 - 'label' => esc_html__( 'Background Color', 'shopbuilder' ),
2359 - 'tab' => 'btn-styles',
2360 - 'type' => 'color',
2361 - ],
2362 - 'login_button_hover_bg_color' => [
2363 - 'id' => 'login_button_hover_bg_color',
2364 - 'label' => esc_html__( 'Hover Background Color', 'shopbuilder' ),
2365 - 'tab' => 'btn-styles',
2366 - 'type' => 'color',
2367 - ],
2368 - 'login_button_color' => [
2369 - 'id' => 'login_button_color',
2370 - 'label' => esc_html__( 'Color', 'shopbuilder' ),
2371 - 'tab' => 'btn-styles',
2372 - 'type' => 'color',
2373 - ],
2374 - 'login_button_hover_color' => [
2375 - 'id' => 'login_button_hover_color',
2376 - 'label' => esc_html__( 'Hover Color', 'shopbuilder' ),
2377 - 'tab' => 'btn-styles',
2378 - 'type' => 'color',
2379 - ],
2380 - 'login_button_border_color' => [
2381 - 'id' => 'login_button_border_color',
2382 - 'label' => esc_html__( 'Border Color', 'shopbuilder' ),
2383 - 'tab' => 'btn-styles',
2384 - 'type' => 'color',
2385 - ],
2386 - 'login_button_hover_border_color' => [
2387 - 'id' => 'login_button_hover_border_color',
2388 - 'label' => esc_html__( 'Hover Border Color', 'shopbuilder' ),
2389 - 'tab' => 'btn-styles',
2390 - 'type' => 'color',
2391 - ],
2392 -
2393 - // Place Order.
2394 - 'place_order_button_styles_settings' => [
2395 - 'id' => 'place_order_button_styles_settings',
2396 - 'type' => 'title',
2397 - 'tab' => 'btn-styles',
2398 - 'label' => esc_html__( 'Place Order Button Style', 'shopbuilder' ),
2399 - ],
2400 - 'place_order_button_height' => [
2401 - 'id' => 'place_order_button_height',
2402 - 'label' => esc_html__( 'Height (px)', 'shopbuilder' ),
2403 - 'type' => 'slider',
2404 - 'min' => 10,
2405 - 'max' => 100,
2406 - 'unit' => 'px',
2407 - 'value' => 50,
2408 - 'tab' => 'btn-styles',
2409 - ],
2410 - 'place_order_button_width' => [
2411 - 'id' => 'place_order_button_width',
2412 - 'label' => esc_html__( 'Width (px)', 'shopbuilder' ),
2413 - 'type' => 'slider',
2414 - 'min' => 10,
2415 - 'max' => 1000,
2416 - 'unit' => 'px',
2417 - 'tab' => 'btn-styles',
2418 - ],
2419 - 'place_order_button_font_size' => [
2420 - 'id' => 'place_order_button_font_size',
2421 - 'label' => esc_html__( 'Font Size (px)', 'shopbuilder' ),
2422 - 'type' => 'slider',
2423 - 'min' => 10,
2424 - 'max' => 50,
2425 - 'unit' => 'px',
2426 - 'value' => 15,
2427 - 'tab' => 'btn-styles',
2428 - ],
2429 - 'place_order_button_bg_color' => [
2430 - 'id' => 'place_order_button_bg_color',
2431 - 'label' => esc_html__( 'Background Color', 'shopbuilder' ),
2432 - 'tab' => 'btn-styles',
2433 - 'type' => 'color',
2434 - ],
2435 - 'place_order_button_hover_bg_color' => [
2436 - 'id' => 'place_order_button_hover_bg_color',
2437 - 'label' => esc_html__( 'Hover Background Color', 'shopbuilder' ),
2438 - 'tab' => 'btn-styles',
2439 - 'type' => 'color',
2440 - ],
2441 - 'place_order_button_color' => [
2442 - 'id' => 'place_order_button_color',
2443 - 'label' => esc_html__( 'Color', 'shopbuilder' ),
2444 - 'tab' => 'btn-styles',
2445 - 'type' => 'color',
2446 - ],
2447 - 'place_order_button_hover_color' => [
2448 - 'id' => 'place_order_button_hover_color',
2449 - 'label' => esc_html__( 'Hover Color', 'shopbuilder' ),
2450 - 'tab' => 'btn-styles',
2451 - 'type' => 'color',
2452 - ],
2453 - 'place_order_button_border_color' => [
2454 - 'id' => 'place_order_button_border_color',
2455 - 'label' => esc_html__( 'Border Color', 'shopbuilder' ),
2456 - 'tab' => 'btn-styles',
2457 - 'type' => 'color',
2458 - ],
2459 - 'place_order_button_hover_border_color' => [
2460 - 'id' => 'place_order_button_hover_border_color',
2461 - 'label' => esc_html__( 'Hover Border Color', 'shopbuilder' ),
2462 - 'tab' => 'btn-styles',
2463 - 'type' => 'color',
2464 - ],
2465 -
2466 - // Next Button.
2467 - 'next_button_styles_settings' => [
2468 - 'id' => 'next_button_styles_settings',
2469 - 'type' => 'title',
2470 - 'tab' => 'btn-styles',
2471 - 'label' => esc_html__( 'Next Button Style', 'shopbuilder' ),
2472 - 'dependency' => [
2473 - 'rules' => [
2474 - [
2475 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2476 - 'value' => 'on',
2477 - 'operator' => '==',
2478 - ],
2479 - [
2480 - 'item' => 'modules.shopify_checkout.shop_continue_btn',
2481 - 'value' => 'on',
2482 - 'operator' => '==',
2483 - ],
2484 - ],
2485 - ],
2486 - ],
2487 - 'next_button_height' => [
2488 - 'id' => 'next_button_height',
2489 - 'isPro' => ! rtsb()->has_pro(),
2490 - 'label' => esc_html__( 'Height (px)', 'shopbuilder' ),
2491 - 'type' => 'slider',
2492 - 'min' => 10,
2493 - 'max' => 100,
2494 - 'unit' => 'px',
2495 - 'value' => 50,
2496 - 'tab' => 'btn-styles',
2497 - 'dependency' => [
2498 - 'rules' => [
2499 - [
2500 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2501 - 'value' => 'on',
2502 - 'operator' => '==',
2503 - ],
2504 - [
2505 - 'item' => 'modules.shopify_checkout.shop_continue_btn',
2506 - 'value' => 'on',
2507 - 'operator' => '==',
2508 - ],
2509 - ],
2510 - ],
2511 - ],
2512 - 'next_button_width' => [
2513 - 'id' => 'next_button_width',
2514 - 'label' => esc_html__( 'Width (px)', 'shopbuilder' ),
2515 - 'type' => 'slider',
2516 - 'min' => 10,
2517 - 'max' => 1000,
2518 - 'unit' => 'px',
2519 - 'tab' => 'btn-styles',
2520 - 'dependency' => [
2521 - 'rules' => [
2522 - [
2523 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2524 - 'value' => 'on',
2525 - 'operator' => '==',
2526 - ],
2527 - [
2528 - 'item' => 'modules.shopify_checkout.shop_continue_btn',
2529 - 'value' => 'on',
2530 - 'operator' => '==',
2531 - ],
2532 - ],
2533 - ],
2534 - ],
2535 - 'next_button_font_size' => [
2536 - 'id' => 'next_button_font_size',
2537 - 'isPro' => ! rtsb()->has_pro(),
2538 - 'label' => esc_html__( 'Font Size (px)', 'shopbuilder' ),
2539 - 'type' => 'slider',
2540 - 'min' => 10,
2541 - 'max' => 50,
2542 - 'unit' => 'px',
2543 - 'value' => 15,
2544 - 'tab' => 'btn-styles',
2545 - 'dependency' => [
2546 - 'rules' => [
2547 - [
2548 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2549 - 'value' => 'on',
2550 - 'operator' => '==',
2551 - ],
2552 - [
2553 - 'item' => 'modules.shopify_checkout.shop_continue_btn',
2554 - 'value' => 'on',
2555 - 'operator' => '==',
2556 - ],
2557 - ],
2558 - ],
2559 - ],
2560 - 'next_button_bg_color' => [
2561 - 'id' => 'next_button_bg_color',
2562 - 'isPro' => ! rtsb()->has_pro(),
2563 - 'label' => esc_html__( 'Background Color', 'shopbuilder' ),
2564 - 'tab' => 'btn-styles',
2565 - 'type' => 'color',
2566 - 'dependency' => [
2567 - 'rules' => [
2568 - [
2569 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2570 - 'value' => 'on',
2571 - 'operator' => '==',
2572 - ],
2573 - [
2574 - 'item' => 'modules.shopify_checkout.shop_continue_btn',
2575 - 'value' => 'on',
2576 - 'operator' => '==',
2577 - ],
2578 - ],
2579 - ],
2580 - ],
2581 - 'next_button_hover_bg_color' => [
2582 - 'id' => 'next_button_hover_bg_color',
2583 - 'isPro' => ! rtsb()->has_pro(),
2584 - 'label' => esc_html__( 'Hover Background Color', 'shopbuilder' ),
2585 - 'tab' => 'btn-styles',
2586 - 'type' => 'color',
2587 - 'dependency' => [
2588 - 'rules' => [
2589 - [
2590 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2591 - 'value' => 'on',
2592 - 'operator' => '==',
2593 - ],
2594 - [
2595 - 'item' => 'modules.shopify_checkout.shop_continue_btn',
2596 - 'value' => 'on',
2597 - 'operator' => '==',
2598 - ],
2599 - ],
2600 - ],
2601 - ],
2602 - 'next_button_color' => [
2603 - 'id' => 'next_button_color',
2604 - 'isPro' => ! rtsb()->has_pro(),
2605 - 'label' => esc_html__( 'Color', 'shopbuilder' ),
2606 - 'tab' => 'btn-styles',
2607 - 'type' => 'color',
2608 - 'dependency' => [
2609 - 'rules' => [
2610 - [
2611 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2612 - 'value' => 'on',
2613 - 'operator' => '==',
2614 - ],
2615 - [
2616 - 'item' => 'modules.shopify_checkout.shop_continue_btn',
2617 - 'value' => 'on',
2618 - 'operator' => '==',
2619 - ],
2620 - ],
2621 - ],
2622 - ],
2623 - 'next_button_hover_color' => [
2624 - 'id' => 'next_button_hover_color',
2625 - 'isPro' => ! rtsb()->has_pro(),
2626 - 'label' => esc_html__( 'Hover Color', 'shopbuilder' ),
2627 - 'tab' => 'btn-styles',
2628 - 'type' => 'color',
2629 - 'dependency' => [
2630 - 'rules' => [
2631 - [
2632 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2633 - 'value' => 'on',
2634 - 'operator' => '==',
2635 - ],
2636 - [
2637 - 'item' => 'modules.shopify_checkout.shop_continue_btn',
2638 - 'value' => 'on',
2639 - 'operator' => '==',
2640 - ],
2641 - ],
2642 - ],
2643 - ],
2644 - 'next_button_border_color' => [
2645 - 'id' => 'next_button_border_color',
2646 - 'isPro' => ! rtsb()->has_pro(),
2647 - 'label' => esc_html__( 'Border Color', 'shopbuilder' ),
2648 - 'tab' => 'btn-styles',
2649 - 'type' => 'color',
2650 - 'dependency' => [
2651 - 'rules' => [
2652 - [
2653 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2654 - 'value' => 'on',
2655 - 'operator' => '==',
2656 - ],
2657 - [
2658 - 'item' => 'modules.shopify_checkout.shop_continue_btn',
2659 - 'value' => 'on',
2660 - 'operator' => '==',
2661 - ],
2662 - ],
2663 - ],
2664 - ],
2665 - 'next_button_hover_border_color' => [
2666 - 'id' => 'next_button_hover_border_color',
2667 - 'isPro' => ! rtsb()->has_pro(),
2668 - 'label' => esc_html__( 'Hover Border Color', 'shopbuilder' ),
2669 - 'tab' => 'btn-styles',
2670 - 'type' => 'color',
2671 - 'dependency' => [
2672 - 'rules' => [
2673 - [
2674 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2675 - 'value' => 'on',
2676 - 'operator' => '==',
2677 - ],
2678 - [
2679 - 'item' => 'modules.shopify_checkout.shop_continue_btn',
2680 - 'value' => 'on',
2681 - 'operator' => '==',
2682 - ],
2683 - ],
2684 - ],
2685 - ],
2686 - 'prev_button_styles_settings' => [
2687 - 'id' => 'prev_button_styles_settings',
2688 - 'type' => 'title',
2689 - 'tab' => 'btn-styles',
2690 - 'label' => esc_html__( 'Prev Button Style', 'shopbuilder' ),
2691 - 'dependency' => [
2692 - 'rules' => [
2693 - [
2694 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2695 - 'value' => 'on',
2696 - 'operator' => '==',
2697 - ],
2698 - [
2699 - 'item' => 'modules.shopify_checkout.shop_return_btn',
2700 - 'value' => 'on',
2701 - 'operator' => '==',
2702 - ],
2703 - ],
2704 - ],
2705 -
2706 - ],
2707 - 'prev_button_height' => [
2708 - 'id' => 'prev_button_height',
2709 - 'isPro' => ! rtsb()->has_pro(),
2710 - 'label' => esc_html__( 'Height (px)', 'shopbuilder' ),
2711 - 'type' => 'slider',
2712 - 'min' => 10,
2713 - 'max' => 100,
2714 - 'unit' => 'px',
2715 - 'value' => 50,
2716 - 'tab' => 'btn-styles',
2717 - 'dependency' => [
2718 - 'rules' => [
2719 - [
2720 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2721 - 'value' => 'on',
2722 - 'operator' => '==',
2723 - ],
2724 - [
2725 - 'item' => 'modules.shopify_checkout.shop_return_btn',
2726 - 'value' => 'on',
2727 - 'operator' => '==',
2728 - ],
2729 - ],
2730 - ],
2731 - ],
2732 - 'prev_button_width' => [
2733 - 'id' => 'prev_button_width',
2734 - 'label' => esc_html__( 'Width (px)', 'shopbuilder' ),
2735 - 'type' => 'slider',
2736 - 'min' => 10,
2737 - 'max' => 1000,
2738 - 'unit' => 'px',
2739 - 'tab' => 'btn-styles',
2740 - 'dependency' => [
2741 - 'rules' => [
2742 - [
2743 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2744 - 'value' => 'on',
2745 - 'operator' => '==',
2746 - ],
2747 - [
2748 - 'item' => 'modules.shopify_checkout.shop_return_btn',
2749 - 'value' => 'on',
2750 - 'operator' => '==',
2751 - ],
2752 - ],
2753 - ],
2754 - ],
2755 - 'prev_button_font_size' => [
2756 - 'id' => 'prev_button_font_size',
2757 - 'isPro' => ! rtsb()->has_pro(),
2758 - 'label' => esc_html__( 'Font Size (px)', 'shopbuilder' ),
2759 - 'type' => 'slider',
2760 - 'min' => 10,
2761 - 'max' => 50,
2762 - 'unit' => 'px',
2763 - 'value' => 15,
2764 - 'tab' => 'btn-styles',
2765 - 'dependency' => [
2766 - 'rules' => [
2767 - [
2768 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2769 - 'value' => 'on',
2770 - 'operator' => '==',
2771 - ],
2772 - [
2773 - 'item' => 'modules.shopify_checkout.shop_return_btn',
2774 - 'value' => 'on',
2775 - 'operator' => '==',
2776 - ],
2777 - ],
2778 - ],
2779 - ],
2780 - 'prev_button_bg_color' => [
2781 - 'id' => 'prev_button_bg_color',
2782 - 'isPro' => ! rtsb()->has_pro(),
2783 - 'label' => esc_html__( 'Background Color', 'shopbuilder' ),
2784 - 'tab' => 'btn-styles',
2785 - 'type' => 'color',
2786 - 'dependency' => [
2787 - 'rules' => [
2788 - [
2789 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2790 - 'value' => 'on',
2791 - 'operator' => '==',
2792 - ],
2793 - [
2794 - 'item' => 'modules.shopify_checkout.shop_return_btn',
2795 - 'value' => 'on',
2796 - 'operator' => '==',
2797 - ],
2798 - ],
2799 - ],
2800 - ],
2801 - 'prev_button_hover_bg_color' => [
2802 - 'id' => 'prev_button_hover_bg_color',
2803 - 'label' => esc_html__( 'Hover Background Color', 'shopbuilder' ),
2804 - 'isPro' => ! rtsb()->has_pro(),
2805 - 'tab' => 'btn-styles',
2806 - 'type' => 'color',
2807 - 'dependency' => [
2808 - 'rules' => [
2809 - [
2810 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2811 - 'value' => 'on',
2812 - 'operator' => '==',
2813 - ],
2814 - [
2815 - 'item' => 'modules.shopify_checkout.shop_return_btn',
2816 - 'value' => 'on',
2817 - 'operator' => '==',
2818 - ],
2819 - ],
2820 - ],
2821 - ],
2822 - 'prev_button_color' => [
2823 - 'id' => 'prev_button_color',
2824 - 'label' => esc_html__( 'Color', 'shopbuilder' ),
2825 - 'isPro' => ! rtsb()->has_pro(),
2826 - 'tab' => 'btn-styles',
2827 - 'type' => 'color',
2828 - 'dependency' => [
2829 - 'rules' => [
2830 - [
2831 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2832 - 'value' => 'on',
2833 - 'operator' => '==',
2834 - ],
2835 - [
2836 - 'item' => 'modules.shopify_checkout.shop_return_btn',
2837 - 'value' => 'on',
2838 - 'operator' => '==',
2839 - ],
2840 - ],
2841 - ],
2842 - ],
2843 - 'prev_button_hover_color' => [
2844 - 'id' => 'prev_button_hover_color',
2845 - 'label' => esc_html__( 'Hover Color', 'shopbuilder' ),
2846 - 'isPro' => ! rtsb()->has_pro(),
2847 - 'tab' => 'btn-styles',
2848 - 'type' => 'color',
2849 - 'dependency' => [
2850 - 'rules' => [
2851 - [
2852 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2853 - 'value' => 'on',
2854 - 'operator' => '==',
2855 - ],
2856 - [
2857 - 'item' => 'modules.shopify_checkout.shop_return_btn',
2858 - 'value' => 'on',
2859 - 'operator' => '==',
2860 - ],
2861 - ],
2862 - ],
2863 - ],
2864 - 'prev_button_border_color' => [
2865 - 'id' => 'prev_button_border_color',
2866 - 'label' => esc_html__( 'Border Color', 'shopbuilder' ),
2867 - 'isPro' => ! rtsb()->has_pro(),
2868 - 'tab' => 'btn-styles',
2869 - 'type' => 'color',
2870 - 'dependency' => [
2871 - 'rules' => [
2872 - [
2873 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2874 - 'value' => 'on',
2875 - 'operator' => '==',
2876 - ],
2877 - [
2878 - 'item' => 'modules.shopify_checkout.shop_return_btn',
2879 - 'value' => 'on',
2880 - 'operator' => '==',
2881 - ],
2882 - ],
2883 - ],
2884 - ],
2885 - 'prev_button_hover_border_color' => [
2886 - 'id' => 'prev_button_hover_border_color',
2887 - 'label' => esc_html__( 'Hover Border Color', 'shopbuilder' ),
2888 - 'isPro' => ! rtsb()->has_pro(),
2889 - 'tab' => 'btn-styles',
2890 - 'type' => 'color',
2891 - 'dependency' => [
2892 - 'rules' => [
2893 - [
2894 - 'item' => 'modules.shopify_checkout.enable_multi_step',
2895 - 'value' => 'on',
2896 - 'operator' => '==',
2897 - ],
2898 - [
2899 - 'item' => 'modules.shopify_checkout.shop_return_btn',
2900 - 'value' => 'on',
2901 - 'operator' => '==',
2902 - ],
2903 - ],
2904 - ],
2905 - ],
2906 - 'coupon_button_styles_settings' => [
2907 - 'id' => 'coupon_button_styles_settings',
2908 - 'type' => 'title',
2909 - 'tab' => 'btn-styles',
2910 - 'label' => esc_html__( 'Apply Coupon Button Style', 'shopbuilder' ),
2911 - ],
2912 - 'coupon_height' => [
2913 - 'id' => 'coupon_height',
2914 - 'label' => esc_html__( 'Coupon Field And Button Height (px)', 'shopbuilder' ),
2915 - 'type' => 'slider',
2916 - 'min' => 10,
2917 - 'max' => 100,
2918 - 'unit' => 'px',
2919 - 'value' => 50,
2920 - 'tab' => 'btn-styles',
2921 - ],
2922 - 'coupon_button_font_size' => [
2923 - 'id' => 'coupon_button_font_size',
2924 - 'label' => esc_html__( 'Font Size (px)', 'shopbuilder' ),
2925 - 'type' => 'slider',
2926 - 'min' => 10,
2927 - 'max' => 50,
2928 - 'unit' => 'px',
2929 - 'value' => 15,
2930 - 'tab' => 'btn-styles',
2931 - ],
2932 - 'coupon_button_bg_color' => [
2933 - 'id' => 'coupon_button_bg_color',
2934 - 'label' => esc_html__( 'Background Color', 'shopbuilder' ),
2935 - 'tab' => 'btn-styles',
2936 - 'type' => 'color',
2937 - ],
2938 - 'coupon_button_hover_bg_color' => [
2939 - 'id' => 'coupon_button_hover_bg_color',
2940 - 'label' => esc_html__( 'Hover Background Color', 'shopbuilder' ),
2941 - 'tab' => 'btn-styles',
2942 - 'type' => 'color',
2943 - ],
2944 - 'coupon_button_color' => [
2945 - 'id' => 'coupon_button_color',
2946 - 'label' => esc_html__( 'Color', 'shopbuilder' ),
2947 - 'tab' => 'btn-styles',
2948 - 'type' => 'color',
2949 - ],
2950 - 'coupon_button_hover_color' => [
2951 - 'id' => 'coupon_button_hover_color',
2952 - 'label' => esc_html__( 'Hover Color', 'shopbuilder' ),
2953 - 'tab' => 'btn-styles',
2954 - 'type' => 'color',
2955 - ],
2956 - 'coupon_button_border_color' => [
2957 - 'id' => 'coupon_button_border_color',
2958 - 'label' => esc_html__( 'Border Color', 'shopbuilder' ),
2959 - 'tab' => 'btn-styles',
2960 - 'type' => 'color',
2961 - ],
2962 - 'coupon_button_hover_border_color' => [
2963 - 'id' => 'coupon_button_hover_border_color',
2964 - 'label' => esc_html__( 'Hover Border Color', 'shopbuilder' ),
2965 - 'tab' => 'btn-styles',
2966 - 'type' => 'color',
2967 - ],
2968 -
2969 - 'header_cart_icon_styles' => [
2970 - 'id' => 'header_cart_icon_styles',
2971 - 'type' => 'title',
2972 - 'tab' => 'styles',
2973 - 'label' => esc_html__( 'Header Cart Icon Style', 'shopbuilder' ),
2974 - 'dependency' => [
2975 - 'rules' => [
2976 - [
2977 - 'item' => 'modules.shopify_checkout.cart_icon_source',
2978 - 'value' => 'none',
2979 - 'operator' => '!=',
2980 - ],
2981 - ],
2982 - ],
2983 - ],
2984 -
2985 - 'shopify_cart_icon_height' => [
2986 - 'id' => 'shopify_cart_icon_height',
2987 - 'label' => esc_html__( 'Cart Icon Height (px)', 'shopbuilder' ),
2988 - 'type' => 'slider',
2989 - 'min' => 10,
2990 - 'max' => 200,
2991 - 'unit' => 'px',
2992 - 'value' => 40,
2993 - 'tab' => 'styles',
2994 - 'dependency' => [
2995 - 'rules' => [
2996 - [
2997 - 'item' => 'modules.shopify_checkout.cart_icon_source',
2998 - 'value' => 'upload_icon',
2999 - 'operator' => '==',
3000 - ],
3001 - ],
3002 - ],
3003 - ],
3004 -
3005 - 'header_cart_icon_color' => [
3006 - 'id' => 'step_menu_color',
3007 - 'label' => esc_html__( 'Color', 'shopbuilder' ),
3008 - 'tab' => 'styles',
3009 - 'type' => 'color',
3010 - 'dependency' => [
3011 - 'rules' => [
3012 - [
3013 - 'item' => 'modules.shopify_checkout.cart_icon_source',
3014 - 'value' => 'select_icon',
3015 - 'operator' => '==',
3016 - ],
3017 - ],
3018 - ],
3019 - ],
3020 - 'header_cart_icon_hover_color' => [
3021 - 'id' => 'header_cart_icon_hover_color',
3022 - 'label' => esc_html__( 'Hover Color', 'shopbuilder' ),
3023 - 'tab' => 'styles',
3024 - 'type' => 'color',
3025 - 'dependency' => [
3026 - 'rules' => [
3027 - [
3028 - 'item' => 'modules.shopify_checkout.cart_icon_source',
3029 - 'value' => 'select_icon',
3030 - 'operator' => '==',
3031 - ],
3032 - ],
3033 - ],
3034 - ],
3035 - 'header_cart_icon_font_size' => [
3036 - 'id' => 'header_cart_icon_font_size',
3037 - 'label' => esc_html__( 'Font Size (px)', 'shopbuilder' ),
3038 - 'type' => 'slider',
3039 - 'min' => 10,
3040 - 'max' => 50,
3041 - 'unit' => 'px',
3042 - 'value' => 15,
3043 - 'tab' => 'styles',
3044 - 'dependency' => [
3045 - 'rules' => [
3046 - [
3047 - 'item' => 'modules.shopify_checkout.cart_icon_source',
3048 - 'value' => 'select_icon',
3049 - 'operator' => '==',
3050 - ],
3051 - ],
3052 - ],
3053 - ],
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 - 'footer_menu_styles_settings' => [
3226 - 'id' => 'footer_menu_styles_settings',
3227 - 'type' => 'title',
3228 - 'tab' => 'styles',
3229 - 'label' => esc_html__( 'Footer Style', 'shopbuilder' ),
3230 - ],
3231 - 'footer_menu_color' => [
3232 - 'id' => 'footer_menu_color',
3233 - 'label' => esc_html__( 'Menu Color', 'shopbuilder' ),
3234 - 'tab' => 'styles',
3235 - 'type' => 'color',
3236 - ],
3237 - 'footer_menu_hover_color' => [
3238 - 'id' => 'footer_menu_hover_color',
3239 - 'label' => esc_html__( 'Menu Hover Color', 'shopbuilder' ),
3240 - 'tab' => 'styles',
3241 - 'type' => 'color',
3242 - ],
3243 - 'footer_menu_font_size' => [
3244 - 'id' => 'footer_menu_font_size',
3245 - 'label' => esc_html__( 'Menu Font Size (px)', 'shopbuilder' ),
3246 - 'type' => 'slider',
3247 - 'min' => 10,
3248 - 'max' => 50,
3249 - 'unit' => 'px',
3250 - 'value' => 15,
3251 - 'tab' => 'styles',
3252 - ],
3253 - 'footer_text_size' => [
3254 - 'id' => 'footer_text_size',
3255 - 'label' => esc_html__( 'Footer Text Font Size (px)', 'shopbuilder' ),
3256 - 'type' => 'slider',
3257 - 'min' => 10,
3258 - 'max' => 50,
3259 - 'unit' => 'px',
3260 - 'value' => 15,
3261 - 'tab' => 'styles',
3262 - ],
3263 - 'footer_text_color' => [
3264 - 'id' => 'footer_text_color',
3265 - 'label' => esc_html__( 'Footer Text Color', 'shopbuilder' ),
3266 - 'tab' => 'styles',
3267 - 'type' => 'color',
3268 - ],
3269 - 'step_menu_styles_settings' => [
3270 - 'id' => 'step_menu_styles_settings',
3271 - 'type' => 'title',
3272 - 'tab' => 'styles',
3273 - 'label' => esc_html__( 'Step Menu Style', 'shopbuilder' ),
3274 - 'dependency' => [
3275 - 'rules' => [
3276 - [
3277 - 'item' => 'modules.shopify_checkout.enable_multi_step',
3278 - 'value' => 'on',
3279 - 'operator' => '==',
3280 - ],
3281 - [
3282 - 'item' => 'modules.shopify_checkout.show_step_menu',
3283 - 'value' => 'on',
3284 - 'operator' => '==',
3285 - ],
3286 - ],
3287 - ],
3288 - ],
3289 - 'step_menu_color' => [
3290 - 'id' => 'step_menu_color',
3291 - 'label' => esc_html__( 'Color', 'shopbuilder' ),
3292 - 'isPro' => ! rtsb()->has_pro(),
3293 - 'tab' => 'styles',
3294 - 'type' => 'color',
3295 - 'dependency' => [
3296 - 'rules' => [
3297 - [
3298 - 'item' => 'modules.shopify_checkout.enable_multi_step',
3299 - 'value' => 'on',
3300 - 'operator' => '==',
3301 - ],
3302 - [
3303 - 'item' => 'modules.shopify_checkout.show_step_menu',
3304 - 'value' => 'on',
3305 - 'operator' => '==',
3306 - ],
3307 - ],
3308 - ],
3309 - ],
3310 - 'step_menu_hover_color' => [
3311 - 'id' => 'step_menu_hover_color',
3312 - 'label' => esc_html__( 'Hover Color', 'shopbuilder' ),
3313 - 'isPro' => ! rtsb()->has_pro(),
3314 - 'tab' => 'styles',
3315 - 'type' => 'color',
3316 - 'dependency' => [
3317 - 'rules' => [
3318 - [
3319 - 'item' => 'modules.shopify_checkout.enable_multi_step',
3320 - 'value' => 'on',
3321 - 'operator' => '==',
3322 - ],
3323 - [
3324 - 'item' => 'modules.shopify_checkout.show_step_menu',
3325 - 'value' => 'on',
3326 - 'operator' => '==',
3327 - ],
3328 - ],
3329 - ],
3330 - ],
3331 - 'step_menu_font_size' => [
3332 - 'id' => 'step_menu_font_size',
3333 - 'label' => esc_html__( 'Font Size (px)', 'shopbuilder' ),
3334 - 'isPro' => ! rtsb()->has_pro(),
3335 - 'type' => 'slider',
3336 - 'min' => 10,
3337 - 'max' => 50,
3338 - 'unit' => 'px',
3339 - 'value' => 15,
3340 - 'tab' => 'styles',
3341 - 'dependency' => [
3342 - 'rules' => [
3343 - [
3344 - 'item' => 'modules.shopify_checkout.enable_multi_step',
3345 - 'value' => 'on',
3346 - 'operator' => '==',
3347 - ],
3348 - [
3349 - 'item' => 'modules.shopify_checkout.show_step_menu',
3350 - 'value' => 'on',
3351 - 'operator' => '==',
3352 - ],
3353 - ],
3354 - ],
3355 - ],
3356 - ];
3357 - return $fields;
3358 - }
3359 1311 /**
3360 1312 * @return array
3361 1313 */
3362 1314 public function product_badges_fields() {
@@ -3405,9 +1357,10 @@
3405 1357 // translators: %s for pro message.
3406 1358 esc_html__( 'Please choose the group display type. %s', 'shopbuilder' ),
3407 1359 ! rtsb()->has_pro()
3408 1360 ? sprintf(
3409 - '<a target="_blank" href="' . esc_url( rtsb()->pro_version_link() ) . '">%s </a> %s ',
1361 + '<a target="_blank" href="%s">%s </a> %s ',
1362 + esc_url( rtsb()->pro_version_link() ),
3410 1363 esc_html__( 'Upgrade to PRO', 'shopbuilder' ),
3411 1364 esc_html__( 'for vertical layout.', 'shopbuilder' )
3412 1365 )
3413 1366 : ''
@@ -3442,10 +1395,10 @@
3442 1395 'options' => [
3443 1396 'above_image' => esc_html__( 'Floating Above Image', 'shopbuilder' ),
3444 1397 'before_product_title' => esc_html__( 'Before Product Title', 'shopbuilder' ),
3445 1398 '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' ),
1399 + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ),
1400 + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ),
3448 1401 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ),
3449 1402 ],
3450 1403 'tab' => 'group',
3451 1404 ],
@@ -3468,8 +1421,23 @@
3468 1421 ],
3469 1422 ],
3470 1423 ],
3471 1424 ],
1425 + 'loop_priority_note' => [
1426 + 'type' => 'raw',
1427 + 'label' => ' ',
1428 + 'html' => '<span style="color:red">' . esc_html__( 'If the badge position is incorrect or not displayed, please adjust the priority of hooks accordingly by increasing or decreasing them as necessary.', 'shopbuilder' ) . '</span>',
1429 + 'dependency' => [
1430 + 'rules' => [
1431 + [
1432 + 'item' => 'modules.product_badges.loop_group_position',
1433 + 'value' => 'above_image',
1434 + 'operator' => '!=',
1435 + ],
1436 + ],
1437 + ],
1438 + 'tab' => 'group',
1439 + ],
3472 1440 'group_position_hook_priority' => [
3473 1441 'id' => 'group_position_hook_priority',
3474 1442 'type' => 'number',
3475 1443 'size' => 'small',
@@ -3481,10 +1449,10 @@
3481 1449 'dependency' => [
3482 1450 'rules' => [
3483 1451 [
3484 1452 'item' => 'modules.product_badges.loop_group_position',
3485 - 'value' => 'custom',
3486 - 'operator' => '==',
1453 + 'value' => 'above_image',
1454 + 'operator' => '!=',
3487 1455 ],
3488 1456 ],
3489 1457 ],
3490 1458 ],
@@ -3524,10 +1492,10 @@
3524 1492 'label' => esc_html__( 'Product Page Group Position', 'shopbuilder' ),
3525 1493 'help' => esc_html__( 'Choose the group badges position in product page.', 'shopbuilder' ),
3526 1494 'options' => [
3527 1495 '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' ),
1496 + 'before_add_to_cart' => esc_html__( 'Before Add To Cart', 'shopbuilder' ),
1497 + 'after_add_to_cart' => esc_html__( 'After Add To Cart', 'shopbuilder' ),
3530 1498 'after_summary' => esc_html__( 'After Summary', 'shopbuilder' ),
3531 1499 'after_short_desc' => esc_html__( 'After Short Description', 'shopbuilder' ),
3532 1500 'shortcode' => esc_html__( 'Use Shortcode', 'shopbuilder' ),
3533 1501 'custom' => esc_html__( 'Custom Position', 'shopbuilder' ),
@@ -3572,8 +1540,23 @@
3572 1540 ],
3573 1541 ],
3574 1542 ],
3575 1543 ],
1544 + 'product_page_priority_note' => [
1545 + 'type' => 'raw',
1546 + 'label' => ' ',
1547 + 'html' => '<span style="color:red">' . esc_html__( 'If the badge position is incorrect or not displayed, please adjust the priority of hooks accordingly by increasing or decreasing them as necessary.', 'shopbuilder' ) . '</span>',
1548 + 'dependency' => [
1549 + 'rules' => [
1550 + [
1551 + 'item' => 'modules.product_badges.product_page_group_position',
1552 + 'value' => [ 'above_image', 'shortcode' ],
1553 + 'operator' => '!in',
1554 + ],
1555 + ],
1556 + ],
1557 + 'tab' => 'group',
1558 + ],
3576 1559 'product_page_group_hook_priority' => [
3577 1560 'id' => 'product_page_group_hook_priority',
3578 1561 'type' => 'number',
3579 1562 'size' => 'small',
@@ -3585,10 +1568,10 @@
3585 1568 'dependency' => [
3586 1569 'rules' => [
3587 1570 [
3588 1571 'item' => 'modules.product_badges.product_page_group_position',
3589 - 'value' => 'custom',
3590 - 'operator' => '==',
1572 + 'value' => [ 'shortcode', 'above_image' ],
1573 + 'operator' => '!in',
3591 1574 ],
3592 1575 ],
3593 1576 ],
3594 1577
@@ -3627,8 +1610,9 @@
3627 1610 'type' => 'repeaters',
3628 1611 'label' => '',
3629 1612 'tab' => 'badges',
3630 1613 'repeat' => [
1614 +
3631 1615 'title' => [
3632 1616 'id' => 'title',
3633 1617 'label' => esc_html__( 'Badge Name', 'shopbuilder' ),
3634 1618 'help' => esc_html__( 'Enter badge name.', 'shopbuilder' ),
@@ -3646,9 +1630,10 @@
3646 1630 // translators: %s for pro message.
3647 1631 esc_html__( 'Select badge type. %s', 'shopbuilder' ),
3648 1632 ! rtsb()->has_pro()
3649 1633 ? sprintf(
3650 - '<a target="_blank" href="' . esc_url( rtsb()->pro_version_link() ) . '">%s</a> %s',
1634 + '<a target="_blank" href="%s">%s</a> %s',
1635 + esc_url( rtsb()->pro_version_link() ),
3651 1636 esc_html__( 'Upgrade to PRO', 'shopbuilder' ),
3652 1637 esc_html__( 'unlock custom badge creation.', 'shopbuilder' )
3653 1638 )
3654 1639 : ''
@@ -3740,9 +1725,10 @@
3740 1725 // translators: %s for pro message.
3741 1726 esc_html__( 'Specify the badge display as Image Or Text. %s', 'shopbuilder' ),
3742 1727 ! rtsb()->has_pro()
3743 1728 ? sprintf(
3744 - '<a target="_blank" href="' . esc_url( rtsb()->pro_version_link() ) . '">%s</a> %s',
1729 + '<a target="_blank" href="%s">%s</a> %s',
1730 + esc_url( rtsb()->pro_version_link() ),
3745 1731 esc_html__( 'Upgrade to PRO', 'shopbuilder' ),
3746 1732 esc_html__( 'unlock Image badge creation.', 'shopbuilder' )
3747 1733 )
3748 1734 : ''
@@ -3809,8 +1795,9 @@
3809 1795 ],
3810 1796 'show_badges_percent_text' => [
3811 1797 'id' => 'show_badges_percent_text',
3812 1798 'type' => 'switch',
1799 + // 'isPro' => ! rtsb()->has_pro(),
3813 1800 'label' => esc_html__( 'Show Badges Percentage (%)', 'shopbuilder' ),
3814 1801 'help' => esc_html__( 'Switch on to show badge as dynamic percentage instead of text.', 'shopbuilder' ),
3815 1802 'dependency' => [
3816 1803 'rules' => [
@@ -4117,856 +2104,6 @@
4117 2104 $items['pre_order'] = esc_html__( 'Pre-Order Products', 'shopbuilder' );
4118 2105 }
4119 2106
4120 2107 return $items;
4121 - }
4122 - /**
4123 - * @return array
4124 - */
4125 - public function get_variation_swatches_fields() {
4126 - return apply_filters(
4127 - 'rtsb/module/variation_swatches/fields',
4128 - [
4129 - 'show_tooltip' => [
4130 - 'id' => 'show_tooltip',
4131 - 'value' => 'on',
4132 - 'type' => 'switch',
4133 - 'label' => esc_html__( 'Enable Tooltip', 'shopbuilder' ),
4134 - 'help' => esc_html__( 'Enable / Disable plugin default tooltip on each product attribute.', 'shopbuilder' ),
4135 - 'tab' => 'general',
4136 - ],
4137 - 'shape_style_checkmark' => [
4138 - 'id' => 'shape_style_checkmark',
4139 - 'type' => 'switch',
4140 - 'isPro' => ! rtsb()->has_pro(),
4141 - 'default' => false,
4142 - 'label' => esc_html__( 'Checkmark Selected Term ', 'shopbuilder' ),
4143 - 'help' => esc_html__( 'Shape style will add checkmark icon. Note: This option will not be applied to radio attributes.', 'shopbuilder' ),
4144 - 'tab' => 'general',
4145 - ],
4146 - 'default_dropdown_convert' => [
4147 - 'id' => 'default_dropdown_convert',
4148 - 'label' => esc_html__( 'Default Dropdown Convert', 'shopbuilder' ),
4149 - 'help' => esc_html__( 'Dropdown Convert To Button Or Image', 'shopbuilder' ),
4150 - 'isPro' => ! rtsb()->has_pro(),
4151 - 'type' => 'select',
4152 - 'value' => 'button',
4153 - 'options' => [
4154 - 'select' => esc_html__( 'Select ( Default, Not Convert )', 'shopbuilder' ),
4155 - 'button' => esc_html__( 'Button', 'shopbuilder' ),
4156 - 'image' => esc_html__( 'Image', 'shopbuilder' ),
4157 - ],
4158 - 'tab' => 'general',
4159 - ],
4160 - 'show_term_name_beside_label' => [
4161 - 'id' => 'show_term_name_beside_label',
4162 - 'type' => 'switch',
4163 - 'isPro' => ! rtsb()->has_pro(),
4164 - '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' ),
4167 - 'tab' => 'general',
4168 - ],
4169 - 'disabled_attribute_behavior' => [
4170 - 'id' => 'disabled_attribute_behavior',
4171 - 'label' => esc_html__( 'Disabled Attribute behavior', 'shopbuilder' ),
4172 - 'help' => esc_html__( 'Disabled attribute will be hide / blur.', 'shopbuilder' ) . ' <span>' . __( ' Note: This feature will be operational for variation quantities below the "Ajax variation threshold.', 'shopbuilder' ) . '</span>',
4173 - 'type' => 'select',
4174 - 'value' => 'blur-cross',
4175 - 'options' => [
4176 - 'blur-cross' => esc_html__( 'Blur And Cross', 'shopbuilder' ),
4177 - 'blur-no-cross' => esc_html__( 'Only Blur', 'shopbuilder' ),
4178 - 'hide' => esc_html__( 'Hide', 'shopbuilder' ),
4179 - ],
4180 - 'tab' => 'general',
4181 - ],
4182 - 'attr_display_limit' => [
4183 - 'id' => 'attr_display_limit',
4184 - 'type' => 'number',
4185 - 'isPro' => ! rtsb()->has_pro(),
4186 - 'value' => 0,
4187 - 'size' => 'small',
4188 - 'min' => 0,
4189 - 'max' => 999,
4190 - 'label' => esc_html__( 'Product Page Attribute display limit', 'shopbuilder' ),
4191 - 'help' => esc_html__( 'Catalog mode attribute display limit. Default is 0. Means no limit.', 'shopbuilder' ),
4192 - 'tab' => 'general',
4193 - ],
4194 - 'attribute_image_size' => [
4195 - 'id' => 'attribute_image_size',
4196 - 'label' => esc_html__( 'Attribute image size', 'shopbuilder' ),
4197 - 'help' => __( 'Choose attribute image size.', 'shopbuilder' ) . '<a target="_blank" href="' . esc_url( admin_url( 'options-media.php' ) ) . '"> ' . __( 'Media Settings', 'shopbuilder' ) . '</a>',
4198 - 'type' => 'select',
4199 - 'value' => 'thumbnail',
4200 - 'options' => Fns::get_image_sizes(),
4201 - 'tab' => 'general',
4202 - ],
4203 -
4204 - 'tooltip_title' => [
4205 - 'id' => 'tooltip_title',
4206 - 'type' => 'title',
4207 - 'label' => esc_html__( 'Tooltip Options', 'shopbuilder' ),
4208 - 'help' => esc_html__( 'Tooltip settings for single page and catalog mode on shop / archive pages', 'shopbuilder' ),
4209 - 'tab' => 'general',
4210 - 'dependency' => [
4211 - 'rules' => [
4212 - [
4213 - 'item' => 'modules.variation_swatches.show_tooltip',
4214 - 'value' => 'on',
4215 - 'operator' => '==',
4216 - ],
4217 - ],
4218 - ],
4219 - ],
4220 - 'tooltip_image_size' => [
4221 - 'id' => 'tooltip_image_size',
4222 - 'label' => esc_html__( 'Tooltip image size', 'shopbuilder' ),
4223 - 'help' => __( 'Choose Tooltip image size.', 'shopbuilder' ) . '<a target="_blank" href="' . esc_url( admin_url( 'options-media.php' ) ) . '"> ' . __( 'Media Settings', 'shopbuilder' ) . '</a>',
4224 - 'type' => 'select',
4225 - 'isPro' => ! rtsb()->has_pro(),
4226 - 'value' => 'thumbnail',
4227 - 'options' => Fns::get_image_sizes(),
4228 - 'tab' => 'general',
4229 - 'dependency' => [
4230 - 'rules' => [
4231 - [
4232 - 'item' => 'modules.variation_swatches.show_tooltip',
4233 - 'value' => 'on',
4234 - 'operator' => '==',
4235 - ],
4236 - ],
4237 - ],
4238 - ],
4239 - 'advanced_title' => [
4240 - 'id' => 'advanced_title',
4241 - 'type' => 'title',
4242 - 'label' => esc_html__( 'Advanced', 'shopbuilder' ),
4243 - 'tab' => 'general',
4244 - ],
4245 - 'disable_out_of_stock' => [
4246 - 'id' => 'disable_out_of_stock',
4247 - 'type' => 'switch',
4248 - 'default' => true,
4249 - 'label' => esc_html__( 'Disable Out of Stock', 'shopbuilder' ),
4250 - 'help' => __( 'Disable out of stock variation attribute items.', 'shopbuilder' ),
4251 - 'tab' => 'general',
4252 - ],
4253 -
4254 - 'enable_variation_url' => [
4255 - 'id' => 'enable_variation_url',
4256 - 'type' => 'switch',
4257 - 'default' => false,
4258 - 'isPro' => ! rtsb()->has_pro(),
4259 - 'label' => esc_html__( 'Variation URL', 'shopbuilder' ),
4260 - 'help' => esc_html__( 'Generate a URL based on the selected variation attributes.', 'shopbuilder' ),
4261 - 'tab' => 'general',
4262 - ],
4263 - 'enable_showcase_swatches' => [
4264 - 'id' => 'enable_showcase_swatches',
4265 - 'type' => 'switch',
4266 - 'default' => false,
4267 - 'isPro' => ! rtsb()->has_pro(),
4268 - 'label' => esc_html__( 'Enable Swatches', 'shopbuilder' ),
4269 - 'help' => esc_html__( 'Show swatches on archive / shop page.', 'shopbuilder' ),
4270 - 'tab' => 'showcase_shop',
4271 - ],
4272 - 'showcase_product_wrapper_selector' => [
4273 - 'id' => 'showcase_product_wrapper_selector',
4274 - 'type' => 'text',
4275 - 'isPro' => ! rtsb()->has_pro(),
4276 - 'label' => esc_html__( 'Product Wrapper Selector', 'shopbuilder' ),
4277 - 'help' => esc_html__( 'Archive product Wrapper Selector (.rtwpvs-product,.tmb-woocommerce)', 'shopbuilder' ),
4278 - 'value' => '.rtsb-vs-product,.product-item',
4279 - 'dependency' => [
4280 - 'rules' => [
4281 - [
4282 - 'item' => 'modules.variation_swatches.enable_showcase_swatches',
4283 - 'value' => 'on',
4284 - 'operator' => '==',
4285 - ],
4286 - ],
4287 - ],
4288 - 'tab' => 'showcase_shop',
4289 - ],
4290 - 'showcase_swatches_image_selector' => [
4291 - 'id' => 'showcase_swatches_image_selector',
4292 - 'type' => 'text',
4293 - 'isPro' => ! rtsb()->has_pro(),
4294 - 'label' => esc_html__( 'Image Selector', 'shopbuilder' ),
4295 - 'help' => esc_html__( 'Archive product image selector to show variation image. You can also use multiple selectors separated by comma (.attachment-woocommerce_thumbnail, .wp-post-image) ', 'shopbuilder' ),
4296 - 'value' => '.wp-post-image, .attachment-woocommerce_thumbnail, .rtsb-product-image',
4297 - 'dependency' => [
4298 - 'rules' => [
4299 - [
4300 - 'item' => 'modules.variation_swatches.enable_showcase_swatches',
4301 - 'value' => 'on',
4302 - 'operator' => '==',
4303 - ],
4304 - ],
4305 - ],
4306 - 'tab' => 'showcase_shop',
4307 - ],
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 - 'showcase_swatches_position' => [
4328 - 'id' => 'showcase_swatches_position',
4329 - 'label' => esc_html__( 'Swatches Position', 'shopbuilder' ),
4330 - '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' ),
4331 - 'isPro' => ! rtsb()->has_pro(),
4332 - 'type' => 'select',
4333 - 'value' => 'before_add_to_cart',
4334 - 'options' => apply_filters(
4335 - 'rtsb_showcase_swatches_positions',
4336 - [
4337 - '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' ),
4340 - ]
4341 - ),
4342 - 'dependency' => [
4343 - 'rules' => [
4344 - [
4345 - 'item' => 'modules.variation_swatches.enable_showcase_swatches',
4346 - 'value' => 'on',
4347 - 'operator' => '==',
4348 - ],
4349 - ],
4350 - ],
4351 - 'tab' => 'showcase_shop',
4352 - ],
4353 - 'custom_hook_name' => [
4354 - 'type' => 'description',
4355 - 'text' => sprintf(
4356 - /* translators: 1: The shortcode.*/
4357 - esc_html__( 'Copy the php code %1$s and paste it in your product query where you want to show the button.', 'shopbuilder' ),
4358 - "<code style='padding: 5px' >&lt;?php do_action( 'rtsb/vs/showcase/variation' ); ?&gt;</code>"
4359 - ),
4360 - 'id' => 'custom_hook_name',
4361 - 'tab' => 'showcase_shop',
4362 - 'dependency' => [
4363 - 'rules' => [
4364 - [
4365 - 'item' => 'modules.variation_swatches.enable_showcase_swatches',
4366 - 'value' => 'on',
4367 - 'operator' => '==',
4368 - ],
4369 - [
4370 - 'item' => 'modules.variation_swatches.showcase_swatches_position',
4371 - 'value' => 'custom_hook',
4372 - 'operator' => '==',
4373 - ],
4374 - ],
4375 - ],
4376 - ],
4377 - 'showcase_swatches_align' => [
4378 - 'id' => 'showcase_swatches_align',
4379 - 'label' => esc_html__( 'Swatches Align', 'shopbuilder' ),
4380 - 'help' => esc_html__( 'Swatches align on archive page.', 'shopbuilder' ),
4381 - 'isPro' => ! rtsb()->has_pro(),
4382 - 'type' => 'select',
4383 - 'value' => 'left',
4384 - 'options' => apply_filters(
4385 - 'rtsb_get_showcase_swatches_aligns',
4386 - [
4387 - 'left' => esc_html__( 'Left', 'shopbuilder' ),
4388 - 'right' => esc_html__( 'Right', 'shopbuilder' ),
4389 - 'center' => esc_html__( 'Center', 'shopbuilder' ),
4390 - ]
4391 - ),
4392 - 'dependency' => [
4393 - 'rules' => [
4394 - [
4395 - 'item' => 'modules.variation_swatches.enable_showcase_swatches',
4396 - 'value' => 'on',
4397 - 'operator' => '==',
4398 - ],
4399 - ],
4400 - ],
4401 - 'tab' => 'showcase_shop',
4402 - ],
4403 -
4404 - 'show_clear_on_showcase' => [
4405 - 'id' => 'show_clear_on_showcase',
4406 - 'isPro' => ! rtsb()->has_pro(),
4407 - 'type' => 'switch',
4408 - 'label' => esc_html__( 'Show clear link', 'shopbuilder' ),
4409 - 'help' => esc_html__( 'Show clear link on archive, shop page, any other showcase.', 'shopbuilder' ),
4410 - 'dependency' => [
4411 - 'rules' => [
4412 - [
4413 - 'item' => 'modules.variation_swatches.enable_showcase_swatches',
4414 - 'value' => 'on',
4415 - 'operator' => '==',
4416 - ],
4417 - ],
4418 - ],
4419 - 'tab' => 'showcase_shop',
4420 - ],
4421 - 'showcase_special_attribute_title' => [
4422 - 'id' => 'showcase_special_attribute_title',
4423 - 'type' => 'title',
4424 - 'label' => esc_html__( 'Special Attribute', 'shopbuilder' ),
4425 - 'tab' => 'showcase_shop',
4426 - ],
4427 - 'showcase_single_attribute' => [
4428 - 'id' => 'showcase_single_attribute',
4429 - 'isPro' => ! rtsb()->has_pro(),
4430 - 'type' => 'switch',
4431 - 'label' => esc_html__( 'Show Single Attribute', 'shopbuilder' ),
4432 - 'help' => esc_html__( 'Show single attribute taxonomies on archive page.', 'shopbuilder' ),
4433 - 'tab' => 'showcase_shop',
4434 - ],
4435 - 'chose_showcase_single_attribute' => [
4436 - 'id' => 'chose_showcase_single_attribute',
4437 - 'label' => esc_html__( 'Chose Attribute', 'shopbuilder' ),
4438 - 'help' => esc_html__( 'Choose an attribute to show on catalog mode', 'shopbuilder' ),
4439 - 'isPro' => ! rtsb()->has_pro(),
4440 - 'type' => 'select',
4441 - 'options' => SwatchesFns::get_wc_attributes( esc_html__( ' - Choose Attribute - ', 'shopbuilder' ) ),
4442 - 'dependency' => [
4443 - 'rules' => [
4444 - [
4445 - 'item' => 'modules.variation_swatches.showcase_single_attribute',
4446 - 'value' => 'on',
4447 - 'operator' => '==',
4448 - ],
4449 - ],
4450 - ],
4451 - 'tab' => 'showcase_shop',
4452 - ],
4453 -
4454 - 'showcase_swatches_display_event' => [
4455 - 'id' => 'showcase_swatches_display_event',
4456 - 'label' => esc_html__( 'Catalog Mode Display Event', 'shopbuilder' ),
4457 - 'help' => esc_html__( 'Show catalog mode image display event.', 'shopbuilder' ),
4458 - 'isPro' => ! rtsb()->has_pro(),
4459 - 'type' => 'select',
4460 - 'value' => 'click',
4461 - 'options' => [
4462 - 'click' => esc_html__( 'on Click', 'shopbuilder' ),
4463 - 'hover' => esc_html__( 'on Hover', 'shopbuilder' ),
4464 - ],
4465 - 'dependency' => [
4466 - 'rules' => [
4467 - [
4468 - 'item' => 'modules.variation_swatches.enable_showcase_swatches',
4469 - 'value' => 'on',
4470 - 'operator' => '==',
4471 - ],
4472 - ],
4473 - ],
4474 - 'tab' => 'showcase_shop',
4475 - ],
4476 -
4477 - 'showcase_swatches_display_limit' => [
4478 - 'id' => 'showcase_swatches_display_limit',
4479 - 'type' => 'number',
4480 - 'isPro' => ! rtsb()->has_pro(),
4481 - 'value' => 0,
4482 - 'size' => 'small',
4483 - 'min' => 0,
4484 - 'max' => 999,
4485 - 'label' => esc_html__( 'Attribute display limit', 'shopbuilder' ),
4486 - 'help' => esc_html__( 'Catalog mode attribute display limit. Default is 0. Means no limit.', 'shopbuilder' ),
4487 - 'dependency' => [
4488 - 'rules' => [
4489 - [
4490 - 'item' => 'modules.variation_swatches.enable_showcase_swatches',
4491 - 'value' => 'on',
4492 - 'operator' => '==',
4493 - ],
4494 - ],
4495 - ],
4496 - 'tab' => 'showcase_shop',
4497 - ],
4498 - 'checkmark_size' => [
4499 - 'id' => 'checkmark_size',
4500 - 'type' => 'title',
4501 - 'label' => esc_html__( 'Checkmark', 'shopbuilder' ),
4502 - 'tab' => 'style',
4503 - ],
4504 - 'checkmark_bg_color' => [
4505 - 'id' => 'checkmark_bg_color',
4506 - 'label' => esc_html__( 'Checkmark Background Color', 'shopbuilder' ),
4507 - 'isPro' => ! rtsb()->has_pro(),
4508 - 'type' => 'color',
4509 - 'value' => '#333333',
4510 - 'tab' => 'style',
4511 - ],
4512 - 'attribute_checkmark_width' => [
4513 - 'id' => 'attribute_checkmark_width',
4514 - 'label' => esc_html__( 'Checkmark Width', 'shopbuilder' ),
4515 - 'isPro' => ! rtsb()->has_pro(),
4516 - 'help' => esc_html__( 'Set the width (in px) for selected attribute checkmark,', 'shopbuilder' ),
4517 - 'type' => 'slider',
4518 - 'min' => 15,
4519 - 'max' => 200,
4520 - 'unit' => 'px',
4521 - 'value' => 18,
4522 - 'tab' => 'style',
4523 - ],
4524 - 'attribute_checkmark_height' => [
4525 - 'id' => 'attribute_checkmark_height',
4526 - 'label' => esc_html__( 'Checkmark Height', 'shopbuilder' ),
4527 - 'isPro' => ! rtsb()->has_pro(),
4528 - 'help' => esc_html__( 'Set the height (in px) for selected attribute checkmark,', 'shopbuilder' ),
4529 - 'type' => 'slider',
4530 - 'min' => 15,
4531 - 'max' => 200,
4532 - 'unit' => 'px',
4533 - 'value' => 18,
4534 - 'tab' => 'style',
4535 - ],
4536 - 'attribute_checkmark_icon_size' => [
4537 - 'id' => 'attribute_checkmark_icon_size',
4538 - 'isPro' => ! rtsb()->has_pro(),
4539 - 'label' => esc_html__( 'Checkmark Icon Size', 'shopbuilder' ),
4540 - 'help' => esc_html__( 'Checkmark Icon Size.', 'shopbuilder' ),
4541 - 'type' => 'slider',
4542 - 'min' => 10,
4543 - 'max' => 30,
4544 - 'unit' => 'px',
4545 - 'value' => 13,
4546 - 'tab' => 'style',
4547 - ],
4548 - 'attribute_style' => [
4549 - 'id' => 'attribute_style',
4550 - 'type' => 'title',
4551 - 'label' => esc_html__( 'Attribute Style', 'shopbuilder' ),
4552 - 'tab' => 'style',
4553 - ],
4554 - 'attribute_border_color' => [
4555 - 'id' => 'attribute_border_color',
4556 - 'label' => esc_html__( 'Attribute Border Color', 'shopbuilder' ),
4557 - 'type' => 'color',
4558 - 'value' => '#D1D5DB',
4559 - 'tab' => 'style',
4560 - ],
4561 - 'attribute_border_color_hover' => [
4562 - 'id' => 'attribute_border_color_hover',
4563 - 'label' => esc_html__( 'Attribute Border Color Hover/Active', 'shopbuilder' ),
4564 - 'type' => 'color',
4565 - 'value' => '#333333',
4566 - 'tab' => 'style',
4567 - ],
4568 - 'attribute_border_radius' => [
4569 - 'id' => 'attribute_border_radius',
4570 - 'label' => esc_html__( 'Attribute Border Radius', 'shopbuilder' ),
4571 - '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' ),
4573 - 'type' => 'slider',
4574 - 'min' => 0,
4575 - 'max' => 200,
4576 - 'unit' => 'px',
4577 - 'value' => 4,
4578 - 'tab' => 'style',
4579 - ],
4580 - 'details_page_attribute_size' => [
4581 - 'id' => 'details_page_attribute_size',
4582 - 'type' => 'title',
4583 - 'label' => esc_html__( 'Details Page Attributes', 'shopbuilder' ),
4584 - 'tab' => 'style',
4585 - ],
4586 - 'details_page_attr_label_color' => [
4587 - 'id' => 'details_page_attr_label_color',
4588 - 'label' => esc_html__( 'Product Page Attribute Label Color', 'shopbuilder' ),
4589 - 'type' => 'color',
4590 - 'value' => '#333333',
4591 - 'tab' => 'style',
4592 - ],
4593 - 'details_page_attr_label_font_size' => [
4594 - 'id' => 'details_page_attr_label_font_size',
4595 - 'label' => esc_html__( 'Product Page Attribute Label Font Size', 'shopbuilder' ),
4596 - 'type' => 'slider',
4597 - 'min' => 8,
4598 - 'max' => 50,
4599 - 'unit' => 'px',
4600 - 'value' => 16,
4601 - 'tab' => 'style',
4602 - ],
4603 - 'details_page_attribute_width' => [
4604 - 'id' => 'details_page_attribute_width',
4605 - 'label' => esc_html__( 'Variation Item Width', 'shopbuilder' ),
4606 - 'help' => esc_html__( 'Set the width (in px) for each variation attribute option, Note: This option will not be applied to radio and button attributes.', 'shopbuilder' ),
4607 - 'type' => 'slider',
4608 - 'min' => 10,
4609 - 'max' => 150,
4610 - 'unit' => 'px',
4611 - 'value' => 30,
4612 - 'tab' => 'style',
4613 - ],
4614 - 'details_page_attribute_height' => [
4615 - 'id' => 'details_page_attribute_height',
4616 - 'label' => esc_html__( 'Variation Item Height', 'shopbuilder' ),
4617 - 'help' => esc_html__( 'Set the height (in px) for each variation attribute option, Note: This option will not be applied to radio attributes.', 'shopbuilder' ),
4618 - 'type' => 'slider',
4619 - 'min' => 10,
4620 - 'max' => 150,
4621 - 'unit' => 'px',
4622 - 'value' => 30,
4623 - 'tab' => 'style',
4624 - ],
4625 - 'details_page_attribute_font_size' => [
4626 - 'id' => 'details_page_attribute_font_size',
4627 - 'label' => esc_html__( 'Variation Item Font Size', 'shopbuilder' ),
4628 - 'help' => esc_html__( 'Set the font size (in px) for text within variation attribute options, such as labels on buttons.', 'shopbuilder' ),
4629 - 'type' => 'slider',
4630 - 'min' => 8,
4631 - 'max' => 30,
4632 - 'unit' => 'px',
4633 - 'value' => 16,
4634 - 'tab' => 'style',
4635 - ],
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 - 'showcase_attribute_size' => [
4648 - 'id' => 'showcase_attribute_size',
4649 - 'type' => 'title',
4650 - 'label' => esc_html__( 'Shop Page / Product Showcase Attributes Size', 'shopbuilder' ),
4651 - 'tab' => 'style',
4652 - ],
4653 - 'showcase_attribute_width' => [
4654 - 'id' => 'showcase_attribute_width',
4655 - 'label' => esc_html__( 'Variation Item Width', 'shopbuilder' ),
4656 - 'help' => esc_html__( 'Set the width (in px) for each variation attribute option, Note: This option will not be applied to radio and button attributes.', 'shopbuilder' ),
4657 - 'type' => 'slider',
4658 - 'min' => 10,
4659 - 'max' => 200,
4660 - 'unit' => 'px',
4661 - 'value' => 30,
4662 - 'tab' => 'style',
4663 - ],
4664 - 'showcase_attribute_height' => [
4665 - 'id' => 'showcase_attribute_height',
4666 - 'label' => esc_html__( 'Variation Item Height', 'shopbuilder' ),
4667 - 'help' => esc_html__( 'Set the height (in px) for each variation attribute option, Note: This option will not be applied to radio and button attributes.', 'shopbuilder' ),
4668 - 'type' => 'slider',
4669 - 'min' => 10,
4670 - 'max' => 200,
4671 - 'unit' => 'px',
4672 - 'value' => 30,
4673 - 'tab' => 'style',
4674 - ],
4675 - 'showcase_attribute_font_size' => [
4676 - 'id' => 'showcase_attribute_font_size',
4677 - 'label' => esc_html__( 'Variation Item Font Size', 'shopbuilder' ),
4678 - 'help' => esc_html__( 'Set the font size (in px) for text within variation attribute options, such as labels on buttons.', 'shopbuilder' ),
4679 - 'type' => 'slider',
4680 - 'min' => 8,
4681 - 'max' => 30,
4682 - 'unit' => 'px',
4683 - 'value' => 16,
4684 - 'tab' => 'style',
4685 - ],
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 - 'tooltip_style' => [
4698 - 'id' => 'tooltip_style',
4699 - 'type' => 'title',
4700 - 'label' => esc_html__( 'Tooltip Style', 'shopbuilder' ),
4701 - 'tab' => 'style',
4702 - ],
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 - 'tooltip_images_padding' => [
4718 - 'id' => 'tooltip_images_padding',
4719 - 'label' => esc_html__( 'Tooltip Images Padding', 'shopbuilder' ),
4720 - 'type' => 'slider',
4721 - 'min' => 0,
4722 - 'max' => 30,
4723 - 'unit' => 'px',
4724 - 'value' => 3,
4725 - 'tab' => 'style',
4726 - ],
4727 - 'tooltip_image_bg_color' => [
4728 - 'id' => 'tooltip_image_bg_color',
4729 - 'label' => esc_html__( 'Tooltip Image Background Color', 'shopbuilder' ),
4730 - 'type' => 'color',
4731 - 'value' => '#333333',
4732 - 'tab' => 'style',
4733 - ],
4734 -
4735 - ]
4736 - ); // @phpstan-ignore-line
4737 - }
4738 - /**
4739 - * @return array
4740 - */
4741 - public function get_variation_gallery_fields() {
4742 - return apply_filters(
4743 - 'rtsb/module/variation_gallery/fields',
4744 - [
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' => [
4752 - 'id' => 'image_zoom',
4753 - 'type' => 'switch',
4754 - 'default' => false,
4755 - 'label' => esc_html__( 'Zoom Gallery image', 'shopbuilder' ),
4756 - 'tab' => 'general',
4757 - ],
4758 - 'lightBox' => [
4759 - 'id' => 'lightBox',
4760 - 'type' => 'switch',
4761 - 'default' => false,
4762 - 'label' => esc_html__( 'Enable Images lightBox', 'shopbuilder' ),
4763 - 'tab' => 'general',
4764 - ],
4765 - 'lightBox_button_position' => [
4766 - 'id' => 'lightBox_button_position',
4767 - 'type' => 'select',
4768 - 'value' => 'top-right',
4769 - 'label' => esc_html__( 'Zoom Button Position', 'shopbuilder' ),
4770 - 'isPro' => ! rtsb()->has_pro(),
4771 - 'options' => [
4772 - 'top-right' => esc_html__( 'Top Right', 'shopbuilder' ),
4773 - 'top-left' => esc_html__( 'Top Left', 'shopbuilder' ),
4774 - 'bottom-right' => esc_html__( 'Bottom Right', 'shopbuilder' ),
4775 - 'bottom-left' => esc_html__( 'Bottom Left', 'shopbuilder' ),
4776 - ],
4777 - 'tab' => 'general',
4778 - ],
4779 -
4780 - 'adaptive_height' => [
4781 - 'id' => 'adaptive_height',
4782 - 'type' => 'switch',
4783 - 'default' => false,
4784 - 'label' => esc_html__( 'Main Images Slider Adaptive Height', 'shopbuilder' ),
4785 - 'tab' => 'general',
4786 - 'dependency' => [
4787 - 'rules' => [
4788 - [
4789 - 'item' => 'modules.variation_gallery.gallery_style',
4790 - 'value' => 'grid',
4791 - 'operator' => '!=',
4792 - ],
4793 - ],
4794 - ],
4795 - ],
4796 - 'main_slider_alignment' => [
4797 - 'id' => 'main_slider_alignment',
4798 - 'type' => 'switch',
4799 - 'value' => 'center',
4800 - 'label' => esc_html__( 'Main Image Middle Position', 'shopbuilder' ),
4801 - 'help' => esc_html__( 'The main image area will align vertically in the center if the inner content is shorter than the adjacent content.', 'shopbuilder' ),
4802 - 'tab' => 'general',
4803 - 'dependency' => [
4804 - 'rules' => [
4805 - [
4806 - 'item' => 'modules.variation_gallery.gallery_style',
4807 - 'value' => [ 'left', 'right' ],
4808 - 'operator' => 'in',
4809 - ],
4810 - ],
4811 - ],
4812 - ],
4813 - 'main_image_transition_effect' => [
4814 - 'id' => 'main_image_transition_effect',
4815 - 'type' => 'select',
4816 - 'value' => 'slide',
4817 - 'label' => esc_html__( 'Transition Effect For Main Image Carousel', 'shopbuilder' ),
4818 - 'isPro' => ! rtsb()->has_pro(),
4819 - 'options' => [
4820 - 'slide' => esc_html__( 'Slide', 'shopbuilder' ),
4821 - 'fade' => esc_html__( 'Fade', 'shopbuilder' ),
4822 - ],
4823 - 'tab' => 'general',
4824 - 'dependency' => [
4825 - 'rules' => [
4826 - [
4827 - 'item' => 'modules.variation_gallery.gallery_style',
4828 - 'value' => 'grid',
4829 - 'operator' => '!=',
4830 - ],
4831 - ],
4832 - ],
4833 - ],
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' => [
4852 - 'rules' => [
4853 - [
4854 - 'item' => 'modules.variation_gallery.preloader',
4855 - 'value' => 'on',
4856 - 'operator' => '==',
4857 - ],
4858 - ],
4859 - ],
4860 - ],
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' ),
4872 - ],
4873 - 'tab' => 'general',
4874 - ],
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' => [
4922 - 'id' => 'main_image_border_color',
4923 - 'label' => esc_html__( 'Main Image Border Color', 'shopbuilder' ),
4924 - 'tab' => 'styles',
4925 - 'type' => 'color',
4926 - 'dependency' => [
4927 - 'rules' => [
4928 - [
4929 - 'item' => 'modules.variation_gallery.gallery_style',
4930 - 'value' => 'grid',
4931 - 'operator' => '!=',
4932 - ],
4933 - ],
4934 - ],
4935 - ],
4936 - 'thumbnail_item_border_color' => [
4937 - 'id' => 'thumbnail_item_border_color',
4938 - 'label' => esc_html__( 'Thumbnail item Border Color', 'shopbuilder' ),
4939 - 'tab' => 'styles',
4940 - 'type' => 'color',
4941 - ],
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' => [
4950 - 'id' => 'thumbnail_item_inner_padding',
4951 - 'type' => 'slider',
4952 - 'label' => esc_html__( 'Thumbnail Item Inner Padding', 'shopbuilder' ),
4953 - 'min' => 0,
4954 - 'max' => 30,
4955 - 'unit' => 'px',
4956 - 'value' => 10,
4957 - 'tab' => 'styles',
4958 - ],
4959 - 'thumbnail_item_border_radius' => [
4960 - 'id' => 'thumbnail_item_border_radius',
4961 - 'type' => 'slider',
4962 - 'label' => esc_html__( 'Thumbnail Item Border Radius', 'shopbuilder' ),
4963 - 'min' => 0,
4964 - 'max' => 30,
4965 - 'unit' => 'px',
4966 - 'value' => 5,
4967 - 'tab' => 'styles',
4968 - ],
4969 - ]
4970 - );
4971 2108 }
4972 2109 }