PluginProbe
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder / 2.14.0
aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder v2.14.0
2.14.0 2.13.0 2.13.1 2.12.0 2.11.1 2.11.0 2.10.0 2.9.0 2.7.4 2.7.5 2.7.6 2.7.7 2.8.0 2.8.1 2.9.1 trunk 1.0 1.0-beta1 1.0-beta2 1.0-beta3 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 All 81 releases
ablocks / includes / blocks / storeengine-checkout-form / block.php

block.php in aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder 2.14.0, at includes/blocks/storeengine-checkout-form/block.php

225 lines 11.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace ABlocks\Blocks\StoreengineCheckoutForm;
3
4 if ( ! defined( 'ABSPATH' ) ) {
5 exit;
6 }
7
8 use ABlocks\Classes\BlockBaseAbstract;
9 use ABlocks\Classes\CssGenerator;
10 use ABlocks\Helper;
11 use ABlocks\Controls\Typography;
12 use ABlocks\Controls\Border;
13 use ABlocks\Controls\Dimensions;
14 use ABlocks\Controls\Range;
15 use ABlocks\Controls\Color;
16
17 class Block extends BlockBaseAbstract {
18 protected $block_name = 'storeengine-checkout-form';
19
20 public function build_css( $attributes ) {
21 $css_generator = new CssGenerator( $attributes, $this->block_name );
22
23 $css_generator->add_class_styles(
24 '{{WRAPPER}} .storeengine-ajax-checkout-form__contact-information .storeengine-checkout-form-section-heading,
25 {{WRAPPER}} .storeengine-ajax-checkout-form__billing-address .storeengine-checkout-form-section-heading',
26 $this->get_Cheackout_form_css( $attributes ),
27 $this->get_Cheackout_form_css( $attributes, 'Tablet' ),
28 $this->get_Cheackout_form_css( $attributes, 'Mobile' ),
29 $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_Cheackout_form_css( $attributes, $device ); } )
30 );
31 $css_generator->add_class_styles(
32 '{{WRAPPER}} .storeengine-ajax-checkout-form__contact-information .storeengine-checkout-form-section-heading:hover,
33 {{WRAPPER}} .storeengine-ajax-checkout-form__billing-address .storeengine-checkout-form-section-heading:hover',
34 $this->get_Cheackout_form_hover_css( $attributes ),
35 $this->get_Cheackout_form_hover_css( $attributes, 'Tablet' ),
36 $this->get_Cheackout_form_hover_css( $attributes, 'Mobile' ),
37 $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_Cheackout_form_hover_css( $attributes, $device ); } )
38 );
39 $css_generator->add_class_styles(
40 '{{WRAPPER}} .storeengine-form-group .storeengine-form__inner label,
41 {{WRAPPER}} .storeengine-ajax-checkout-form__contact-information .storeengine-form-field .storeengine-form-field__inner label',
42 $this->get_Cheackout_form_label_css( $attributes ),
43 $this->get_Cheackout_form_label_css( $attributes, 'Tablet' ),
44 $this->get_Cheackout_form_label_css( $attributes, 'Mobile' ),
45 $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_Cheackout_form_label_css( $attributes, $device ); } )
46 );
47 $css_generator->add_class_styles(
48 '{{WRAPPER}} .storeengine-form-group .storeengine-form__inner label:hover,
49 {{WRAPPER}} .storeengine-ajax-checkout-form__contact-information .storeengine-form-field .storeengine-form-field__inner label:hover',
50 $this->get_Cheackout_form_label_hover_css( $attributes ),
51 $this->get_Cheackout_form_label_hover_css( $attributes, 'Tablet' ),
52 $this->get_Cheackout_form_label_hover_css( $attributes, 'Mobile' ),
53 $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_Cheackout_form_label_hover_css( $attributes, $device ); } )
54 );
55 $css_generator->add_class_styles(
56 '{{WRAPPER}} .storeengine-form-group .storeengine-form__inner input,
57 {{WRAPPER}} .storeengine-ajax-checkout-form input',
58 $this->get_Cheackout_form_input_css( $attributes ),
59 $this->get_Cheackout_form_input_css( $attributes, 'Tablet' ),
60 $this->get_Cheackout_form_input_css( $attributes, 'Mobile' ),
61 $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_Cheackout_form_input_css( $attributes, $device ); } )
62 );
63 $css_generator->add_class_styles(
64 '{{WRAPPER}} .storeengine-form-group .storeengine-form__inner input:hover,
65 {{WRAPPER}} .storeengine-ajax-checkout-form input:hover',
66 $this->get_Cheackout_form_input_hover_css( $attributes ),
67 $this->get_Cheackout_form_input_hover_css( $attributes, 'Tablet' ),
68 $this->get_Cheackout_form_input_hover_css( $attributes, 'Mobile' ),
69 $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_Cheackout_form_input_hover_css( $attributes, $device ); } )
70 );
71 $css_generator->add_class_styles(
72 '{{WRAPPER}} .storeengine-form-group .storeengine-form__inner select',
73 $this->get_cheackout_form_select_css( $attributes ),
74 $this->get_cheackout_form_select_css( $attributes, 'Tablet' ),
75 $this->get_cheackout_form_select_css( $attributes, 'Mobile' ),
76 $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_cheackout_form_select_css( $attributes, $device ); } )
77 );
78 $css_generator->add_class_styles(
79 '{{WRAPPER}} .storeengine-form-group .storeengine-form__inner select:hover',
80 $this->get_cheackout_form_select_hover_css( $attributes ),
81 $this->get_cheackout_form_select_hover_css( $attributes, 'Tablet' ),
82 $this->get_cheackout_form_select_hover_css( $attributes, 'Mobile' ),
83 $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_cheackout_form_select_hover_css( $attributes, $device ); } )
84 );
85 $css_generator->add_class_styles(
86 '{{WRAPPER}} .storeengine-ajax-checkout-form .storeengine-checkout__order-btn button',
87 $this->get_cheackout_form_button_css( $attributes ),
88 $this->get_cheackout_form_button_css( $attributes, 'Tablet' ),
89 $this->get_cheackout_form_button_css( $attributes, 'Mobile' ),
90 $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_cheackout_form_button_css( $attributes, $device ); } )
91 );
92 $css_generator->add_class_styles(
93 '{{WRAPPER}} .storeengine-ajax-checkout-form .storeengine-checkout__order-btn button:hover',
94 $this->get_cheackout_form_button_hover_css( $attributes ),
95 $this->get_cheackout_form_button_hover_css( $attributes, 'Tablet' ),
96 $this->get_cheackout_form_button_hover_css( $attributes, 'Mobile' ),
97 $css_generator->custom_device_map( function ( $device ) use ( $attributes ) { return $this->get_cheackout_form_button_hover_css( $attributes, $device ); } )
98 );
99
100 return $css_generator->generate_css();
101 }
102 public function get_Cheackout_form_css( $attributes, $device = '' ) {
103 $typography = isset( $attributes['titleTypography'] ) && is_array( $attributes['titleTypography'] )
104 ? $attributes['titleTypography']
105 : [];
106
107 $typography_value = array_merge( $typography, [ 'font-weight' => '400' ] );
108 $typographyValueGlobal = ( isset( $attributes['titleTypographyGlobal'] ) ? $attributes['titleTypographyGlobal'] : '' );
109
110 return array_merge(
111 [ 'color' => Color::get_css( isset( $attributes['titleColor'] ) ? $attributes['titleColor'] : '' ) ],
112 Typography::get_css( $typography_value, '', $device, $typographyValueGlobal ),
113 );
114
115 }
116
117 public function get_Cheackout_form_hover_css( $attributes, $device = '' ) {
118 return [ 'color' => Color::get_css( isset( $attributes['titleColorH'] ) ? $attributes['titleColorH'] : '' ) ];
119 }
120
121 public function get_Cheackout_form_label_css( $attributes, $device = '' ) {
122 $typography = isset( $attributes['labelTypography'] ) && is_array( $attributes['labelTypography'] )
123 ? $attributes['labelTypography']
124 : [];
125
126 $typography_value = array_merge( $typography, [ 'font-weight' => '400' ] );
127 $typographyValueGlobal = ( isset( $attributes['labelTypographyGlobal'] ) ? $attributes['labelTypographyGlobal'] : '' );
128
129 return array_merge(
130 [ 'color' => Color::get_css( isset( $attributes['labelColor'] ) ? $attributes['labelColor'] : '' ) ],
131 Typography::get_css( $typography_value, '', $device, $typographyValueGlobal ),
132 );
133 }
134 public function get_Cheackout_form_label_hover_css( $attributes, $device = '' ) {
135 return [ 'color' => Color::get_css( isset( $attributes['labelColorH'] ) ? $attributes['labelColorH'] : '' ) ];
136 }
137 public function get_Cheackout_form_input_css( $attributes, $device = '' ) {
138
139 if ( ! empty( $attributes['padding'] ) ) {
140 $cssPadding = Dimensions::get_css( $attributes['padding'], 'padding', $device );
141 }
142
143 return array_merge(
144 $cssPadding,
145 Border::get_css( $attributes['inputBorder'], '', $device ),
146 );
147
148 }
149 public function get_Cheackout_form_input_hover_css( $attributes, $device = '' ) {
150 return array_merge(
151 Border::get_hover_css( $attributes['buttonBorder'] ?? [], '', $device ),
152 );
153 }
154
155 public function get_cheackout_form_select_css( $attributes, $device = '' ) {
156 $typographyValue = ! empty( $attributes['selectTypography'] ) ? $attributes['selectTypography'] : [];
157 $typographyValueGlobal = ( isset( $attributes['selectTypographyGlobal'] ) ? $attributes['selectTypographyGlobal'] : '' );
158 if ( ! empty( $attributes['selectPadding'] ) ) {
159 $cssPadding = Dimensions::get_css( $attributes['selectPadding'], '', $device );
160 }
161
162 if ( ! empty( $attributes['selectBorder'] ) ) {
163 $cssBorder = Border::get_css( $attributes['selectBorder'], '', $device );
164 }
165
166 return array_merge(
167 [ 'color' => Color::get_css( isset( $attributes['selectTextcolor'] ) ? $attributes['selectTextcolor'] : '' ) ],
168 [ 'background' => Color::get_css( isset( $attributes['selectBackground'] ) ? $attributes['selectBackground'] : '' ) ],
169 Range::get_css([
170 'attributeValue' => $attributes['selectWidth'],
171 'attribute_object_key' => 'value',
172 'isResponsive' => true,
173 'hasUnit' => true,
174 'defaultValue' => 200,
175 'property' => 'width',
176 'unitDefaultValue' => 'px',
177 'device' => $device,
178 ]),
179 $cssBorder,
180 $cssPadding,
181 Typography::get_css( $typographyValue, '', $device, $typographyValueGlobal )
182 // $cssWidth,
183 );
184
185 }
186
187 public function get_cheackout_form_button_css( $attributes, $device = '' ) {
188 $typographyValue = ! empty( $attributes['buttonTypography'] ) ? $attributes['buttonTypography'] : [];
189 $typographyValueGlobal = ( isset( $attributes['buttonTypographyGlobal'] ) ? $attributes['buttonTypographyGlobal'] : '' );
190
191 return array_merge(
192 [ 'color' => Color::get_css( isset( $attributes['buttonColor'] ) ? $attributes['buttonColor'] : '' ) ],
193 [ 'background' => Color::get_css( isset( $attributes['buttonBackground'] ) ? $attributes['buttonBackground'] : '' ) ],
194 Typography::get_css( $typographyValue, '', $device, $typographyValueGlobal )
195 );
196 }
197
198 public function get_cheackout_form_button_hover_css( $attributes, $device = '' ) {
199 return array_merge(
200 [ 'color' => Color::get_css( isset( $attributes['buttonColorH'] ) ? $attributes['buttonColorH'] : '' ) ],
201 [ 'background' => Color::get_css( isset( $attributes['buttonBackgroundH'] ) ? $attributes['buttonBackgroundH'] : '' ) ],
202 );
203 }
204
205 public function get_cheackout_form_select_hover_css( $attributes, $device = '' ) {
206 if ( ! empty( $attributes['selectBorder'] ) ) {
207 $cssBorder = Border::get_hover_css( $attributes['selectBorder'] ?? [], '', $device );
208
209 }
210 return array_merge(
211 [ 'color' => Color::get_css( isset( $attributes['selectTextcolorH'] ) ? $attributes['selectTextcolorH'] : '' ) ],
212 [ 'background' => Color::get_css( isset( $attributes['selectBackgroundH'] ) ? $attributes['selectBackgroundH'] : '' ) ],
213 $cssBorder,
214 );
215 }
216
217 public function render_block_content( $attributes, $content, $block_instance ) {
218 $attr_array = [
219 'ids' => Helper::get_attribute_value( $attributes, 'products_ids' ),
220 ];
221 $shortcode = '[storeengine_checkout_form ' . Helper::attr_shortcode( $attr_array ) . ']';
222 echo do_shortcode( $shortcode );
223 }
224 }
225