PluginProbe
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.2.2
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.2.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 All 281 releases
surecart / packages / blocks / Blocks / CartSubmit / Block.php
Block.php
110 lines 4.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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( array_merge( $attributes, array_filter( [ 'backgroundColor' => $attributes['sectionBackgroundColor'] ?? '' ] ) ) ) ); ?>">
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