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