PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.27.1
GiveWP – Donation Plugin and Fundraising Platform v2.27.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 / Donations / DonationsAdminPage.php
give / src / Donations Last commit date
Actions 4 years ago DataTransferObjects 3 years ago Endpoints 3 years ago Factories 3 years ago LegacyListeners 3 years ago ListTable 3 years ago Migrations 3 years ago Models 3 years ago Properties 3 years ago Repositories 3 years ago ValueObjects 3 years ago resources 3 years ago DonationsAdminPage.php 3 years ago ServiceProvider.php 3 years ago
DonationsAdminPage.php
174 lines
1 <?php
2
3 namespace Give\Donations;
4
5 use Give\Donations\ListTable\DonationsListTable;
6 use Give\Framework\Database\DB;
7 use Give\Helpers\EnqueueScript;
8 use Give\Helpers\Utils;
9
10 class DonationsAdminPage
11 {
12 /**
13 * @var string
14 */
15 private $apiRoot;
16
17 /**
18 * @var string
19 */
20 private $apiNonce;
21
22 /**
23 * @var string
24 */
25 private $adminUrl;
26
27 public function __construct()
28 {
29 $this->apiRoot = esc_url_raw(rest_url('give-api/v2/admin/donations'));
30 $this->apiNonce = wp_create_nonce('wp_rest');
31 $this->adminUrl = admin_url();
32 }
33
34 /**
35 * @since 2.20.0
36 */
37 public function registerMenuItem()
38 {
39 remove_submenu_page(
40 'edit.php?post_type=give_forms',
41 'give-payment-history'
42 );
43
44 remove_action(
45 'give_forms_page_give-payment-history',
46 'give_payment_history_page'
47 );
48
49 add_submenu_page(
50 'edit.php?post_type=give_forms',
51 esc_html__('Donations', 'give'),
52 esc_html__('Donations', 'give'),
53 'edit_give_forms',
54 'give-payment-history',
55 [$this, 'render']
56 );
57 }
58
59 /**
60 * @since 2.27.1 Add dismissed recommendations
61 * @since 2.27.0 Adds "addonsBulkActions" to the GiveDonations object
62 * @since 2.24.0 Add ListTable columns
63 * @since 2.20.0
64 * @since 2.21.2 Localized the admin URL as a base for URL concatenation.
65 */
66 public function loadScripts()
67 {
68 $data = [
69 'apiRoot' => $this->apiRoot,
70 'apiNonce' => $this->apiNonce,
71 'forms' => $this->getForms(),
72 'table' => give(DonationsListTable::class)->toArray(),
73 'adminUrl' => $this->adminUrl,
74 'paymentMode' => give_is_test_mode(),
75 'manualDonations' => Utils::isPluginActive('give-manual-donations/give-manual-donations.php'),
76 'pluginUrl' => GIVE_PLUGIN_URL,
77 'dismissedRecommendations' => $this->getDismissedRecommendations(),
78 'addonsBulkActions' => [],
79 ];
80
81 EnqueueScript::make('give-admin-donations', 'assets/dist/js/give-admin-donations.js')
82 ->loadInFooter()
83 ->registerTranslations()
84 ->registerLocalizeData('GiveDonations', $data)->enqueue();
85
86 wp_enqueue_style(
87 'give-admin-ui-font',
88 'https://fonts.googleapis.com/css2?family=Open+Sans:wght@400..700&display=swap',
89 [],
90 null
91 );
92 }
93
94 /**
95 * Render admin page container
96 * @since 2.20.0
97 */
98 public function render()
99 {
100 if (isset($_GET['view']) && 'view-payment-details' === $_GET['view']) {
101 include GIVE_PLUGIN_DIR . 'includes/admin/payments/view-payment-details.php';
102 } else {
103 echo '<div id="give-admin-donations-root"></div>';
104 }
105 }
106
107 /**
108 * Helper function to determine if current page is Give Donors admin page
109 * @since 2.20.0
110 *
111 * @return bool
112 */
113 public static function isShowing()
114 {
115 return isset($_GET['page']) && $_GET['page'] === 'give-payment-history' && !isset($_GET['view']);
116 }
117
118 /**
119 * Retrieve a list of donation forms to populate the form filter dropdown
120 *
121 * @since 2.20.0
122 * @return array
123 */
124 private function getForms()
125 {
126 $options = DB::table('posts')
127 ->select(
128 ['ID', 'value'],
129 ['post_title', 'text']
130 )
131 ->where('post_type', 'give_forms')
132 ->whereIn('post_status', ['publish', 'draft', 'pending', 'private'])
133 ->getAll(ARRAY_A);
134
135 return array_merge([
136 [
137 'value' => '0',
138 'text' => 'Any',
139 ],
140 ], $options);
141 }
142
143 /**
144 * Retrieve a list of dismissed recommendations.
145 *
146 * @since 2.27.1
147 *
148 * @return array
149 */
150 private function getDismissedRecommendations(): array
151 {
152 $dismissedRecommendations = [];
153
154 $recurringAddonIsActive = Utils::isPluginActive('give-recurring/give-recurring.php');
155 $feeRecoveryAddonIsActive = Utils::isPluginActive('give-fee-recovery/give-fee-recovery.php');
156 $designatedFundsAddonIsActive = Utils::isPluginActive('give-funds/give-funds.php');
157
158 $optionNames = [
159 'givewp_donations_recurring_recommendation_dismissed' => $recurringAddonIsActive,
160 'givewp_donations_fee_recovery_recommendation_dismissed' => $feeRecoveryAddonIsActive,
161 'givewp_donations_designated_funds_recommendation_dismissed' => $designatedFundsAddonIsActive,
162 ];
163
164 foreach ($optionNames as $optionName => $isActive) {
165 $dismissed = get_option($optionName, false);
166 if ($dismissed || $isActive) {
167 $dismissedRecommendations[] = $optionName;
168 }
169 }
170
171 return $dismissedRecommendations;
172 }
173 }
174