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