=')) { define('COOKIEBOT_URL', plugin_dir_url( __FILE__ )); include_once( dirname( __FILE__ ) . '/addons/cookiebot-addons-init.php' ); } else { define('COOKIEBOT_ADDONS_UNSUPPORTED_PHPVERSION',true); } } else { add_action('admin_notices', function() { ?>

get_cbid(); if(empty($cbid)) { echo '

'.__('You need to enter your Cookiebot ID.','cookiebot').'

'; echo '

'; echo __('Update your Cookiebot ID','cookiebot'); echo '

'; } else { echo '

'._e('Your Cookiebot is working!','cookiebot').'

'; } } /** * Cookiebot_WP Add option menu page for Cookiebot * * @version 2.2.0 * @since 1.0.0 */ function add_menu() { //Cookiebot Icon SVG base64 encoded $icon = 'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzIgNTQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNDYuODcyNTkwMyA4Ljc3MzU4MzM0QzQxLjk0MzkwMzkgMy4zODI5NTAxMSAzNC44NDI0OTQ2IDAgMjYuOTQ4MjgxOSAwIDEyLjA2NTE1NjggMCAwIDEyLjAyNDQ3NzQgMCAyNi44NTc0MjE5YzAgMTQuODMyOTQ0NSAxMi4wNjUxNTY4IDI2Ljg1NzQyMTkgMjYuOTQ4MjgxOSAyNi44NTc0MjE5IDcuODk0MjEyNyAwIDE0Ljk5NTYyMi0zLjM4Mjk1MDIgMTkuOTI0MzA4NC04Ljc3MzU4MzQtMi44ODk2OTY3LTEuMzY4ODY2My01LjM5OTMxMS0zLjQwNTQzOS03LjMyODA4MzgtNS45MDk2MzU4LTMuMTIxNDMwNiAzLjIwOTQxMDQtNy40OTI5OTQ0IDUuMjA0MTI5MS0xMi4zMzIwMjU4IDUuMjA0MTI5MS05LjQ4NDM0NDQgMC0xNy4xNzI5MjQ3LTcuNjYyNjU3Mi0xNy4xNzI5MjQ3LTE3LjExNTAyMzhzNy42ODg1ODAzLTE3LjExNTAyMzcgMTcuMTcyOTI0Ny0xNy4xMTUwMjM3YzQuNzIzNDgyMiAwIDkuMDAxNTU1MiAxLjkwMDU5MzkgMTIuMTA2MjkyIDQuOTc2MzA5IDEuOTU2OTIzNy0yLjY0MTEzMSA0LjU1MDAyNjMtNC43ODU1MTgzIDcuNTUzODE3Ni02LjIwODQzMTg2eiIvPjxwYXRoIGQ9Ik01NS4zODAzMjgyIDQyLjY1MDE5OTFDNDYuMzMzNzIyNyA0Mi42NTAxOTkxIDM5IDM1LjM0MTIwMzEgMzkgMjYuMzI1MDk5NiAzOSAxNy4zMDg5OTYgNDYuMzMzNzIyNyAxMCA1NS4zODAzMjgyIDEwYzkuMDQ2NjA1NSAwIDE2LjM4MDMyODIgNy4zMDg5OTYgMTYuMzgwMzI4MiAxNi4zMjUwOTk2IDAgOS4wMTYxMDM1LTcuMzMzNzIyNyAxNi4zMjUwOTk1LTE2LjM4MDMyODIgMTYuMzI1MDk5NXptLjAyMTMwOTItNy43NTU2MzQyYzQuNzM3MDI3NiAwIDguNTc3MTQ3MS0zLjgyNzE3MiA4LjU3NzE0NzEtOC41NDgyMjc5IDAtNC43MjEwNTYtMy44NDAxMTk1LTguNTQ4MjI4LTguNTc3MTQ3MS04LjU0ODIyOC00LjczNzAyNzUgMC04LjU3NzE0NyAzLjgyNzE3Mi04LjU3NzE0NyA4LjU0ODIyOCAwIDQuNzIxMDU1OSAzLjg0MDExOTUgOC41NDgyMjc5IDguNTc3MTQ3IDguNTQ4MjI3OXoiLz48L2c+PC9zdmc+'; add_menu_page( 'Cookiebot', __('Cookiebot','cookiebot'), 'manage_options', 'cookiebot', array($this,'settings_page'),$icon); add_submenu_page('cookiebot',__('Cookiebot Settings','cookiebot'),__('Settings','cookiebot'), 'manage_options', 'cookiebot',array($this,'settings_page')); add_submenu_page('cookiebot',__('Cookiebot Support','cookiebot'),__('Support','cookiebot'), 'manage_options', 'cookiebot_support',array($this,'support_page')); add_submenu_page('cookiebot',__('IAB','cookiebot'),__('IAB','cookiebot'), 'manage_options', 'cookiebot_iab',array($this,'iab_page')); if(defined('COOKIEBOT_ADDONS_UNSUPPORTED_PHPVERSION')) { //Load prior consent page anyway - but from Cookiebot WP Core plugin. add_submenu_page( 'cookiebot', __( 'Prior Consent', 'cookiebot' ), __( 'Prior Consent', 'cookiebot' ), 'manage_options', 'cookiebot-addons', array($this,'setting_page_placeholder' ) ); } } /** * Cookiebot_WP Add menu for network sites * * @version 2.2.0 * @since 2.2.0 */ function add_network_menu() { $icon = 'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzIgNTQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iI0ZGRkZGRiIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNDYuODcyNTkwMyA4Ljc3MzU4MzM0QzQxLjk0MzkwMzkgMy4zODI5NTAxMSAzNC44NDI0OTQ2IDAgMjYuOTQ4MjgxOSAwIDEyLjA2NTE1NjggMCAwIDEyLjAyNDQ3NzQgMCAyNi44NTc0MjE5YzAgMTQuODMyOTQ0NSAxMi4wNjUxNTY4IDI2Ljg1NzQyMTkgMjYuOTQ4MjgxOSAyNi44NTc0MjE5IDcuODk0MjEyNyAwIDE0Ljk5NTYyMi0zLjM4Mjk1MDIgMTkuOTI0MzA4NC04Ljc3MzU4MzQtMi44ODk2OTY3LTEuMzY4ODY2My01LjM5OTMxMS0zLjQwNTQzOS03LjMyODA4MzgtNS45MDk2MzU4LTMuMTIxNDMwNiAzLjIwOTQxMDQtNy40OTI5OTQ0IDUuMjA0MTI5MS0xMi4zMzIwMjU4IDUuMjA0MTI5MS05LjQ4NDM0NDQgMC0xNy4xNzI5MjQ3LTcuNjYyNjU3Mi0xNy4xNzI5MjQ3LTE3LjExNTAyMzhzNy42ODg1ODAzLTE3LjExNTAyMzcgMTcuMTcyOTI0Ny0xNy4xMTUwMjM3YzQuNzIzNDgyMiAwIDkuMDAxNTU1MiAxLjkwMDU5MzkgMTIuMTA2MjkyIDQuOTc2MzA5IDEuOTU2OTIzNy0yLjY0MTEzMSA0LjU1MDAyNjMtNC43ODU1MTgzIDcuNTUzODE3Ni02LjIwODQzMTg2eiIvPjxwYXRoIGQ9Ik01NS4zODAzMjgyIDQyLjY1MDE5OTFDNDYuMzMzNzIyNyA0Mi42NTAxOTkxIDM5IDM1LjM0MTIwMzEgMzkgMjYuMzI1MDk5NiAzOSAxNy4zMDg5OTYgNDYuMzMzNzIyNyAxMCA1NS4zODAzMjgyIDEwYzkuMDQ2NjA1NSAwIDE2LjM4MDMyODIgNy4zMDg5OTYgMTYuMzgwMzI4MiAxNi4zMjUwOTk2IDAgOS4wMTYxMDM1LTcuMzMzNzIyNyAxNi4zMjUwOTk1LTE2LjM4MDMyODIgMTYuMzI1MDk5NXptLjAyMTMwOTItNy43NTU2MzQyYzQuNzM3MDI3NiAwIDguNTc3MTQ3MS0zLjgyNzE3MiA4LjU3NzE0NzEtOC41NDgyMjc5IDAtNC43MjEwNTYtMy44NDAxMTk1LTguNTQ4MjI4LTguNTc3MTQ3MS04LjU0ODIyOC00LjczNzAyNzUgMC04LjU3NzE0NyAzLjgyNzE3Mi04LjU3NzE0NyA4LjU0ODIyOCAwIDQuNzIxMDU1OSAzLjg0MDExOTUgOC41NDgyMjc5IDguNTc3MTQ3IDguNTQ4MjI3OXoiLz48L2c+PC9zdmc+'; add_menu_page( 'Cookiebot', __('Cookiebot','cookiebot'), 'manage_network_options', 'cookiebot_network', array($this,'network_settings_page'),$icon); add_submenu_page('cookiebot_network',__('Cookiebot Settings','cookiebot'),__('Settings','cookiebot'), 'network_settings_page', 'cookiebot_network',array($this,'network_settings_page')); add_submenu_page('cookiebot_network',__('Cookiebot Support','cookiebot'),__('Support','cookiebot'), 'network_settings_page', 'cookiebot_support',array($this,'support_page')); } /** * Cookiebot_WP Cookiebot prior consent placeholder page * * @version 1.4.0 * @since 1.0.0 */ function setting_page_placeholder() { include __DIR__ . DIRECTORY_SEPARATOR . 'addons' . DIRECTORY_SEPARATOR . 'view/admin/settings/setting-page.php'; } /** * Cookiebot_WP Register Cookiebot settings * * @version 2.1.5 * @since 1.0.0 */ function register_cookiebot_settings() { register_setting('cookiebot', 'cookiebot-cbid'); register_setting('cookiebot', 'cookiebot-language'); register_setting('cookiebot', 'cookiebot-nooutput'); register_setting('cookiebot', 'cookiebot-nooutput-admin'); register_setting('cookiebot', 'cookiebot-autoupdate'); register_setting('cookiebot', 'cookiebot-script-tag-uc-attribute'); register_setting('cookiebot', 'cookiebot-script-tag-cd-attribute'); register_setting('cookiebot-iab', 'cookiebot-iab'); } /** * Cookiebot_WP Automatic update plugin if activated * * @version 2.2.0 * @since 1.5.0 */ function automatic_updates($update, $item) { //Do not update from subsite on a multisite installation if(is_multisite() && ! is_main_site()) { return $update; } //Check if we have everything we need $item = (array)$item; if(!isset($item['new_version']) || !isset($item['slug'])) { return $update; } //It is not Cookiebot if($item['slug'] !== 'cookiebot') { return $update; } // Check if cookiebot autoupdate is disabled if(!get_option('cookiebot-autoupdate',false)) { return $update; } // Check if multisite autoupdate is disabled if(is_multisite() && !get_site_option('cookiebot-autoupdate',false)) { return $update; } return true; } /** * Cookiebot_WP Get list of supported languages * * @version 1.4.0 * @since 1.4.0 */ public static function get_supported_languages() { $supportedLanguages = array(); $supportedLanguages['nb'] = __('Norwegian Bokmål','cookiebot'); $supportedLanguages['tr'] = __('Turkish','cookiebot'); $supportedLanguages['de'] = __('German','cookiebot'); $supportedLanguages['cs'] = __('Czech','cookiebot'); $supportedLanguages['da'] = __('Danish','cookiebot'); $supportedLanguages['sq'] = __('Albanian','cookiebot'); $supportedLanguages['he'] = __('Hebrew','cookiebot'); $supportedLanguages['ko'] = __('Korean','cookiebot'); $supportedLanguages['it'] = __('Italian','cookiebot'); $supportedLanguages['nl'] = __('Dutch','cookiebot'); $supportedLanguages['vi'] = __('Vietnamese','cookiebot'); $supportedLanguages['ta'] = __('Tamil','cookiebot'); $supportedLanguages['is'] = __('Icelandic','cookiebot'); $supportedLanguages['ro'] = __('Romanian','cookiebot'); $supportedLanguages['si'] = __('Sinhala','cookiebot'); $supportedLanguages['ca'] = __('Catalan','cookiebot'); $supportedLanguages['bg'] = __('Bulgarian','cookiebot'); $supportedLanguages['uk'] = __('Ukrainian','cookiebot'); $supportedLanguages['zh'] = __('Chinese','cookiebot'); $supportedLanguages['en'] = __('English','cookiebot'); $supportedLanguages['ar'] = __('Arabic','cookiebot'); $supportedLanguages['hr'] = __('Croatian','cookiebot'); $supportedLanguages['th'] = __('Thai','cookiebot'); $supportedLanguages['el'] = __('Greek','cookiebot'); $supportedLanguages['lt'] = __('Lithuanian','cookiebot'); $supportedLanguages['pl'] = __('Polish','cookiebot'); $supportedLanguages['lv'] = __('Latvian','cookiebot'); $supportedLanguages['fr'] = __('French','cookiebot'); $supportedLanguages['id'] = __('Indonesian','cookiebot'); $supportedLanguages['mk'] = __('Macedonian','cookiebot'); $supportedLanguages['et'] = __('Estonian','cookiebot'); $supportedLanguages['pt'] = __('Portuguese','cookiebot'); $supportedLanguages['ga'] = __('Irish','cookiebot'); $supportedLanguages['ms'] = __('Malay','cookiebot'); $supportedLanguages['sl'] = __('Slovenian','cookiebot'); $supportedLanguages['ru'] = __('Russian','cookiebot'); $supportedLanguages['ja'] = __('Japanese','cookiebot'); $supportedLanguages['hi'] = __('Hindi','cookiebot'); $supportedLanguages['sk'] = __('Slovak','cookiebot'); $supportedLanguages['es'] = __('Spanish','cookiebot'); $supportedLanguages['sv'] = __('Swedish','cookiebot'); $supportedLanguages['sr'] = __('Serbian','cookiebot'); $supportedLanguages['fi'] = __('Finnish','cookiebot'); $supportedLanguages['eu'] = __('Basque','cookiebot'); asort($supportedLanguages,SORT_LOCALE_STRING); return $supportedLanguages; } /** * Cookiebot_WP Output settings page * * @version 2.2.0 * @since 1.0.0 */ function settings_page() { /* Check if multisite */ if($is_ms = is_multisite()) { //Receive settings from multisite - this might change the way we render the form $network_cbid = get_site_option('cookiebot-cbid',''); $network_scrip_tag_uc_attr = get_site_option('cookiebot-script-tag-uc-attribute','custom'); $network_scrip_tag_cd_attr = get_site_option('cookiebot-script-tag-cd-attribute','custom'); } ?>

General Data Protection Regulation (GDPR) requires you to document each consent. At the same time you must be able to account for what user data you share with embedded third-party services on your website and where in the world the user data is sent.','cookiebot'); ?>

style="width:300px" />




 

       

'._('Network setting applied. Please contact website administrator to change this setting.').'
'; } ?>


       

'._('Network setting applied. Please contact website administrator to change this setting.').'
'; } ?>

/>

'; } else { ?> />

'._('Network setting applied. Please contact website administrator to change this setting.').'
'; } ?> [cookie_declaration] shortcode will still be available.','cookiebot') ?>

