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