PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.6.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.6.1
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 / AddToCartButton / Block.php
surecart / packages / blocks / Blocks / AddToCartButton Last commit date
Block.php 3 years ago block.json 3 years ago
Block.php
103 lines
1 <?php
2
3 namespace SureCartBlocks\Blocks\AddToCartButton;
4
5 use SureCart\Models\Form;
6 use SureCart\Models\Price;
7 /**
8 * Logout Button Block.
9 */
10 class Block extends \SureCartBlocks\Blocks\BuyButton\Block {
11 /**
12 * Render the block
13 *
14 * @param array $attributes Block attributes.
15 * @param string $content Post content.
16 *
17 * @return string
18 */
19 public function render( $attributes, $content = '' ) {
20 // need a price id.
21 if ( empty( $attributes['price_id'] ) ) {
22 return '';
23 }
24
25 $price = Price::find( $attributes['price_id'] );
26 if ( empty( $price->id ) ) {
27 return '';
28 }
29
30 // need a form for checkout.
31 $form = \SureCart::forms()->getDefault();
32 if ( empty( $form->ID ) ) {
33 return '';
34 }
35
36 // Use backgroundColor and textColor if exist.
37 $styles = '';
38 if ( ! empty( $attributes['backgroundColor'] ) ) {
39 $styles .= '--sc-color-primary-500: ' . $attributes['backgroundColor'] . '; ';
40 $styles .= '--sc-focus-ring-color-primary: ' . $attributes['backgroundColor'] . '; ';
41 $styles .= '--sc-input-border-color-focus: ' . $attributes['backgroundColor'] . '; ';
42 }
43 if ( ! empty( $attributes['textColor'] ) ) {
44 $styles .= '--sc-color-primary-text: ' . $attributes['textColor'] . '; ';
45 }
46
47 // Slide-out is disabled, go directly to checkout.
48 if ( (bool) get_option( 'sc_slide_out_cart_disabled', false ) ) {
49 return \SureCart::blocks()->render(
50 'blocks/buy-button',
51 [
52 'type' => $attributes['type'] ?? 'primary',
53 'size' => $attributes['size'] ?? 'medium',
54 'style' => $styles,
55 'href' => $this->href(
56 [
57 [
58 'id' => $price->id,
59 'quantity' => 1,
60 ],
61 ]
62 ),
63 'label' => $attributes['button_text'] ?? __( 'Buy Now', 'surecart' ),
64 ]
65 );
66 }
67
68 ob_start(); ?>
69
70 <sc-cart-form
71 price-id="<?php echo esc_attr( $attributes['price_id'] ); ?>"
72 form-id="<?php echo esc_attr( $form->ID ); ?>"
73 mode="<?php echo esc_attr( Form::getMode( $form->ID ) ); ?>"
74 <?php if ( ! empty( $styles ) ) { ?>
75 style="<?php echo esc_attr( $styles ); ?>"
76 <?php } ?>>
77
78 <?php if ( $price->ad_hoc ) : ?>
79 <sc-price-input
80 currency-code="<?php echo esc_attr( $price->currency ); ?>"
81 label="<?php echo esc_attr( ! empty( $attributes['ad_hoc_label'] ) ? $attributes['ad_hoc_label'] : __( 'Amount', 'surecart' ) ); ?>"
82 min="<?php echo (int) $price->ad_hoc_min_amount; ?>"
83 max="<?php echo (int) $price->ad_hoc_max_amount; ?>"
84 placeholder="<?php echo esc_attr( $attributes['placeholder'] ?? '' ); ?>"
85 required
86 help="<?php echo esc_attr( $attributes['help'] ?? '' ); ?>"
87 name="price"
88 ></sc-price-input>
89 <?php endif; ?>
90
91 <sc-cart-form-submit
92 type="<?php echo esc_attr( ! empty( $attributes['type'] ) ? $attributes['type'] : 'primary' ); ?>"
93 size="<?php echo esc_attr( ! empty( $attributes['size'] ) ? $attributes['size'] : 'medium' ); ?>"
94 >
95 <?php echo wp_kses_post( $attributes['button_text'] ) ?? esc_html__( 'Add To Cart', 'surecart' ); ?>
96 </sc-cart-form-submit>
97 </sc-cart-form>
98
99 <?php
100 return wp_kses_post( ob_get_clean() );
101 }
102 }
103