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 / settings / pages / Multiple_Page.php

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

102 lines 2.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace cybot\cookiebot\settings\pages;
4
5 use cybot\cookiebot\lib\Cookiebot_Frame;
6 use cybot\cookiebot\lib\Cookiebot_WP;
7 use cybot\cookiebot\lib\Supported_Regions;
8 use InvalidArgumentException;
9 use function cybot\cookiebot\lib\asset_url;
10 use function cybot\cookiebot\lib\include_view;
11
12 class Multiple_Page implements Settings_Page_Interface {
13
14
15 private function get_multiple_banners() {
16 $banners = get_option( 'cookiebot-multiple-banners' );
17
18 if ( ! $banners ) {
19 return null;
20 }
21
22 foreach ( $banners as $banner => $data ) {
23 $format_region = $this->selected_region_list( $data['region'], false );
24 $banners[ $banner ]['region'] = $format_region;
25 }
26
27 return $banners;
28 }
29
30 private function selected_region_list( $option, $second ) {
31 $countries = Supported_Regions::get();
32 $list = explode( ', ', $option );
33
34 if ( $second ) {
35 $ccpa = esc_attr( get_option( 'cookiebot-ccpa' ) );
36 if ( $ccpa === '1' && ! in_array( 'US-06', $list, true ) ) {
37 array_push( $list, 'US-06' );
38 }
39 }
40
41 $selected = array();
42
43 foreach ( $list as $item ) {
44 if ( isset( $countries[ $item ] ) ) {
45 $selected[ $item ] = $countries[ $item ];
46 }
47 }
48
49 return $selected;
50 }
51
52 private function retroSecondaryId() {
53 $ccpa_group_id = esc_attr( get_option( 'cookiebot-ccpa-domain-group-id' ) );
54 $secondary_group_id = esc_attr( get_option( 'cookiebot-second-banner-id' ) );
55
56 if ( $ccpa_group_id && ! $secondary_group_id ) {
57 $secondary_group_id = $ccpa_group_id;
58 update_option( 'cookiebot-second-banner-id', $ccpa_group_id );
59 delete_option( 'cookiebot-ccpa-domain-group-id' );
60 }
61
62 return $secondary_group_id;
63 }
64
65 public function getCountryName( $code ) {
66 $countries = Supported_Regions::get();
67
68 return $countries[ $code ];
69 }
70
71 /**
72 * @throws InvalidArgumentException
73 */
74 public function display() {
75 $args = array(
76 'cbid' => Cookiebot_WP::get_cbid(),
77 'secondary_group_id' => $this->retroSecondaryId(),
78 'supported_regions' => Supported_Regions::get(),
79 'ccpa_compatibility' => esc_attr( get_option( 'cookiebot-ccpa' ) ),
80 'selected_regions' => $this->selected_region_list( esc_attr( get_option( 'cookiebot-second-banner-regions' ) ), true ),
81 'multiple_banners' => $this->get_multiple_banners(),
82 );
83
84 wp_enqueue_style(
85 'cookiebot-multiple-page-css',
86 asset_url( 'css/backend/multiple_page.css' ),
87 null,
88 Cookiebot_WP::COOKIEBOT_PLUGIN_VERSION
89 );
90
91 wp_enqueue_script(
92 'cookiebot-multiple-page-js',
93 asset_url( 'js/backend/multiple-page.js' ),
94 null,
95 Cookiebot_WP::COOKIEBOT_PLUGIN_VERSION,
96 true
97 );
98
99 include_view( Cookiebot_Frame::get_view_path() . 'settings/multiple-configuration/page.php', $args );
100 }
101 }
102