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