PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.3
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.3
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 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 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
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 * {@inheritDoc}
23 *
24 * @param \Pimple\Container $container Service Container.
25 */
26 public function register( $container ) {
27 $app = $container[ SURECART_APPLICATION_KEY ];
28
29 $container['block'] = function () use ( $app ) {
30 return new BlockService( $app );
31 };
32
33 $container['block.support.anchor'] = function () use ( $app ) {
34 return new BlockAnchorSupportService();
35 };
36
37 $container['blocks.patterns'] = function () use ( $app ) {
38 return new BlockPatternsService( $app );
39 };
40
41 $container['blocks.validations'] = function () {
42 return new BlockValidationService(
43 apply_filters(
44 'surecart_block_validators',
45 array(
46 new \SureCart\BlockValidator\VariantChoice(),
47 )
48 )
49 );
50 };
51
52 $container['blocks.mode_switcher'] = function () use ( $app ) {
53 return new FormModeSwitcherService( $app );
54 };
55
56 $app->alias( 'block', 'block' );
57
58 // Register blocks.
59 include plugin_dir_path( SURECART_PLUGIN_FILE ) . 'packages/blocks-next/index.php';
60 }
61
62 /**
63 * {@inheritDoc}
64 *
65 * @param \Pimple\Container $container Service Container.
66 *
67 * @return void
68 *
69 * phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter
70 */
71 public function bootstrap( $container ) {
72 $container['blocks.patterns']->bootstrap();
73 $container['blocks.validations']->bootstrap();
74 $container['blocks.mode_switcher']->bootstrap();
75 $container['block.support.anchor']->bootstrap();
76
77 // allow design tokens in css.
78 add_filter(
79 'safe_style_css',
80 function ( $styles ) {
81 return array_merge(
82 array(
83 '--spacing',
84 '--font-weight',
85 '--line-height',
86 '--font-size',
87 '--text-align',
88 '--color',
89 '--sc-input-label-color',
90 '--primary-background',
91 '--primary-color',
92 '--sc-color-primary-text',
93 '--sc-color-primary-500',
94 '--sc-focus-ring-color-primary',
95 '--sc-input-border-color-focus',
96 ),
97 $styles
98 );
99 }
100 );
101 // allow our web components in wp_kses contexts.
102 add_filter( 'wp_kses_allowed_html', array( $this, 'ksesComponents' ) );
103 // register our blocks.
104 add_action( 'init', array( $this, 'registerBlocks' ) );
105 // register our category.
106 add_action( 'block_categories_all', array( $this, 'registerBlockCategories' ) );
107 }
108
109 /**
110 * Register our custom block category.
111 *
112 * @param array $categories Array of categories.
113 * @return array
114 */
115 public function registerBlockCategories( $categories ) {
116 return array(
117 ...array(
118 array(
119 'slug' => 'surecart',
120 'title' => esc_html__( 'Checkout', 'surecart' ),
121 ),
122 array(
123 'slug' => 'surecart-customer-dashboard',
124 'title' => esc_html__( 'Customer Dashboard', 'surecart' ),
125 ),
126 array(
127 'slug' => 'surecart-cart',
128 'title' => esc_html__( 'Cart', 'surecart' ),
129 ),
130 array(
131 'slug' => 'surecart-product-list',
132 'title' => esc_html__( 'Shop', 'surecart' ),
133 ),
134 array(
135 'slug' => 'surecart-product-page',
136 'title' => esc_html__( 'Product', 'surecart' ),
137 ),
138 array(
139 'slug' => 'surecart-upsell-page',
140 'title' => esc_html__( 'Upsells', 'surecart' ),
141 ),
142 ),
143 ...$categories,
144 );
145 }
146
147 /**
148 * Add iFrame to allowed wp_kses_post tags
149 *
150 * @param array $tags Allowed tags, attributes, and/or entities.
151 *
152 * @return array
153 */
154 public function ksesComponents( $tags ) {
155 $components = json_decode( file_get_contents( plugin_dir_path( SURECART_PLUGIN_FILE ) . 'app/src/Support/kses.json' ), true );
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( $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