PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.9.0
GiveWP – Donation Plugin and Fundraising Platform v4.9.0
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 / Onboarding / FormRepository.php
give / src / Onboarding Last commit date
Config 4 years ago Helpers 4 years ago Migrations 4 years ago Routes 1 year ago Setup 11 months ago Wizard 1 year ago BlockFactory.php 1 year ago DefaultFormFactory.php 1 year ago FormRepository.php 1 year ago LocaleCollection.php 4 years ago SettingsRepository.php 4 years ago SettingsRepositoryFactory.php 4 years ago
FormRepository.php
120 lines
1 <?php
2
3 namespace Give\Onboarding;
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
13 /**
14 * @since 2.8.0
15 */
16 class FormRepository
17 {
18
19 /** @var SettingsRepository */
20 protected $settingsRepository;
21
22 /** @var DefaultFormFactory */
23 protected $defaultFormFactory;
24
25 /**
26 * @since 2.8.0
27 *
28 * @param SettingsRepositoryFactory $settingsRepositoryFactory
29 * @param DefaultFormFactory $defaultFormFactory
30 */
31 public function __construct(
32 SettingsRepositoryFactory $settingsRepositoryFactory,
33 DefaultFormFactory $defaultFormFactory
34 ) {
35 $this->settingsRepository = $settingsRepositoryFactory->make('give_onboarding');
36 $this->defaultFormFactory = $defaultFormFactory;
37 }
38
39 /**
40 * @since 2.8.0
41 * @return int Form ID
42 *
43 */
44 public function getOrMake()
45 {
46 return $this->getDefaultFormID() ?: $this->makeAndPersist();
47 }
48
49 /**
50 * @since 2.8.0
51 * @return int Form ID
52 *
53 */
54 public function getDefaultFormID()
55 {
56 $formID = $this->settingsRepository->get('form_id');
57
58 return $this->isFormAvailable($formID) ? $formID : 0;
59 }
60
61 /**
62 * @since 2.8.0
63 *
64 * @param int $formID
65 *
66 * @return bool
67 *
68 */
69 protected function isFormAvailable($formID)
70 {
71 $status = get_post_status($formID);
72
73 return ! (false === $status || 'trash' == $status);
74 }
75
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.
80 * @since 2.8.0
81 * @return int Form ID
82 *
83 * @throws Exception
84 */
85 protected function makeAndPersist(): int
86 {
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 ]);
100
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);
115 $this->settingsRepository->save();
116
117 return $campaign->defaultFormId;
118 }
119 }
120