PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.14.2
GiveWP – Donation Plugin and Fundraising Platform v4.14.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 / Donors / Actions / LoadDonorAdminOptions.php
give / src / Donors / Actions Last commit date
CreateUserFromDonor.php 2 years ago LoadDonorAdminOptions.php 11 months ago LoadDonorDetailsAssets.php 1 year ago LoadDonorsListTableAssets.php 8 months ago SendDonorUserRegistrationNotification.php 2 years ago UpdateAdminDonorDetails.php 2 years ago
LoadDonorAdminOptions.php
83 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.6.1 Rename to LoadDonorAdminOptions
13 * @since 4.4.0
14 */
15 class LoadDonorAdminOptions
16 {
17 public function __invoke()
18 {
19 wp_register_script('give-donor-options', false);
20 wp_localize_script('give-donor-options', 'GiveDonorOptions', $this->getDonorOptions());
21 wp_enqueue_script('give-donor-options');
22 }
23
24 /**
25 * Get all donor options for localization
26 *
27 * @return array
28 * @since 4.4.0
29 */
30 private function getDonorOptions(): array
31 {
32 $isAdmin = is_admin();
33
34 return [
35 'isAdmin' => $isAdmin,
36 'adminUrl' => admin_url(),
37 'apiRoot' => rest_url(DonorRoute::NAMESPACE . '/' . DonorRoute::BASE),
38 'apiNonce' => wp_create_nonce('wp_rest'),
39 'donorsAdminUrl' => admin_url('edit.php?post_type=give_forms&page=give-donors'),
40 'currency' => give_get_currency(),
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 'mode' => give_is_test_mode() ? 'test' : 'live'
47 ];
48 }
49
50 /**
51 * Get states data with decoded HTML entities
52 *
53 * @since 4.4.0
54 */
55 private function getStatesData(): array
56 {
57 return [
58 'list' => $this->decodeHtmlEntities(give_states_list(), true),
59 'labels' => give_get_states_label(),
60 'noStatesCountries' => array_keys(give_no_states_country_list()),
61 'statesNotRequiredCountries' => array_keys(give_states_not_required_country_list()),
62 ];
63 }
64
65 /**
66 * Decode HTML entities from an array of strings or nested arrays
67 *
68 * @since 4.4.0
69 */
70 private function decodeHtmlEntities(array $data, bool $isNested = false): array
71 {
72 if ($isNested) {
73 return array_map(function ($nestedData) {
74 return $this->decodeHtmlEntities($nestedData);
75 }, $data);
76 }
77
78 return array_map(function ($item) {
79 return html_entity_decode($item, ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, 'UTF-8');
80 }, $data);
81 }
82 }
83