PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.22.3
GiveWP – Donation Plugin and Fundraising Platform v2.22.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 / Donations / DonationsAdminPage.php
give / src / Donations Last commit date
Actions 4 years ago Controllers 4 years ago DataTransferObjects 3 years ago Endpoints 4 years ago Factories 3 years ago LegacyListeners 3 years ago Models 3 years ago Properties 4 years ago Repositories 3 years ago ValueObjects 4 years ago resources 4 years ago DonationsAdminPage.php 4 years ago ServiceProvider.php 4 years ago
DonationsAdminPage.php
172 lines
1 <?php
2
3 namespace Give\Donations;
4
5 use Give\Helpers\EnqueueScript;
6 use WP_REST_Request;
7
8 class DonationsAdminPage
9 {
10 /**
11 * @var string
12 */
13 private $apiRoot;
14
15 /**
16 * @var string
17 */
18 private $apiNonce;
19
20 /**
21 * @var string
22 */
23 private $adminUrl;
24
25 public function __construct()
26 {
27 $this->apiRoot = esc_url_raw(rest_url('give-api/v2/admin/donations'));
28 $this->apiNonce = wp_create_nonce('wp_rest');
29 $this->adminUrl = admin_url();
30 }
31
32 /**
33 * @since 2.20.0
34 */
35 public function registerMenuItem()
36 {
37 remove_submenu_page(
38 'edit.php?post_type=give_forms',
39 'give-payment-history'
40 );
41
42 remove_action(
43 'give_forms_page_give-payment-history',
44 'give_payment_history_page'
45 );
46
47 add_submenu_page(
48 'edit.php?post_type=give_forms',
49 esc_html__('Donations', 'give'),
50 esc_html__('Donations', 'give'),
51 'edit_give_forms',
52 'give-payment-history',
53 [$this, 'render'],
54 5
55 );
56 }
57
58 /**
59 * @since 2.20.0
60 * @since 2.21.2 Localized the admin URL as a base for URL concatenation.
61 */
62 public function loadScripts()
63 {
64 $data = [
65 'apiRoot' => $this->apiRoot,
66 'apiNonce' => $this->apiNonce,
67 'preload' => $this->preloadDonations(),
68 'forms' => $this->getForms(),
69 'adminUrl' => $this->adminUrl,
70 ];
71
72 EnqueueScript::make('give-admin-donations', 'assets/dist/js/give-admin-donations.js')
73 ->loadInFooter()
74 ->registerTranslations()
75 ->registerLocalizeData('GiveDonations', $data)->enqueue();
76
77 wp_enqueue_style(
78 'give-admin-ui-font',
79 'https://fonts.googleapis.com/css2?family=Open+Sans:wght@400..700&display=swap',
80 [],
81 null
82 );
83 }
84
85 /**
86 * Render admin page container
87 * @since 2.20.0
88 */
89 public function render()
90 {
91 if (isset($_GET['view']) && 'view-payment-details' === $_GET['view']) {
92 include GIVE_PLUGIN_DIR . 'includes/admin/payments/view-payment-details.php';
93 } else {
94 echo '<div id="give-admin-donations-root"></div>';
95 }
96 }
97
98 /**
99 * Helper function to determine if current page is Give Donors admin page
100 * @since 2.20.0
101 *
102 * @return bool
103 */
104 public static function isShowing()
105 {
106 return isset($_GET['page']) && $_GET['page'] === 'give-payment-history' && !isset($_GET['view']);
107 }
108
109
110 /**
111 * Get first page of results from REST API to display as initial table data
112 *
113 * @since 2.20.0
114 * @return array
115 */
116 private function preloadDonations()
117 {
118 $queryParameters = [
119 'page' => 1,
120 'perPage' => 30,
121 ];
122
123 if(isset($_GET['search']))
124 {
125 $queryParameters['search'] = urldecode($_GET['search']);
126 }
127
128 $request = WP_REST_Request::from_url(esc_url(add_query_arg(
129 $queryParameters,
130 $this->apiRoot
131 )));
132
133 return rest_do_request($request)->get_data();
134 }
135
136 /**
137 * Retrieve a list of donation forms to populate the form filter dropdown
138 *
139 * @since 2.20.0
140 * @return array
141 */
142 private function getForms()
143 {
144 $queryParameters = [
145 'page' => 1,
146 'perPage' => 50,
147 'status' => 'any'
148 ];
149
150 $request = WP_REST_Request::from_url(esc_url_raw(add_query_arg(
151 $queryParameters,
152 rest_url('give-api/v2/admin/forms')
153 )));
154
155 $data = rest_do_request($request)->get_data();
156
157 $options = array_map(static function ($form) {
158 return [
159 'value' => $form['id'],
160 'text' => $form['name'],
161 ];
162 }, $data['items']);
163
164 return array_merge([
165 [
166 'value' => '0',
167 'text' => 'Any',
168 ]
169 ], $options);
170 }
171 }
172