See a detailed guide here','cookiebot') ?>

'; $disabled = true; } else { ?> />

'._('Network setting applied. Please contact website administrator to change this setting.').'
'; } ?>

General Data Protection Regulation (GDPR) requires you to document each consent. At the same time you must be able to account for what user data you share with embedded third-party services on your website and where in the world the user data is sent.','cookiebot'); ?>



           



           


/>

/>

[cookie_declaration] shortcode will still be available.','cookiebot') ?>

See a detailed guide here','cookiebot') ?>

/>

'cookiebot_network', 'updated' => true ), network_admin_url('admin.php') )); exit; } /** * Cookiebot_WP Cookiebot support page * * @version 2.2.0 * @since 2.0.0 */ function support_page() { ?>

  1. Cookiebot account.','cookiebot'); ?>
  2. Manage > Settings and add setup your Cookiebot','cookiebot'); ?>
  3. "Your scripts" tab','cookiebot'); ?>
  4. [cookie_declaration] shortcode to a page to show the declation','cookiebot'); ?>

[cookie_declaration] to add the cookie declaration a page or post. The cookie declaration will always show the latest version from Cookiebot.','cookiebot'); ?>
lang attribute. Eg. [cookie_declaration lang="de"].','cookiebot'); ?>

").'
'; echo htmlentities("(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');").'
'; echo htmlentities("ga('create', 'UA-00000000-0', 'auto');").'
'; echo htmlentities("ga('send', 'pageview');").'
'; echo htmlentities("").'
'; ?>


