PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.19.2
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.19.2
4.7.2 4.7.1 4.7.0 4.6.6 4.6.5 4.6.4 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 / AddToCartButton / Block.php
surecart / packages / blocks / Blocks / AddToCartButton Last commit date
Block.php 2 years ago block.json 2 years ago
Block.php
105 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 'variant_id' => $attributes['variant_id'] ?? null,
60 'quantity' => 1,
61 ],
62 ]
63 ),
64 'label' => $attributes['button_text'] ?? __( 'Buy Now', 'surecart' ),
65 ]
66 );
67 }
68
69 ob_start(); ?>
70
71 <sc-cart-form
72 price-id="<?php echo esc_attr( $attributes['price_id'] ); ?>"
73 variant-id="<?php echo esc_attr( $attributes['variant_id'] ?? '' ); ?>"
74 form-id="<?php echo esc_attr( $form->ID ); ?>"
75 mode="<?php echo esc_attr( Form::getMode( $form->ID ) ); ?>"
76 <?php if ( ! empty( $styles ) ) { ?>
77 style="<?php echo esc_attr( $styles ); ?>"
78 <?php } ?>>
79
80 <?php if ( $price->ad_hoc ) : ?>
81 <sc-price-input
82 currency-code="<?php echo esc_attr( $price->currency ); ?>"
83 label="<?php echo esc_attr( ! empty( $attributes['ad_hoc_label'] ) ? $attributes['ad_hoc_label'] : __( 'Amount', 'surecart' ) ); ?>"
84 min="<?php echo (int) $price->ad_hoc_min_amount; ?>"
85 max="<?php echo (int) $price->ad_hoc_max_amount; ?>"
86 placeholder="<?php echo esc_attr( $attributes['placeholder'] ?? '' ); ?>"
87 required
88 help="<?php echo esc_attr( $attributes['help'] ?? '' ); ?>"
89 name="price"
90 ></sc-price-input>
91 <?php endif; ?>
92
93 <sc-cart-form-submit
94 type="<?php echo esc_attr( ! empty( $attributes['type'] ) ? $attributes['type'] : 'primary' ); ?>"
95 size="<?php echo esc_attr( ! empty( $attributes['size'] ) ? $attributes['size'] : 'medium' ); ?>"
96 >
97 <?php echo ! empty( $attributes['button_text'] ) ? wp_kses_post( $attributes['button_text'] ) : esc_html__( 'Add To Cart', 'surecart' ); ?>
98 </sc-cart-form-submit>
99 </sc-cart-form>
100
101 <?php
102 return wp_kses_post( ob_get_clean() );
103 }
104 }
105