PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.1.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.1.1
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 / BlockServiceProvider.php
surecart / app / src / BlockLibrary Last commit date
BlockAnchorSupportService.php 1 year ago BlockCurrencyConversionSupportService.php 1 year ago BlockPatternsService.php 1 year ago BlockService.php 4 months ago BlockServiceProvider.php 4 months ago BlockStylesService.php 3 months ago BlockValidationService.php 2 years ago CartMenuIconMigrationService.php 1 year ago CartMigrationService.php 1 year ago FormModeSwitcherService.php 5 months ago ProductCollectionBadgesMigrationService.php 1 year ago ProductListFilterTagsMigrationService.php 1 year ago ProductListMigrationService.php 1 year ago ProductListService.php 1 year ago ProductPageBlocksMigrationService.php 1 year ago ProductPriceChoicesMigrationService.php 1 year ago ProductQuickViewService.php 9 months ago ProductReviewFormService.php 4 months ago ProductSelectedPriceMigrationService.php 1 year ago ProductVariantsMigrationService.php 1 year ago URLParamService.php 3 months ago
BlockServiceProvider.php
179 lines
1 <?php
2
3 /**
4 * Block Service Provider
5 */
6
7 namespace SureCart\BlockLibrary;
8
9 use SureCart\BlockLibrary\BlockService;
10 use SureCartCore\ServiceProviders\ServiceProviderInterface;
11
12 /**
13 * Block Service Provider Class
14 * Registers block service used throughout the plugin
15 *
16 * @author SureCart <andre@surecart.com>
17 * @since 1.0.0
18 * @license GPL
19 */
20 class BlockServiceProvider implements ServiceProviderInterface {
21 /**
22 * Cached components from kses.json
23 *
24 * @var array
25 */
26 private static $components = [];
27
28 /**
29 * {@inheritDoc}
30 *
31 * @param \Pimple\Container $container Service Container.
32 */
33 public function register( $container ) {
34 $app = $container[ SURECART_APPLICATION_KEY ];
35
36 $container['block'] = fn () => new BlockService( $app );
37
38 $container['block.support.anchor'] = fn () => new BlockAnchorSupportService();
39 $container['block.support.currency'] = fn () => new BlockCurrencyConversionSupportService();
40 $container['blocks.quick_view'] = fn () => new ProductQuickViewService();
41 $container['blocks.review_form'] = fn () => new ProductReviewFormService();
42 $container['blocks.patterns'] = fn () => new BlockPatternsService( $app );
43 $container['blocks.mode_switcher'] = fn () => new FormModeSwitcherService( $app );
44 $container['blocks.validations'] = fn () => new BlockValidationService(
45 apply_filters(
46 'surecart_block_validators',
47 array(
48 new \SureCart\BlockValidator\VariantChoice(),
49 )
50 )
51 );
52
53 $app->alias( 'block', 'block' );
54
55 // Register blocks.
56 include plugin_dir_path( SURECART_PLUGIN_FILE ) . 'packages/blocks-next/index.php';
57 }
58
59 /**
60 * {@inheritDoc}
61 *
62 * @param \Pimple\Container $container Service Container.
63 *
64 * @return void
65 *
66 * phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter
67 */
68 public function bootstrap( $container ) {
69 $container['blocks.patterns']->bootstrap();
70 $container['blocks.validations']->bootstrap();
71 $container['blocks.mode_switcher']->bootstrap();
72 $container['block.support.anchor']->bootstrap();
73 $container['block.support.currency']->bootstrap();
74
75 // allow design tokens in css.
76 add_filter(
77 'safe_style_css',
78 function ( $styles ) {
79 return array_merge(
80 array(
81 '--spacing',
82 '--font-weight',
83 '--line-height',
84 '--font-size',
85 '--text-align',
86 '--color',
87 '--sc-input-label-color',
88 '--primary-background',
89 '--primary-color',
90 '--sc-color-primary-text',
91 '--sc-color-primary-500',
92 '--sc-focus-ring-color-primary',
93 '--sc-input-border-color-focus',
94 ),
95 $styles
96 );
97 }
98 );
99 // allow our web components in wp_kses contexts.
100 add_filter( 'wp_kses_allowed_html', array( $this, 'ksesComponents' ) );
101 // register our blocks.
102 add_action( 'init', array( $this, 'registerBlocks' ) );
103 // register our category.
104 add_action( 'block_categories_all', array( $this, 'registerBlockCategories' ) );
105 }
106
107 /**
108 * Register our custom block category.
109 *
110 * @param array $categories Array of categories.
111 * @return array
112 */
113 public function registerBlockCategories( $categories ) {
114 return array(
115 ...array(
116 array(
117 'slug' => 'surecart',
118 'title' => esc_html__( 'Checkout', 'surecart' ),
119 ),
120 array(
121 'slug' => 'surecart-customer-dashboard',
122 'title' => esc_html__( 'Customer Dashboard', 'surecart' ),
123 ),
124 array(
125 'slug' => 'surecart-cart',
126 'title' => esc_html__( 'Cart', 'surecart' ),
127 ),
128 array(
129 'slug' => 'surecart-product-list',
130 'title' => esc_html__( 'Shop', 'surecart' ),
131 ),
132 array(
133 'slug' => 'surecart-product-page',
134 'title' => esc_html__( 'Product', 'surecart' ),
135 ),
136 array(
137 'slug' => 'surecart-upsell-page',
138 'title' => esc_html__( 'Upsells', 'surecart' ),
139 ),
140 ),
141 ...$categories,
142 );
143 }
144
145 /**
146 * Add iFrame to allowed wp_kses_post tags
147 *
148 * @param array $tags Allowed tags, attributes, and/or entities.
149 *
150 * @return array
151 */
152 public function ksesComponents( $tags ) {
153 if ( empty( self::$components ) ) {
154 self::$components = json_decode( file_get_contents( plugin_dir_path( SURECART_PLUGIN_FILE ) . 'app/src/Support/kses.json' ), true );
155 }
156
157 // add slot to defaults.
158 $tags['span']['slot'] = true;
159 $tags['div']['slot'] = true;
160 $tags['sc-spinner']['data-*'] = true;
161
162 return array_merge( self::$components, $tags );
163 }
164
165 /**
166 * Register blocks from config
167 *
168 * @return void
169 */
170 public function registerBlocks() {
171 $service = \SureCart::resolve( SURECART_CONFIG_KEY );
172 if ( ! empty( $service['blocks'] ) ) {
173 foreach ( $service['blocks'] as $block ) {
174 ( new $block() )->register();
175 }
176 }
177 }
178 }
179