PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.19.4
GiveWP – Donation Plugin and Fundraising Platform v3.19.4
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 CustomFields 2 years ago DataTransferObjects 2 years ago Endpoints 2 years ago Factories 3 years ago LegacyListeners 3 years ago ListTable 3 years ago Migrations 1 year ago Models 2 years ago Properties 3 years ago Repositories 1 year ago ValueObjects 1 year ago resources 1 year ago DonationsAdminPage.php 1 year ago ServiceProvider.php 1 year ago
DonationsAdminPage.php
176 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 wp_enqueue_style('givewp-design-system-foundation');
94 }
95
96 /**
97 * Render admin page container
98 * @since 2.20.0
99 */
100 public function render()
101 {
102 if (isset($_GET['view']) && 'view-payment-details' === $_GET['view']) {
103 include GIVE_PLUGIN_DIR . 'includes/admin/payments/view-payment-details.php';
104 } else {
105 echo '<div id="give-admin-donations-root"></div>';
106 }
107 }
108
109 /**
110 * Helper function to determine if current page is Give Donors admin page
111 * @since 2.20.0
112 *
113 * @return bool
114 */
115 public static function isShowing()
116 {
117 return isset($_GET['page']) && $_GET['page'] === 'give-payment-history' && ! isset($_GET['view']);
118 }
119
120 /**
121 * Retrieve a list of donation forms to populate the form filter dropdown
122 *
123 * @since 2.20.0
124 * @return array
125 */
126 private function getForms()
127 {
128 $options = DB::table('posts')
129 ->select(
130 ['ID', 'value'],
131 ['post_title', 'text']
132 )
133 ->where('post_type', 'give_forms')
134 ->whereIn('post_status', ['publish', 'draft', 'pending', 'private'])
135 ->getAll(ARRAY_A);
136
137 return array_merge([
138 [
139 'value' => '0',
140 'text' => __('Any', 'give'),
141 ],
142 ], $options);
143 }
144
145 /**
146 * Retrieve a list of dismissed recommendations.
147 *
148 * @since 2.27.1
149 *
150 * @return array
151 */
152 private function getDismissedRecommendations(): array
153 {
154 $dismissedRecommendations = [];
155
156 $recurringAddonIsActive = Utils::isPluginActive('give-recurring/give-recurring.php');
157 $feeRecoveryAddonIsActive = Utils::isPluginActive('give-fee-recovery/give-fee-recovery.php');
158 $designatedFundsAddonIsActive = Utils::isPluginActive('give-funds/give-funds.php');
159
160 $optionNames = [
161 'givewp_donations_recurring_recommendation_dismissed' => $recurringAddonIsActive,
162 'givewp_donations_fee_recovery_recommendation_dismissed' => $feeRecoveryAddonIsActive,
163 'givewp_donations_designated_funds_recommendation_dismissed' => $designatedFundsAddonIsActive,
164 ];
165
166 foreach ($optionNames as $optionName => $isActive) {
167 $dismissed = get_option($optionName, false);
168 if ($dismissed || $isActive) {
169 $dismissedRecommendations[] = $optionName;
170 }
171 }
172
173 return $dismissedRecommendations;
174 }
175 }
176