PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.0-beta1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.0-beta1
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 / app / src / BlockLibrary / ProductPriceChoicesMigrationService.php
surecart / app / src / BlockLibrary Last commit date
BlockAnchorSupportService.php 2 years ago BlockPatternsService.php 2 years ago BlockService.php 2 years ago BlockServiceProvider.php 2 years ago BlockStylesService.php 2 years ago BlockValidationService.php 2 years ago CartMenuIconMigrationService.php 2 years ago CartMigrationService.php 2 years ago FormModeSwitcherService.php 2 years ago ProductCollectionBadgesMigrationService.php 2 years ago ProductListMigrationService.php 2 years ago ProductListService.php 2 years ago ProductPriceChoicesMigrationService.php 2 years ago ProductSelectedPriceMigrationService.php 2 years ago ProductVariantsMigrationService.php 2 years ago URLParamService.php 2 years ago
ProductPriceChoicesMigrationService.php
117 lines
1 <?php
2
3 namespace SureCart\BlockLibrary;
4
5 /**
6 * Provide the migration service for the product price choices block.
7 */
8 class ProductPriceChoicesMigrationService {
9 /**
10 * Attributes
11 *
12 * @var array
13 */
14 public array $attributes = array();
15
16 /**
17 * Block.
18 *
19 * @var object
20 */
21 public ?object $block = null;
22
23 /**
24 * Block HTML.
25 *
26 * @var string
27 */
28 public string $block_html = '';
29
30 /**
31 * Constructor
32 *
33 * @param array $attributes Attributes.
34 * @param object $block Block.
35 */
36 public function __construct( $attributes = array(), $block = null ) {
37 $this->attributes = $attributes;
38 $this->block = $block;
39 }
40
41 /**
42 * Render the price name.
43 *
44 * @return void
45 */
46 public function renderPriceName() {
47 $this->block_html .= '<!-- wp:surecart/price-name {"style":{"layout":{"selfStretch":"fixed","flexSize":"50%"},"typography":{"fontStyle":"normal","fontWeight":"600"}}} /-->';
48 }
49
50 /**
51 * Render the price amount, trial and setup fee.
52 *
53 * @return void
54 */
55 public function renderPriceAmountTrialAndSetupFee() {
56 $text_color = $this->attributes['textColor'] ?? '#8a8a8a';
57 $this->block_html .= '<!-- wp:group {"style":{"spacing":{"blockGap":"0px"},"layout":{"selfStretch":"fixed","flexSize":"50%"}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"right"}} -->';
58 $this->block_html .= '<div class="wp-block-group">';
59 $this->block_html .= '<!-- wp:surecart/price-amount {"style":{"elements":{"link":{"color":{"text":"var:preset|color|accent-3"}}},"typography":{"fontStyle":"normal","fontWeight":"700"}},"textColor":"accent-3"} /-->';
60 $this->block_html .= '<!-- wp:surecart/price-trial {"style":{"color":{"text":"' . $text_color . '"},"elements":{"link":{"color":{"text":"' . $text_color . '"}}}},"fontSize":"small"} /-->';
61 $this->block_html .= '<!-- wp:surecart/price-setup-fee {"style":{"color":{"text":"' . $text_color . '"},"elements":{"link":{"color":{"text":"' . $text_color . '"}}}},"fontSize":"small"} /-->';
62 $this->block_html .= '</div>';
63 $this->block_html .= '<!-- /wp:group -->';
64 }
65
66 /**
67 * Render the price choices.
68 *
69 * @return void
70 */
71 public function renderPriceChoices() {
72 $choices_attributes = array(
73 'label' => $this->attributes['label'] ?? __( 'Pricing', 'surecart' ),
74 );
75
76 $template_attributes = array(
77 'layout' => [
78 'type' => 'flex',
79 'justifyContent' => 'left',
80 'flexWrap' => 'nowrap',
81 'orientation' => 'horizontal',
82 ],
83 'textColor' => $this->attributes['textColor'] ?? 'black',
84 'backgroundColor' => $this->attributes['backgroundColor'] ?? 'white',
85 'style' => $this->attributes['style'] ?? [],
86 );
87
88 $this->block_html .= '<!-- wp:surecart/product-price-chooser ' . wp_json_encode( $choices_attributes ) . ' -->';
89 $this->block_html .= '<!-- wp:surecart/product-price-choice-template ' . wp_json_encode( $template_attributes ) . ' -->';
90 $this->renderPriceName();
91 if ( $this->attributes['show_price'] ) {
92 $this->renderPriceAmountTrialAndSetupFee();
93 }
94 $this->block_html .= '<!-- /wp:surecart/product-price-choice-template -->';
95 $this->block_html .= '<!-- /wp:surecart/product-price-chooser -->';
96 }
97
98 /**
99 * Render blocks.
100 *
101 * @return string
102 */
103 public function doBlocks() {
104 return do_blocks( $this->block_html );
105 }
106
107 /**
108 * Render the product price choices.
109 *
110 * @return string
111 */
112 public function render() {
113 $this->renderPriceChoices();
114 return $this->doBlocks();
115 }
116 }
117