PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.13.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.13.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 / CartSubmit / Block.php
surecart / packages / blocks / Blocks / CartSubmit Last commit date
Block.php 3 years ago block.json 3 years ago
Block.php
110 lines
1 <?php
2
3 namespace SureCartBlocks\Blocks\CartSubmit;
4
5 use SureCartBlocks\Blocks\CartBlock;
6
7 /**
8 * Cart Submit Block
9 */
10 class Block extends CartBlock {
11 /**
12 * Get the style for the block
13 *
14 * @param array $attr Style variables.
15 * @param string $prefix Prefix for the css variable.
16 *
17 * @return string
18 */
19 public function getVars( $attr, $prefix ) {
20 $style = '';
21 // padding.
22 if ( ! empty( $attr['style']['spacing']['padding'] ) ) {
23 $padding = $attr['style']['spacing']['padding'];
24 $style .= $prefix . '-padding-top: ' . $this->getSpacingPresetCssVar( array_key_exists( 'top', $padding ) ? $padding['top'] : '0' ) . ';';
25 $style .= $prefix . '-padding-bottom: ' . $this->getSpacingPresetCssVar( array_key_exists( 'bottom', $padding ) ? $padding['bottom'] : '0' ) . ';';
26 $style .= $prefix . '-padding-left: ' . $this->getSpacingPresetCssVar( array_key_exists( 'left', $padding ) ? $padding['left'] : '0' ) . ';';
27 $style .= $prefix . '-padding-right: ' . $this->getSpacingPresetCssVar( array_key_exists( 'right', $padding ) ? $padding['right'] : '0' ) . ';';
28 }
29 // margin.
30 if ( ! empty( $attr['style']['spacing']['margin'] ) ) {
31 $margin = $attr['style']['spacing']['margin'];
32 $style .= $prefix . '-margin-top: ' . $this->getSpacingPresetCssVar( array_key_exists( 'top', $margin ) ? $margin['top'] : '0' ) . ';';
33 $style .= $prefix . '-margin-bottom: ' . $this->getSpacingPresetCssVar( array_key_exists( 'bottom', $margin ) ? $margin['bottom'] : '0' ) . ';';
34 $style .= $prefix . '-margin-left: ' . $this->getSpacingPresetCssVar( array_key_exists( 'left', $margin ) ? $margin['left'] : '0' ) . ';';
35 $style .= $prefix . '-margin-right: ' . $this->getSpacingPresetCssVar( array_key_exists( 'right', $margin ) ? $margin['right'] : '0' ) . ';';
36 }
37 // aspect ratio.
38 if ( ! empty( $attr['ratio'] ) ) {
39 $style .= $prefix . '-aspect-ratio: ' . $attr['ratio'] . ';';
40 }
41 // border width.
42 if ( ! empty( $attr['style']['border']['width'] ) ) {
43 $style .= $prefix . '-border-width: ' . $attr['style']['border']['width'] . ';';
44 }
45 // border radius.
46 if ( ! empty( $attr['style']['border']['radius'] ) ) {
47 $style .= $prefix . '-border-radius: ' . $attr['style']['border']['radius'] . ';';
48 }
49 // font weight.
50 if ( ! empty( $attr['style']['typography']['fontWeight'] ) ) {
51 $style .= $prefix . '-font-weight: ' . $attr['style']['typography']['fontWeight'] . ';';
52 }
53 // font size.
54 if ( ! empty( $attr['fontSize'] ) || ! empty( $attr['style']['typography']['fontSize'] ) ) {
55 $font_size = ! empty( $attr['fontSize'] ) ? $this->getFontSizePresetCssVar( $attr['fontSize'] ) : $attr['style']['typography']['fontSize'];
56 $style .= $prefix . '-font-size: ' . $font_size . ';';
57 }
58 // border color.
59 if ( ! empty( $attr['borderColor'] ) || ! empty( $attr['style']['border']['color'] ) ) {
60 $border_color = ! empty( $attr['borderColor'] ) ? $this->getColorPresetCssVar( $attr['borderColor'] ) : $attr['style']['border']['color'];
61 $style .= $prefix . '-border-color: ' . $border_color . ';';
62 }
63 // text color.
64 if ( ! empty( $attr['textColor'] ) || ! empty( $attr['style']['color']['text'] ) ) {
65 $text_color = ! empty( $attr['textColor'] ) ? $this->getColorPresetCssVar( $attr['textColor'] ) : $attr['style']['color']['text'];
66 $style .= $prefix . '-text-color: ' . $text_color . ';';
67 }
68 // background color.
69 if ( ! empty( $attr['backgroundColor'] ) || ! empty( $attr['style']['color']['background'] ) ) {
70 $text_color = ! empty( $attr['backgroundColor'] ) ? $this->getColorPresetCssVar( $attr['backgroundColor'] ) : $attr['style']['color']['background'];
71 $style .= $prefix . '-background-color: ' . $text_color . ';';
72 }
73 // text align.
74 if ( ! empty( $attr['align'] ) ) {
75 $style .= $prefix . '-align: ' . $attr['align'] . ';';
76 }
77
78 if ( ! empty( $attr['width'] ) ) {
79 $style .= $prefix . '-width: ' . $attr['width'] . '%;';
80 }
81
82 return $style;
83 }
84
85 /**
86 * Render the block
87 *
88 * @param array $attributes Block attributes.
89 * @param string $content Post content.
90 *
91 * @return string
92 */
93 public function render( $attributes, $content ) {
94 ob_start();
95 ?>
96
97 <div class="wp-block-buttons" style="<?php echo esc_attr( $this->getStyle( $attributes ) ); ?>">
98 <sc-cart-submit class="wp-block-button">
99 <a href="<?php echo esc_attr( \SureCart::pages()->url( 'checkout' ) ); ?>" class="wp-block-button__link wp-element-button sc-button <?php echo esc_attr( $this->getClasses( $attributes ) ); ?>" style="<?php echo esc_attr( $this->getStyles( $attributes ) ); ?>">
100 <span data-text><?php echo wp_kses_post( $attributes['text'] ); ?></span>
101 <sc-spinner data-loader></sc-spinner>
102 </a>
103 </sc-cart-submit>
104 </div>
105
106 <?php
107 return ob_get_clean();
108 }
109 }
110