PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.8
Booking for Appointments and Events Calendar – Amelia v2.4.8
2.4.9 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 / AmeliaStepBookingGutenbergBlock.php
ameliabooking / src / Infrastructure / WP / GutenbergBlock Last commit date
AmeliaBookingGutenbergBlock.php 1 week ago AmeliaCatalogBookingGutenbergBlock.php 1 week ago AmeliaCatalogGutenbergBlock.php 1 week ago AmeliaEventsCalendarBookingGutenbergBlock.php 1 week ago AmeliaEventsGutenbergBlock.php 1 week ago AmeliaEventsListBookingButtonGutenbergBlock.php 1 week ago AmeliaEventsListBookingGutenbergBlock.php 1 week ago AmeliaStepBookingButtonGutenbergBlock.php 1 week ago AmeliaStepBookingGutenbergBlock.php 1 week ago GutenbergBlock.php 1 week ago
AmeliaStepBookingGutenbergBlock.php
98 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 AmeliaStepBookingGutenbergBlock
12 *
13 * @package AmeliaBooking\Infrastructure\WP\GutenbergBlock
14 */
15 class AmeliaStepBookingGutenbergBlock extends GutenbergBlock
16 {
17 public static function getBlockAttributes(): array
18 {
19 return [
20 'short_code' => ['type' => 'string', 'default' => '[ameliastepbooking]'],
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 'service' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
29 'employee' => ['type' => 'array', 'default' => [], 'items' => ['type' => 'string']],
30 'parametars' => ['type' => 'boolean', 'default' => false],
31 'layout' => ['type' => 'string', 'default' => '1'],
32 'ivy' => ['type' => 'string', 'default' => ''],
33 ];
34 }
35
36 public static function renderBlock(array $attributes): string
37 {
38 $shortCode = $attributes['short_code'] ?? '[ameliastepbooking]';
39
40 if (!self::isAllowedShortCode($shortCode, self::getAllowedShortcodeTags('stepbooking', 'ameliastepbooking'))) {
41 return '';
42 }
43
44 return do_shortcode($shortCode);
45 }
46
47 public static function registerBlockForRendering()
48 {
49 register_block_type(
50 'amelia/step-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_step_booking_gutenberg_block',
69 AMELIA_URL . 'public/js/gutenberg/amelia-step-booking/amelia-step-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_step_booking_gutenberg_block',
75 'wpAmeliaLabels',
76 array_merge(
77 self::getBlockStrings(),
78 self::getEntitiesData()
79 )
80 );
81
82 self::localizePreviewImages(
83 'amelia_step_booking_gutenberg_block',
84 'wpAmeliaStepBookingPreview',
85 'sbs-preview.svg',
86 'sbs-mobile-preview.svg'
87 );
88
89
90 wp_enqueue_style(
91 'amelia_step_booking_gutenberg_styles',
92 AMELIA_URL . 'public/js/gutenberg/amelia-step-booking/amelia-gutenberg-styles.css',
93 [],
94 AMELIA_VERSION
95 );
96 }
97 }
98