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 / DonationForms / ServiceProvider.php
give / src / DonationForms Last commit date
Actions 2 years ago Blocks 2 years ago Controllers 2 years ago DataTransferObjects 2 years ago Exceptions 2 years ago Factories 2 years ago FormDesigns 2 years ago FormPage 2 years ago Listeners 2 years ago Migrations 2 years ago Models 2 years ago Properties 2 years ago Repositories 2 years ago Routes 2 years ago Rules 2 years ago Shortcodes 2 years ago V2 2 years ago ValueObjects 2 years ago ViewModels 2 years ago resources 2 years ago ServiceProvider.php 2 years ago
ServiceProvider.php
199 lines
1 <?php
2
3 namespace Give\DonationForms;
4
5 use Exception;
6 use Give\DonationForms\Actions\DispatchDonateControllerDonationCreatedListeners;
7 use Give\DonationForms\Actions\DispatchDonateControllerSubscriptionCreatedListeners;
8 use Give\DonationForms\Actions\SanitizeDonationFormPreviewRequest;
9 use Give\DonationForms\Actions\StoreBackwardsCompatibleFormMeta;
10 use Give\DonationForms\Blocks\DonationFormBlock\Block as DonationFormBlock;
11 use Give\DonationForms\Controllers\DonationConfirmationReceiptViewController;
12 use Give\DonationForms\Controllers\DonationFormViewController;
13 use Give\DonationForms\DataTransferObjects\DonationConfirmationReceiptViewRouteData;
14 use Give\DonationForms\DataTransferObjects\DonationFormPreviewRouteData;
15 use Give\DonationForms\DataTransferObjects\DonationFormViewRouteData;
16 use Give\DonationForms\FormDesigns\ClassicFormDesign\ClassicFormDesign;
17 use Give\DonationForms\FormDesigns\MultiStepFormDesign\MultiStepFormDesign;
18 use Give\DonationForms\FormPage\TemplateHandler;
19 use Give\DonationForms\Migrations\CleanMultipleSlashesOnDB;
20 use Give\DonationForms\Migrations\RemoveDuplicateMeta;
21 use Give\DonationForms\Repositories\DonationFormRepository;
22 use Give\DonationForms\Routes\AuthenticationRoute;
23 use Give\DonationForms\Routes\DonateRoute;
24 use Give\DonationForms\Routes\ValidationRoute;
25 use Give\DonationForms\Shortcodes\GiveFormShortcode;
26 use Give\DonationForms\ValueObjects\DonationFormStatus;
27 use Give\Framework\FormDesigns\Registrars\FormDesignRegistrar;
28 use Give\Framework\Migrations\MigrationsRegister;
29 use Give\Framework\Routes\Route;
30 use Give\Helpers\Hooks;
31 use Give\Log\Log;
32 use Give\ServiceProviders\ServiceProvider as ServiceProviderInterface;
33
34
35 class ServiceProvider implements ServiceProviderInterface
36 {
37
38 /*
39 * @inheritdoc
40 */
41 public function register()
42 {
43 give()->singleton('forms', DonationFormRepository::class);
44
45 give()->singleton(TemplateHandler::class, function () {
46 global $post;
47
48 return new TemplateHandler(
49 $post,
50 GIVE_PLUGIN_DIR . 'src/DonationForms/FormPage/templates/form-single.php'
51 );
52 });
53 }
54
55 /*
56 * @inheritdoc
57 */
58 public function boot()
59 {
60 if (function_exists('register_block_type')) {
61 Hooks::addAction('init', DonationFormBlock::class, 'register');
62 }
63
64 $this->registerRoutes();
65 $this->registerFormDesigns();
66 $this->registerSingleFormPage();
67 $this->registerShortcodes();
68 $this->registerPostStatus();
69
70 Hooks::addAction('givewp_donation_form_created', StoreBackwardsCompatibleFormMeta::class);
71 Hooks::addAction('givewp_donation_form_updated', StoreBackwardsCompatibleFormMeta::class);
72
73 $this->dispatchDonateControllerListeners();
74
75 give(MigrationsRegister::class)->addMigrations([
76 CleanMultipleSlashesOnDB::class,
77 RemoveDuplicateMeta::class,
78 ]);
79 }
80
81 /**
82 * @since 3.0.0
83 */
84 private function registerRoutes()
85 {
86 /**
87 * @since 3.0.0
88 */
89 Route::post('donate', DonateRoute::class);
90
91 /**
92 * @since 3.0.0
93 */
94 Route::post('validate', ValidationRoute::class);
95
96 /**
97 * @since 3.0.0
98 */
99 Route::post('authenticate', AuthenticationRoute::class);
100
101 /**
102 * @since 3.0.0
103 */
104 Route::get('donation-form-view', static function (array $request) {
105 ini_set('display_errors', 0);
106 $routeData = DonationFormViewRouteData::fromRequest($request);
107
108 return give(DonationFormViewController::class)->show($routeData);
109 });
110
111 /**
112 * @since 3.0.0
113 */
114 Route::get('donation-confirmation-receipt-view', static function (array $request) {
115 ini_set('display_errors', 0);
116 $routeData = DonationConfirmationReceiptViewRouteData::fromRequest($request);
117
118 return give(DonationConfirmationReceiptViewController::class)->show($routeData);
119 });
120
121 /**
122 * @since 3.0.0
123 */
124 Route::post('donation-form-view-preview', static function () {
125 ini_set('display_errors', 0);
126 $requestData = (new SanitizeDonationFormPreviewRequest())($_REQUEST);
127 $routeData = DonationFormPreviewRouteData::fromRequest($requestData);
128
129 return give(DonationFormViewController::class)->preview($routeData);
130 });
131 }
132
133 /**
134 * @since 3.0.0
135 */
136 private function dispatchDonateControllerListeners()
137 {
138 Hooks::addAction(
139 'givewp_donate_controller_donation_created',
140 DispatchDonateControllerDonationCreatedListeners::class,
141 '__invoke',
142 10,
143 3
144 );
145
146 Hooks::addAction(
147 'givewp_donate_controller_subscription_created',
148 DispatchDonateControllerSubscriptionCreatedListeners::class,
149 '__invoke',
150 10,
151 3
152 );
153 }
154
155 /**
156 * @since 3.0.0
157 */
158 private function registerFormDesigns()
159 {
160 add_action('givewp_register_form_design', static function (FormDesignRegistrar $formDesignRegistrar) {
161 try {
162 $formDesignRegistrar->registerDesign(ClassicFormDesign::class);
163 $formDesignRegistrar->registerDesign(MultiStepFormDesign::class);
164 } catch (Exception $e) {
165 Log::error('Error registering form designs', [
166 'message' => $e->getMessage(),
167 'trace' => $e->getTraceAsString()
168 ]);
169 }
170 });
171 }
172
173 /**
174 * @since 3.0.0
175 */
176 protected function registerSingleFormPage()
177 {
178 Hooks::addFilter('template_include', TemplateHandler::class, 'handle', 11);
179 }
180
181 /**
182 * @since 3.0.0
183 */
184 protected function registerShortcodes()
185 {
186 Hooks::addFilter('givewp_form_shortcode_output', GiveFormShortcode::class, '__invoke', 10, 2);
187 }
188
189 /**
190 * @since 3.0.0
191 */
192 protected function registerPostStatus()
193 {
194 add_action('init', static function () {
195 register_post_status(DonationFormStatus::UPGRADED);
196 });
197 }
198 }
199