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