| Server IP : 46.105.57.169 / Your IP : 216.73.216.67 Web Server : Apache System : Linux webm002.cluster120.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64 User : verseaumee ( 152031) PHP Version : 8.5.7 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/verseaumee/blueversion/wp-content/plugins/give/src/Onboarding/ |
Upload File : |
<?php
namespace Give\Onboarding;
use Give\DonationForms\Models\DonationForm;
use Give\DonationForms\Properties\FormSettings;
use Give\DonationForms\ValueObjects\DonationFormStatus;
use Give\FormBuilder\Actions\GenerateDefaultDonationFormBlockCollection;
use Give\Log\Log;
/**
* @since 2.8.0
*/
class FormRepository
{
/** @var SettingsRepository */
protected $settingsRepository;
/** @var DefaultFormFactory */
protected $defaultFormFactory;
/**
* @since 2.8.0
*
* @param SettingsRepositoryFactory $settingsRepositoryFactory
* @param DefaultFormFactory $defaultFormFactory
*/
public function __construct(
SettingsRepositoryFactory $settingsRepositoryFactory,
DefaultFormFactory $defaultFormFactory
) {
$this->settingsRepository = $settingsRepositoryFactory->make('give_onboarding');
$this->defaultFormFactory = $defaultFormFactory;
}
/**
* @since 2.8.0
* @return int Form ID
*
*/
public function getOrMake()
{
return $this->getDefaultFormID() ?: $this->makeAndPersist();
}
/**
* @since 2.8.0
* @return int Form ID
*
*/
public function getDefaultFormID()
{
$formID = $this->settingsRepository->get('form_id');
return $this->isFormAvailable($formID) ? $formID : 0;
}
/**
* @since 2.8.0
*
* @param int $formID
*
* @return bool
*
*/
protected function isFormAvailable($formID)
{
$status = get_post_status($formID);
return ! (false === $status || 'trash' == $status);
}
/**
* @since 3.15.0 Create the default v3 form.
* @since 2.8.0
* @return int Form ID
*
*/
protected function makeAndPersist()
{
$form = new DonationForm([
'title' => __('GiveWP Donation Form', 'give'),
'status' => DonationFormStatus::PUBLISHED(),
'settings' => FormSettings::fromArray([
'designId' => 'multi-step',
'designSettingsImageUrl' => GIVE_PLUGIN_URL . '/assets/dist/images/admin/onboarding/header-image.jpg',
'designSettingsImageStyle' => 'above',
'designSettingsImageAlt' => 'GiveWP Onboarding Donation Form',
]),
'blocks' => (new GenerateDefaultDonationFormBlockCollection())(),
]);
$form->save();
$this->settingsRepository->set('form_id', $form->id);
$this->settingsRepository->save();
return $form->id;
}
}