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