PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.10.4
GiveWP – Donation Plugin and Fundraising Platform v2.10.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 5 years ago CurrencyRoute.php 5 years ago FeaturesRoute.php 5 years ago FormRoute.php 5 years ago LocationRoute.php 5 years ago SettingsRoute.php 5 years ago
CurrencyRoute.php
111 lines
1 <?php
2
3 namespace Give\Onboarding\Routes;
4
5 use WP_REST_Request;
6 use Give\API\RestRoute;
7 use Give\Onboarding\SettingsRepositoryFactory;
8
9 /**
10 * @since 2.8.0
11 */
12 class CurrencyRoute implements RestRoute {
13
14 /** @var string */
15 protected $endpoint = 'onboarding/settings/currency';
16
17 /**
18 * @var SettingsRepository
19 */
20 protected $settingsRepository;
21
22 /**
23 * @param SettingsRepository $settingsRepository
24 *
25 * @since 2.8.0
26 */
27 public function __construct( SettingsRepositoryFactory $settingsRepositoryFactory ) {
28 $this->settingsRepository = $settingsRepositoryFactory->make( 'give_settings' );
29 }
30
31 /**
32 * @param WP_REST_Request $request
33 *
34 * @return array
35 *
36 * @since 2.8.0
37 */
38 public function handleRequest( WP_REST_Request $request ) {
39
40 $currencyCode = json_decode( $request->get_param( 'value' ) );
41
42 $currencyList = give_get_currencies_list();
43 $currencyConfiguration = $currencyList[ $currencyCode ]['setting'];
44
45 $this->settingsRepository->set( 'currency', $currencyCode );
46 $this->settingsRepository->set( 'currency_position', $currencyConfiguration['currency_position'] );
47 $this->settingsRepository->set( 'thousands_separator', $currencyConfiguration['thousands_separator'] );
48 $this->settingsRepository->set( 'decimal_separator', $currencyConfiguration['decimal_separator'] );
49 $this->settingsRepository->set( 'number_decimals', $currencyConfiguration['number_decimals'] );
50 $this->settingsRepository->save();
51
52 return [
53 'data' => [
54 'setting' => 'currency',
55 'value' => $currencyCode,
56 ],
57 ];
58 }
59
60 /**
61 * @inheritDoc
62 */
63 public function registerRoute() {
64 register_rest_route(
65 'give-api/v2',
66 $this->endpoint,
67 [
68 [
69 'methods' => 'POST',
70 'callback' => [ $this, 'handleRequest' ],
71 'permission_callback' => function() {
72 return current_user_can( 'manage_options' );
73 },
74 'args' => [
75 'value' => [
76 'type' => 'string',
77 'required' => true,
78 // 'validate_callback' => [ $this, 'validateSetting' ],
79 'sanitize_callback' => 'sanitize_text_field',
80 ],
81 ],
82 ],
83 'schema' => [ $this, 'getSchema' ],
84 ]
85 );
86 }
87
88
89 /**
90 * @return array
91 *
92 * @since 2.8.0
93 */
94 public function getSchema() {
95 return [
96 // This tells the spec of JSON Schema we are using which is draft 4.
97 '$schema' => 'http://json-schema.org/draft-04/schema#',
98 // The title property marks the identity of the resource.
99 'title' => 'onboarding',
100 'type' => 'object',
101 // In JSON Schema you can specify object properties in the properties attribute.
102 'properties' => [
103 'currencyCode' => [
104 'description' => esc_html__( 'Two letter code representing a country.', 'give' ),
105 'type' => 'string',
106 ],
107 ],
108 ];
109 }
110 }
111