PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.5.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.5.0
4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Integrations / Bricks / Elements / Product.php
surecart / app / src / Integrations / Bricks / Elements Last commit date
BuyButton.php 3 months ago CartMenuIcon.php 5 months ago CollectionTag.php 1 year ago CollectionTags.php 1 year ago Media.php 1 year ago PriceChoiceTemplate.php 1 year ago PriceChooser.php 4 months ago PriceData.php 1 year ago Product.php 4 months ago ProductCard.php 10 months ago ProductContent.php 10 months ago ProductData.php 1 year ago ProductLineItemNote.php 10 months ago ProductQuickAddButton.php 10 months ago ProductReviewAverageRatingStars.php 4 months ago ProductReviewAverageRatingValue.php 4 months ago ProductReviewBreakdown.php 4 months ago ProductReviewContent.php 4 months ago ProductReviewList.php 2 months ago ProductReviewRating.php 4 months ago ProductReviewTotalRating.php 4 months ago ProductReviews.php 4 months ago Quantity.php 10 months ago SaleBadge.php 1 year ago SelectedPriceAdHocAmount.php 1 year ago VariantPill.php 6 months ago VariantPills.php 1 year ago
Product.php
341 lines
1 <?php
2
3 namespace SureCart\Integrations\Bricks\Elements;
4
5 use SureCart\Integrations\Bricks\Concerns\ConvertsBlocks;
6
7 if ( ! defined( 'ABSPATH' ) ) {
8 exit; // Exit if accessed directly.
9 }
10
11 /**
12 * Product element.
13 */
14 class Product extends \Bricks\Element {
15 use ConvertsBlocks; // we have to use a trait since we can't extend the bricks class.
16
17 /**
18 * Element category.
19 *
20 * @var string
21 */
22 public $category = 'SureCart Layout';
23
24 /**
25 * Element name.
26 *
27 * @var string
28 */
29 public $name = 'surecart-product-page';
30
31 /**
32 * Element block name.
33 *
34 * @var string
35 */
36 public $block_name = 'surecart/product-page';
37
38 /**
39 * Element icon.
40 *
41 * @var string
42 */
43 public $icon = 'ti-tag';
44
45 /**
46 * This is nestable.
47 *
48 * @var bool
49 */
50 public $nestable = true;
51
52 /**
53 * Get element label.
54 *
55 * @return string
56 */
57 public function get_label() {
58 return esc_html__( 'Product Form', 'surecart' );
59 }
60
61 /**
62 * Get nestable children.
63 *
64 * @return array
65 */
66 public function get_nestable_children() {
67
68 $left_column_children = array(
69 array( 'name' => 'surecart-product-media' ),
70 );
71
72 $right_column_children = array(
73 array(
74 'name' => 'surecart-product-collection-tags',
75 'children' => array(
76 array(
77 'name' => 'surecart-product-collection-tag',
78 'settings' => array(
79 '_width' => 'max-content',
80 ),
81 ),
82 ),
83 ),
84 array(
85 'name' => 'block',
86 'label' => esc_html__( 'Rating Info', 'surecart' ),
87 'settings' => array(
88 '_direction' => 'row',
89 '_columnGap' => '6px',
90 '_alignItems' => 'center',
91 ),
92 'children' => array(
93 array(
94 'name' => 'surecart-product-review-average-rating-stars',
95 'settings' => array(
96 '_typography' => array(
97 'line-height' => '1',
98 ),
99 'fill_color' => array(
100 'hex' => 'var(--bricks-color-primary)',
101 ),
102 ),
103 ),
104 array(
105 'name' => 'surecart-product-review-total-rating',
106 'settings' => array(
107 'style_variant' => 'plus-sign',
108 'show_label' => true,
109 'link_to_reviews' => true,
110 'show_for_zero_reviews' => true,
111 '_typography' => array(
112 'text-decoration' => 'underline',
113 ),
114 ),
115 ),
116 ),
117 ),
118 array( 'name' => 'post-title' ),
119 array(
120 'name' => 'block',
121 'label' => esc_html__( 'Pricing', 'surecart' ),
122 'settings' => [
123 '_rowGap' => '8px',
124 ],
125 'children' => array(
126 array(
127 'name' => 'block',
128 'label' => esc_html__( 'Amount', 'surecart' ),
129 'settings' => array(
130 '_direction' => 'row',
131 '_alignItems' => 'flex-end',
132 '_columnGap' => '8px',
133 ),
134 'children' => array(
135 array(
136 'name' => 'surecart-product-data',
137 'label' => esc_html__( 'Price', 'surecart' ),
138 'settings' => array(
139 'direction' => 'row',
140 '_fontSize' => '1.4em',
141 '_gap' => '5px',
142 '_typography' => array(
143 'font-size' => '1.4em',
144 ),
145 'meta' => [
146 [
147 'dynamicData' => '{sc_product_selected_scratch_price}',
148 ],
149 [
150 'dynamicData' => '{sc_product_selected_price}',
151 ],
152 ],
153 ),
154 ),
155 array(
156 'name' => 'surecart-product-data',
157 'label' => esc_html__( 'Interval', 'surecart' ),
158 'settings' => array(
159 'direction' => 'row',
160 '_gap' => '5px',
161 'meta' => [
162 [
163 'dynamicData' => '{sc_product_selected_billing_interval}',
164 ],
165 ],
166 ),
167 ),
168 array( 'name' => 'surecart-product-sale-badge' ),
169 ),
170 ),
171 array(
172 'name' => 'surecart-product-data',
173 'label' => esc_html__( 'Trial/Fees', 'surecart' ),
174 'settings' => array(
175 'direction' => 'row',
176 '_gap' => '5px',
177 'meta' => [
178 [
179 'dynamicData' => '{sc_product_selected_trial}',
180 ],
181 [
182 'dynamicData' => '{sc_product_selected_setup_fee}',
183 ],
184 ],
185 ),
186 ),
187 ),
188 ),
189 array(
190 'name' => 'text-basic',
191 'settings' => array(
192 'text' => '{sc_product_description}',
193 ),
194 ),
195 array(
196 'name' => 'surecart-product-price-chooser',
197 'children' => array(
198 array(
199 'name' => 'surecart-product-price-choice-template',
200 'settings' => array(
201 '_display' => 'flex',
202 '_direction' => 'row',
203 '_justifyContent' => 'flex-start',
204 '_alignItems' => 'center',
205 '_width' => '100%',
206 '_gap' => '10px',
207 ),
208 'children' => array(
209 array(
210 'name' => 'surecart-price-data',
211 'label' => esc_html__( 'Name', 'surecart' ),
212 'settings' => array(
213 'direction' => 'column',
214 'alignItems' => 'flex-start',
215 '_justifyContent' => 'center',
216 '_width' => '50%',
217 '_flexBasis' => '50%',
218 'meta' => [
219 [
220 'dynamicData' => '{sc_price_name}',
221 ],
222 ],
223 ),
224 ),
225 array(
226 'name' => 'surecart-price-data',
227 'label' => esc_html__( 'Details', 'surecart' ),
228 'settings' => array(
229 'direction' => 'column',
230 'alignItems' => 'flex-end',
231 '_justifyContent' => 'center',
232 '_width' => '50%',
233 '_flexBasis' => '50%',
234 '_gap' => '0',
235 '_lineHeight' => '1',
236 'meta' => [
237 [
238 'dynamicData' => '{sc_price_amount}',
239 ],
240 [
241 'dynamicData' => '{sc_price_trial}',
242 ],
243 [
244 'dynamicData' => '{sc_price_setup_fee}',
245 ],
246 ],
247 ),
248 ),
249 ),
250 ),
251 ),
252 ),
253 array( 'name' => 'surecart-product-selected-price-ad-hoc-amount' ),
254 array(
255 'name' => 'surecart-product-variant-pills',
256 'children' => array(
257 array(
258 'name' => 'surecart-product-variant-pill',
259 'settings' => array(
260 'highlight_background' => array(
261 'hex' => '#FFD64F',
262 ),
263 'highlight_border' => array(
264 'hex' => '#FFD64F',
265 ),
266 ),
267 ),
268 ),
269 ),
270 array( 'name' => 'surecart-product-quantity' ),
271 array(
272 'name' => 'surecart-product-buy-button',
273 'settings' => array(
274 'buy_now' => false,
275 '_width' => '100%',
276 'size' => 'lg',
277 'circle' => true,
278 'style' => 'primary',
279 'content' => esc_html__( 'Add to Cart', 'surecart' ),
280 ),
281 ),
282 array(
283 'name' => 'surecart-product-buy-button',
284 'settings' => array(
285 'buy_now' => true,
286 'size' => 'lg',
287 'style' => 'primary',
288 'circle' => true,
289 'outline' => true,
290 '_width' => '100%',
291 'content' => esc_html__( 'Buy Now', 'surecart' ),
292 ),
293 ),
294 );
295
296 return array(
297 array(
298 'name' => 'container',
299 'settings' => array(
300 '_direction' => 'row',
301 '_columnGap' => '60px',
302 '_rowGap' => '30px',
303 ),
304 'children' => array(
305 array(
306 'name' => 'block',
307 'label' => esc_html__( 'Column', 'surecart' ),
308 'settings' => array(
309 '_width' => '50%',
310 '_width:mobile_portrait' => '100%',
311 '_width:mobile_landscape' => '100%',
312 ),
313 'children' => $left_column_children,
314 ),
315 array(
316 'name' => 'block',
317 'label' => esc_html__( 'Column', 'surecart' ),
318 'settings' => array(
319 '_width' => '50%',
320 '_width:mobile_portrait' => '100%',
321 '_width:mobile_landscape' => '100%',
322 '_direction' => 'column',
323 '_rowGap' => '0.75rem',
324 ),
325 'children' => $right_column_children,
326 ),
327 ),
328 ),
329 );
330 }
331
332 /**
333 * Render element.
334 *
335 * @return void
336 */
337 public function render() {
338 echo $this->html( [], \Bricks\Frontend::render_children( $this ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
339 }
340 }
341