PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.16.9
GiveWP – Donation Plugin and Fundraising Platform v4.16.9
4.16.9 4.16.8.1 4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 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 All 255 releases
← All changes | src/Onboarding/FormRepository.php +43 -6 2.30.04.16.9 View file →
@@ -1,8 +1,16 @@
1 1 <?php
2 2
3 3 namespace Give\Onboarding;
4 4
5 +use Exception;
6 +use Give\Campaigns\Models\Campaign;
7 +use Give\Campaigns\ValueObjects\CampaignGoalType;
8 +use Give\Campaigns\ValueObjects\CampaignStatus;
9 +use Give\Campaigns\ValueObjects\CampaignType;
10 +use Give\DonationForms\Models\DonationForm;
11 +use Give\DonationForms\ValueObjects\DonationFormStatus;
12 +
5 13 /**
6 14 * @since 2.8.0
7 15 */
8 16 class FormRepository
@@ -16,10 +24,10 @@
16 24
17 25 /**
18 26 * @since 2.8.0
19 27 *
20 - * @param SettingsRepository $settingsRepository
21 - *
28 + * @param SettingsRepositoryFactory $settingsRepositoryFactory
29 + * @param DefaultFormFactory $defaultFormFactory
22 30 */
23 31 public function __construct(
24 32 SettingsRepositoryFactory $settingsRepositoryFactory,
25 33 DefaultFormFactory $defaultFormFactory
@@ -65,18 +73,47 @@
65 73 return ! (false === $status || 'trash' == $status);
66 74 }
67 75
68 76 /**
77 + * @since 4.1.0 Update title to "Fundraising Campaign Form"
78 + * @since 4.0.0 Replace "Donation Form" with "Campaign Form"
79 + * @since 3.15.0 Create the default v3 form.
69 80 * @since 2.8.0
70 81 * @return int Form ID
71 82 *
83 + * @throws Exception
72 84 */
73 - protected function makeAndPersist()
85 + protected function makeAndPersist(): int
74 86 {
75 - $formID = $this->defaultFormFactory->make();
87 + $campaign = Campaign::create([
88 + 'type' => CampaignType::CORE(),
89 + 'title' => __('Fundraising Campaign', 'give'),
90 + 'shortDescription' => '',
91 + 'longDescription' => '',
92 + 'logo' => '',
93 + 'image' => '',
94 + 'primaryColor' => '#0b72d9',
95 + 'secondaryColor' => '#27ae60',
96 + 'goal' => 1000,
97 + 'goalType' => CampaignGoalType::AMOUNT(),
98 + 'status' => CampaignStatus::ACTIVE(),
99 + ]);
76 100
77 - $this->settingsRepository->set('form_id', $formID);
101 + $form = DonationForm::find($campaign->defaultFormId);
102 +
103 + if ($form) {
104 + $form->title = $campaign->title;
105 + $form->status = DonationFormStatus::PUBLISHED();
106 + $form->settings->designId = 'multi-step';
107 + $form->settings->designSettingsImageUrl = GIVE_PLUGIN_URL . 'build/assets/dist/images/admin/onboarding/header-image.jpg';
108 + $form->settings->designSettingsImageStyle = 'above';
109 + $form->settings->designSettingsImageAlt = $campaign->title;
110 +
111 + $form->save();
112 + }
113 +
114 + $this->settingsRepository->set('form_id', $campaign->defaultFormId);
78 115 $this->settingsRepository->save();
79 116
80 - return $formID;
117 + return $campaign->defaultFormId;
81 118 }
82 119 }