PluginProbe ʕ •ᴥ•ʔ
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode / 4.2.8
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode v4.2.8
4.7.2 4.7.1 trunk 2.3.0 2.4.0 2.4.1 2.4.2 2.5.0 3.0.0 3.0.1 3.1.0 3.10.0 3.10.1 3.11.1 3.11.2 3.11.3 3.2.0 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.5 3.6.6 3.7.0 3.7.1 3.8.0 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.2.0 4.2.1 4.2.10 4.2.11 4.2.12 4.2.13 4.2.14 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.3.10 4.3.11 4.3.12 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.7.1 4.3.8 4.3.9 4.3.9.1 4.4.0 4.4.1 4.4.2 4.5.0 4.5.1 4.5.10 4.5.11 4.5.2 4.5.3 4.5.4 4.5.5 4.5.6 4.5.7 4.5.8 4.5.9 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 4.6.7 4.7.0
cookiebot / src / lib / Cookiebot_Javascript_Helper.php
cookiebot / src / lib Last commit date
buffer 3 years ago script_loader_tag 3 years ago traits 3 years ago Consent_API_Helper.php 3 years ago Cookie_Consent.php 3 years ago Cookie_Consent_Interface.php 4 years ago Cookiebot_Activated.php 3 years ago Cookiebot_Automatic_Updates.php 3 years ago Cookiebot_Deactivated.php 4 years ago Cookiebot_Javascript_Helper.php 3 years ago Cookiebot_WP.php 3 years ago Dependency_Container.php 3 years ago Settings_Page_Tab.php 3 years ago Settings_Service.php 3 years ago Settings_Service_Interface.php 3 years ago Supported_Languages.php 4 years ago Supported_Regions.php 3 years ago WP_Rocket_Helper.php 3 years ago Widgets.php 3 years ago global-deprecations.php 3 years ago helper.php 3 years ago
Cookiebot_Javascript_Helper.php
135 lines
1 <?php
2
3 namespace cybot\cookiebot\lib;
4
5 use cybot\cookiebot\shortcode\Cookiebot_Declaration_Shortcode;
6 use InvalidArgumentException;
7
8 class Cookiebot_Javascript_Helper {
9 public function register_hooks() {
10 if ( is_admin() && ! Cookiebot_WP::cookiebot_disabled_in_admin() ) {
11 // adding cookie banner in admin area too
12 add_action( 'admin_head', array( $this, 'include_cookiebot_js' ), - 9999 );
13 }
14
15 // add JS
16 add_action( 'wp_head', array( $this, 'include_cookiebot_js' ), - 9997 );
17 add_action( 'wp_head', array( $this, 'include_google_tag_manager_js' ), - 9998 );
18 add_action( 'wp_head', array( $this, 'include_google_consent_mode_js' ), - 9999 );
19 ( new Cookiebot_Declaration_Shortcode() )->register_hooks();
20 }
21
22 /**
23 * Cookiebot_WP Add Cookiebot JS to <head>
24 *
25 * @param false $return_html
26 *
27 * @return string
28 * @throws InvalidArgumentException
29 */
30 public function include_cookiebot_js( $return_html = false ) {
31 $cbid = Cookiebot_WP::get_cbid();
32 if ( ! empty( $cbid ) && ! defined( 'COOKIEBOT_DISABLE_ON_PAGE' ) ) {
33 if (
34 // Is multisite - and disabled output is checked as network setting
35 ( is_multisite() && get_site_option( 'cookiebot-nooutput', false ) ) ||
36 // Do not show JS - output disabled
37 get_option( 'cookiebot-nooutput', false ) ||
38 // Do not show js if logged in output is disabled
39 (
40 Cookiebot_WP::get_cookie_blocking_mode() === 'auto' &&
41 Cookiebot_WP::can_current_user_edit_theme() &&
42 $return_html === '' &&
43 (
44 get_site_option( 'cookiebot-output-logged-in' ) === false ||
45 get_site_option( 'cookiebot-output-logged-in' ) === ''
46 )
47 )
48 ) {
49 return '';
50 }
51
52 $lang = cookiebot_get_language_from_setting();
53
54 if ( ! is_multisite() || get_site_option( 'cookiebot-script-tag-uc-attribute', 'custom' ) === 'custom' ) {
55 $tag_attr = get_option( 'cookiebot-script-tag-uc-attribute', 'async' );
56 } else {
57 $tag_attr = get_site_option( 'cookiebot-script-tag-uc-attribute' );
58 }
59
60 $view_path = 'frontend/scripts/cookiebot-js.php';
61 $view_args = array(
62 'cbid' => $cbid,
63 'lang' => $lang,
64 'tag_attr' => $tag_attr,
65 'cookie_blocking_mode' => Cookiebot_WP::get_cookie_blocking_mode(),
66 );
67
68 if ( $return_html ) {
69 return get_view_html( $view_path, $view_args );
70 } else {
71 include_view( $view_path, $view_args );
72 }
73 }
74 return '';
75 }
76
77 /**
78 * Cookiebot_WP Add Google Tag Manager JS to <head>
79 *
80 * @param bool $return_html
81 *
82 * @return string
83 * @throws InvalidArgumentException
84 */
85 public function include_google_tag_manager_js( $return_html = false ) {
86 $option = get_option( 'cookiebot-gtm' );
87
88 if ( $option !== false && $option !== '' ) {
89 if ( empty( get_option( 'cookiebot-data-layer' ) ) ) {
90 $data_layer = 'dataLayer';
91 } else {
92 $data_layer = get_option( 'cookiebot-data-layer' );
93 }
94
95 $view_path = 'frontend/scripts/google-tag-manager-js.php';
96 $view_args = array( 'data_layer' => $data_layer );
97 if ( $return_html ) {
98 return get_view_html( $view_path, $view_args );
99 } else {
100 include_view( $view_path, $view_args );
101 }
102 }
103 return '';
104 }
105
106 /**
107 * Cookiebot_WP Add Google Consent Mode JS to <head>
108 *
109 * @param bool $return_html
110 *
111 * @return string
112 * @throws InvalidArgumentException
113 */
114 public function include_google_consent_mode_js( $return_html = false ) {
115 $option = get_option( 'cookiebot-gcm' );
116
117 if ( $option !== false && $option !== '' ) {
118 if ( empty( get_option( 'cookiebot-data-layer' ) ) ) {
119 $data_layer = 'dataLayer';
120 } else {
121 $data_layer = get_option( 'cookiebot-data-layer' );
122 }
123
124 $view_path = 'frontend/scripts/google-consent-mode-js.php';
125 $view_args = array( 'data_layer' => $data_layer );
126 if ( $return_html ) {
127 return get_view_html( $view_path, $view_args );
128 } else {
129 include_view( $view_path, $view_args );
130 }
131 }
132 return '';
133 }
134 }
135