PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.24.2
GiveWP – Donation Plugin and Fundraising Platform v2.24.2
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
DataTransferObjects 3 years ago Endpoints 3 years ago Exceptions 4 years ago Factories 3 years ago ListTable 3 years ago Models 3 years ago Repositories 3 years ago ValueObjects 3 years ago resources 3 years ago DonorsAdminPage.php 3 years ago ServiceProvider.php 3 years ago
DonorsAdminPage.php
156 lines
1 <?php
2
3 namespace Give\Donors;
4
5 use Give\Donors\ListTable\DonorsListTable;
6 use Give\Framework\Database\DB;
7 use Give\Helpers\EnqueueScript;
8
9 class DonorsAdminPage
10 {
11 /**
12 * Root URL for this page's endpoints
13 * @var string
14 */
15 private $apiRoot;
16
17 /**
18 * Nonce for authentication with WP REST API
19 * @var string
20 */
21 private $apiNonce;
22
23 /**
24 * @var string
25 */
26 private $adminUrl;
27
28 /**
29 * @since 2.20.0
30 */
31 public function __construct()
32 {
33 $this->apiRoot = esc_url_raw(rest_url('give-api/v2/admin/donors'));
34 $this->apiNonce = wp_create_nonce('wp_rest');
35 $this->adminUrl = admin_url();
36 }
37
38 /**
39 * @since 2.20.0
40 */
41 public function registerMenuItem()
42 {
43 remove_submenu_page(
44 'edit.php?post_type=give_forms',
45 'give-donors'
46 );
47
48 add_submenu_page(
49 'edit.php?post_type=give_forms',
50 esc_html__('Donors', 'give'),
51 esc_html__('Donors', 'give'),
52 'edit_give_forms',
53 'give-donors',
54 [$this, 'render'],
55 5
56 );
57 }
58
59 /**
60 * @since 2.20.0
61 */
62 public function loadScripts()
63 {
64 $data = [
65 'apiRoot' => $this->apiRoot,
66 'apiNonce' => $this->apiNonce,
67 'forms' => $this->getForms(),
68 'table' => give(DonorsListTable::class)->toArray(),
69 'adminUrl' => $this->adminUrl,
70 ];
71
72 EnqueueScript::make('give-admin-donors', 'assets/dist/js/give-admin-donors.js')
73 ->loadInFooter()
74 ->registerTranslations()
75 ->registerLocalizeData('GiveDonors', $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 * Preload initial table data
87 * @since 2.20.0
88 */
89 public function getForms(){
90 $options = DB::table('posts')
91 ->select(
92 ['ID', 'value'],
93 ['post_title', 'text']
94 )
95 ->where('post_type', 'give_forms')
96 ->whereIn('post_status', ['publish', 'draft', 'pending', 'private'])
97 ->getAll(ARRAY_A);
98
99 return array_merge([
100 [
101 'value' => '0',
102 'text' => 'Any',
103 ]
104 ], $options);
105 }
106
107 /**
108 * Render admin page container
109 * @since 2.20.0
110 */
111 public function render()
112 {
113 echo '<div id="give-admin-donors-root"></div>';
114 }
115
116 /**
117 * Display a button on the old donation forms table that switches to the React view
118 *
119 * @since 2.20.0
120 */
121 public function renderReactSwitch()
122 {
123 ?>
124 <script type="text/javascript">
125 function showReactTable () {
126 fetch( '<?php echo esc_url_raw(rest_url('give-api/v2/admin/donors/view?isLegacy=0')) ?>', {
127 method: 'GET',
128 headers: {
129 ['X-WP-Nonce']: '<?php echo wp_create_nonce('wp_rest') ?>'
130 }
131 })
132 .then((res) => {
133 window.location.reload();
134 });
135 }
136 jQuery( function() {
137 jQuery(jQuery(".wrap .wp-header-end")).before(
138 '<button class="page-title-action" onclick="showReactTable()">Switch to New View</button>'
139 );
140 });
141 </script>
142 <?php
143 }
144
145 /**
146 * Helper function to determine if current page is Give Donors admin page
147 * @since 2.20.0
148 *
149 * @return bool
150 */
151 public static function isShowing()
152 {
153 return isset($_GET['page']) && $_GET['page'] === 'give-donors' && !isset($_GET['id']);
154 }
155 }
156