PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.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 / BuyButton / Block.php
surecart / packages / blocks / Blocks / BuyButton Last commit date
Block.php 1 year ago block.json 1 year ago
Block.php
77 lines
1 <?php
2
3 namespace SureCartBlocks\Blocks\BuyButton;
4
5 use SureCartBlocks\Blocks\BaseBlock;
6
7 /**
8 * Buy Button Block.
9 */
10 class Block extends BaseBlock {
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 $styles = '';
21 if ( ! empty( $attributes['backgroundColor'] ) ) {
22 $styles .= "background-color: {$attributes['backgroundColor']}; ";
23 }
24 if ( ! empty( $attributes['textColor'] ) ) {
25 $styles .= "color: {$attributes['textColor']}; ";
26 }
27
28 return \SureCart::block()->render(
29 'blocks/buy-button',
30 [
31 'type' => $attributes['type'] ?? 'primary',
32 'size' => $attributes['size'] ?? 'medium',
33 'style' => $styles,
34 'class' => 'sc-button wp-element-button wp-block-button__link sc-button__link',
35 'href' => $this->href( $attributes['line_items'] ?? [] ),
36 'label' => $attributes['label'] ?? __( 'Buy Now', 'surecart' ),
37 ]
38 );
39 }
40
41 /**
42 * Build the line items array.
43 *
44 * @param array $line_items Line items.
45 * @return array Line items.
46 */
47 public function lineItems( $line_items ) {
48 return array_map(
49 function ( $item ) {
50 return [
51 'price_id' => $item['id'] ?? null,
52 'variant_id' => $item['variant_id'] ?? null,
53 'quantity' => $item['quantity'] ?? 1,
54 'ad_hoc_amount' => $item['ad_hoc_amount'] ?? null,
55 ];
56 },
57 $line_items ?? []
58 );
59 }
60
61 /**
62 * Build the button url.
63 *
64 * @param array $line_items Line items.
65 * @return string url
66 */
67 public function href( $line_items = [] ) {
68 return add_query_arg(
69 [
70 'line_items' => $this->lineItems( $line_items ?? [] ),
71 'no_cart' => true,
72 ],
73 \SureCart::pages()->url( 'checkout' )
74 );
75 }
76 }
77