PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.5.1
GiveWP – Donation Plugin and Fundraising Platform v3.5.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 / Donors / ServiceProvider.php
give / src / Donors Last commit date
Actions 2 years ago CustomFields 2 years ago DataTransferObjects 3 years ago Endpoints 2 years ago Exceptions 2 years ago Factories 3 years ago ListTable 3 years ago Models 2 years ago Repositories 2 years ago ValueObjects 3 years ago resources 2 years ago DonorsAdminPage.php 3 years ago ServiceProvider.php 2 years ago
ServiceProvider.php
97 lines
1 <?php
2
3 namespace Give\Donors;
4
5 use Give\DonationForms\Models\DonationForm;
6 use Give\Donors\Actions\CreateUserFromDonor;
7 use Give\Donors\Actions\SendDonorUserRegistrationNotification;
8 use Give\Donors\CustomFields\Controllers\DonorDetailsController;
9 use Give\Donors\Exceptions\FailedDonorUserCreationException;
10 use Give\Donors\ListTable\DonorsListTable;
11 use Give\Donors\Models\Donor;
12 use Give\Donors\Repositories\DonorRepositoryProxy;
13 use Give\Helpers\Hooks;
14 use Give\Log\Log;
15 use Give\ServiceProviders\ServiceProvider as ServiceProviderInterface;
16 use Give_Donor as LegacyDonor;
17
18 /**
19 * @since 2.19.6
20 */
21 class ServiceProvider implements ServiceProviderInterface
22 {
23
24 /**
25 * @inheritDoc
26 */
27 public function register()
28 {
29 give()->singleton('donors', DonorRepositoryProxy::class);
30 give()->singleton(DonorsListTable::class, function () {
31 $listTable = new DonorsListTable();
32 Hooks::doAction('givewp_donors_list_table', $listTable);
33
34 return $listTable;
35 });
36 }
37
38 /**
39 * @inheritDoc
40 */
41 public function boot()
42 {
43 $userId = get_current_user_id();
44 $showLegacy = get_user_meta($userId, '_give_donors_archive_show_legacy', true);
45 // only register new admin page if user hasn't chosen to use the old one
46 if (empty($showLegacy)) {
47 Hooks::addAction('admin_menu', DonorsAdminPage::class, 'registerMenuItem', 30);
48
49 if (DonorsAdminPage::isShowing()) {
50 Hooks::addAction('admin_enqueue_scripts', DonorsAdminPage::class, 'loadScripts');
51 }
52 } elseif (DonorsAdminPage::isShowing()) {
53 Hooks::addAction('admin_head', DonorsAdminPage::class, 'renderReactSwitch');
54 }
55
56 $this->addCustomFieldsToDonorDetails();
57 $this->enforceDonorsAsUsers();
58 }
59
60 /**
61 * @since 3.0.0
62 */
63 private function addCustomFieldsToDonorDetails()
64 {
65 add_action('give_donor_after_tables', static function (LegacyDonor $legacyDonor) {
66 /** @var Donor $donor */
67 $donor = Donor::find($legacyDonor->id);
68
69 echo (new DonorDetailsController())->show($donor);
70 });
71 }
72
73 /**
74 * Hook into the donor creation process to ensure that donors are also users.
75 * @since 3.2.0
76 */
77 protected function enforceDonorsAsUsers()
78 {
79 add_action('givewp_donate_controller_donor_created', function (Donor $donor, $formId) {
80 if (!$donor->userId) {
81 try {
82 give(CreateUserFromDonor::class)->__invoke($donor);
83
84 if (DonationForm::find($formId)->settings->registrationNotification) {
85 give(SendDonorUserRegistrationNotification::class)->__invoke($donor);
86 }
87 } catch (FailedDonorUserCreationException $e) {
88 Log::error($e->getLogMessage(), [
89 'donor' => $donor,
90 'previous' => $e->getPrevious(),
91 ]);
92 }
93 }
94 }, 10, 2);
95 }
96 }
97