PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.22.2
GiveWP – Donation Plugin and Fundraising Platform v3.22.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 / 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 4 years ago FormRepository.php 1 year ago LocaleCollection.php 4 years ago SettingsRepository.php 4 years ago SettingsRepositoryFactory.php 4 years ago
FormRepository.php
102 lines
1 <?php
2
3 namespace Give\Onboarding;
4
5 use Give\DonationForms\Models\DonationForm;
6 use Give\DonationForms\Properties\FormSettings;
7 use Give\DonationForms\ValueObjects\DonationFormStatus;
8 use Give\FormBuilder\Actions\GenerateDefaultDonationFormBlockCollection;
9 use Give\Log\Log;
10
11 /**
12 * @since 2.8.0
13 */
14 class FormRepository
15 {
16
17 /** @var SettingsRepository */
18 protected $settingsRepository;
19
20 /** @var DefaultFormFactory */
21 protected $defaultFormFactory;
22
23 /**
24 * @since 2.8.0
25 *
26 * @param SettingsRepositoryFactory $settingsRepositoryFactory
27 * @param DefaultFormFactory $defaultFormFactory
28 */
29 public function __construct(
30 SettingsRepositoryFactory $settingsRepositoryFactory,
31 DefaultFormFactory $defaultFormFactory
32 ) {
33 $this->settingsRepository = $settingsRepositoryFactory->make('give_onboarding');
34 $this->defaultFormFactory = $defaultFormFactory;
35 }
36
37 /**
38 * @since 2.8.0
39 * @return int Form ID
40 *
41 */
42 public function getOrMake()
43 {
44 return $this->getDefaultFormID() ?: $this->makeAndPersist();
45 }
46
47 /**
48 * @since 2.8.0
49 * @return int Form ID
50 *
51 */
52 public function getDefaultFormID()
53 {
54 $formID = $this->settingsRepository->get('form_id');
55
56 return $this->isFormAvailable($formID) ? $formID : 0;
57 }
58
59 /**
60 * @since 2.8.0
61 *
62 * @param int $formID
63 *
64 * @return bool
65 *
66 */
67 protected function isFormAvailable($formID)
68 {
69 $status = get_post_status($formID);
70
71 return ! (false === $status || 'trash' == $status);
72 }
73
74 /**
75 * @since 3.15.0 Create the default v3 form.
76 * @since 2.8.0
77 * @return int Form ID
78 *
79 */
80 protected function makeAndPersist()
81 {
82 $form = new DonationForm([
83 'title' => __('GiveWP Donation Form', 'give'),
84 'status' => DonationFormStatus::PUBLISHED(),
85 'settings' => FormSettings::fromArray([
86 'designId' => 'multi-step',
87 'designSettingsImageUrl' => GIVE_PLUGIN_URL . '/assets/dist/images/admin/onboarding/header-image.jpg',
88 'designSettingsImageStyle' => 'above',
89 'designSettingsImageAlt' => 'GiveWP Onboarding Donation Form',
90 ]),
91 'blocks' => (new GenerateDefaultDonationFormBlockCollection())(),
92 ]);
93
94 $form->save();
95
96 $this->settingsRepository->set('form_id', $form->id);
97 $this->settingsRepository->save();
98
99 return $form->id;
100 }
101 }
102