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