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