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 / BlockPatternsService.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
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->patterns = [
28 'default',
29 'full-page',
30 'simple',
31 'sections',
32 'two-column',
33 'donation',
34 'invoice',
35 ];
36 }
37
38 /**
39 * Bootstrap the service.
40 *
41 * @return void
42 */
43 public function bootstrap() {
44 add_action( 'init', [ $this, 'registerPatternsAndCategories' ], 9 );
45 }
46
47 /**
48 * Register block patterns and
49 */
50 public function registerPatternsAndCategories() {
51 $this->categories = [
52 'surecart_form' => [ 'label' => __( 'Checkout Form', 'surecart' ) ],
53 'surecart_shop' => [ 'label' => __( 'Shop', 'surecart' ) ],
54 'surecart_product_page' => [ 'label' => __( 'Product Page', 'surecart' ) ],
55 'surecart_related_products' => [ 'label' => __( 'Related Products', 'surecart' ) ],
56 ];
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