HEX
Server: Apache
System: Linux WWW 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64
User: web11 (1011)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/lcc.kaunokolegija.lt/wp-content/plugins/countdown-builder/CountdownInit.php
<?php
namespace ycd;

class CountdownInit {

	private static $instance = null;
	private $actions;
	private $filters;

	private function __construct() {
		$this->init();
	}

	private function __clone() {
	}

	public static function getInstance() {
		if(!isset(self::$instance)) {
			self::$instance = new self();
		}
		return self::$instance;
	}

	public function init() {
		register_activation_hook(YCD_PREFIX, array($this, 'activate'));
		register_deactivation_hook(YCD_PREFIX, array($this, 'deactivate'));
		$this->includeData();
		$this->actions();
		$this->filters();
		add_action('admin_init', array($this, 'pluginRedirect'));
	}

	private function includeData() {
		if(YCD_PKG_VERSION > YCD_FREE_VERSION) {
			require_once YCD_HELPERS_PATH.'AdminHelperPro.php';
			require_once YCD_HELPERS_PATH.'CheckerPro.php';
			require_once YCD_BLOCKS_PATH.'ProgressBar.php';
			require_once(YCD_HELPERS_PATH.'ExtensionRegister.php');
		}
		require_once(YCD_HELPERS_PATH.'ShowReviewNotice.php');
		require_once YCD_HELPERS_PATH.'HelperFunctions.php';
		require_once YCD_HELPERS_PATH.'ScriptsIncluder.php';
		require_once YCD_HELPERS_PATH.'MultipleChoiceButton.php';
		require_once YCD_HELPERS_PATH.'TypesNavBar.php';
		require_once YCD_HELPERS_PATH.'AdminHelper.php';
		require_once YCD_CLASSES_PATH.'DisplayRuleChecker.php';
		require_once YCD_CLASSES_PATH.'ConditionBuilder.php';
		require_once YCD_CLASSES_PATH.'DisplayConditionBuilder.php';
		require_once YCD_CLASSES_PATH.'Tickbox.php';
		require_once YCD_CLASSES_PATH.'YcdWidget.php';
		require_once YCD_CLASSES_PATH.'CountdownType.php';
		require_once YCD_COUNTDOWNS_PATH.'CountdownModel.php';
        require_once YCD_CLASSES_PATH.'Checker.php';
		require_once YCD_COUNTDOWNS_PATH.'Countdown.php';
		require_once YCD_CSS_PATH.'Css.php';
		require_once YCD_JS_PATH.'Js.php';
		require_once YCD_CLASSES_PATH.'RegisterPostType.php';
        require_once YCD_CLASSES_PATH.'IncludeManager.php';
		require_once YCD_CLASSES_PATH.'Actions.php';
		require_once YCD_CLASSES_PATH.'Ajax.php';
		require_once YCD_CLASSES_PATH.'Filters.php';
		require_once YCD_CLASSES_PATH.'Installer.php';
		require_once YCD_COUNTDOWNS_PATH.'ComingSoon.php';
		if (YCD_PKG_VERSION > YCD_FREE_VERSION) {
			require_once YCD_CLASSES_PATH.'Updates.php';
			require_once YCD_CLASSES_PATH.'Subscription.php';
			require_once YCD_CLASSES_PATH.'AjaxPro.php';
			require_once YCD_CLASSES_PATH.'ActionsPro.php';
			require_once YCD_COMING_SOON_PATH.'CommingSoonProFilters.php';
			require_once YCD_CLASSES_PATH.'FiltersPro.php';
			require_once(YCD_HELPERS_PATH.'ExtensionRegister.php');
		}
	}

	public function actions() {
		$this->actions = new Actions();
	}

	public function filters() {
		$this->filters = new Filters();
	}

	public function activate() {
		
		if (YCD_PKG_VERSION > YCD_FREE_VERSION) {
			$pluginName = YCD_FILE_NAME;
			
			$options = array(
				'licence' => array(
					'key' => YCD_PRO_KEY,
					'storeURL' => YCD_STORE_URL,
					'file' => YCD_FILE_NAME,
					'itemId' => YCD_VERSION_ITEM_ID,
					'itemName' => __(YCD_COUNTDOWN_ITEM_LABEL, YCD_TEXT_DOMAIN),
					'author' => 'Adam',
					'boxLabel' => __('Countdown pro version license', YCD_TEXT_DOMAIN)
				)
			);
			ExtensionRegister::register($pluginName, $options);
		}
		Installer::install();
	}
	
	public function deactivate() {
		if (YCD_PKG_VERSION > YCD_FREE_VERSION) {
			$pluginName = YCD_FILE_NAME;
			ExtensionRegister::remove($pluginName);
		}
		
		delete_option('ycd_redirect');
	}
	
	public function pluginRedirect() {
		if (!get_option('ycd_redirect') && post_type_exists(YCD_COUNTDOWN_POST_TYPE)) {
			update_option('ycd_redirect', 1);
			exit(wp_redirect(admin_url('edit.php?post_type='.YCD_COUNTDOWN_POST_TYPE)));
		}
	}
}

CountdownInit::getInstance();