PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.12.0
GiveWP – Donation Plugin and Fundraising Platform v4.12.0
4.16.4 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 8 months ago CustomFields 1 year ago DataTransferObjects 1 year ago Endpoints 8 months ago Exceptions 2 years ago Factories 1 year ago ListTable 8 months ago Migrations 1 year ago Models 1 year ago Repositories 8 months ago ValueObjects 9 months ago ViewModels 10 months ago resources 8 months ago DonorStatisticsQuery.php 9 months ago DonorsAdminPage.php 11 months ago DonorsQuery.php 10 months 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