| @@ -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 | } |