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