PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.6.1
GiveWP – Donation Plugin and Fundraising Platform v4.6.1
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 / DonorsAdminPage.php
give / src / Donors Last commit date
Actions 11 months ago CustomFields 1 year ago DataTransferObjects 1 year ago Endpoints 1 year ago Exceptions 2 years ago Factories 1 year ago ListTable 1 year ago Migrations 1 year ago Models 1 year ago Repositories 1 year ago ValueObjects 1 year ago ViewModels 11 months ago resources 11 months ago DonorStatisticsQuery.php 1 year ago DonorsAdminPage.php 11 months ago DonorsQuery.php 1 year ago ServiceProvider.php 11 months ago
DonorsAdminPage.php
114 lines
1 <?php
2
3 namespace Give\Donors;
4
5 use Give\Donors\Actions\LoadDonorDetailsAssets;
6 use Give\Donors\Actions\LoadDonorsListTableAssets;
7 use Give\Donors\Models\Donor;
8
9 class DonorsAdminPage
10 {
11 /**
12 * @since 2.20.0
13 */
14 public function registerMenuItem()
15 {
16 remove_submenu_page(
17 'edit.php?post_type=give_forms',
18 'give-donors'
19 );
20
21 add_submenu_page(
22 'edit.php?post_type=give_forms',
23 esc_html__('Donors', 'give'),
24 esc_html__('Donors', 'give'),
25 'edit_give_forms',
26 'give-donors',
27 [$this, 'render']
28 );
29 }
30
31 /**
32 * Render admin page container
33 *
34 * @since 4.4.0 Add new details page view
35 * @since 2.20.0
36 */
37 public function render()
38 {
39 if (self::isShowingDetailsPage()) {
40 $donor = Donor::find(absint($_GET['id']));
41
42 if ( ! $donor) {
43 wp_die(__('Donor not found', 'give'), 404);
44 }
45
46 give(LoadDonorDetailsAssets::class)();
47 } elseif (self::isShowing()) {
48 give(LoadDonorsListTableAssets::class)();
49 }
50
51 echo '<div id="give-admin-donors-root"></div>';
52 }
53
54 /**
55 * Display a button on the old donation forms table that switches to the React view
56 *
57 * @since 2.20.0
58 */
59 public function renderReactSwitch()
60 {
61 ?>
62 <script type="text/javascript">
63 function showReactTable() {
64 fetch('<?php echo esc_url_raw(rest_url('give-api/v2/admin/donors/view?isLegacy=0')) ?>', {
65 method: 'GET',
66 headers: {
67 ['X-WP-Nonce']: '<?php echo wp_create_nonce('wp_rest') ?>',
68 },
69 })
70 .then((res) => {
71 window.location.reload();
72 });
73 }
74
75 jQuery(function () {
76 jQuery(jQuery(".wrap .wp-header-end")).before(
77 '<button class="page-title-action" onclick="showReactTable()"><?php _e('Switch to New View', 'give') ?></button>',
78 );
79 });
80 </script>
81 <?php
82 }
83
84 /**
85 * Helper function to determine if current page is Give Donors admin page
86 * @since 2.20.0
87 *
88 * @return bool
89 */
90 public static function isShowing()
91 {
92 return isset($_GET['page']) && $_GET['page'] === 'give-donors' && ! isset($_GET['id']);
93 }
94
95
96 /**
97 * @since 4.4.0
98 */
99 public static function isShowingDetailsPage(): bool
100 {
101 return isset($_GET['id'], $_GET['page']) && 'give-donors' === $_GET['page'];
102 }
103
104 /**
105 * Get the URL for the details page
106 *
107 * @since 4.4.0
108 */
109 public static function getDetailsPageUrl(int $donorId): string
110 {
111 return admin_url("edit.php?post_type=give_forms&page=give-donors&id=$donorId");
112 }
113 }
114