templateHook = $this->settings->inHeader ? 'wp_head' : 'wp_footer'; add_action($this->templateHook, [$this, 'template'], 2); add_action('wp_head', [$this, 'user']); add_action('wp_enqueue_scripts', function(){ if ($this->settings->jsHooks) { $path = sprintf('%s%s%s', AGE_GATE_URL, 'dist', ($this->settings->rawAssets ? '/raw' : '')); wp_enqueue_script('age-gate-hooks', $path . '/hooks.js', [], AGE_GATE_VERSION, !$this->settings->inHeader); } }, 1); } public function assets(): void { if ($this->content->getRestricted()) { $path = sprintf('%s%s%s', AGE_GATE_URL, 'dist', ($this->settings->rawAssets ? '/raw' : '')); wp_register_script('age-gate-stepped', $path . '/stepped.js', [], AGE_GATE_VERSION, !$this->settings->inHeader); wp_enqueue_style('age-gate'); wp_enqueue_script('age-gate', $path . '/age-gate.js', $this->getScriptDependencies(), AGE_GATE_VERSION, !$this->settings->inHeader); $data = [ 'cookieDomain' => Cookie::getDomain(), 'cookieName' => $this->settings->getCookieName(), 'age' => $this->content->getAge(), 'css' => $this->settings->cssType, 'userAgents' => array_filter(apply_filters('age_gate/settings/bots', preg_split('/\r\n|\r|\n/', $this->settings->userAgents ?: ''))), 'switchTitle' => false, 'rechallenge' => $this->settings->rechallenge, 'error' => $this->settings->errorFailed, 'generic' => $this->settings->errorGeneric, 'uri' => rest_url('/age-gate/v3/check'), 'useLocalStorage' => $this->settings->useLocalStorage, ]; wp_localize_script('age-gate-stepped', 'ag_stepped', ['age' => $this->content->getAge()]); if ($this->settings->switchTitle) { $data['customTitle'] = $this->title->getTitle(); } if ($this->settings->viewport) { $data['viewport'] = true; } if (!$this->settings->disableAjaxFallback) { $data['fallback'] = esc_url(admin_url('admin-ajax.php')); } if (!$this->settings->munge) { wp_localize_script('age-gate', 'age_gate', $data); } else { // add_action($this->templateHook, function () use ($data) { if ($data['customTitle'] ?? false) { age_gate_add_attribute('age-gate', 'data-title', $data['customTitle']); } echo ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped // }, 1); } } } public function template() { // add dialog attributes age_gate_add_attribute('age-gate', 'role', "dialog"); age_gate_add_attribute('age-gate', 'aria-modal', "true"); age_gate_add_attribute('age-gate', 'aria-label', $this->settings->labelAria); require_once AGE_GATE_PATH . 'src/Controller/ViewController.php'; } public function user() { if ($this->settings->ignoreLogged && is_user_logged_in()) { echo ''; } } private function getScriptDependencies() { $deps = [ ]; if ($this->settings->jsHooks) { $deps[] = 'age-gate-hooks'; } // if ($this->settings->stepped) { // $deps[] = 'age-gate-stepped'; // } // if ($this->settings->focus) { // $deps[] = 'age-gate-focus'; // } // if ($this->settings->devTools) { // $deps[] = 'age-gate-interaction'; // } // if ($this->settings->inputAutoTab) { // $deps[] = 'age-gate-autotab'; // } return $deps; } }