/** * Run all parts of cookie/price tests setup * * @since 1.1.0 * * @return bool */ public static function run() { if (false == ingot_is_front_end()) { return false; } $all_cookies = $cookies = array(); if (INGOT_DEV_MODE) { if (isset($_COOKIE) && is_array($_COOKIE)) { $all_cookies = $_COOKIE; } $cookies = init::create($all_cookies); self::setup_cookies($cookies); } /** * Fires after Ingot Cookies Are Set * * Note: will fire if they were set empty * Should happen at init:25 * * @since 0.0.9 * * @param \ingot\testing\cookies\init $cookies Cookies object */ do_action('ingot_cookies_set', $cookies); return true; }
/** * Loads ingot if not already loaded. * * @since 0.0.5 */ public static function maybe_load() { if (did_action('ingot_loaded')) { return; } if (!defined('INGOT_DEV_MODE')) { /** * Puts Ingot into dev mode * * Don't use on a live site -- makes API totally open * * @since 0.0.5 */ define('INGOT_DEV_MODE', false); } $load = true; if (!version_compare(PHP_VERSION, '5.5.0', '>=')) { $load = false; } $autoloader = dirname(__FILE__) . '/vendor/autoload.php'; if (!file_exists($autoloader)) { $load = false; } if ($load) { include_once $autoloader; self::maybe_add_tables(); self::maybe_upgrade(); self::maybe_load_trial(); if (\ingot\testing\db\delta::check_if_tables_exist()) { ingot\testing\ingot::instance(); //make admin go in admin if (is_admin()) { new ingot\ui\make(); } if (ingot_is_front_end() || ingot_is_admin_ajax()) { //setup destination tests $destination_tests = \ingot\testing\tests\click\destination\init::set_tracking(); //run cookies add_action('ingot_loaded', function () { /** * Disable running cookies * * @since 1.1.0 * * @param bool $run */ if (true == (bool) apply_filters('ingot_run_cookies', true) && !did_action('ingot_cookies_set')) { if (!empty($destination_tests)) { \ingot\testing\tests\click\destination\init::setup_cookies($destination_tests); } \ingot\testing\cookies\set::run(); } }); } /** * Runs when Ingot has loaded. * * @since 0.0.5 */ do_action('ingot_loaded'); } else { if (is_admin()) { printf('<div class="error"><p>%s</p></div>', __('Ingot Not Loaded', 'ingot')); } /** * Runs if Ingot failed to load * * @since 0.3.0 * */ do_action('ingot_loaded_failed'); return; } } }
/** * Inititialize Ingot session * * @uses "parse_request" * * @since 0.3.0 */ public function init_session() { if (ingot_is_front_end() && !ingot_is_no_testing_mode() && !ingot_is_admin_ajax() && !is_admin() && !ingot_is_rest_api()) { $id = null; if (isset($_GET['ingot_session_ID']) && ingot_verify_session_nonce(helpers::v('ingot_session_nonce', $_GET, ''))) { $id = helpers::v('ingot_session_ID', $_GET, null); } $session = new \ingot\testing\object\session($id); $session_data = $session->get_session_info(); /** * Fired when Ingot session is setup at parse_request * * @since 0.3.0 * * @param array $session_data has ID (session ID) and ingot_ID */ do_action('ingot_session_initialized', $session_data); $this->current_session_data = $session_data; } }
/** * Setup our cookies * * @uses "init" * * @since 0.0.9 */ public static function init_cookies() { return; if (false == ingot_is_front_end()) { return false; } $cookies = array(); if (isset($_COOKIE) && is_array($_COOKIE)) { $cookies = $_COOKIE; } $cookies = new ingot\testing\cookies\init($cookies); $ingot_cookies = $cookies->get_ingot_cookie(); if (!empty($ingot_cookies)) { $cookie_time = 15 * DAY_IN_SECONDS; /** * Change cookie time * * @since 0.2.0 * * @param int $cookie_time Length to keep cookie. Default is 15 days */ $cookie_time = apply_filters('ingot_cookie_time', $cookie_time); $cookie_name = $cookies->get_cookie_name(); setcookie($cookie_name, $ingot_cookies, time() + $cookie_time, COOKIEPATH, COOKIE_DOMAIN, false); } /** * Fires after Ingot Cookies Are Set * * Note: will fire if they were set empty * Should happen at init:25 * * @since 0.0.9 * * @param \ingot\testing\cookies\init $cookies Cookies object */ do_action('ingot_cookies_set', $cookies); }