PluginProbe ʕ •ᴥ•ʔ
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode / 4.7.2
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode v4.7.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 / abilities / Verify_Setup_Ability.php
cookiebot / src / abilities Last commit date
Ability_Audit_Logger.php 1 month ago Cookiebot_Abilities_Registrar.php 1 month ago Cookiebot_Ability_Interface.php 1 month ago Get_Compliance_Summary_Ability.php 1 month ago Get_Status_Ability.php 1 month ago Install_Ppg_Ability.php 1 month ago Set_Cbid_Ability.php 1 month ago Toggle_Gcm_Ability.php 1 month ago Verify_Setup_Ability.php 1 month ago
Verify_Setup_Ability.php
89 lines
1 <?php
2 /**
3 * Verify_Setup_Ability class.
4 *
5 * @package cookiebot
6 * @subpackage abilities
7 */
8
9 namespace cybot\cookiebot\abilities;
10
11 use cybot\cookiebot\lib\Cookiebot_WP;
12
13 /**
14 * Ability to verify Cookiebot CMP setup.
15 *
16 * @since 4.8.0
17 */
18 class Verify_Setup_Ability implements Cookiebot_Ability_Interface {
19
20 /**
21 * Returns the ability name.
22 *
23 * @return string
24 *
25 * @since 4.8.0
26 */
27 public function get_name() {
28 return 'cookiebot/verify-setup';
29 }
30
31 /**
32 * Returns the ability arguments.
33 *
34 * @return array
35 *
36 * @since 4.8.0
37 */
38 public function get_args() {
39 return array(
40 'label' => __( 'Verify Cookiebot Setup', 'cookiebot' ),
41 'description' => __( 'Checks that the Domain Group ID is configured, Google Consent Mode v2 is enabled, and cookie blocking mode is set to auto. Returns an issues[] list — empty means all checks passed.', 'cookiebot' ),
42 'category' => 'cookiebot',
43 'output_schema' => array(
44 'type' => 'object',
45 'properties' => array(
46 'cbid_configured' => array( 'type' => 'boolean', 'description' => 'Whether a Domain Group ID is configured.' ),
47 'configured_domain' => array( 'type' => 'string', 'description' => 'The WordPress site home URL.' ),
48 'gcm_enabled' => array( 'type' => 'boolean', 'description' => 'Whether Google Consent Mode v2 is enabled.' ),
49 'blocking_mode_automatic' => array( 'type' => 'boolean', 'description' => 'Whether cookie blocking mode is set to auto.' ),
50 'issues' => array( 'type' => 'array', 'items' => array( 'type' => 'string' ), 'description' => 'Configuration issues found. Empty = setup complete.' ),
51 ),
52 'additionalProperties' => false,
53 ),
54 'execute_callback' => function() {
55 $cbid = Cookiebot_WP::get_cbid();
56 $gcm_enabled = Cookiebot_WP::get_gcm_enabled() === '1';
57 $is_automatic = Cookiebot_WP::get_cookie_blocking_mode() === 'auto';
58 $cbid_configured = ! empty( $cbid );
59 $issues = array();
60
61 if ( ! $cbid_configured ) {
62 $issues[] = 'Domain Group ID is not configured. Go to Cookiebot > Settings > General and paste your Domain Group ID.';
63 }
64 if ( ! $gcm_enabled ) {
65 $issues[] = 'Google Consent Mode v2 is disabled. Go to Cookiebot > Settings > Google Consent Mode and enable the toggle.';
66 }
67 if ( ! $is_automatic ) {
68 $issues[] = 'Cookie blocking mode is manual. Go to Cookiebot > Settings > General and switch to automatic mode for GDPR compliance.';
69 }
70
71 return array(
72 'cbid_configured' => $cbid_configured,
73 'configured_domain' => home_url(),
74 'gcm_enabled' => $gcm_enabled,
75 'blocking_mode_automatic' => $is_automatic,
76 'issues' => $issues,
77 );
78 },
79 'permission_callback' => function() {
80 return current_user_can( 'manage_options' );
81 },
82 'meta' => array(
83 'annotations' => array( 'readonly' => true, 'destructive' => false, 'idempotent' => true ),
84 'show_in_rest' => true,
85 ),
86 );
87 }
88 }
89