![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mets-rebuild.corals.io/wp-content/plugins/give/src/Onboarding/ |
<?php namespace Give\Onboarding; use Exception; use Give\Campaigns\Models\Campaign; use Give\Campaigns\ValueObjects\CampaignGoalType; use Give\Campaigns\ValueObjects\CampaignStatus; use Give\Campaigns\ValueObjects\CampaignType; use Give\DonationForms\Models\DonationForm; use Give\DonationForms\ValueObjects\DonationFormStatus; /** * @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 4.1.0 Update title to "Fundraising Campaign Form" * @since 4.0.0 Replace "Donation Form" with "Campaign Form" * @since 3.15.0 Create the default v3 form. * @since 2.8.0 * @return int Form ID * * @throws Exception */ protected function makeAndPersist(): int { $campaign = Campaign::create([ 'type' => CampaignType::CORE(), 'title' => __('Fundraising Campaign', 'give'), 'shortDescription' => '', 'longDescription' => '', 'logo' => '', 'image' => '', 'primaryColor' => '#0b72d9', 'secondaryColor' => '#27ae60', 'goal' => 1000, 'goalType' => CampaignGoalType::AMOUNT(), 'status' => CampaignStatus::ACTIVE(), ]); $form = DonationForm::find($campaign->defaultFormId); if ($form) { $form->title = $campaign->title; $form->status = DonationFormStatus::PUBLISHED(); $form->settings->designId = 'multi-step'; $form->settings->designSettingsImageUrl = GIVE_PLUGIN_URL . 'build/assets/dist/images/admin/onboarding/header-image.jpg'; $form->settings->designSettingsImageStyle = 'above'; $form->settings->designSettingsImageAlt = $campaign->title; $form->save(); } $this->settingsRepository->set('form_id', $campaign->defaultFormId); $this->settingsRepository->save(); return $campaign->defaultFormId; } }