PluginProbe
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode / 4.7.3
Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode v4.7.3
4.7.3 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 All 93 releases
cookiebot / src / abilities / Verify_Setup_Ability.php

Verify_Setup_Ability.php in Cookiebot by Usercentrics – Automatic Cookie Banner for GDPR/CCPA & Google Consent Mode 4.7.3, at src/abilities/Verify_Setup_Ability.php

89 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 * 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