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.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 / packages / blocks / Blocks / PriceChoice / Block.php
surecart / packages / blocks / Blocks / PriceChoice Last commit date
Block.php 2 years ago block.json 3 years ago
Block.php
81 lines
1 <?php
2
3 namespace SureCartBlocks\Blocks\PriceChoice;
4
5 use SureCart\Models\Price;
6 use SureCartBlocks\Blocks\BaseBlock;
7
8 /**
9 * Checkout block
10 */
11 class Block extends BaseBlock {
12 /**
13 * Keep track of number of instances.
14 *
15 * @var integer
16 */
17 public static $instance = 0;
18
19 /**
20 * Render the block
21 *
22 * @param array $attributes Block attributes.
23 * @param string $content Post content.
24 *
25 * @return string
26 */
27 public function render( $attributes, $content ) {
28 $price = Price::with( array( 'product' ) )->find( $attributes['price_id'] );
29
30 // empty check.
31 if ( is_wp_error( $price ) || empty( $price->id ) ) {
32 return null;
33 }
34
35 self::$instance++;
36
37 \SureCart::assets()->addComponentData(
38 'sc-price-choice',
39 '#sc-price-choice-' . (int) self::$instance,
40 [
41 'price' => $price->toArray(),
42 'product' => $price->product->toArray(),
43 ]
44 );
45
46 if ( !empty($attributes['checked']) ) {
47 sc_initial_state(
48 [
49 'checkout' => [
50 'initialLineItems' => sc_initial_line_items(
51 [
52 [
53 'price_id' => $price->id,
54 'quantity' => $attributes['quantity'] ?? 1,
55 'variant' => $price->variant_id ?? null,
56 ],
57 ]
58 ),
59 ],
60 ]
61 );
62 }
63
64 ob_start(); ?>
65 <sc-price-choice
66 id="sc-price-choice-<?php echo (int) self::$instance; ?>"
67 price-id="<?php echo esc_attr( $attributes['price_id'] ?? '' ); ?>"
68 type="<?php echo esc_attr( $attributes['type'] ?? 'radio' ); ?>"
69 label="<?php echo esc_attr( $attributes['label'] ?? '' ); ?>"
70 description="<?php echo esc_attr( $attributes['description'] ?? '' ); ?>"
71 checked="<?php echo esc_attr( ! empty( $attributes['checked'] ) ? 'true' : 'false' ); ?>"
72 show-label="<?php echo esc_attr( ! empty( $attributes['show_label'] ) ? 'true' : 'false' ); ?>"
73 show-price="<?php echo esc_attr( wp_validate_boolean( $attributes['show_price'] ) ? 'true' : 'false' ); ?>"
74 show-control="<?php echo esc_attr( ! empty( $attributes['show_control'] ) ? 'true' : 'false' ); ?>"
75 quantity="<?php echo esc_attr( $attributes['quantity'] ?? '1' ); ?>"
76 ></sc-price-choice>
77 <?php
78 return ob_get_clean();
79 }
80 }
81