PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.4.0
GiveWP – Donation Plugin and Fundraising Platform v4.4.0
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 / Donors / Actions / LoadDonorOptions.php
give / src / Donors / Actions Last commit date
CreateUserFromDonor.php 2 years ago LoadDonorDetailsAssets.php 1 year ago LoadDonorOptions.php 1 year ago LoadDonorsListTableAssets.php 1 year ago RegisterDonorEntity.php 1 year ago SendDonorUserRegistrationNotification.php 2 years ago UpdateAdminDonorDetails.php 2 years ago
LoadDonorOptions.php
84 lines
1 <?php
2
3 namespace Give\Donors\Actions;
4
5 use Give\API\REST\V3\Routes\Donors\ValueObjects\DonorRoute;
6 use Give\Helpers\IntlTelInput;
7
8 /**
9 * The purpose of this action is to have a centralized place for localizing options used on many different places
10 * by donor scripts (list tables, blocks, etc.)
11 *
12 * @since 4.4.0
13 */
14 class LoadDonorOptions
15 {
16 public function __invoke()
17 {
18 wp_register_script('give-donor-options', false);
19 wp_localize_script('give-donor-options', 'GiveDonorOptions', $this->getDonorOptions());
20 wp_enqueue_script('give-donor-options');
21 }
22
23 /**
24 * Get all donor options for localization
25 *
26 * @return array
27 * @since 4.4.0
28 */
29 private function getDonorOptions(): array
30 {
31 $isAdmin = is_admin();
32
33 return [
34 'isAdmin' => $isAdmin,
35 'adminUrl' => admin_url(),
36 'apiRoot' => rest_url(DonorRoute::NAMESPACE . '/' . DonorRoute::BASE),
37 'apiNonce' => wp_create_nonce('wp_rest'),
38 'donorsAdminUrl' => admin_url('edit.php?post_type=give_forms&page=give-donors'),
39 'currency' => give_get_currency(),
40 'currencySymbol' => give_currency_symbol(),
41 'intlTelInputSettings' => IntlTelInput::getSettings(),
42 'nameTitlePrefixes' => give_get_option('title_prefixes', array_values(give_get_default_title_prefixes())),
43 'countries' => $this->decodeHtmlEntities(give_get_country_list()),
44 'states' => $this->getStatesData(),
45 'isRecurringEnabled' => defined('GIVE_RECURRING_VERSION') ? GIVE_RECURRING_VERSION : null,
46 'admin' => $isAdmin ? [] : null,
47 'mode' => give_is_test_mode() ? 'test' : 'live'
48 ];
49 }
50
51 /**
52 * Get states data with decoded HTML entities
53 *
54 * @since 4.4.0
55 */
56 private function getStatesData(): array
57 {
58 return [
59 'list' => $this->decodeHtmlEntities(give_states_list(), true),
60 'labels' => give_get_states_label(),
61 'noStatesCountries' => array_keys(give_no_states_country_list()),
62 'statesNotRequiredCountries' => array_keys(give_states_not_required_country_list()),
63 ];
64 }
65
66 /**
67 * Decode HTML entities from an array of strings or nested arrays
68 *
69 * @since 4.4.0
70 */
71 private function decodeHtmlEntities(array $data, bool $isNested = false): array
72 {
73 if ($isNested) {
74 return array_map(function($nestedData) {
75 return $this->decodeHtmlEntities($nestedData);
76 }, $data);
77 }
78
79 return array_map(function($item) {
80 return html_entity_decode($item, ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, 'UTF-8');
81 }, $data);
82 }
83 }
84