PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.0.2
GiveWP – Donation Plugin and Fundraising Platform v3.0.2
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 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 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.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / MultiFormGoals / MultiFormGoal / Shortcode.php
give / src / MultiFormGoals / MultiFormGoal Last commit date
Block.php 4 years ago Model.php 3 years ago Shortcode.php 2 years ago
Shortcode.php
107 lines
1 <?php
2
3 namespace Give\MultiFormGoals\MultiFormGoal;
4
5 use Give\MultiFormGoals\MultiFormGoal\Model as MultiFormGoal;
6
7 class Shortcode
8 {
9
10 /**
11 * @since 2.9.6 Extracted from harded-coded value in `addShortcode()`.
12 * @var string Shortcode tag to be searched in post content.
13 * */
14 protected $tag = 'give_multi_form_goal';
15
16 /**
17 * Registers Multi-Form Goal Shortcode
18 *
19 * @since 2.9.0
20 **/
21 public function addShortcode()
22 {
23 add_shortcode($this->tag, [$this, 'renderCallback']);
24 }
25
26 /**
27 * Returns Shortcode markup
28 *
29 * @since 2.9.0
30 **/
31 public function renderCallback($attributes)
32 {
33 $attributes = $this->parseAttributes(
34 [
35 'ids' => [],
36 'tags' => [],
37 'categories' => [],
38 'goal' => '1000',
39 'enddate' => '',
40 'color' => '#28c77b',
41 'heading' => 'Example Heading',
42 'image' => GIVE_PLUGIN_URL . 'assets/dist/images/onboarding-preview-form-image.min.jpg',
43 'summary' => 'This is a summary.',
44
45 ],
46 $attributes,
47 'give_multi_form_goal'
48 );
49
50 $multiFormGoal = new MultiFormGoal(
51 [
52 'ids' => array_map('_give_redirect_form_id', $attributes['ids']),
53 'tags' => $attributes['tags'],
54 'categories' => $attributes['categories'],
55 'goal' => $attributes['goal'],
56 'enddate' => $attributes['enddate'],
57 'color' => $attributes['color'],
58 'heading' => $attributes['heading'],
59 'imageSrc' => $attributes['image'],
60 'summary' => $attributes['summary'],
61 ]
62 );
63
64 return $multiFormGoal->getOutput();
65 }
66
67 /**
68 * Parse multiple attributes with defualt values and types (infered from the default values).
69 * @link https://developer.wordpress.org/reference/functions/shortcode_atts/
70 * @since 2.9.6
71 *
72 * @param array $pairs Entire list of supported attributes and their defaults.
73 * @param array $attributes User defined attributes.
74 *
75 * @reutrn array
76 */
77 protected function parseAttributes($pairs, $attributes)
78 {
79 if ($attributes) {
80 foreach ($attributes as $key => &$attribute) {
81 if (isset($pairs[$key]) && is_array($pairs[$key])) {
82 $attribute = $this->parseAttributeArray($attribute);
83 }
84 }
85 }
86
87 return shortcode_atts($pairs, $attributes, $this->tag);
88 }
89
90 /**
91 * Parses an individual attributes as an array (or from a comma-separated string).
92 * @since 2.9.6
93 *
94 * @param string|array $value
95 *
96 * @return array
97 */
98 protected function parseAttributeArray($value)
99 {
100 if ( ! is_array($value) && ! empty($value)) {
101 $value = explode(',', $value);
102 }
103
104 return $value;
105 }
106 }
107