PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.3
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.3
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 1 year ago CollectionTag.php 1 year ago CollectionTags.php 1 year ago Media.php 1 year ago PriceChoiceTemplate.php 1 year ago PriceChooser.php 1 year ago PriceData.php 1 year ago Product.php 1 year ago ProductCard.php 1 year ago ProductData.php 1 year ago Quantity.php 1 year ago SaleBadge.php 1 year ago SelectedPriceAdHocAmount.php 1 year ago VariantPill.php 1 year ago VariantPills.php 1 year ago
Product.php
297 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( 'name' => 'post-title' ),
85 array(
86 'name' => 'block',
87 'label' => esc_html__( 'Pricing', 'surecart' ),
88 'settings' => [
89 '_rowGap' => '8px',
90 ],
91 'children' => array(
92 array(
93 'name' => 'block',
94 'label' => esc_html__( 'Amount', 'surecart' ),
95 'settings' => array(
96 '_direction' => 'row',
97 '_alignItems' => 'flex-end',
98 '_columnGap' => '8px',
99 ),
100 'children' => array(
101 array(
102 'name' => 'surecart-product-data',
103 'label' => esc_html__( 'Price', 'surecart' ),
104 'settings' => array(
105 'direction' => 'row',
106 '_fontSize' => '1.4em',
107 '_gap' => '5px',
108 '_typography' => array(
109 'font-size' => '1.4em',
110 ),
111 'meta' => [
112 [
113 'dynamicData' => '{sc_product_selected_scratch_price}',
114 ],
115 [
116 'dynamicData' => '{sc_product_selected_price}',
117 ],
118 ],
119 ),
120 ),
121 array(
122 'name' => 'surecart-product-data',
123 'label' => esc_html__( 'Interval', 'surecart' ),
124 'settings' => array(
125 'direction' => 'row',
126 '_gap' => '5px',
127 'meta' => [
128 [
129 'dynamicData' => '{sc_product_selected_billing_interval}',
130 ],
131 ],
132 ),
133 ),
134 array( 'name' => 'surecart-product-sale-badge' ),
135 ),
136 ),
137 array(
138 'name' => 'surecart-product-data',
139 'label' => esc_html__( 'Trial/Fees', 'surecart' ),
140 'settings' => array(
141 'direction' => 'row',
142 '_gap' => '5px',
143 'meta' => [
144 [
145 'dynamicData' => '{sc_product_selected_trial}',
146 ],
147 [
148 'dynamicData' => '{sc_product_selected_setup_fee}',
149 ],
150 ],
151 ),
152 ),
153 ),
154 ),
155 array(
156 'name' => 'text-basic',
157 'settings' => array(
158 'text' => '{sc_product_description}',
159 ),
160 ),
161 array(
162 'name' => 'surecart-product-price-chooser',
163 'children' => array(
164 array(
165 'name' => 'surecart-product-price-choice-template',
166 'settings' => array(
167 '_display' => 'flex',
168 '_direction' => 'row',
169 '_justifyContent' => 'flex-start',
170 '_alignItems' => 'center',
171 '_width' => '100%',
172 '_gap' => '10px',
173 ),
174 'children' => array(
175 array(
176 'name' => 'surecart-price-data',
177 'label' => esc_html__( 'Name', 'surecart' ),
178 'settings' => array(
179 'direction' => 'column',
180 'alignItems' => 'flex-start',
181 '_justifyContent' => 'center',
182 '_width' => '50%',
183 '_flexBasis' => '50%',
184 'meta' => [
185 [
186 'dynamicData' => '{sc_price_name}',
187 ],
188 ],
189 ),
190 ),
191 array(
192 'name' => 'surecart-price-data',
193 'label' => esc_html__( 'Details', 'surecart' ),
194 'settings' => array(
195 'direction' => 'column',
196 'alignItems' => 'flex-end',
197 '_justifyContent' => 'center',
198 '_width' => '50%',
199 '_flexBasis' => '50%',
200 '_gap' => '0',
201 '_lineHeight' => '1',
202 'meta' => [
203 [
204 'dynamicData' => '{sc_price_amount}',
205 ],
206 [
207 'dynamicData' => '{sc_price_trial}',
208 ],
209 [
210 'dynamicData' => '{sc_price_setup_fee}',
211 ],
212 ],
213 ),
214 ),
215 ),
216 ),
217 ),
218 ),
219 array( 'name' => 'surecart-product-selected-price-ad-hoc-amount' ),
220 array(
221 'name' => 'surecart-product-variant-pills',
222 'children' => array(
223 array( 'name' => 'surecart-product-variant-pill' ),
224 ),
225 ),
226 array( 'name' => 'surecart-product-quantity' ),
227 array(
228 'name' => 'surecart-product-buy-button',
229 'settings' => array(
230 'buy_now' => false,
231 '_width' => '100%',
232 'size' => 'lg',
233 'circle' => true,
234 'style' => 'primary',
235 'content' => esc_html__( 'Add to Cart', 'surecart' ),
236 ),
237 ),
238 array(
239 'name' => 'surecart-product-buy-button',
240 'settings' => array(
241 'buy_now' => true,
242 'size' => 'lg',
243 'style' => 'primary',
244 'circle' => true,
245 'outline' => true,
246 '_width' => '100%',
247 'content' => esc_html__( 'Buy Now', 'surecart' ),
248 ),
249 ),
250 );
251
252 return array(
253 array(
254 'name' => 'container',
255 'settings' => array(
256 '_direction' => 'row',
257 '_columnGap' => '60px',
258 '_rowGap' => '30px',
259 ),
260 'children' => array(
261 array(
262 'name' => 'block',
263 'label' => esc_html__( 'Column', 'surecart' ),
264 'settings' => array(
265 '_width' => '50%',
266 '_width:mobile_portrait' => '100%',
267 '_width:mobile_landscape' => '100%',
268 ),
269 'children' => $left_column_children,
270 ),
271 array(
272 'name' => 'block',
273 'label' => esc_html__( 'Column', 'surecart' ),
274 'settings' => array(
275 '_width' => '50%',
276 '_width:mobile_portrait' => '100%',
277 '_width:mobile_landscape' => '100%',
278 '_direction' => 'column',
279 '_rowGap' => '0.75em',
280 ),
281 'children' => $right_column_children,
282 ),
283 ),
284 ),
285 );
286 }
287
288 /**
289 * Render element.
290 *
291 * @return void
292 */
293 public function render() {
294 echo $this->html( [], \Bricks\Frontend::render_children( $this ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
295 }
296 }
297