Your IP : 216.73.216.95


Current Path : /var/www/ooareogundevinitiative/wp-content/plugins/give/src/Onboarding/
Upload File :
Current File : /var/www/ooareogundevinitiative/wp-content/plugins/give/src/Onboarding/FormRepository.php

<?php

namespace Give\Onboarding;

/**
 * @since 2.8.0
 */
class FormRepository {

	/** @var SettingsRepository */
	protected $settingsRepository;

	/** @var DefaultFormFactory */
	protected $defaultFormFactory;

	/**
	 * @param SettingsRepository $settingsRepository
	 *
	 * @since 2.8.0
	 */
	public function __construct( SettingsRepositoryFactory $settingsRepositoryFactory, DefaultFormFactory $defaultFormFactory ) {
		$this->settingsRepository = $settingsRepositoryFactory->make( 'give_onboarding' );
		$this->defaultFormFactory = $defaultFormFactory;
	}

	/**
	 * @return int Form ID
	 *
	 * @since 2.8.0
	 */
	public function getOrMake() {
		return $this->getDefaultFormID() ?: $this->makeAndPersist();
	}

	/**
	 * @return int Form ID
	 *
	 * @since 2.8.0
	 */
	public function getDefaultFormID() {
		$formID = $this->settingsRepository->get( 'form_id' );
		return $this->isFormAvailable( $formID ) ? $formID : 0;
	}

	/**
	 * @param int $formID
	 *
	 * @return bool
	 *
	 * @since 2.8.0
	 */
	protected function isFormAvailable( $formID ) {
		$status = get_post_status( $formID );
		return ! ( false === $status || 'trash' == $status );
	}

	/**
	 * @return int Form ID
	 *
	 * @since 2.8.0
	 */
	protected function makeAndPersist() {
		$formID = $this->defaultFormFactory->make();

		$this->settingsRepository->set( 'form_id', $formID );
		$this->settingsRepository->save();

		return $formID;
	}
}