PluginProbe ʕ •ᴥ•ʔ
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode / 4.2.2
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode v4.2.2
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_WP.php
cookiebot / src / lib Last commit date
buffer 4 years ago script_loader_tag 4 years ago traits 4 years ago Consent_API_Helper.php 4 years ago Cookie_Consent.php 4 years ago Cookie_Consent_Interface.php 4 years ago Cookiebot_Activated.php 4 years ago Cookiebot_Automatic_Updates.php 4 years ago Cookiebot_Deactivated.php 4 years ago Cookiebot_Javascript_Helper.php 4 years ago Cookiebot_WP.php 3 years ago Dependency_Container.php 4 years ago Settings_Page_Tab.php 4 years ago Settings_Service.php 4 years ago Settings_Service_Interface.php 4 years ago Supported_Languages.php 4 years ago Supported_Regions.php 3 years ago WP_Rocket_Helper.php 4 years ago Widgets.php 4 years ago global-deprecations.php 4 years ago helper.php 4 years ago
Cookiebot_WP.php
169 lines
1 <?php
2
3 namespace cybot\cookiebot\lib;
4
5 use cybot\cookiebot\addons\Cookiebot_Addons;
6 use cybot\cookiebot\admin_notices\Cookiebot_Recommendation_Notice;
7 use cybot\cookiebot\gutenberg\Cookiebot_Gutenberg_Declaration_Block;
8 use cybot\cookiebot\settings\Menu_Settings;
9 use cybot\cookiebot\settings\Network_Menu_Settings;
10 use cybot\cookiebot\widgets\Dashboard_Widget_Cookiebot_Status;
11 use RuntimeException;
12
13 class Cookiebot_WP {
14 const COOKIEBOT_PLUGIN_VERSION = '4.2.2';
15 const COOKIEBOT_MIN_PHP_VERSION = '5.6.0';
16
17 /**
18 * @var Cookiebot_WP The single instance of the class
19 * @since 1.0.0
20 */
21 private static $instance = null;
22
23 /**
24 * Main Cookiebot_WP Instance
25 *
26 * Ensures only one instance of Cookiebot_WP is loaded or can be loaded.
27 *
28 * @return Cookiebot_WP - Main instance
29 * @throws RuntimeException
30 * @version 1.0.0
31 * @since 1.0.0
32 * @static
33 */
34 public static function instance() {
35 if ( is_null( self::$instance ) ) {
36 self::$instance = new self();
37 }
38
39 return self::$instance;
40 }
41
42 /**
43 * Cookiebot_WP Constructor.
44 *
45 * @throws RuntimeException
46 * @since 1.0.0
47 * @access public
48 * @version 2.1.4
49 */
50 public function __construct() {
51 $this->throw_exception_if_php_version_is_incompatible();
52
53 add_action( 'after_setup_theme', array( $this, 'cookiebot_init' ), 5 );
54 register_activation_hook( __FILE__, array( new Cookiebot_Activated(), 'run' ) );
55 register_deactivation_hook( __FILE__, array( new Cookiebot_Deactivated(), 'run' ) );
56 }
57
58 /**
59 * @throws RuntimeException
60 */
61 private function throw_exception_if_php_version_is_incompatible() {
62 if ( version_compare( PHP_VERSION, self::COOKIEBOT_MIN_PHP_VERSION, '<' ) ) {
63 $message = sprintf(
64 // translators: The placeholder is for the COOKIEBOT_MIN_PHP_VERSION constant
65 __( 'The Cookiebot plugin requires PHP version %s or greater.', 'cookiebot' ),
66 self::COOKIEBOT_MIN_PHP_VERSION
67 );
68 throw new RuntimeException( $message );
69 }
70 }
71
72 public function cookiebot_init() {
73 Cookiebot_Addons::instance();
74 load_plugin_textdomain( 'cookiebot', false, dirname( plugin_basename( __FILE__ ) ) . '/langs/' );
75
76 if ( is_admin() ) {
77 ( new Menu_Settings() )->add_menu();
78 if ( is_multisite() ) {
79 ( new Network_Menu_Settings() )->add_menu();
80 }
81 ( new Dashboard_Widget_Cookiebot_Status() )->register_hooks();
82 ( new Cookiebot_Recommendation_Notice() )->register_hooks();
83 }
84
85 ( new Consent_API_Helper() )->register_hooks();
86 ( new Cookiebot_Javascript_Helper() )->register_hooks();
87 ( new Cookiebot_Automatic_Updates() )->register_hooks();
88 ( new Widgets() )->register_hooks();
89 ( new Cookiebot_Gutenberg_Declaration_Block() )->register_hooks();
90 ( new WP_Rocket_Helper() )->register_hooks();
91
92 $this->set_consent_mode_default();
93 }
94
95 /**
96 * Returns true if an user is logged in and has an edit_themes capability
97 *
98 * @return bool
99 *
100 * @since 3.3.1
101 * @version 3.4.1
102 */
103 public static function can_current_user_edit_theme() {
104 if ( is_user_logged_in() ) {
105 if ( current_user_can( 'edit_themes' ) ) {
106 return true;
107 }
108
109 if ( current_user_can( 'edit_pages' ) ) {
110 return true;
111 }
112
113 if ( current_user_can( 'edit_posts' ) ) {
114 return true;
115 }
116 }
117
118 return false;
119 }
120
121 /**
122 * @return string
123 */
124 public static function get_cbid() {
125 $network_setting = (string) get_site_option( 'cookiebot-cbid', '' );
126 $setting = (string) get_option( 'cookiebot-cbid', $network_setting );
127
128 return empty( $setting ) ? $network_setting : $setting;
129 }
130
131 /**
132 * @return string
133 */
134 public static function get_cookie_blocking_mode() {
135 $allowed_modes = array( 'auto', 'manual' );
136 $network_setting = (string) get_site_option( 'cookiebot-cookie-blocking-mode', 'manual' );
137 $setting = (string) get_option( 'cookiebot-cookie-blocking-mode', $network_setting );
138
139 return in_array( $setting, $allowed_modes, true ) ? $setting : 'manual';
140 }
141
142 /**
143 * Cookiebot_WP Check if Cookiebot is active in admin
144 *
145 * @version 3.1.0
146 * @since 3.1.0
147 */
148 public static function cookiebot_disabled_in_admin() {
149 if ( is_multisite() && get_site_option( 'cookiebot-nooutput-admin', false ) ) {
150 return true;
151 } elseif ( get_option( 'cookiebot-nooutput-admin', false ) ) {
152 return true;
153 }
154
155 return false;
156 }
157
158 private function set_consent_mode_default() {
159 if ( ! get_option( 'cookiebot-gcm' ) && ! get_option( 'cookiebot-gcm-first-run' ) ) {
160 update_option( 'cookiebot-gcm', '1' );
161 }
162
163 if ( get_option( 'cookiebot-gcm' ) && ! get_option( 'cookiebot-gcm-first-run' ) ) {
164 update_option( 'cookiebot-gcm', '1' );
165 update_option( 'cookiebot-gcm-first-run', '1' );
166 }
167 }
168 }
169