PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.25.3
GiveWP – Donation Plugin and Fundraising Platform v2.25.3
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
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
155 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 );
56 }
57
58 /**
59 * @since 2.20.0
60 */
61 public function loadScripts()
62 {
63 $data = [
64 'apiRoot' => $this->apiRoot,
65 'apiNonce' => $this->apiNonce,
66 'forms' => $this->getForms(),
67 'table' => give(DonorsListTable::class)->toArray(),
68 'adminUrl' => $this->adminUrl,
69 ];
70
71 EnqueueScript::make('give-admin-donors', 'assets/dist/js/give-admin-donors.js')
72 ->loadInFooter()
73 ->registerTranslations()
74 ->registerLocalizeData('GiveDonors', $data)->enqueue();
75
76 wp_enqueue_style(
77 'give-admin-ui-font',
78 'https://fonts.googleapis.com/css2?family=Open+Sans:wght@400..700&display=swap',
79 [],
80 null
81 );
82 }
83
84 /**
85 * Preload initial table data
86 * @since 2.20.0
87 */
88 public function getForms(){
89 $options = DB::table('posts')
90 ->select(
91 ['ID', 'value'],
92 ['post_title', 'text']
93 )
94 ->where('post_type', 'give_forms')
95 ->whereIn('post_status', ['publish', 'draft', 'pending', 'private'])
96 ->getAll(ARRAY_A);
97
98 return array_merge([
99 [
100 'value' => '0',
101 'text' => 'Any',
102 ]
103 ], $options);
104 }
105
106 /**
107 * Render admin page container
108 * @since 2.20.0
109 */
110 public function render()
111 {
112 echo '<div id="give-admin-donors-root"></div>';
113 }
114
115 /**
116 * Display a button on the old donation forms table that switches to the React view
117 *
118 * @since 2.20.0
119 */
120 public function renderReactSwitch()
121 {
122 ?>
123 <script type="text/javascript">
124 function showReactTable () {
125 fetch( '<?php echo esc_url_raw(rest_url('give-api/v2/admin/donors/view?isLegacy=0')) ?>', {
126 method: 'GET',
127 headers: {
128 ['X-WP-Nonce']: '<?php echo wp_create_nonce('wp_rest') ?>'
129 }
130 })
131 .then((res) => {
132 window.location.reload();
133 });
134 }
135 jQuery( function() {
136 jQuery(jQuery(".wrap .wp-header-end")).before(
137 '<button class="page-title-action" onclick="showReactTable()">Switch to New View</button>'
138 );
139 });
140 </script>
141 <?php
142 }
143
144 /**
145 * Helper function to determine if current page is Give Donors admin page
146 * @since 2.20.0
147 *
148 * @return bool
149 */
150 public static function isShowing()
151 {
152 return isset($_GET['page']) && $_GET['page'] === 'give-donors' && !isset($_GET['id']);
153 }
154 }
155