PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.0-beta1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.0-beta1
4.7.0 4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.0 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 / BlockPatternsService.php
surecart / app / src / BlockLibrary Last commit date
BlockAnchorSupportService.php 2 years ago BlockPatternsService.php 2 years ago BlockService.php 2 years ago BlockServiceProvider.php 2 years ago BlockStylesService.php 2 years ago BlockValidationService.php 2 years ago CartMenuIconMigrationService.php 2 years ago CartMigrationService.php 2 years ago FormModeSwitcherService.php 2 years ago ProductCollectionBadgesMigrationService.php 2 years ago ProductListMigrationService.php 2 years ago ProductListService.php 2 years ago ProductPriceChoicesMigrationService.php 2 years ago ProductSelectedPriceMigrationService.php 2 years ago ProductVariantsMigrationService.php 2 years ago URLParamService.php 2 years ago
BlockPatternsService.php
133 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 ];
32
33 $this->patterns = [
34 'default',
35 'full-page',
36 'simple',
37 'sections',
38 'two-column',
39 'donation',
40 'invoice',
41 ];
42 }
43
44 /**
45 * Bootstrap the service.
46 *
47 * @return void
48 */
49 public function bootstrap() {
50 add_action( 'init', [ $this, 'registerPatternsAndCategories' ], 9 );
51 }
52
53 /**
54 * Register block patterns and
55 */
56 public function registerPatternsAndCategories() {
57 $this->registerCategories();
58 $this->registerPatterns();
59 }
60
61 /**
62 * Register block pattern categories.
63 *
64 * @return void
65 */
66 public function registerCategories() {
67 /**
68 * Filters the block pattern categories.
69 *
70 * @param array[] $categories {
71 * An associative array of block pattern categories, keyed by category name.
72 *
73 * @type array[] $properties {
74 * An array of block category properties.
75 *
76 * @type string $label A human-readable label for the pattern category.
77 * }
78 * }
79 */
80 $this->categories = apply_filters( 'surecart/blocks/pattern_categories', $this->categories );
81
82 foreach ( $this->categories as $name => $properties ) {
83 if ( ! \WP_Block_Pattern_Categories_Registry::get_instance()->is_registered( $name ) ) {
84 register_block_pattern_category( $name, $properties );
85 }
86 }
87 }
88
89 /**
90 * Register our block patterns.
91 *
92 * @return void
93 */
94 public function registerPatterns() {
95 // register the block patterns from patterns directory.
96 $patterns = glob( plugin_dir_path( SURECART_PLUGIN_FILE ) . 'templates/patterns/*.php' );
97
98 // sort by priority key.
99 usort(
100 $patterns,
101 function ( $a, $b ) {
102 $a = require $a;
103 $b = require $b;
104 return ( $a['priority'] ?? 0 ) <=> ( $b['priority'] ?? 0 );
105 }
106 );
107
108 foreach ( $patterns as $pattern_file ) {
109 register_block_pattern(
110 'surecart-' . basename( $pattern_file, '.php' ),
111 require $pattern_file
112 );
113 }
114
115 /**
116 * Filters the plugin block patterns.
117 *
118 * @param array $patterns List of block patterns by name.
119 */
120 $this->patterns = apply_filters( 'surecart/blocks/patterns', $this->patterns );
121
122 // loop through patterns and register.
123 foreach ( $this->patterns as $block_pattern ) {
124 $pattern_file = plugin_dir_path( SURECART_PLUGIN_FILE ) . 'templates/forms/' . $block_pattern . '.php';
125
126 register_block_pattern(
127 'surecart/' . $block_pattern,
128 require $pattern_file
129 );
130 }
131 }
132 }
133