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