PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.16.4
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.16.4
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 / 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 9 months ago BlockServiceProvider.php 9 months ago BlockStylesService.php 8 months ago BlockValidationService.php 2 years ago CartMenuIconMigrationService.php 1 year ago CartMigrationService.php 1 year ago FormModeSwitcherService.php 1 year 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 ProductSelectedPriceMigrationService.php 1 year ago ProductVariantsMigrationService.php 1 year ago URLParamService.php 1 year ago
BlockServiceProvider.php
178 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.patterns'] = fn () => new BlockPatternsService( $app );
42 $container['blocks.mode_switcher'] = fn () => new FormModeSwitcherService( $app );
43 $container['blocks.validations'] = fn () => new BlockValidationService(
44 apply_filters(
45 'surecart_block_validators',
46 array(
47 new \SureCart\BlockValidator\VariantChoice(),
48 )
49 )
50 );
51
52 $app->alias( 'block', 'block' );
53
54 // Register blocks.
55 include plugin_dir_path( SURECART_PLUGIN_FILE ) . 'packages/blocks-next/index.php';
56 }
57
58 /**
59 * {@inheritDoc}
60 *
61 * @param \Pimple\Container $container Service Container.
62 *
63 * @return void
64 *
65 * phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter
66 */
67 public function bootstrap( $container ) {
68 $container['blocks.patterns']->bootstrap();
69 $container['blocks.validations']->bootstrap();
70 $container['blocks.mode_switcher']->bootstrap();
71 $container['block.support.anchor']->bootstrap();
72 $container['block.support.currency']->bootstrap();
73
74 // allow design tokens in css.
75 add_filter(
76 'safe_style_css',
77 function ( $styles ) {
78 return array_merge(
79 array(
80 '--spacing',
81 '--font-weight',
82 '--line-height',
83 '--font-size',
84 '--text-align',
85 '--color',
86 '--sc-input-label-color',
87 '--primary-background',
88 '--primary-color',
89 '--sc-color-primary-text',
90 '--sc-color-primary-500',
91 '--sc-focus-ring-color-primary',
92 '--sc-input-border-color-focus',
93 ),
94 $styles
95 );
96 }
97 );
98 // allow our web components in wp_kses contexts.
99 add_filter( 'wp_kses_allowed_html', array( $this, 'ksesComponents' ) );
100 // register our blocks.
101 add_action( 'init', array( $this, 'registerBlocks' ) );
102 // register our category.
103 add_action( 'block_categories_all', array( $this, 'registerBlockCategories' ) );
104 }
105
106 /**
107 * Register our custom block category.
108 *
109 * @param array $categories Array of categories.
110 * @return array
111 */
112 public function registerBlockCategories( $categories ) {
113 return array(
114 ...array(
115 array(
116 'slug' => 'surecart',
117 'title' => esc_html__( 'Checkout', 'surecart' ),
118 ),
119 array(
120 'slug' => 'surecart-customer-dashboard',
121 'title' => esc_html__( 'Customer Dashboard', 'surecart' ),
122 ),
123 array(
124 'slug' => 'surecart-cart',
125 'title' => esc_html__( 'Cart', 'surecart' ),
126 ),
127 array(
128 'slug' => 'surecart-product-list',
129 'title' => esc_html__( 'Shop', 'surecart' ),
130 ),
131 array(
132 'slug' => 'surecart-product-page',
133 'title' => esc_html__( 'Product', 'surecart' ),
134 ),
135 array(
136 'slug' => 'surecart-upsell-page',
137 'title' => esc_html__( 'Upsells', 'surecart' ),
138 ),
139 ),
140 ...$categories,
141 );
142 }
143
144 /**
145 * Add iFrame to allowed wp_kses_post tags
146 *
147 * @param array $tags Allowed tags, attributes, and/or entities.
148 *
149 * @return array
150 */
151 public function ksesComponents( $tags ) {
152 if ( empty( self::$components ) ) {
153 self::$components = json_decode( file_get_contents( plugin_dir_path( SURECART_PLUGIN_FILE ) . 'app/src/Support/kses.json' ), true );
154 }
155
156 // add slot to defaults.
157 $tags['span']['slot'] = true;
158 $tags['div']['slot'] = true;
159 $tags['sc-spinner']['data-*'] = true;
160
161 return array_merge( self::$components, $tags );
162 }
163
164 /**
165 * Register blocks from config
166 *
167 * @return void
168 */
169 public function registerBlocks() {
170 $service = \SureCart::resolve( SURECART_CONFIG_KEY );
171 if ( ! empty( $service['blocks'] ) ) {
172 foreach ( $service['blocks'] as $block ) {
173 ( new $block() )->register();
174 }
175 }
176 }
177 }
178