PluginProbe
SureCookie – GDPR Cookie Consent Banner, Cookie Scanner & Script Blocking / trunk
SureCookie – GDPR Cookie Consent Banner, Cookie Scanner & Script Blocking vtrunk
1.5.0 1.4.0 1.3.0 1.3.1 trunk 0.0.0-alpha.1 0.0.0-alpha.2 0.0.0-alpha.3 0.0.1-beta.1 0.0.1-beta.2 0.0.1-beta.3 0.0.1-beta.4 1.0.0 1.1.0 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4
surecookie / inc / modules / auth / init.php

init.php in SureCookie – GDPR Cookie Consent Banner, Cookie Scanner & Script Blocking trunk, at inc/modules/auth/init.php

110 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Auth Module Init
4 *
5 * Handles the initialization and hooks for SureCookie Auth functionality.
6 *
7 * @package SureCookie\Inc\Modules\Auth
8 * @since 0.0.1-beta.3
9 */
10
11 namespace SureCookie\Inc\Modules\Auth;
12
13 use SureCookie\Inc\Traits\GetInstance;
14
15 if ( ! defined( 'ABSPATH' ) ) {
16 exit; // Exit if accessed directly.
17 }
18
19 /**
20 * Init class
21 *
22 * Handles initialization and WordPress hooks for authentication.
23 */
24 class Init {
25 use GetInstance;
26
27 /**
28 * Constructor
29 *
30 * @since 0.0.1-beta.3
31 */
32 private function __construct() {
33 if ( ! defined( 'SURECOOKIE_BILLING_PORTAL' ) ) {
34 define( 'SURECOOKIE_BILLING_PORTAL', 'https://my.surecookie.com/' );
35 }
36
37 Controller::get_instance();
38
39 // Hook into the filter to add this module's API controller.
40 add_filter( 'surecookie_api_controllers', [ $this, 'register_api_controller' ], 20 );
41
42 // Add localization variables.
43 add_filter( 'surecookie_localized_admin_data', [ $this, 'add_admin_localization_vars' ] );
44 add_filter( 'surecookie_onboarding_localize_data', [ $this, 'add_onboarding_localization_vars' ] );
45
46 // Inbound POST callback from billing portal popup (issue #466).
47 // Registered here (not in Api class) because admin-post.php requests
48 // don't trigger rest_api_init. nopriv is required because SameSite=Lax
49 // auth cookies aren't sent on cross-origin POST.
50 add_action( 'admin_post_' . Api::CALLBACK_ACTION, [ $this, 'handle_inbound_callback' ] );
51 add_action( 'admin_post_nopriv_' . Api::CALLBACK_ACTION, [ $this, 'handle_inbound_callback' ] );
52 }
53
54 /**
55 * Delegate to Api::handle_inbound_callback() - kept here so the hook
56 * registers on every request, not just rest_api_init.
57 *
58 * @since 0.0.1-beta.3
59 */
60 public function handle_inbound_callback(): void {
61 Api::get_instance()->handle_inbound_callback();
62 }
63
64 /**
65 * Add admin localization variables.
66 *
67 * @since 0.0.1-beta.3
68 * @param array<string, mixed> $variables Localization variables.
69 * @return array<string, mixed> Localization variables.
70 */
71 public function add_admin_localization_vars( $variables = [] ) {
72 $controller = Controller::get_instance();
73 return array_merge(
74 $variables,
75 [
76 'ai_authenticated' => $controller->get_auth_status(),
77 'ai_auth_email' => $controller->get_auth_email(),
78 ]
79 );
80 }
81
82 /**
83 * Add onboarding localization variables.
84 *
85 * @since 0.0.1-beta.3
86 * @param array<string, mixed> $variables Localization variables.
87 * @return array<string, mixed> Localization variables.
88 */
89 public function add_onboarding_localization_vars( $variables = [] ) {
90 return array_merge(
91 $variables,
92 [
93 'ai_authenticated' => Controller::get_instance()->get_auth_status(),
94 ]
95 );
96 }
97
98 /**
99 * Register API controller for this module.
100 *
101 * @since 0.0.1-beta.3
102 * @param array<string> $controllers Existing controllers.
103 * @return array<string> Updated controllers.
104 */
105 public function register_api_controller( $controllers = [] ) {
106 $controllers[] = '\SureCookie\Inc\Modules\Auth\Api';
107 return $controllers;
108 }
109 }
110