PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.20.2
GiveWP – Donation Plugin and Fundraising Platform v2.20.2
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 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 / Onboarding / Routes / FeaturesRoute.php
give / src / Onboarding / Routes Last commit date
AddonsRoute.php 4 years ago CurrencyRoute.php 4 years ago FeaturesRoute.php 4 years ago FormRoute.php 4 years ago LocationRoute.php 4 years ago SettingsRoute.php 4 years ago
FeaturesRoute.php
140 lines
1 <?php
2
3 namespace Give\Onboarding\Routes;
4
5 use Give\API\RestRoute;
6 use Give\Onboarding\SettingsRepositoryFactory;
7 use WP_REST_Request;
8
9 /**
10 * @since 2.8.0
11 */
12 class FeaturesRoute implements RestRoute
13 {
14
15 /** @var string */
16 protected $endpoint = 'onboarding/settings/features';
17
18 /**
19 * @var SettingsRepository
20 */
21 protected $settingsRepository;
22
23 /**
24 * @since 2.8.0
25 *
26 * @param SettingsRepository $settingsRepository
27 *
28 */
29 public function __construct(SettingsRepositoryFactory $settingsRepositoryFactory)
30 {
31 $this->settingsRepository = $settingsRepositoryFactory->make('give_onboarding');
32 }
33
34 /**
35 * @since 2.8.0
36 *
37 * @param WP_REST_Request $request
38 *
39 * @return array
40 *
41 */
42 public function handleRequest(WP_REST_Request $request)
43 {
44 $features = json_decode($request->get_param('value'));
45
46 $formID = $this->settingsRepository->get('form_id');
47
48 update_post_meta($formID, '_give_goal_option', in_array('donation-goal', $features) ? 'enabled' : 'disabled');
49 update_post_meta(
50 $formID,
51 '_give_donor_comment',
52 in_array('donation-comments', $features) ? 'enabled' : 'disabled'
53 );
54 update_post_meta(
55 $formID,
56 '_give_terms_option',
57 in_array('terms-conditions', $features) ? 'enabled' : 'disabled'
58 );
59 update_post_meta(
60 $formID,
61 '_give_customize_offline_donations',
62 in_array('offline-donations', $features) ? 'enabled' : 'disabled'
63 );
64 update_post_meta(
65 $formID,
66 '_give_anonymous_donation',
67 in_array('anonymous-donations', $features) ? 'enabled' : 'disabled'
68 );
69 update_post_meta(
70 $formID,
71 '_give_company_field',
72 in_array('company-donations', $features) ? 'optional' : 'disabled'
73 ); // Note: The company field has two values for enabled, "required" and "optional".
74
75 return [
76 'data' => [
77 'setting' => 'features',
78 'value' => $features,
79 'formID' => $formID,
80 ],
81 ];
82 }
83
84 /**
85 * @inheritDoc
86 */
87 public function registerRoute()
88 {
89 register_rest_route(
90 'give-api/v2',
91 $this->endpoint,
92 [
93 [
94 'methods' => 'POST',
95 'callback' => [$this, 'handleRequest'],
96 'permission_callback' => function () {
97 return current_user_can('manage_options');
98 },
99 'args' => [
100 'value' => [
101 'type' => 'string',
102 'required' => true,
103 // 'validate_callback' => [ $this, 'validateSetting' ],
104 'sanitize_callback' => 'sanitize_text_field',
105 ],
106 ],
107 ],
108 'schema' => [$this, 'getSchema'],
109 ]
110 );
111 }
112
113 /**
114 * @since 2.8.0
115 * @return array
116 *
117 */
118 public function getSchema()
119 {
120 return [
121 // This tells the spec of JSON Schema we are using which is draft 4.
122 '$schema' => 'http://json-schema.org/draft-04/schema#',
123 // The title property marks the identity of the resource.
124 'title' => 'onboarding',
125 'type' => 'object',
126 // In JSON Schema you can specify object properties in the properties attribute.
127 'properties' => [
128 'setting' => [
129 'description' => esc_html__('The reference name for the setting being updated.', 'give'),
130 'type' => 'string',
131 ],
132 'value' => [
133 'description' => esc_html__('The value of the setting being updated.', 'give'),
134 'type' => 'string',
135 ],
136 ],
137 ];
138 }
139 }
140