PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.0.0
GiveWP – Donation Plugin and Fundraising Platform v4.0.0
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 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 1 year 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
119 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.0.0 Replace "Donation Form" with "Campaign Form"
78 * @since 3.15.0 Create the default v3 form.
79 * @since 2.8.0
80 * @return int Form ID
81 *
82 * @throws Exception
83 */
84 protected function makeAndPersist(): int
85 {
86 $campaign = Campaign::create([
87 'type' => CampaignType::CORE(),
88 'title' => __('GiveWP Onboarding', 'give'),
89 'shortDescription' => '',
90 'longDescription' => '',
91 'logo' => '',
92 'image' => '',
93 'primaryColor' => '#0b72d9',
94 'secondaryColor' => '#27ae60',
95 'goal' => 1000,
96 'goalType' => CampaignGoalType::AMOUNT(),
97 'status' => CampaignStatus::ACTIVE(),
98 ]);
99
100 $form = DonationForm::find($campaign->defaultFormId);
101
102 if ($form) {
103 $form->title = $campaign->title;
104 $form->status = DonationFormStatus::PUBLISHED();
105 $form->settings->designId = 'multi-step';
106 $form->settings->designSettingsImageUrl = GIVE_PLUGIN_URL . 'build/assets/dist/images/admin/onboarding/header-image.jpg';
107 $form->settings->designSettingsImageStyle = 'above';
108 $form->settings->designSettingsImageAlt = $campaign->title;
109
110 $form->save();
111 }
112
113 $this->settingsRepository->set('form_id', $campaign->defaultFormId);
114 $this->settingsRepository->save();
115
116 return $campaign->defaultFormId;
117 }
118 }
119