PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.3.1
GiveWP – Donation Plugin and Fundraising Platform v4.3.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 Controllers 1 year ago CustomFields 1 year ago DataTransferObjects 1 year ago Endpoints 1 year ago Factories 1 year ago LegacyListeners 1 year ago ListTable 1 year ago Listeners 1 year ago Migrations 1 year ago Models 1 year ago Properties 1 year 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
178 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 'campaigns' => $this->getCampaigns(),
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', 'build/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 4.0.0 replace formselect with campaigns.
124 * @since 2.20.0
125 * @return array
126 */
127 private function getCampaigns()
128 {
129 $options = DB::table('give_campaigns')
130 ->select(
131 ['id', 'value'],
132 ['campaign_title', 'text']
133 )
134 ->getAll(ARRAY_A);
135
136 return array_merge(
137 [
138 [
139 'value' => '0',
140 'text' => __('Any', 'give'),
141 ]
142 ],
143 $options
144 );
145 }
146
147 /**
148 * Retrieve a list of dismissed recommendations.
149 *
150 * @since 2.27.1
151 *
152 * @return array
153 */
154 private function getDismissedRecommendations(): array
155 {
156 $dismissedRecommendations = [];
157
158 $recurringAddonIsActive = Utils::isPluginActive('give-recurring/give-recurring.php');
159 $feeRecoveryAddonIsActive = Utils::isPluginActive('give-fee-recovery/give-fee-recovery.php');
160 $designatedFundsAddonIsActive = Utils::isPluginActive('give-funds/give-funds.php');
161
162 $optionNames = [
163 'givewp_donations_recurring_recommendation_dismissed' => $recurringAddonIsActive,
164 'givewp_donations_fee_recovery_recommendation_dismissed' => $feeRecoveryAddonIsActive,
165 'givewp_donations_designated_funds_recommendation_dismissed' => $designatedFundsAddonIsActive,
166 ];
167
168 foreach ($optionNames as $optionName => $isActive) {
169 $dismissed = get_option($optionName, false);
170 if ($dismissed || $isActive) {
171 $dismissedRecommendations[] = $optionName;
172 }
173 }
174
175 return $dismissedRecommendations;
176 }
177 }
178