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