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.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 / BlockPatternsService.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
BlockPatternsService.php
134 lines
1 <?php
2
3 namespace SureCart\BlockLibrary;
4
5 /**
6 * Provide general block-related functionality.
7 */
8 class BlockPatternsService {
9 /**
10 * Block patterns to register.
11 *
12 * @var array
13 */
14 protected $patterns = [];
15
16 /**
17 * Block patterns categories to register.
18 *
19 * @var array
20 */
21 protected $categories = [];
22
23 /**
24 * Set categories and patterns.
25 */
26 public function __construct() {
27 $this->categories = [
28 'surecart_form' => [ 'label' => __( 'Checkout Form', 'surecart' ) ],
29 'surecart_shop' => [ 'label' => __( 'Shop', 'surecart' ) ],
30 'surecart_product_page' => [ 'label' => __( 'Product Page', 'surecart' ) ],
31 'surecart_related_products' => [ 'label' => __( 'Related Products', 'surecart' ) ],
32 ];
33
34 $this->patterns = [
35 'default',
36 'full-page',
37 'simple',
38 'sections',
39 'two-column',
40 'donation',
41 'invoice',
42 ];
43 }
44
45 /**
46 * Bootstrap the service.
47 *
48 * @return void
49 */
50 public function bootstrap() {
51 add_action( 'init', [ $this, 'registerPatternsAndCategories' ], 9 );
52 }
53
54 /**
55 * Register block patterns and
56 */
57 public function registerPatternsAndCategories() {
58 $this->registerCategories();
59 $this->registerPatterns();
60 }
61
62 /**
63 * Register block pattern categories.
64 *
65 * @return void
66 */
67 public function registerCategories() {
68 /**
69 * Filters the block pattern categories.
70 *
71 * @param array[] $categories {
72 * An associative array of block pattern categories, keyed by category name.
73 *
74 * @type array[] $properties {
75 * An array of block category properties.
76 *
77 * @type string $label A human-readable label for the pattern category.
78 * }
79 * }
80 */
81 $this->categories = apply_filters( 'surecart/blocks/pattern_categories', $this->categories );
82
83 foreach ( $this->categories as $name => $properties ) {
84 if ( ! \WP_Block_Pattern_Categories_Registry::get_instance()->is_registered( $name ) ) {
85 register_block_pattern_category( $name, $properties );
86 }
87 }
88 }
89
90 /**
91 * Register our block patterns.
92 *
93 * @return void
94 */
95 public function registerPatterns() {
96 // register the block patterns from patterns directory.
97 $patterns = glob( plugin_dir_path( SURECART_PLUGIN_FILE ) . 'templates/patterns/*.php' );
98
99 // sort by priority key.
100 usort(
101 $patterns,
102 function ( $a, $b ) {
103 $a = require $a;
104 $b = require $b;
105 return ( $a['priority'] ?? 0 ) <=> ( $b['priority'] ?? 0 );
106 }
107 );
108
109 foreach ( $patterns as $pattern_file ) {
110 register_block_pattern(
111 'surecart-' . basename( $pattern_file, '.php' ),
112 require $pattern_file
113 );
114 }
115
116 /**
117 * Filters the plugin block patterns.
118 *
119 * @param array $patterns List of block patterns by name.
120 */
121 $this->patterns = apply_filters( 'surecart/blocks/patterns', $this->patterns );
122
123 // loop through patterns and register.
124 foreach ( $this->patterns as $block_pattern ) {
125 $pattern_file = plugin_dir_path( SURECART_PLUGIN_FILE ) . 'templates/forms/' . $block_pattern . '.php';
126
127 register_block_pattern(
128 'surecart/' . $block_pattern,
129 require $pattern_file
130 );
131 }
132 }
133 }
134