PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.8
Booking for Appointments and Events Calendar – Amelia v2.4.8
2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Infrastructure / WP / GutenbergBlock / AmeliaCatalogBookingGutenbergBlock.php
ameliabooking / src / Infrastructure / WP / GutenbergBlock Last commit date
AmeliaBookingGutenbergBlock.php 5 days ago AmeliaCatalogBookingGutenbergBlock.php 5 days ago AmeliaCatalogGutenbergBlock.php 5 days ago AmeliaEventsCalendarBookingGutenbergBlock.php 5 days ago AmeliaEventsGutenbergBlock.php 5 days ago AmeliaEventsListBookingButtonGutenbergBlock.php 5 days ago AmeliaEventsListBookingGutenbergBlock.php 5 days ago AmeliaStepBookingButtonGutenbergBlock.php 5 days ago AmeliaStepBookingGutenbergBlock.php 5 days ago GutenbergBlock.php 5 days ago
AmeliaCatalogBookingGutenbergBlock.php
90 lines
1 <?php
2
3 /**
4 * @copyright © Melograno Ventures. All rights reserved.
5 * @licence See LICENCE.md for license details.
6 */
7
8 namespace AmeliaBooking\Infrastructure\WP\GutenbergBlock;
9
10 /**
11 * Class AmeliaCatalogBookingGutenbergBlock
12 *
13 * @package AmeliaBooking\Infrastructure\WP\GutenbergBlock
14 */
15 class AmeliaCatalogBookingGutenbergBlock extends GutenbergBlock
16 {
17 public static function getBlockAttributes(): array
18 {
19 return [
20 'short_code' => ['type' => 'string', 'default' => '[ameliacatalogbooking]'],
21 'trigger' => ['type' => 'string', 'default' => ''],
22 'trigger_type' => ['type' => 'string', 'default' => 'id'],
23 'in_dialog' => ['type' => 'boolean', 'default' => false],
24 'show' => ['type' => 'string', 'default' => ''],
25 'location' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
26 'package' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
27 'category' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
28 'categoryOptions' => ['type' => 'string', 'default' => ''],
29 'service' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
30 'employee' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
31 'parametars' => ['type' => 'boolean', 'default' => false],
32 'skip_categories' => ['type' => 'boolean', 'default' => false],
33 ];
34 }
35
36 public static function renderBlock(array $attributes): string
37 {
38 $shortCode = $attributes['short_code'] ?? '[ameliacatalogbooking]';
39
40 if (!self::isAllowedShortCode($shortCode, self::getAllowedShortcodeTags('catalogbooking', 'ameliacatalogbooking'))) {
41 return '';
42 }
43
44 return do_shortcode($shortCode);
45 }
46
47 public static function registerBlockForRendering()
48 {
49 register_block_type(
50 'amelia/catalog-booking-gutenberg-block',
51 array(
52 'attributes' => self::getBlockAttributes(),
53 'render_callback' => array(__CLASS__, 'renderBlock'),
54 )
55 );
56 }
57
58 /**
59 * Register Amelia Booking block for Gutenberg
60 */
61 public static function registerBlockType()
62 {
63 // Enqueue shared icon and styles
64 parent::enqueueSharedIcon();
65 parent::enqueueSharedStyles();
66
67 wp_enqueue_script(
68 'amelia_catalog_booking_gutenberg_block',
69 AMELIA_URL . 'public/js/gutenberg/amelia-catalog-booking/amelia-catalog-booking-gutenberg.js',
70 array('wp-blocks', 'wp-components', 'wp-element', 'wp-block-editor', 'amelia_block_icon')
71 );
72
73 wp_localize_script(
74 'amelia_catalog_booking_gutenberg_block',
75 'wpAmeliaLabels',
76 array_merge(
77 self::getBlockStrings(),
78 self::getEntitiesData()
79 )
80 );
81
82 self::localizePreviewImages(
83 'amelia_catalog_booking_gutenberg_block',
84 'wpAmeliaCatalogBookingPreview',
85 'cbf-preview.svg',
86 'cbf-mobile-preview.svg'
87 );
88 }
89 }
90