'.htmlentities(' get_cbid(); $lang = ''; if(!empty($cbid)) { $atts = shortcode_atts(array( 'lang' => $this->get_language(), ), $atts, 'cookie_declaration' ); if(!empty($atts['lang'])) { $lang = ' data-culture="'.strtoupper($atts['lang']).'"'; //Use data-culture to define language } if(!is_multisite() || get_site_option('cookiebot-script-tag-cd-attribute','custom') == 'custom') { $tagAttr = get_option('cookiebot-script-tag-cd-attribute','async'); } else { $tagAttr = get_site_option('cookiebot-script-tag-cd-attribute'); } return ''; } else { return __('Please add your Cookiebot ID to show Cookie Declarations','cookiebot'); } } /** * Cookiebot_WP Get cookiebot cbid * * @version 2.2.0 * @since 1.0.0 */ public static function get_cbid() { $cbid = get_option('cookiebot-cbid'); if(is_multisite() && ($network_cbid = get_site_option('cookiebot-cbid'))) { if(empty($cbid)) { return $network_cbid; } } return $cbid; } /** * Cookiebot_WP Get the language code for Cookiebot * * @version 1.4.0 * @since 1.4.0 */ function get_language($onlyFromSetting=false) { // Get language set in setting page - if empty use WP language info $lang = get_option('cookiebot-language'); if(!empty($lang)) { if($lang != '_wp') { return $lang; } } if($onlyFromSetting) { return $lang; //We want only to get if already set } //Language not set - use WP language if($lang == '_wp') { $lang = get_bloginfo('language'); //Gets language in en-US format if(!empty($lang)) { list($lang) = explode('-',$lang); //Changes format from eg. en-US to en. } } return $lang; } /** * Cookiebot_WP Adding Cookiebot domain(s) to exclude list for WP Rocket minification. * * @version 1.6.1 * @since 1.6.1 */ function wp_rocket_exclude_external_js($external_js_hosts) { $external_js_hosts[] = 'consent.cookiebot.com'; // Add cookiebot domains $external_js_hosts[] = 'consentcdn.cookiebot.com'; return $external_js_hosts; } /** * Display admin notice for recommending cookiebot * * @version 2.0.5 * @since 2.0.5 */ function cookiebot_admin_notices() { if( ! $this->cookiebot_valid_admin_recommendation() ) { return false; } $two_week_review_ignore = add_query_arg( array( 'cookiebot_admin_notice' => 'hide' ) ); $two_week_review_temp = add_query_arg( array( 'cookiebot_admin_notice' => 'two_week' ) ); $notices = array( 'title' => __('Leave A Review?', 'cookiebot'), 'msg' => __('We hope you enjoy using WordPress Cookiebot! Would you consider leaving us a review on WordPress.org?', 'cookiebot'), 'link' => '
  • ' . __('Sure! I\'d love to!', 'cookiebot') . '
  • ' . __('I\'ve already left a review', 'cookiebot') . '
  • ' . __('Maybe Later', 'cookiebot') . '
  • ' . __('Never show again', 'cookiebot') . '
  • ', 'later_link' => $two_week_review_temp, 'int' => 14 ); echo '

    ' . $notices['title'] . '

    ' . $notices['msg'] . '

    '; wp_enqueue_style( 'cookiebot-admin-notices', plugins_url( 'css/notice.css', __FILE__ ), array(), '2.0.4' ); } /** * Validate if the last user action is valid for plugin recommendation * * @return bool * * @version 2.0.5 * @since 2.0.5 */ function cookiebot_valid_admin_recommendation() { //Default - the recommendation is allowed to be visible $return = true; $option = get_option('cookiebot_notice_recommend'); if( $option != false ) { //Never show again is clicked if( $option == 'hide' ) { $return = false; } elseif( is_numeric($option) && strtotime('now') < $option ) { //Show me after 2 weeks is clicked and the time is not valid yet $return = false; } } return $return; } /** * Save the user action on cookiebot recommendation link * * @version 2.0.5 * @since 2.0.5 */ function save_notice_link() { if( isset( $_GET['cookiebot_admin_notice'] ) ) { if( $_GET['cookiebot_admin_notice'] == 'hide' ) { update_option('cookiebot_notice_recommend', 'hide' ); } else { update_option('cookiebot_notice_recommend', strtotime('+2 weeks') ); } } } } endif; /** * Helper function to manipulate script tags * * @version 1.6 * @since 1.0 * @return string */ function cookiebot_assist($type='statistics') { //change to array if(!is_array($type)) { $type = array($type); } foreach($type as $tk=>$tv) { if(!in_array($tv,array('marketing','statistics','preferences'))) { unset($type[$tk]); } } if(sizeof($type) > 0) { return ' type="text/plain" data-cookieconsent="'.implode(',',$type).'"'; } return ''; } /** * Helper function to check if cookiebot is active. * Useful for other plugins adding support for Cookiebot. * * @version 2.2.2 * @since 1.2 * @return string */ function cookiebot_active() { $cbid = Cookiebot_WP::get_cbid(); if(!empty($cbid)) { return true; } return false; } if(!function_exists('cookiebot')) { /** * Returns the main instance of Cookiebot_WO to prevent the need to use globals. * * @version 1.0.0 * @since 1.0.0 * @return Cookiebot_WP */ function cookiebot() { return Cookiebot_WP::instance(); } } cookiebot();