PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.19.4
GiveWP – Donation Plugin and Fundraising Platform v3.19.4
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 / CurrencyRoute.php
give / src / Onboarding / Routes Last commit date
AddonsRoute.php 4 years ago CurrencyRoute.php 3 years ago FeaturesRoute.php 1 year ago FormRoute.php 4 years ago LocationRoute.php 4 years ago SettingsRoute.php 4 years ago
CurrencyRoute.php
98 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 CurrencyRoute implements RestRoute
13 {
14
15 /** @var string */
16 protected $endpoint = 'onboarding/settings/currency';
17
18 /**
19 * @var SettingsRepositoryFactory
20 */
21 protected $settingsRepository;
22
23 /**
24 * @since 2.8.0
25 */
26 public function __construct(SettingsRepositoryFactory $settingsRepositoryFactory)
27 {
28 $this->settingsRepository = $settingsRepositoryFactory->make('give_settings');
29 }
30
31 /**
32 * @since 2.8.0
33 *
34 * @param WP_REST_Request $request
35 *
36 * @return array
37 *
38 */
39 public function handleRequest(WP_REST_Request $request)
40 {
41 $currencyCode = json_decode($request->get_param('value'));
42
43 $currencyList = give_get_currencies_list();
44 $currencyConfiguration = $currencyList[$currencyCode]['setting'];
45
46 $this->settingsRepository->set('currency', $currencyCode);
47 $this->settingsRepository->set('currency_position', $currencyConfiguration['currency_position']);
48 $this->settingsRepository->set('thousands_separator', $currencyConfiguration['thousands_separator']);
49 $this->settingsRepository->set('decimal_separator', $currencyConfiguration['decimal_separator']);
50 $this->settingsRepository->set('number_decimals', $currencyConfiguration['number_decimals']);
51 $this->settingsRepository->save();
52
53 return [
54 'data' => [
55 'setting' => 'currency',
56 'value' => $currencyCode,
57 ],
58 ];
59 }
60
61 /**
62 * @inheritDoc
63 */
64 public function registerRoute()
65 {
66 register_rest_route(
67 'give-api/v2',
68 $this->endpoint,
69 [
70 [
71 'methods' => 'POST',
72 'callback' => [$this, 'handleRequest'],
73 'permission_callback' => function () {
74 return current_user_can('manage_options');
75 },
76 'args' => [
77 'value' => [
78 'type' => 'string',
79 'required' => true,
80 'validate_callback' => [$this, 'validateSetting'],
81 ],
82 ],
83 ],
84 ]
85 );
86 }
87
88 /**
89 * Limits the symbol to a 3-letter currency code
90 *
91 * @since 2.21.3
92 */
93 public function validateSetting($value): bool
94 {
95 return array_key_exists(json_decode($value, false), give_get_currencies_list());
96 }
97 }
98