PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.15.2
GiveWP – Donation Plugin and Fundraising Platform v4.15.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 / FormMigration / ServiceProvider.php
give / src / FormMigration Last commit date
Actions 8 months ago Commands 2 years ago Concerns 2 years ago Contracts 2 years ago Controllers 4 months ago DataTransferObjects 1 year ago Steps 1 year ago FormMetaDecorator.php 9 months ago Pipeline.php 2 years ago ServiceProvider.php 5 months ago StepProcessor.php 2 years ago functions.php 2 years ago
ServiceProvider.php
147 lines
1 <?php
2
3 namespace Give\FormMigration;
4
5 use Give\DonationForms\V2\Models\DonationForm as DonationFormV2;
6 use Give\FormMigration\Commands\MigrationCommand;
7 use Give\FormMigration\Commands\TransferCommand;
8 use Give\FormMigration\Controllers\MigrationController;
9 use Give\FormMigration\Controllers\TransferController;
10 use Give\FormMigration\DataTransferObjects\TransferOptions;
11 use Give\Framework\Permissions\Facades\UserPermissions;
12 use Give\ServiceProviders\ServiceProvider as ServiceProviderInterface;
13 use WP_CLI;
14 use WP_REST_Request;
15 use WP_REST_Server;
16
17 /**
18 * @since 3.0.0
19 */
20 class ServiceProvider implements ServiceProviderInterface
21 {
22 /**
23 * @inheritDoc
24 */
25 public function register()
26 {
27 give()->singleton(Pipeline::class, function () {
28 return new Pipeline([
29 Steps\MigrateMeta::class,
30 Steps\FormTitle::class,
31 Steps\FormTemplate\ClassicTemplateSettings::class,
32 Steps\FormTemplate\SequoiaTemplateSettings::class,
33 Steps\FormTemplate\LegacyTemplateSettings::class,
34 Steps\DonationOptions::class,
35 Steps\RecurringDonationOptions::class,
36 Steps\FormFields::class,
37 Steps\FormFields\LoginRegistration::class,
38 Steps\FormFields\CompanyDonations::class,
39 Steps\DonationGoal::class,
40 Steps\TermsAndConditions::class,
41 Steps\FormTaxonomies::class,
42 Steps\FormGrid::class,
43 Steps\FormFieldManager::class,
44 Steps\OfflineDonations::class,
45 Steps\PaymentGateways::class,
46 Steps\EmailSettings::class,
47 Steps\FormMeta::class,
48 Steps\PdfSettings::class,
49 Steps\FeeRecovery::class,
50 Steps\ConstantContact::class,
51 Steps\PerFormGateways::class,
52 Steps\Mailchimp::class,
53 Steps\FundsAndDesignations::class,
54 Steps\GiftAid::class,
55 Steps\FormFeaturedImage::class,
56 Steps\FormExcerpt::class,
57 Steps\ConvertKit::class,
58 Steps\ActiveCampaign::class,
59 Steps\DoubleTheDonation::class,
60 Steps\CurrencySwitcher::class,
61 Steps\RazorpayPerFormSettings::class,
62 ]);
63 });
64 }
65
66 /**
67 * @inheritDoc
68 */
69 public function boot()
70 {
71 $this->registerRoutes();
72 $this->registerCommands();
73 }
74
75 protected function registerRoutes()
76 {
77 add_action('rest_api_init', function () {
78 // give-api/v2/admin/forms/migrate
79 register_rest_route('give-api/v2', 'admin/forms/migrate/(?P<id>\d+)', [
80 'methods' => WP_REST_Server::CREATABLE,
81 'callback' => function (WP_REST_Request $request) {
82 return (new MigrationController($request))(
83 DonationFormV2::find($request->get_param('id'))
84 );
85 },
86 'permission_callback' => function () {
87 return UserPermissions::donationForms()->canEdit();
88 },
89 'args' => [
90 'id' => [
91 'type' => 'integer',
92 'sanitize_callback' => 'absint',
93 'description' => __('The ID of the form (v2) to migrate to v3.', 'give'),
94 ],
95 ],
96 ]);
97
98 // give-api/v2/admin/forms/transfer
99 register_rest_route('give-api/v2', 'admin/forms/transfer', [
100 'methods' => WP_REST_Server::CREATABLE,
101 'callback' => function (WP_REST_Request $request) {
102 return (new TransferController($request))(
103 DonationFormV2::find($request->get_param('formId')),
104 TransferOptions::fromRequest($request)
105 );
106 },
107 'permission_callback' => function () {
108 return UserPermissions::donationForms()->canEdit();
109 },
110 'args' => [
111 'formId' => [
112 'type' => 'integer',
113 'sanitize_callback' => function ($value) {
114 return intval($value);
115 // return array_map('intval', explode(',', $value));
116 },
117 'description' => __('The ID of the form (v3) to transfer donations (from v2).', 'give'),
118 ],
119 'changeUrl' => [
120 'type' => 'boolean',
121 'required' => false,
122 'default' => true,
123 ],
124 'delete' => [
125 'type' => 'boolean',
126 'required' => true,
127 ],
128 'redirect' => [
129 'type' => 'boolean',
130 'required' => false,
131 'default' => true,
132 ],
133 ],
134 ]);
135 }, 9);
136 }
137
138 protected function registerCommands()
139 {
140 if (defined('WP_CLI') && WP_CLI) {
141 error_reporting(E_ALL & ~E_DEPRECATED);
142 WP_CLI::add_command('givewp form:migrate', MigrationCommand::class);
143 WP_CLI::add_command('givewp form:transfer', TransferCommand::class);
144 }
145 }
146 }
147