PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 2.6.2
ShopBuilder – WooCommerce Builder For Elementor v2.6.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
shopbuilder / app / Modules / ShopifyCheckout / ShopifyCheckout.php

ShopifyCheckout.php in ShopBuilder – WooCommerce Builder For Elementor 2.6.2, at app/Modules/ShopifyCheckout/ShopifyCheckout.php

159 lines 10.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Sticky add-to-cart Module Class.
4 *
5 * @package RadiusTheme\SB
6 */
7
8 namespace RadiusTheme\SB\Modules\ShopifyCheckout;
9
10 use RadiusTheme\SB\Helpers\Fns;
11 use RadiusTheme\SB\Traits\SingletonTrait;
12
13 defined( 'ABSPATH' ) || exit();
14
15 /**
16 * Sticky add-to-cart Module Class.
17 */
18 class ShopifyCheckout {
19 /**
20 * Singleton Trait.
21 */
22 use SingletonTrait;
23
24 /**
25 * @var array
26 */
27 private $cache = [];
28 /**
29 * @var array|mixed
30 */
31 private array $options;
32
33 /**
34 * Module Class Constructor.
35 */
36 private function __construct() {
37 // If the cached result doesn't exist, fetch it from the database.
38 global $shopify_checkout_options; // Define global variable.
39 $this->options = Fns::get_options( 'modules', 'shopify_checkout' ); // Assign options to the global variable.
40 $shopify_checkout_options = $this->options;
41 add_filter( 'template_include', [ $this, 'custom_checkout_template' ], 99 );
42 add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_public_scripts' ], 99 );
43 do_action( 'rtsb/loaded/shopify/checkout' );
44 }
45 /**
46 * @param string $template path.
47 * @return mixed|string
48 */
49 public function custom_checkout_template( $template ) {
50 if ( defined( 'RTSBPRO_VERSION' ) && version_compare( RTSBPRO_VERSION, '1.8.0', '<' ) ) {
51 return $template;
52 }
53 $is_checkout_page = is_checkout() && ! is_order_received_page();
54 if ( ! $is_checkout_page ) {
55 return $template;
56 }
57 $shopify_template = 'shopify-checkout/checkout';
58 $custom_template = Fns::locate_template( $shopify_template );
59 if ( is_checkout() && file_exists( $custom_template ) ) {
60 return $custom_template;
61 }
62 return $template;
63 }
64
65 /**
66 * @return void
67 */
68 public function enqueue_public_scripts() {
69 $cache_key = 'shopify_style_cache';
70
71 // Selector variables.
72 $step_menu_selector = '.shopify-multistep-menu ul li a';
73 $step_menu_active_selector = '.shopify-multistep-menu ul li.active a';
74 $footer_menu_selector = '.rtsb-checkout-page-full-width .shopify-footer-menu a';
75 $next_button_selector = '.rtsb-checkout-page-form .checkout-step-btn a.next';
76 $prev_button_selector = '.rtsb-checkout-page-form .checkout-step-btn a.prev';
77 $coupon_input_button_selector = '.rtsb-checkout-page-full-width .rtsb-shopify-order-summery .coupon-wrapper input, .rtsb-checkout-page-full-width .rtsb-shopify-order-summery .coupon-wrapper button';
78 $coupon_button_selector = '.rtsb-checkout-page-full-width .rtsb-shopify-order-summery .coupon-wrapper button';
79 $place_order_button_selector = '.rtsb-checkout-page-form #place_order';
80 $login_button_selector = '.rtsb-checkout-page-form .woocommerce-form-login__submit';
81 $footer_text = '.rtsb-checkout-page-footer';
82 $cart_icon = '.rtsb-checkout-page-container .rtsb-checkout-page-header .header-right-side a';
83
84 // phpcs:disable
85 // Disabled phpcs for one-liner display.
86 $css_properties = [
87
88 'header_cart_icon_color' => [ 'selector' => $cart_icon, 'property' => 'color' ],
89 'header_cart_icon_hover_color' => [ 'selector' => "$cart_icon:hover", 'property' => 'color' ],
90 'header_cart_icon_font_size' => [ 'selector' => $cart_icon, 'property' => 'font-size', 'unit' => 'px' ],
91 'shopify_cart_icon_height' => [ 'selector' => "$cart_icon :is(svg, img)", 'property' => 'height', 'unit' => 'px' ],
92
93 'step_menu_color' => [ 'selector' => $step_menu_selector, 'property' => 'color' ],
94 'step_menu_hover_color' => [ 'selector' => "$step_menu_selector:hover, $step_menu_active_selector", 'property' => 'color' ],
95 'step_menu_font_size' => [ 'selector' => $step_menu_selector, 'property' => 'font-size', 'unit' => 'px' ],
96
97 'next_button_height' => [ 'selector' => $next_button_selector, 'property' => 'height', 'unit' => 'px' ],
98 'next_button_width' => [ 'selector' => $next_button_selector, 'property' => 'min-width', 'unit' => 'px' ],
99 'next_button_font_size' => [ 'selector' => $next_button_selector, 'property' => 'font-size', 'unit' => 'px' ],
100 'next_button_color' => [ 'selector' => $next_button_selector, 'property' => 'color' ],
101 'next_button_hover_color' => [ 'selector' => "$next_button_selector:hover", 'property' => 'color' ],
102 'next_button_bg_color' => [ 'selector' => $next_button_selector, 'property' => 'background-color' ],
103 'next_button_hover_bg_color' => [ 'selector' => "$next_button_selector:hover", 'property' => 'background-color' ],
104 'next_button_border_color' => [ 'selector' => $next_button_selector, 'property' => 'border-color' ],
105 'next_button_hover_border_color' => [ 'selector' => "$next_button_selector:hover", 'property' => 'border-color' ],
106
107 'prev_button_height' => [ 'selector' => $prev_button_selector, 'property' => 'height', 'unit' => 'px' ],
108 'prev_button_width' => [ 'selector' => $prev_button_selector, 'property' => 'min-width', 'unit' => 'px' ],
109 'prev_button_font_size' => [ 'selector' => $prev_button_selector, 'property' => 'font-size', 'unit' => 'px' ],
110 'prev_button_bg_color' => [ 'selector' => $prev_button_selector, 'property' => 'background-color' ],
111 'prev_button_hover_bg_color' => [ 'selector' => "$prev_button_selector:hover", 'property' => 'background-color' ],
112 'prev_button_color' => [ 'selector' => $prev_button_selector, 'property' => 'color' ],
113 'prev_button_hover_color' => [ 'selector' => "$prev_button_selector:hover", 'property' => 'color' ],
114 'prev_button_border_color' => [ 'selector' => $prev_button_selector, 'property' => 'border-color' ],
115 'prev_button_hover_border_color' => [ 'selector' => "$prev_button_selector:hover", 'property' => 'border-color' ],
116
117 'coupon_height' => [ 'selector' => $coupon_input_button_selector, 'property' => 'height', 'unit' => 'px' ],
118 'coupon_button_font_size' => [ 'selector' => $coupon_button_selector, 'property' => 'font-size', 'unit' => 'px' ],
119 'coupon_button_bg_color' => [ 'selector' => $coupon_button_selector, 'property' => 'background-color' ],
120 'coupon_button_hover_bg_color' => [ 'selector' => "$coupon_button_selector:hover", 'property' => 'background-color' ],
121 'coupon_button_color' => [ 'selector' => $coupon_button_selector, 'property' => 'color' ],
122 'coupon_button_hover_color' => [ 'selector' => "$coupon_button_selector:hover", 'property' => 'color' ],
123 'coupon_button_border_color' => [ 'selector' => $coupon_button_selector, 'property' => 'border-color' ],
124 'coupon_button_hover_border_color' => [ 'selector' => "$coupon_button_selector:hover", 'property' => 'border-color' ],
125
126 'place_order_button_height' => [ 'selector' => $place_order_button_selector, 'property' => 'height', 'unit' => 'px' ],
127 'place_order_button_width' => [ 'selector' => $place_order_button_selector, 'property' => 'min-width', 'unit' => 'px' ],
128 'place_order_button_font_size' => [ 'selector' => $place_order_button_selector, 'property' => 'font-size', 'unit' => 'px' ],
129 'place_order_button_bg_color' => [ 'selector' => $place_order_button_selector, 'property' => 'background-color' ],
130 'place_order_button_hover_bg_color' => [ 'selector' => "$place_order_button_selector:hover", 'property' => 'background-color' ],
131 'place_order_button_color' => [ 'selector' => $place_order_button_selector, 'property' => 'color' ],
132 'place_order_button_hover_color' => [ 'selector' => "$place_order_button_selector:hover", 'property' => 'color' ],
133 'place_order_button_border_color' => [ 'selector' => $place_order_button_selector, 'property' => 'border-color' ],
134 'place_order_button_hover_border_color' => [ 'selector' => "$place_order_button_selector:hover", 'property' => 'border-color' ],
135
136 'login_button_height' => [ 'selector' => $login_button_selector, 'property' => 'height', 'unit' => 'px' ],
137 'login_button_width' => [ 'selector' => $login_button_selector, 'property' => 'min-width', 'unit' => 'px' ],
138 'login_button_font_size' => [ 'selector' => $login_button_selector, 'property' => 'font-size', 'unit' => 'px' ],
139 'login_button_bg_color' => [ 'selector' => $login_button_selector, 'property' => 'background-color' ],
140 'login_button_hover_bg_color' => [ 'selector' => "$login_button_selector:hover", 'property' => 'background-color' ],
141 'login_button_color' => [ 'selector' => $login_button_selector, 'property' => 'color' ],
142 'login_button_hover_color' => [ 'selector' => "$login_button_selector:hover", 'property' => 'color' ],
143 'login_button_border_color' => [ 'selector' => $login_button_selector, 'property' => 'border-color' ],
144 'login_button_hover_border_color' => [ 'selector' => "$login_button_selector:hover", 'property' => 'border-color' ],
145
146 'footer_menu_color' => [ 'selector' => $footer_menu_selector, 'property' => 'color' ],
147 'footer_menu_hover_color' => [ 'selector' => "$footer_menu_selector:hover", 'property' => 'color' ],
148 'footer_menu_font_size' => [ 'selector' => $footer_menu_selector, 'property' => 'font-size', 'unit' => 'px' ],
149 'footer_text_size' => [ 'selector' => $footer_text, 'property' => 'font-size', 'unit' => 'px' ],
150 'footer_text_color' => [ 'selector' => $footer_text, 'property' => 'color' ],
151
152
153 ];
154 // phpcs:enable
155 // Generate dynamic CSS.
156 Fns::dynamic_styles( $this->options, $cache_key, $css_properties );
157 }
158 }
159