PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.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 / Upsell / NoThanksButton / Block.php
surecart / packages / blocks / Blocks / Upsell / NoThanksButton Last commit date
Block.php 2 years ago block.json 6 months ago style.css 2 years ago
Block.php
121 lines
1 <?php
2
3 namespace SureCartBlocks\Blocks\Upsell\NoThanksButton;
4
5 use SureCartBlocks\Blocks\BaseBlock;
6
7 /**
8 * Upsell No thanks Button block.
9 */
10 class Block extends BaseBlock {
11 /**
12 * Keep track of the instance number of this block.
13 *
14 * @var integer
15 */
16 public static $instance;
17
18 /**
19 * Get the style for the block
20 *
21 * @param array $attributes Style variables.
22 * @return string
23 */
24 public function getVars( $attr, $prefix ) {
25 $style = '';
26 // padding.
27 if ( ! empty( $attr['style']['spacing']['padding'] ) ) {
28 $padding = $attr['style']['spacing']['padding'];
29 $style .= $prefix . '-padding-top: ' . $this->getSpacingPresetCssVar( array_key_exists( 'top', $padding ) ? $padding['top'] : '0' ) . ';';
30 $style .= $prefix . '-padding-bottom: ' . $this->getSpacingPresetCssVar( array_key_exists( 'bottom', $padding ) ? $padding['bottom'] : '0' ) . ';';
31 $style .= $prefix . '-padding-left: ' . $this->getSpacingPresetCssVar( array_key_exists( 'left', $padding ) ? $padding['left'] : '0' ) . ';';
32 $style .= $prefix . '-padding-right: ' . $this->getSpacingPresetCssVar( array_key_exists( 'right', $padding ) ? $padding['right'] : '0' ) . ';';
33 }
34 // margin.
35 if ( ! empty( $attr['style']['spacing']['margin'] ) ) {
36 $margin = $attr['style']['spacing']['margin'];
37 $style .= $prefix . '-margin-top: ' . $this->getSpacingPresetCssVar( array_key_exists( 'top', $margin ) ? $margin['top'] : '0' ) . ';';
38 $style .= $prefix . '-margin-bottom: ' . $this->getSpacingPresetCssVar( array_key_exists( 'bottom', $margin ) ? $margin['bottom'] : '0' ) . ';';
39 $style .= $prefix . '-margin-left: ' . $this->getSpacingPresetCssVar( array_key_exists( 'left', $margin ) ? $margin['left'] : '0' ) . ';';
40 $style .= $prefix . '-margin-right: ' . $this->getSpacingPresetCssVar( array_key_exists( 'right', $margin ) ? $margin['right'] : '0' ) . ';';
41 }
42 // aspect ratio.
43 if ( ! empty( $attr['ratio'] ) ) {
44 $style .= $prefix . '-aspect-ratio: ' . $attr['ratio'] . ';';
45 }
46 // border width.
47 if ( ! empty( $attr['style']['border']['width'] ) ) {
48 $style .= $prefix . '-border-width: ' . $attr['style']['border']['width'] . ';';
49 }
50 // border radius.
51 if ( ! empty( $attr['style']['border']['radius'] ) ) {
52 $style .= $prefix . '-border-radius: ' . $attr['style']['border']['radius'] . ';';
53 }
54 // font weight.
55 if ( ! empty( $attr['style']['typography']['fontWeight'] ) ) {
56 $style .= $prefix . '-font-weight: ' . $attr['style']['typography']['fontWeight'] . ';';
57 }
58 // font size.
59 if ( ! empty( $attr['fontSize'] ) || ! empty( $attr['style']['typography']['fontSize'] ) ) {
60 $font_size = ! empty( $attr['fontSize'] ) ? $this->getFontSizePresetCssVar( $attr['fontSize'] ) : $attr['style']['typography']['fontSize'];
61 $style .= $prefix . '-font-size: ' . $font_size . ';';
62 }
63 // border color.
64 if ( ! empty( $attr['borderColor'] ) || ! empty( $attr['style']['border']['color'] ) ) {
65 $border_color = ! empty( $attr['borderColor'] ) ? $this->getColorPresetCssVar( $attr['borderColor'] ) : $attr['style']['border']['color'];
66 $style .= $prefix . '-border-color: ' . $border_color . ';';
67 }
68 // text color.
69 if ( ! empty( $attr['textColor'] ) || ! empty( $attr['style']['color']['text'] ) ) {
70 $text_color = ! empty( $attr['textColor'] ) ? $this->getColorPresetCssVar( $attr['textColor'] ) : $attr['style']['color']['text'];
71 $style .= $prefix . '-text-color: ' . $text_color . ';';
72 }
73 // background color.
74 if ( ! empty( $attr['backgroundColor'] ) || ! empty( $attr['style']['color']['background'] ) ) {
75 $text_color = ! empty( $attr['backgroundColor'] ) ? $this->getColorPresetCssVar( $attr['backgroundColor'] ) : $attr['style']['color']['background'];
76 $style .= $prefix . '-background-color: ' . $text_color . ';';
77 }
78 // text align.
79 if ( ! empty( $attr['align'] ) ) {
80 $style .= $prefix . '-align: ' . $attr['align'] . ';';
81 }
82
83 if ( ! empty( $attr['width'] ) ) {
84 $style .= $prefix . '-width: ' . $attr['width'] . '%;';
85 }
86
87 return $style;
88 }
89
90 /**
91 * Render the block
92 *
93 * @param array $attributes Block attributes.
94 * @param string $content Post content.
95 *
96 * @return string
97 */
98 public function render( $attributes, $content ) {
99 $upsell = get_query_var( 'surecart_current_upsell' );
100 if ( empty( $upsell ) ) {
101 return '';
102 }
103
104 $width_class = ! empty( $attributes['width'] ) ? 'has-custom-width sc-block-button__width-' . $attributes['width'] : '';
105
106 return wp_sprintf(
107 '<sc-upsell-no-thanks-button class="%s">
108 <a %s>%s</a>
109 </sc-upsell-no-thanks-button>',
110 'wp-block-button sc-block-button ' . esc_attr( $width_class ),
111 get_block_wrapper_attributes(
112 [
113 'class' => esc_attr( $this->getClasses( $attributes ) ) . ' wp-block-button__link sc-block-button__link wp-element-button',
114 'style' => esc_attr( $this->getStyles( $attributes ) ),
115 ]
116 ),
117 wp_kses_post( $attributes['text'] ?? __( 'No Thanks', 'surecart' ) )
118 );
119 }
120 }
121