PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
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 3 months ago AmeliaCatalogBookingGutenbergBlock.php 3 months ago AmeliaCatalogGutenbergBlock.php 3 months ago AmeliaEventsCalendarBookingGutenbergBlock.php 3 months ago AmeliaEventsGutenbergBlock.php 3 months ago AmeliaEventsListBookingButtonGutenbergBlock.php 2 months ago AmeliaEventsListBookingGutenbergBlock.php 3 months ago AmeliaStepBookingButtonGutenbergBlock.php 2 months ago AmeliaStepBookingGutenbergBlock.php 1 month ago GutenbergBlock.php 1 month ago
AmeliaCatalogBookingGutenbergBlock.php
85 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 use AmeliaBooking\Infrastructure\WP\Translations\BackendStrings;
11
12 /**
13 * Class AmeliaCatalogBookingGutenbergBlock
14 *
15 * @package AmeliaBooking\Infrastructure\WP\GutenbergBlock
16 */
17 class AmeliaCatalogBookingGutenbergBlock extends GutenbergBlock
18 {
19 public static function getBlockAttributes(): array
20 {
21 return [
22 'short_code' => ['type' => 'string', 'default' => '[ameliacatalogbooking]'],
23 'trigger' => ['type' => 'string', 'default' => ''],
24 'trigger_type' => ['type' => 'string', 'default' => 'id'],
25 'in_dialog' => ['type' => 'boolean', 'default' => false],
26 'show' => ['type' => 'string', 'default' => ''],
27 'location' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
28 'package' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
29 'category' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
30 'categoryOptions' => ['type' => 'string', 'default' => ''],
31 'service' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
32 'employee' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
33 'parametars' => ['type' => 'boolean', 'default' => false],
34 'skip_categories' => ['type' => 'boolean', 'default' => false],
35 ];
36 }
37
38 public static function renderBlock(array $attributes): string
39 {
40 $shortCode = $attributes['short_code'] ?? '[ameliacatalogbooking]';
41
42 if (strpos($shortCode, '[ameliacatalogbooking') !== 0) {
43 return '';
44 }
45
46 return do_shortcode($shortCode);
47 }
48
49 public static function registerBlockForRendering()
50 {
51 register_block_type(
52 'amelia/catalog-booking-gutenberg-block',
53 array(
54 'attributes' => self::getBlockAttributes(),
55 'render_callback' => array(__CLASS__, 'renderBlock'),
56 )
57 );
58 }
59
60 /**
61 * Register Amelia Booking block for Gutenberg
62 */
63 public static function registerBlockType()
64 {
65 // Enqueue shared icon and styles
66 parent::enqueueSharedIcon();
67 parent::enqueueSharedStyles();
68
69 wp_enqueue_script(
70 'amelia_catalog_booking_gutenberg_block',
71 AMELIA_URL . 'public/js/gutenberg/amelia-catalog-booking/amelia-catalog-booking-gutenberg.js',
72 array('wp-blocks', 'wp-components', 'wp-element', 'wp-block-editor', 'amelia_block_icon')
73 );
74
75 wp_localize_script(
76 'amelia_catalog_booking_gutenberg_block',
77 'wpAmeliaLabels',
78 array_merge(
79 BackendStrings::getAllStrings(),
80 self::getEntitiesData()
81 )
82 );
83 }
84 }
85