PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.14.2
GiveWP – Donation Plugin and Fundraising Platform v3.14.2
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 DonationQuery.php 1 year ago ServiceProvider.php 2 years ago SubscriptionQuery.php 2 years ago
ServiceProvider.php
203 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
72 Hooks::addAction('givewp_donation_form_created', StoreBackwardsCompatibleFormMeta::class);
73 Hooks::addAction('givewp_donation_form_updated', StoreBackwardsCompatibleFormMeta::class);
74
75 $this->dispatchDonateControllerListeners();
76
77 give(MigrationsRegister::class)->addMigrations([
78 CleanMultipleSlashesOnDB::class,
79 RemoveDuplicateMeta::class,
80 UpdateDonationLevelsSchema::class,
81 ]);
82 }
83
84 /**
85 * @since 3.0.0
86 */
87 private function registerRoutes()
88 {
89 /**
90 * @since 3.0.0
91 */
92 Route::post('donate', DonateRoute::class);
93
94 /**
95 * @since 3.0.0
96 */
97 Route::post('validate', ValidationRoute::class);
98
99 /**
100 * @since 3.0.0
101 */
102 Route::post('authenticate', AuthenticationRoute::class);
103
104 /**
105 * @since 3.0.0
106 */
107 Route::get('donation-form-view', static function (array $request) {
108 ini_set('display_errors', 0);
109 $routeData = DonationFormViewRouteData::fromRequest($request);
110
111 return give(DonationFormViewController::class)->show($routeData);
112 });
113
114 /**
115 * @since 3.0.0
116 */
117 Route::get('donation-confirmation-receipt-view', static function (array $request) {
118 ini_set('display_errors', 0);
119 $routeData = DonationConfirmationReceiptViewRouteData::fromRequest($request);
120
121 return give(DonationConfirmationReceiptViewController::class)->show($routeData);
122 });
123
124 /**
125 * @since 3.0.0
126 */
127 Route::post('donation-form-view-preview', static function () {
128 ini_set('display_errors', 0);
129 $requestData = (new SanitizeDonationFormPreviewRequest())($_REQUEST);
130 $routeData = DonationFormPreviewRouteData::fromRequest($requestData);
131
132 return give(DonationFormViewController::class)->preview($routeData);
133 });
134 }
135
136 /**
137 * @since 3.0.0
138 */
139 private function dispatchDonateControllerListeners()
140 {
141 Hooks::addAction(
142 'givewp_donate_controller_donation_created',
143 DispatchDonateControllerDonationCreatedListeners::class,
144 '__invoke',
145 10,
146 3
147 );
148
149 Hooks::addAction(
150 'givewp_donate_controller_subscription_created',
151 DispatchDonateControllerSubscriptionCreatedListeners::class,
152 '__invoke',
153 10,
154 3
155 );
156 }
157
158 /**
159 * @since 3.0.0
160 */
161 private function registerFormDesigns()
162 {
163 add_action('givewp_register_form_design', static function (FormDesignRegistrar $formDesignRegistrar) {
164 try {
165 $formDesignRegistrar->registerDesign(ClassicFormDesign::class);
166 $formDesignRegistrar->registerDesign(MultiStepFormDesign::class);
167 $formDesignRegistrar->registerDesign(TwoPanelStepsFormLayout::class);
168 } catch (Exception $e) {
169 Log::error('Error registering form designs', [
170 'message' => $e->getMessage(),
171 'trace' => $e->getTraceAsString()
172 ]);
173 }
174 });
175 }
176
177 /**
178 * @since 3.0.0
179 */
180 protected function registerSingleFormPage()
181 {
182 Hooks::addFilter('template_include', TemplateHandler::class, 'handle', 11);
183 }
184
185 /**
186 * @since 3.0.0
187 */
188 protected function registerShortcodes()
189 {
190 Hooks::addFilter('givewp_form_shortcode_output', GiveFormShortcode::class, '__invoke', 10, 2);
191 }
192
193 /**
194 * @since 3.0.0
195 */
196 protected function registerPostStatus()
197 {
198 add_action('init', static function () {
199 register_post_status(DonationFormStatus::UPGRADED);
200 });
201 }
202 }
203