PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.1.0
GiveWP – Donation Plugin and Fundraising Platform v4.1.0
4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 All 253 releases
give / src / MultiFormGoals / ProgressBar / Block.php
Block.php
122 lines 3.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Give\MultiFormGoals\ProgressBar;
4
5 use Give\MultiFormGoals\ProgressBar\Model as ProgressBar;
6
7 class Block
8 {
9
10 /**
11 * Registers Multi-Form Goals block
12 *
13 * @since 2.9.0
14 **/
15 public function addBlock()
16 {
17 register_block_type(
18 'give/progress-bar',
19 [
20 'render_callback' => [$this, 'renderCallback'],
21 'attributes' => [
22 'ids' => [
23 'type' => 'array',
24 'default' => [],
25 ],
26 'categories' => [
27 'type' => 'array',
28 'default' => [],
29 ],
30 'tags' => [
31 'type' => 'array',
32 'default' => [],
33 ],
34 'goal' => [
35 'type' => 'string',
36 'default' => '1000',
37 ],
38 'enddate' => [
39 'type' => 'string',
40 'default' => '',
41 ],
42 'color' => [
43 'type' => 'string',
44 'default' => '#28c77b',
45 ],
46 ],
47
48 ]
49 );
50 }
51
52 /**
53 * Returns Progress Bar block markup
54 *
55 * @since 3.1.0 Use static function on array_map callback to pass the id as reference for _give_redirect_form_id to prevent warnings on PHP 8.0.1 or plus
56 * @since 2.9.0
57 **/
58 public function renderCallback($attributes)
59 {
60 $progressBar = new ProgressBar(
61 [
62 'ids' => array_map(
63 static function ($id) {
64 _give_redirect_form_id($id);
65
66 return $id;
67 },
68 $attributes['ids']
69 ),
70 'tags' => $attributes['tags'],
71 'categories' => $attributes['categories'],
72 'goal' => $attributes['goal'],
73 'enddate' => $attributes['enddate'],
74 'color' => $attributes['color'],
75 ]
76 );
77
78 return $progressBar->getOutput();
79 }
80
81 public function localizeAssets()
82 {
83 $defaultColorPalette = [
84 [
85 'name' => __('Red', 'give'),
86 'color' => '#dd3333',
87 ],
88 [
89 'name' => __('Orange', 'give'),
90 'color' => '#dd9933',
91 ],
92 [
93 'name' => __('Green', 'give'),
94 'color' => '#28C77B',
95 ],
96 [
97 'name' => __('Blue', 'give'),
98 'color' => '#1e73be',
99 ],
100 [
101 'name' => __('Purple', 'give'),
102 'color' => '#8224e3',
103 ],
104 [
105 'name' => __('Grey', 'give'),
106 'color' => '#777777',
107 ],
108 ];
109 $editorColorPalette = get_theme_support('editor-color-palette'); // Return value is in a nested array.
110
111 wp_localize_script(
112 'give-blocks-js',
113 'giveProgressBarThemeSupport',
114 [
115 'editorColorPalette' => is_array($editorColorPalette) ? array_shift(
116 $editorColorPalette
117 ) : $defaultColorPalette,
118 ]
119 );
120 }
121 }
122