PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.27.0
GiveWP – Donation Plugin and Fundraising Platform v2.27.0
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 / ServiceProvider.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
ServiceProvider.php
119 lines
1 <?php
2
3 namespace Give\Donations;
4
5 use Give\Donations\LegacyListeners\ClearDonationPostCache;
6 use Give\Donations\LegacyListeners\DispatchDonationNoteEmailNotification;
7 use Give\Donations\LegacyListeners\DispatchGiveInsertPayment;
8 use Give\Donations\LegacyListeners\DispatchGivePreInsertPayment;
9 use Give\Donations\LegacyListeners\DispatchGiveRecurringAddSubscriptionPaymentAndRecordPayment;
10 use Give\Donations\LegacyListeners\DispatchGiveUpdatePaymentStatus;
11 use Give\Donations\LegacyListeners\InsertSequentialId;
12 use Give\Donations\LegacyListeners\RemoveSequentialId;
13 use Give\Donations\LegacyListeners\UpdateDonorPaymentIds;
14 use Give\Donations\ListTable\DonationsListTable;
15 use Give\Donations\Migrations\AddMissingDonorIdToDonationComments;
16 use Give\Donations\Migrations\MoveDonationCommentToDonationMetaTable;
17 use Give\Donations\Migrations\SetAutomaticFormattingOption;
18 use Give\Donations\Models\Donation;
19 use Give\Donations\Repositories\DonationNotesRepository;
20 use Give\Donations\Repositories\DonationRepository;
21 use Give\Framework\Migrations\MigrationsRegister;
22 use Give\Helpers\Hooks;
23 use Give\ServiceProviders\ServiceProvider as ServiceProviderInterface;
24
25 class ServiceProvider implements ServiceProviderInterface
26 {
27 /**
28 * @inheritDoc
29 */
30 public function register()
31 {
32 give()->singleton('donations', DonationRepository::class);
33 give()->singleton('donationNotes', DonationNotesRepository::class);
34 give()->singleton(DonationsListTable::class, function () {
35 $listTable = new DonationsListTable();
36 Hooks::doAction('givewp_donations_list_table', $listTable);
37
38 return $listTable;
39 });
40 }
41
42 /**
43 * @inheritDoc
44 */
45 public function boot()
46 {
47 $this->bootLegacyListeners();
48 $this->registerDonationsAdminPage();
49
50 give(MigrationsRegister::class)->addMigrations([
51 AddMissingDonorIdToDonationComments::class,
52 SetAutomaticFormattingOption::class,
53 MoveDonationCommentToDonationMetaTable::class,
54 ]);
55 }
56
57 /**
58 * Legacy Listeners
59 * @since 2.25.0 Call ClearDonationPostCache on the "givewp_donation_updated" hook
60 * @since 2.24.0 Remove UpdateSequentialId from "givewp_donation_updated" action hook.
61 * @since 2.19.6
62 */
63 private function bootLegacyListeners()
64 {
65 Hooks::addAction('givewp_donation_creating', DispatchGivePreInsertPayment::class);
66
67 add_action('givewp_donation_created', static function (Donation $donation) {
68 (new InsertSequentialId())($donation);
69 (new DispatchGiveInsertPayment())($donation);
70 (new UpdateDonorPaymentIds())($donation);
71
72 if ($donation->subscriptionId && $donation->type->isRenewal()) {
73 (new DispatchGiveRecurringAddSubscriptionPaymentAndRecordPayment())($donation);
74 }
75
76 /**
77 * @notice
78 * Anytime we call give_update_payment_status the donor purchase_value and purchase_count get affected.
79 * We are doing this in the gateway api and in many other places.
80 * The listener below matches the functionality but the count seems to be overwritten elsewhere.
81 * Leaving this commented out until resolved or needed.
82 */
83 //Call::invoke(UpdateDonorPurchaseValueAndCount::class, $donation);
84 });
85
86 add_action('givewp_donation_updated', function (Donation $donation) {
87 (new ClearDonationPostCache())($donation);
88 (new DispatchGiveUpdatePaymentStatus())($donation);
89 });
90
91 Hooks::addAction('givewp_donation_deleted', RemoveSequentialId::class);
92
93 add_action('givewp_donation_note_created', static function ($donationNote) {
94 if ($donationNote->type->isDonor()) {
95 (new DispatchDonationNoteEmailNotification())($donationNote);
96 }
97 });
98 }
99
100 /**
101 * Donations Admin page
102 *
103 * @since 2.20.0
104 */
105 private function registerDonationsAdminPage()
106 {
107 $userId = get_current_user_id();
108 $showLegacy = get_user_meta($userId, '_give_donations_archive_show_legacy', true);
109 // only register new admin page if user hasn't chosen to use the old one
110 if (empty($showLegacy)) {
111 Hooks::addAction('admin_menu', DonationsAdminPage::class, 'registerMenuItem', 20);
112
113 if (DonationsAdminPage::isShowing()) {
114 Hooks::addAction('admin_enqueue_scripts', DonationsAdminPage::class, 'loadScripts');
115 }
116 }
117 }
118 }
119