PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.1.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.1.1
4.6.1 4.6.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 / packages / blocks / Blocks / PriceChoice / Block.php
surecart / packages / blocks / Blocks / PriceChoice Last commit date
Block.php 1 year ago block.json 3 years ago
Block.php
85 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 if ( empty( $attributes['price_id'] ) ) {
29 return null;
30 }
31
32 $price = Price::with( array( 'product' ) )->find( $attributes['price_id'] );
33
34 // empty check.
35 if ( is_wp_error( $price ) || empty( $price->id ) ) {
36 return null;
37 }
38
39 self::$instance++;
40
41 \SureCart::assets()->addComponentData(
42 'sc-price-choice',
43 '#sc-price-choice-' . (int) self::$instance,
44 [
45 'price' => $price->toArray(),
46 'product' => $price->product->toArray(),
47 ]
48 );
49
50 if ( !empty($attributes['checked']) ) {
51 sc_initial_state(
52 [
53 'checkout' => [
54 'initialLineItems' => sc_initial_line_items(
55 [
56 [
57 'price_id' => $price->id,
58 'quantity' => $attributes['quantity'] ?? 1,
59 'variant' => $price->variant_id ?? null,
60 ],
61 ]
62 ),
63 ],
64 ]
65 );
66 }
67
68 ob_start(); ?>
69 <sc-price-choice
70 id="sc-price-choice-<?php echo (int) self::$instance; ?>"
71 price-id="<?php echo esc_attr( $attributes['price_id'] ?? '' ); ?>"
72 type="<?php echo esc_attr( $attributes['type'] ?? 'radio' ); ?>"
73 label="<?php echo esc_attr( $attributes['label'] ?? '' ); ?>"
74 description="<?php echo esc_attr( $attributes['description'] ?? '' ); ?>"
75 checked="<?php echo esc_attr( ! empty( $attributes['checked'] ) ? 'true' : 'false' ); ?>"
76 show-label="<?php echo esc_attr( ! empty( $attributes['show_label'] ) ? 'true' : 'false' ); ?>"
77 show-price="<?php echo esc_attr( wp_validate_boolean( $attributes['show_price'] ) ? 'true' : 'false' ); ?>"
78 show-control="<?php echo esc_attr( ! empty( $attributes['show_control'] ) ? 'true' : 'false' ); ?>"
79 quantity="<?php echo esc_attr( $attributes['quantity'] ?? '1' ); ?>"
80 ></sc-price-choice>
81 <?php
82 return ob_get_clean();
83 }
84 }
85