Initial commit: Atomaste website

This commit is contained in:
2025-12-10 12:17:30 -05:00
commit 0b9e5d1605
19260 changed files with 5206382 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
<?php
defined('ABSPATH') or die();
/**
* This file contains the blocks for the dashboard
* @since 2.0
*/
if (!function_exists('cmplz_blocks')) {
function cmplz_blocks() {
if ( ! cmplz_user_can_manage() ) {
return [];
}
$blocks = [
[
'id' => 'progress',
'header' => [
'type' => 'react',
'data' => 'ProgressHeader'
],
'content' => [ 'data' => 'ProgressBlock' ],
'footer' => [ 'data' => 'ProgressFooter' ],
'class' => ' cmplz-column-2',
],
[
'id' => 'documents',
'header' => [
'type' => 'react',
'data' => 'DocumentsHeader'
],
'content' => [ 'data' => 'DocumentsBlock' ],
'footer' => [ 'data' => 'DocumentsFooter' ],
'class' => 'border-to-border',
],
[
'id' => 'tools',
'header' => [
'type' => 'react',
'data' => 'ToolsHeader'
],
'content' => [ 'type' => 'react', 'data' => 'Tools' ],
'footer' => [ 'type' => 'react', 'data' => 'ToolsFooter' ],
'class' => 'border-to-border',
],
[
'id' => 'tips_tricks',
'header' => [
'type' => 'text',
'data' => __( "Tips & Tricks", 'complianz-gdpr' ),
],
'content' => ['data' => 'TipsTricks' ],
'footer' => [ 'data' => 'TipsTricksFooter' ],
'class' => ' cmplz-column-2',
],
[
'id' => 'other-plugins',
'header' => [
'type' => 'react',
'data' => 'OtherPluginsHeader'
],
'title' => __( "Other Plugins", 'complianz-gdpr' ),
'help' => __( 'A help text', 'complianz-gdpr' ),
'content' => [ 'type' => 'react', 'data' => 'OtherPlugins' ],
'footer' => [ 'type' => 'html', 'data' => '' ],
'class' => ' cmplz-column-2 no-border no-background',
],
];
return apply_filters( 'cmplz_blocks', $blocks );
}
}

View File

@@ -0,0 +1,159 @@
<?php
defined( 'ABSPATH' ) or die();
/**
* Creates an array of fields for the back-end
* - a premium field can be marked as such with the premium label
* 'premium' => [
* 'label' => __("premium label','complianz-gdpr') //if the label is different in premium
* 'url' => 'https://complianz.io/pricing',
* 'default' => 'no', //if the default is different in premium
* 'react_conditions //you can also override the default conditions
* ],
* - react_conditions => conditions checked in the react app
* - server_conditions => conditions which are checked on the server.
* - revoke_consent_onchange => if the value changes, consent is revoked for all users
* - example of a condition:
* react_conditions => [
* 'relation' => 'AND', //can be AND, OR. You can nest conditions like in wordpress meta_queries
* [
* '!field_name' => 'field_value' //you can do a NOT condition with !.
* ]
* server_conditions => [
* 'relation' => 'AND',
* [
* '!function_callback()' => true //with server side conditions, you can call a function with ()
* ]
* ]
*
* - Add a help text
* 'help' => [
* 'label' => 'default',
* 'title' => __( "Configuration", "complianz-gdpr" ),
* 'text' => __( "The URL depends on your configuration of Matomo.", 'complianz-gdpr' ),
* 'url' => 'https://complianz.io/configuring-matomo-for-wordpress-with-complianz/',
* ],
*
* - a tooltip or comment cannot contain html or a URL.
*
* @param $load_values //set false to prevent the values from loading. Use false when the value is not required
*
* @return array
*/
require_once( __DIR__ .'/fields/wizard/general.php' );
require_once( __DIR__ .'/fields/wizard/purposes.php' );
require_once( __DIR__ .'/fields/wizard/consent.php' );
require_once( __DIR__ .'/fields/wizard/services.php' );
require_once( __DIR__ .'/fields/wizard/plugins.php' );
require_once( __DIR__ .'/fields/wizard/cookiedatabase.php' );
require_once( __DIR__ .'/fields/wizard/documents.php' );
require_once( __DIR__ .'/fields/wizard/finish.php' );
require_once( __DIR__ .'/fields/general-settings/settings.php' );
require_once( __DIR__ .'/fields/tools/datarequests.php' );
require_once( __DIR__ .'/fields/tools/ab-testing.php' );
require_once( __DIR__ .'/fields/tools/placeholders.php' );
require_once( __DIR__ .'/fields/tools/processing-agreements.php' );
require_once( __DIR__ .'/fields/tools/proof-of-consent.php' );
require_once( __DIR__ .'/fields/tools/support.php' );
require_once( __DIR__ .'/fields/tools/security.php' );
require_once( __DIR__ .'/fields/tools/documents.php' );
require_once( __DIR__ .'/fields/tools/data.php' );
require_once( __DIR__ .'/fields/integrations/services.php' );
require_once( __DIR__ .'/disable-fields-filter.php' );
require_once( __DIR__ . '/fields/defaults.php' );
function cmplz_fields( $load_values = true, $options=false ): array {
if ( ! cmplz_user_can_manage() ) {
return [];
}
$stored_options = [];
if ($load_values) {
$stored_options = $options ?: get_option( 'cmplz_options' );
}
$fields = COMPLIANZ::$config->fields;
$default_order_index = 10;
foreach ( $fields as $key => $field ) {
$fields[$key] = $field = wp_parse_args( $field, [
'default' => '',
'id' => false,
'visible' => true,
'disabled' => false,
'order' => $default_order_index,
]
);
$default_order_index+=10;
//handle server side conditions. If front-end loaded, the conditions are not checked.
if ( isset( $field['server_conditions'] ) && function_exists('cmplz_conditions_apply') ) {
if ( ! cmplz_conditions_apply( $field['server_conditions'] ) ) {
unset( $fields[ $key ] );
continue;
}
}
if ( $load_values ) {
$value = $stored_options[ $field['id'] ] ?? false;
$field['default'] = apply_filters( 'cmplz_default_value', $field['default'], $field['id'], $field );
//the never_saved flag is used to determine if a radio field should be saved, to prevent empty values, as radio fields look completed, but might be empty.
$never_saved = !isset( $stored_options[ $field['id'] ] );
$field['never_saved'] = $never_saved;
if ( $never_saved && !empty($field['default']) ) {
$value = $field['default'];
}
/*
* Some fields are duplicate, but opposite, like safe_mode vs 'enable_cookie_blocker'.
* This function will get the value from the related field.
*/
$value = cmplz_maybe_get_from_source($value, $field);
$field['value'] = apply_filters( 'cmplz_field_value_' . $field['id'], $value, $field );
$fields[ $key ] = apply_filters( 'cmplz_field', $field, $field['id'] );
}
}
$fields = apply_filters( 'cmplz_fields_values', $fields );
uasort($fields, function($a, $b) {
return $a["order"] - $b["order"];
});
return array_values( $fields );
}
/**
* Some fields are duplicate, but opposite, like safe_mode vs 'enable_cookie_blocker'.
* This function will get the value from its related field.
* @param $value
* @param $field
*
* @return int|mixed|string
*/
function cmplz_maybe_get_from_source($value, $field ){
if ( !isset($field['source_id']) ) {
return $value;
}
//get value from source
$config_fields = COMPLIANZ::$config->fields;
$config_ids = array_column($config_fields, 'id');
$config_field_index = array_search( $field['source_id'], $config_ids);
if ( $config_field_index === false ){
return $value;
}
$source_field = $config_fields[$config_field_index];
$options = get_option( 'cmplz_options' );
$value = $options[ $source_field['id'] ] ?? 'not-set';//the mapped value could be false.
if ( $value !=='not-set' && isset($source_field['default']) ) {
$value = $source_field['default'];
}
//map to source_mapping
if ( isset($field['source_mapping']) ) {
$source_mapping = $field['source_mapping'];
if ( isset($source_mapping[$value]) ) {
$value = $source_mapping[$value];
}
}
return $value;
}

View File

@@ -0,0 +1,29 @@
<?php
defined('ABSPATH') or die();
/**
* @param $field
* @param $field_id
*
* @return mixed
*/
function cmplz_remove_fields($field, $field_id){
if ( $field_id === 'regions' && cmplz_get_option('use_country') ) {
$field['type']= 'multicheckbox';
}
if ( $field_id === 'configuration_by_complianz' && cmplz_get_option( 'compile_statistics' )==='matomo' && cmplz_get_option( 'matomo_anonymized' ) === 'yes' ) {
$field['disabled'] = array('no');
unset($field['premium']); //this could override the disabled state
$field['default'] = 'yes';
$field['comment'] = __( "With Matomo cookieless tracking, configuration by Complianz is required.", 'complianz-gdpr' );
}
return $field;
}
add_filter('cmplz_field', 'cmplz_remove_fields', 10, 2);

View File

@@ -0,0 +1,193 @@
<?php
defined( 'ABSPATH' ) or die( "you do not have access to this page!" );
/**
* Conditional notices for fields
*
* @return array
*/
function cmplz_field_notices( ): array {
if ( ! cmplz_user_can_manage() ) {
return [];
}
$notices = [];
if ( get_option( 'cmplz_detected_stats_type' ) || get_option( 'cmplz_detected_stats_data' ) ) {
$notices[] = [
'field_id' => 'compile_statistics',
'label' => 'default',
'title' => __( "Prefilled field", 'complianz-gdpr' ),
'text' => __( "Some answers have been been pre-filled by our system detection. Please check before continuing", 'complianz-gdpr' ).
' '.__( "Please make sure you remove your current implementation to prevent double statistics tracking.", 'complianz-gdpr' ),
];
}
$stats = cmplz_scan_detected_stats();
if ( $stats ) {
$type = reset( $stats );
$type = COMPLIANZ::$config->stats[ $type ];
$notices[] = [
'field_id' => 'compile_statistics',
'label' => 'default',
'title' => __( "Detected statistics", 'complianz-gdpr' ),
'text' => cmplz_sprintf( __( "The site scan detected %s on your site, which means the answer to this question should be %s.", 'complianz-gdpr' ), $type, $type ),
];
}
$social_media = cmplz_scan_detected_social_media();
if ( $social_media ) {
foreach ( $social_media as $key => $social_medium ) {
$social_media[ $key ] = COMPLIANZ::$config->thirdparty_socialmedia[ $social_medium ];
}
$social_media = implode( ', ', $social_media );
$notices[] = [
'field_id' => 'uses_social_media',
'label' => 'default',
'title' => __( "Detected social media", 'complianz-gdpr' ),
'text' => cmplz_sprintf( __( "The scan found social media buttons or widgets for %s on your site, which means the answer should be yes", 'complianz-gdpr' ), $social_media ),
];
}
$contact_forms = cmplz_site_uses_contact_forms();
if ( $contact_forms ) {
$notices[] = [
'field_id' => 'purpose_personaldata',
'label' => 'default',
'title' => __( "Detected forms", 'complianz-gdpr' ),
'text' => __( 'The scan found forms on your site, which means answer should probably include "contact".', 'complianz-gdpr' ),
];
}
$thirdparties = cmplz_scan_detected_thirdparty_services();
if ( $thirdparties ) {
foreach ( $thirdparties as $key => $thirdparty ) {
$thirdparties[ $key ] = COMPLIANZ::$config->thirdparty_services[ $thirdparty ];
}
$thirdparties = implode( ', ', $thirdparties );
$notices[] = [
'field_id' => 'uses_thirdparty_services',
'label' => 'default',
'title' => __( "Detected third-party services", 'complianz-gdpr' ),
'text' => cmplz_sprintf( __( "The scan found third-party services on your website: %s, this means the answer should be yes.", 'complianz-gdpr' ), $thirdparties ),
];
}
if ( cmplz_has_region('us') && COMPLIANZ::$banner_loader->site_shares_data()
) {
$notices[] = [
'field_id' => 'purpose_personaldata',
'label' => 'default',
'title' => __( "Selling personal data", 'complianz-gdpr' ),
'text' => __( "The site scan detected cookies from services that share data with Third Parties. According to US privacy laws, your website is considered to sell personal data if it collects and shares any personal data in return for money or services. This includes a service like Google Analytics.", 'complianz-gdpr' ),
];
}
if (function_exists('et_setup_theme')) {
$notices[] = [
'field_id' => 'thirdparty_services_on_site',
'label' => 'warning',
'title' => __( "Divi detected", 'complianz-gdpr' ),
'text' => __( "Your site uses Divi. If you use reCAPTCHA on your site, you may need to disable the reCAPTCHA integration in Complianz. ", 'complianz-gdpr' ),
'url' => 'https://complianz.io/blocking-recaptcha-on-divi/',
];
}
if ( COMPLIANZ::$banner_loader->site_shares_data() ) {
$notices[] = [
'field_id' => 'data_disclosed_us',
'label' => 'default',
'title' => __( "Third-party cookies", 'complianz-gdpr' ),
'text' => __( "The site scan detected cookies from services which share data with Third Parties. If these cookies were also used in the past 12 months, you should at least select the option 'Internet activity...'",
'complianz-gdpr' ),
];
}
if ( COMPLIANZ::$banner_loader->uses_google_tagmanager() ) {
$notices[] = [
'field_id' => 'category_all',
'label' => 'warning',
'title' => "Google Tag Manager",
'text' => __( "You're using Google Tag Manager. This means you need to configure Tag Manager to use the below categories.", 'complianz-gdpr' ),
'url' => 'https://complianz.io/definitive-guide-to-tag-manager-and-complianz/',
];
}
if ( COMPLIANZ::$banner_loader->cookie_warning_required_stats( 'eu' ) ) {
$notices[] = [
'field_id' => 'use_categories',
'label' => 'warning',
'title' => __( "Using categories is mandatory", 'complianz-gdpr' ),
'text' => __( "Categories are mandatory for your statistics configuration.", 'complianz-gdpr' ),
'url' => 'https://complianz.io/statistics-as-mandatory-category',
];
}
/**
* For the cookie page and the US banner we need a link to the privacy statement.
* In free, and in premium when the privacy statement is not enabled, we choose the WP privacy page. If it is not set, the user needs to create one.
* */
if (cmplz_has_region('us') || cmplz_has_region('ca') || cmplz_has_region('au')){
$notices[] = [
'field_id' => 'privacy-statement',
'label' => 'default',
'title' => __( "Privacy Statement", 'complianz-gdpr' ),
'text' => __( "It is recommended to select a Privacy Statement.", 'complianz-gdpr' )." ".__("The link to the Privacy Statement is used in the consent banner and in your Cookie Policy.", 'complianz-gdpr' ),
];
} else {
$notices[] = [
'field_id' => 'privacy-statement',
'label' => 'default',
'title' => __( "Privacy Statement", 'complianz-gdpr' ),
'text' => __( "It is recommended to select a Privacy Statement.", 'complianz-gdpr' )." ".__("The link to the Privacy Statement is used in your Cookie Policy.", 'complianz-gdpr' ) ,
];
}
/**
* If a plugin places marketing cookie as first party, we can't block it automatically, unless the wp consent api is used.
* User should be warned, and category marketing is necessary
* */
if ( cmplz_detected_firstparty_marketing() ) {
$notices[] = [
'field_id' => 'uses_firstparty_marketing_cookies',
'label' => 'default',
'title' => __( "First-party marketing cookies", 'complianz-gdpr' ),
'text' => __( "You use plugins which place first-party marketing cookies. Complianz cannot only block such cookies if the plugin conforms to the WP Consent API, or you have enabled Consent Per Service", 'complianz-gdpr' ),
'url' => 'https://complianz.io/first-party-marketing-cookies',
];
}
if ( cmplz_uses_sensitive_data() ) {
$notices[] = [
'field_id' => 'sensitive_information_processed',
'label' => 'default',
'title' => __( "Sensitive & personal data", 'complianz-gdpr' ),
'text' => __( "You have selected options that indicate your site processes sensitive, personal data. You should select 'Yes'", 'complianz-gdpr' ) ,
];
}
if ( cmplz_get_option( 'cookie-statement' ) !== 'generated' ) {
$notices[] = [
'field_id' => 'uses_ad_cookies_personalized',
'label' => 'warning',
'title' => __( "TCF not possible with custom Cookie Policy", 'complianz-gdpr' ),
'text' => __( "You have chosen a custom Cookie Policy. The TCF option is disabled as it can only be used in combination with the Cookie Policy generated by Complianz.", 'complianz-gdpr' ),
];
}
if ( cmplz_tcf_active() ) {
$notices[] = [
'field_id' => 'cookie-statement',
'label' => 'default',
'title' => __( "TCF enabled", 'complianz-gdpr' ),
'text' => __( "You have enabled TCF. This option can only be used in combination with the Cookie Policy generated by Complianz.", 'complianz-gdpr' ),
];
}
if ( cmplz_tcf_active() ) {
$notices[] = [
'field_id' => 'uses_thirdparty_services',
'label' => 'warning',
'title' => __( "TCF enabled: Review customization guidelines", 'complianz-gdpr' ),
'text' => __( "You have enabled TCF. Please check the do's and don'ts regarding customizations:
<a href='https://complianz.io/customizing-the-tcf-banner/?utm_source=tipstricks&utm_medium=plugin&utm_campaign=articles&utm_id=66&utm_content=tcf' target='_blank'>Read more</a>", 'complianz-gdpr' ),
'dismissible' => true,
];
}
return apply_filters('cmplz_field_notices', $notices);
}

View File

@@ -0,0 +1,138 @@
<?php
defined( 'ABSPATH' ) or die( "you do not have access to this page!" );
add_filter( 'cmplz_default_value', 'cmplz_set_default', 10, 3 );
/**
* Values used if 'never_saved', which is the case when the id is not set in the array
* @param $value
* @param $fieldname
* @param $field
*
* @return array|false|mixed|string
*/
function cmplz_set_default( $value, $fieldname, $field ) {
if ( $fieldname === 'compile_statistics' ) {
$stats = cmplz_scan_detected_stats();
if ( $stats ) {
return reset( $stats );
}
}
if ( $fieldname === 'purpose_personaldata' ) {
if ( cmplz_has_region('us')
&& COMPLIANZ::$banner_loader->site_shares_data()
) {
//possibly not an array yet, when it's empty
if ( ! is_array( $value ) ) {
$value = array();
}
$value[] = 'selling-data-thirdparty';
return $value;
}
}
if ( $fieldname === 'sensitive_information_processed' ) {
if ( cmplz_uses_sensitive_data() ) {
return 'yes';
}
}
if ( $fieldname === 'purpose_personaldata' ) {
$contact_forms = cmplz_site_uses_contact_forms();
if ( $contact_forms ) {
//possibly not an array yet, when it's empty
if ( ! is_array( $value ) ) {
$value = array();
}
$value[] = 'contact';
return $value;
}
}
if ( $fieldname === 'country_company' ) {
$country_code = substr( get_locale(), 3, 2 );
if ( isset( COMPLIANZ::$config->countries[ $country_code ] ) ) {
$value = $country_code;
}
}
if ( $fieldname === 'uses_social_media' ) {
$social_media = cmplz_scan_detected_social_media();
if ( $social_media ) {
return 'yes';
}
}
if ( $fieldname === 'socialmedia_on_site' ) {
$social_media = cmplz_scan_detected_social_media();
if ( $social_media ) {
$current_social_media = array();
foreach ( $social_media as $key ) {
$current_social_media[] = $key;
}
return $current_social_media;
}
}
if ( $fieldname === 'uses_thirdparty_services' ) {
//don't call the cookieblocker blocked_script functions here, as this can cause infinite loops
$blocked_scripts = cmplz_get_transient( 'cmplz_blocked_scripts' );
$custom_thirdparty_scripts = is_array($blocked_scripts) && count( $blocked_scripts ) > 0;
if ( cmplz_scan_detected_thirdparty_services() || $custom_thirdparty_scripts ) {
return 'yes';
}
}
if ($fieldname === 'thirdparty_services_on_site' ) {
$thirdparty = cmplz_scan_detected_thirdparty_services();
if ( $thirdparty ) {
$current_thirdparty = array();
foreach ( $thirdparty as $key ) {
$current_thirdparty[] = $key;
}
return $current_thirdparty;
}
}
if ( $fieldname === 'data_disclosed_us' || $fieldname === 'data_sold_us' ) {
if ( empty($value) && COMPLIANZ::$banner_loader->site_shares_data() ) {
//possibly not an array yet.
if ( ! is_array( $value ) ) {
$value = [];
}
$value[] = 'internet';
return $value;
}
}
if ( $fieldname === 'uses_firstparty_marketing_cookies' && empty($value) ) {
if ( cmplz_detected_firstparty_marketing() ) {
return 'yes';
}
}
/** Add-ons **/
if ($fieldname === 'financial-incentives-terms-url') {
if ( defined( 'cmplz_tc_version' )) {
$page_id = COMPLIANZ_TC::$document->get_shortcode_page_id();
if ($page_id) {
return get_permalink($page_id);
}
}
}
if ( $fieldname === 'is_webshop' ){
if (class_exists( 'WooCommerce' ) || class_exists( 'Easy_Digital_Downloads' ) ) {
$value = 'yes';
}
}
return $value;
}

View File

@@ -0,0 +1,162 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_settings_fields', 100 );
function cmplz_settings_fields($fields){
return array_merge($fields, [
[
'id' => 'use_country',
'menu_id' => 'settings-general',
'group_id' => 'settings-general',
'premium' => [
'description' => __( "You can use GEO IP to enable the warning only for countries with a cookie law, or which you target", 'complianz-gdpr' ),
],
'type' => 'checkbox',
'label' => __( "Enable GEO IP", 'complianz-gdpr' ),
'revoke_consent_onchange' => true,
'tooltip' => __( 'If enabled, the cookie warning will not show for countries without a cookie law, and will adjust consent management depending on supported privacy laws', 'complianz-gdpr' ),
],
[
'id' => 'use_cdb_api',
'menu_id' => 'settings-cd',
'group_id' => 'settings-cd',
'type' => 'radio',
'required' => false,
'default' => 'yes',
'options' => COMPLIANZ::$config->yes_no,
'label' => __( "Do you consent to the use of the cookiedatabase.org API?", 'complianz-gdpr' ),
'tooltip' => __( "Without the API, you will have to manually describe all found cookies, their purpose, function, service and service types. ", 'complianz-gdpr' ),
'help' => [
'label' => 'default',
'title' => 'Cookiedatabase.org',
'text' => __( 'Complianz provides your Cookie Policy with comprehensive cookie descriptions, supplied by cookiedatabase.org. We connect to this open-source database using an external API, which sends the results of the cookiescan (a list of found cookies, used plugins and your domain) to cookiedatabase.org, for the sole purpose of providing you with accurate descriptions and keeping them up-to-date on a regular basis.', 'complianz-gdpr' ),
'url' => 'https://cookiedatabase.org/privacy-statement/',
],
],
[
'id' => 'use_cdb_links',
'menu_id' => 'settings-cd',
'group_id' => 'settings-cd',
'type' => 'radio',
'required' => false,
'default' => 'yes',
'options' => COMPLIANZ::$config->yes_no,
'react_conditions' => [
'relation' => 'AND',
[
'use_cdb_api' => 'yes',
]
],
'label' => __( "Do you want to hyperlink cookie names so visitors can find more information on Cookiedatabase.org?", 'complianz-gdpr' ),
'tooltip' => __("These links will be added with HTML attributes so it won't hurt SEO.", "complianz-gdpr"),
],
[
'id' => 'send_notifications_email',
'menu_id' => 'settings-general',
'group_id' => 'settings-general',
'type' => 'checkbox',
'required' => false,
'default' => false,
'options' => COMPLIANZ::$config->yes_no,
'label' => __( "Notifications by email", 'complianz-gdpr' ),
'tooltip' => __("Get notified of important updates, changes, and settings.", "complianz-gdpr"),
],
[
'id' => 'notifications_email_address',
'menu_id' => 'settings-general',
'group_id' => 'settings-general',
'type' => 'email',
'required' => false,
'default' => get_bloginfo('admin_email'),
'label' => __( "Email address", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'send_notifications_email' => true,
]
],
],
[
'id' => 'disable_notifications',
'menu_id' => 'settings-general',
'group_id' => 'settings-general',
'type' => 'checkbox',
'label' => __( "Disable notifications", 'complianz-gdpr' ),
'tooltip' => __( 'Disable all plus ones and warnings on your dashboard.', 'complianz-gdpr' ),
'disabled' => false,
],
[
'id' => 'restart_tour',
'menu_id' => 'settings-general',
'group_id' => 'settings-general',
'url' => add_query_arg( array( 'page' => 'complianz','tour'=>1), admin_url( 'admin.php' ) ).'#dashboard',
'type' => 'button',
'label' => __( "Restart plugin tour", 'complianz-gdpr' ),
'button_text' => __( "Start", 'complianz-gdpr' ),
],
[
'id' => 'cookie_expiry',
'menu_id' => 'settings-general',
'group_id' => 'settings-general',
'type' => 'number',
'default' => 365,
'label' => __( "Consent banner expiration in days", 'complianz-gdpr' ),
],
[
'id' => 'disable_automatic_cookiescan',
'menu_id' => 'settings-cd',
'group_id' => 'settings-cd',
'type' => 'checkbox',
'default' => false,
'label' => __( "Disable the monthly site scan, subsequent sync with cookiedatabase.org and compliance reporting.", "complianz-gdpr" ),
'tooltip' => __('Stay up-to-date with our monthly newsletter, including the onboarding of certain features and information about plugin changes.', 'comlpianz-gdpr')
],
[
'id' => 'enable_cookieblocker_ajax',
'menu_id' => 'settings-general',
'group_id' => 'settings-general',
'type' => 'checkbox',
'label' => __( "Enable cookie blocker for ajax loaded content", 'complianz-gdpr'),
'disabled' => false,
'default' => false,
'tooltip' => __( "When content is loaded with ajax, for example with a load more button or lightbox, this option could help blocking the service correctly", 'complianz-gdpr' ),
],
[
'id' => 'set_cookies_on_root',
'menu_id' => 'settings-general',
'group_id' => 'settings-general',
'type' => 'checkbox',
'default' => false,
'label' => __( "Set cookiebanner cookies on the root domain", 'complianz-gdpr' ),
'help' => [
'label' => 'default',
'title' => __( 'Cookies on Root Domain', 'complianz-gdpr' ),
'text' => __( "This is useful if you have a multisite, or several sites as subdomains on a main site", 'complianz-gdpr' ),
],
],
[
'id' => 'cookie_domain',
'menu_id' => 'settings-general',
'group_id' => 'settings-general',
'type' => 'text',
'default' => false,
'label' => __( "Domain to set the cookies on", 'complianz-gdpr' ),
'help' => [
'label' => 'default',
'title' => __( 'Cookie Domain', 'complianz-gdpr' ),
'text' => __( "This should be your main, root domain.", 'complianz-gdpr' ),
],
'react_conditions' => [
'relation' => 'AND',
[
'set_cookies_on_root' => true,
]
],
]
]);
}

View File

@@ -0,0 +1,32 @@
<?php
add_filter( 'cmplz_fields', 'cmplz_integrations_services_fields', 100 );
function cmplz_integrations_services_fields($fields){
return array_merge($fields, [
[
'id' => 'integrations-services',
'menu_id' => 'integrations-services',
'type' => 'integrations-services',
'help' => [
'label' => 'default',
'title' => __( "Developers and custom implementations", 'complianz-gdpr' ),
'text' => __( "Complianz is built to be easily configured, with automatic background processes, integrations and a wizard for specific questions. But this is WordPress, a million different configurations sometimes ask for custom implementations. We have collected many custom implementations from our contributors, and have written an article for anyone who wants to make their own integration.", 'complianz-gdpr'),
'url' => 'https://complianz.io/developers-guide-for-third-party-integrations/',
],
],
[
'id' => 'integrations-plugins',
'menu_id' => 'integrations-plugins',
'type' => 'integrations-plugins',
],
[
'id' => 'integrations-script-center',
'menu_id' => 'integrations-script-center',
'type' => 'integrations-script-center',
],
]);
}

View File

@@ -0,0 +1,81 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_abtesting_fields', 100 );
function cmplz_abtesting_fields($fields){
return array_merge($fields, [
/*
** a_b_testing = consent statistics
** a_b_testing_buttons = buttons to add banners
** easier, not prettier
*/
[
'id' => 'a_b_testing',
'menu_id' => 'ab-testing',
'group_id' => 'statistics-settings',
'premium' => [
'url' => 'https://complianz.io/pricing',
],
'type' => 'checkbox',
'label' => __( "Enable consent statistics", 'complianz-gdpr' ),
'comment' => __( 'If enabled, the plugin will visualize stored records of consent.', 'complianz-gdpr' ),
'disabled' => true,
'default' => false,
],
[
'id' => 'a_b_testing_buttons',
'menu_id' => 'ab-testing',
'group_id' => 'statistics-settings',
'source' => 'settings',
'type' => 'checkbox',
'label' => __( "Enable A/B testing", 'complianz-gdpr' ),
'premium' => [
'url' => 'https://complianz.io/pricing',
'disabled' => false,
],
'comment' => __( 'If enabled, the plugin will track which consent banner has the best conversion rate.', 'complianz-gdpr' ),
'disabled' => true,
'default' => false,
'condition_action' => 'disable',
'react_conditions' => [
'relation' => 'AND',
[
'a_b_testing' => true,
]
],
],
[
'id' => 'a_b_testing_duration',
'menu_id' => 'ab-testing',
'group_id' => 'statistics-settings',
'type' => 'number',
'label' => __( "Duration in days of the A/B testing period", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'a_b_testing_buttons' => true,
]
],
'default' => 30,
],
[
'id' => 'statistics-feedback',
'menu_id' => 'ab-testing',
'group_id' => 'statistics-settings',
'type' => 'statistics-feedback',
'label' => '',
],
[
'id' => 'statistics_overview',
'menu_id' => 'ab-testing',
'group_id' => 'statistics-view',
'type' => 'statistics',
'label' => '',
'disabled' => true,
],
]);
}

View File

@@ -0,0 +1,50 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_tools_data_fields', 100 );
function cmplz_tools_data_fields( $fields ) {
return array_merge( $fields, [
[
'id' => 'export_settings',
'menu_id' => 'tools-data',
'group_id' => 'tools-data',
'disabled' => false,
'type' => 'export',
'url' => add_query_arg( array( 'page' => 'complianz', 'action' => 'cmplz_export_settings' ), admin_url( 'admin.php' ) ),
'button_text' => __( "Export settings", 'complianz-gdpr' ),
'label' => __( "Export", 'complianz-gdpr' ),
'tooltip' => __( 'You can use this to export your settings to another site', 'complianz-gdpr' ),
],
[
'id' => 'import_settings',
'menu_id' => 'tools-data',
'group_id' => 'tools-data',
'premium' => [
'comment' => __('You can use this to import your settings from another site', 'complianz-gdpr'),
'disabled' => false,
],
'disabled' => true,
'type' => 'import',
'label' => __( "Import", 'complianz-gdpr' ),
],
[
'id' => 'reset_settings',
'menu_id' => 'tools-data',
'group_id' => 'tools-data',
'warn' => __( 'Are you sure? This will remove all Complianz data.', 'complianz-gdpr' ),
'type' => 'button',
'action' => 'reset_settings',
'label' => __( "Reset", 'complianz-gdpr' ),
'tooltip' => __( 'This will reset all settings to defaults. All data in the Complianz plugin will be deleted!', 'complianz-gdpr' ),
],
[
'id' => 'clear_data_on_uninstall',
'menu_id' => 'tools-data',
'group_id' => 'tools-data',
'type' => 'checkbox',
'label' => __( "Clear all data from Complianz on uninstall", 'complianz-gdpr' ),
'tooltip' => __( 'Enabling this option will delete all your settings, and the Complianz tables when you deactivate and remove Complianz.', 'complianz-gdpr' ),
],
] );
}

View File

@@ -0,0 +1,90 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_tools_fields', 110 );
function cmplz_tools_fields( $fields ) {
return array_merge( $fields, [
[
'id' => 'datarequest-entries',
'menu_id' => 'data-requests',
'group_id' => 'datarequest-entries',
'type' => 'datarequests',
],
[
'id' => 'export-personal-data',
'menu_id' => 'data-requests',
'group_id' => 'settings',
'type' => 'button',
'url' => admin_url( 'export-personal-data.php' ),
'button_text' => __( "View export options", 'complianz-gdpr' ),
'label' => __( "Export personal data", 'complianz-gdpr' ),
],
[
'id' => 'erase-personal-data',
'menu_id' => 'data-requests',
'group_id' => 'settings',
'type' => 'button',
'url' => admin_url( 'erase-personal-data.php' ),
'button_text' => __( "View erase options", 'complianz-gdpr' ),
'label' => __( "Erase personal data", 'complianz-gdpr' ),
],
[
'id' => 'export-datarequests',
'menu_id' => 'data-requests',
'group_id' => 'settings',
'type' => 'export-datarequests',
'label' => __( "Export Data Requests", 'complianz-gdpr' ),
],
[
'id' => 'notification_from_email',
'menu_id' => 'data-requests',
'group_id' => 'settings',
'type' => 'email',
'label' => __( "Notification sender email address", 'complianz-gdpr' ),
'default' => get_option('admin_email'),
'tooltip' => __( "When emails are sent, you can choose the sender email address here. Please note that it should have this website's domain as sender domain, otherwise the server might block the email from being sent.", 'complianz-gdpr' ),
'help' => [
'label' => 'default',
'title' => __( "Responding to data requests", 'complianz-gdpr' ),
'text' => __( 'You have an open data requests ready for response? Get started here.', 'complianz-gdpr' ),
'url' => 'https://complianz.io/responding-to-a-data-request/',
],
],
[
'id' => 'notification_email_subject',
'menu_id' => 'data-requests',
'group_id' => 'settings',
'type' => 'text',
'label' => __( "Notification email subject", 'complianz-gdpr' ),
'default' => __( 'We have received your request', 'complianz-gdpr' ),
'tooltip' => __( "Subject used for Data Request email notifications.", 'complianz-gdpr' ),
'server_conditions' => [
'relation' => 'AND',
[
'cmplz_datarequests_or_dnsmpi_active()' => true,
]
],
],
[
'id' => 'notification_email_content',
'menu_id' => 'data-requests',
'group_id' => 'settings',
'type' => 'editor',
'label' => __( "Notification email content", 'complianz-gdpr' ),
'default' => __( 'Hi {name}', 'complianz-gdpr' ) . '<br><br>'
. __( 'We have received your request on {blogname}. Depending on the specific request and legal obligations we might follow-up.', 'complianz-gdpr' )
. '<br />' . '<p>' . _x( 'Kind regards,', 'email signature', 'complianz-gdpr' ) . '</p>'
. '<br />' . '<p>' . '{blogname} ' . '</p>',
'tooltip' => __( "Email content used for Data Request email notifications.", 'complianz-gdpr' ),
'server_conditions' => [
'relation' => 'AND',
[
'cmplz_datarequests_or_dnsmpi_active()' => true,
]
],
],
] );
}

View File

@@ -0,0 +1,55 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_tools_documents_fields', 100 );
function cmplz_tools_documents_fields( $fields ) {
return array_merge( $fields, [
[
'id' => 'use_document_css',
'menu_id' => 'tools-documents',
'group_id' => 'tools-documents-general',
'type' => 'checkbox',
'label' => __( "Use document CSS by Complianz", 'complianz-gdpr' ),
'default' => true,
'tooltip' => __( "Disable to let your theme take over.", 'complianz-gdpr' ),
],
[
'id' => 'use_custom_document_css',
'menu_id' => 'tools-documents',
'group_id' => 'tools-documents-css',
'type' => 'checkbox',
'label' => __( "Enable custom document CSS", 'complianz-gdpr' ),
'default' => false,
'tooltip' => __( "Enable if you want to add custom CSS for the documents", 'complianz-gdpr' ),
],
[
'id' => 'custom_document_css',
'menu_id' => 'tools-documents',
'group_id' => 'tools-documents-css',
'type' => 'css',
'label' => __( "Custom document CSS", 'complianz-gdpr' ),
'default' => '#cmplz-document h2 {} /* titles in complianz documents */'
. "\n" . '#cmplz-document h2.annex{} /* titles in annexes */'
. "\n" . '#cmplz-document .subtitle.annex{} /* subtitles in annexes */'
. "\n" . '#cmplz-document, #cmplz-document p, #cmplz-document span, #cmplz-document li {} /* text */'
. "\n" . '#cmplz-cookies-overview .cmplz-service-header {} /* service header in cookie policy */'
. "\n" . '#cmplz-cookies-overview .cmplz-service-desc {} /* service description */'
. "\n" . '#cmplz-document.impressum, #cmplz-document.cookie-statement'
. "\n" . '#cmplz-document.privacy-statement {} /* styles for impressum */',
'help' => [
'label' => 'default',
'title' => __( "Custom CSS", 'complianz-gdpr' ),
'text' => __( "You can add additional custom CSS here. For tips and CSS lessons, check out our documentation.", 'complianz-gdpr'),
'url' => 'https://complianz.io/?s=css',
],
'condition_action' => 'disable',
'react_conditions' => [
'relation' => 'AND',
[
'use_custom_document_css' => true,
]
],
],
] );
}

View File

@@ -0,0 +1,182 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_placeholders_fields', 100 );
function cmplz_placeholders_fields($fields){
return array_merge($fields, [
[
'id' => 'dont_use_placeholders',
'menu_id' => 'placeholders',
'group_id' => 'placeholders-settings',
'type' => 'checkbox',
'step' => 'cookie-blocker',
'label' => __( "Disable placeholder insertion", 'complianz-gdpr' ),
'default' => false,
'tooltip' => __( "If you experience styling issues with videos or iFrames you can disable the placeholder insertion, which in some themes can conflict with theme styling.", 'complianz-gdpr' ),
'condition_action' => 'disable',
'react_conditions' => [
'relation' => 'AND',
[
'safe_mode' => false,
]
],
],
[
'id' => 'blocked_content_text',
'menu_id' => 'placeholders',
'group_id' => 'placeholders-settings',
'type' => 'text',
'translatable' => true,
'label' => __( "Blocked content text", 'complianz-gdpr' ),
'default' => cmplz_sprintf(__( 'Click to accept %s cookies and enable this content', 'complianz-gdpr' ), '{category}'),
'tooltip' => __( 'The blocked content text appears when for example a YouTube video is embedded.', 'complianz-gdpr' ),
'help' => [
'label' => 'default',
'title' => __( "Blocked content text", 'complianz-gdpr' ),
'text' => __( 'Do not change or translate the {category} string.', 'complianz-gdpr' ).'&nbsp;'.__( 'You may remove it if you want.', 'complianz-gdpr' ).'&nbsp;'.__( 'It will be replaced with the name of the category that is blocked.', 'complianz-gdpr' ),
],
'condition_action' => 'disable',
'react_conditions' => [
'relation' => 'AND',
[
'safe_mode' => false,
'consent_per_service' => 'no',
'dont_use_placeholders' => false,
]
],
],
[
'id' => 'blocked_content_text_per_service',
'menu_id' => 'placeholders',
'group_id' => 'placeholders-settings',
'type' => 'text',
'translatable' => true,
'label' => __( "Blocked content text", 'complianz-gdpr' ),
'default' => cmplz_sprintf(__( "Click 'I agree' to enable %s", 'complianz-gdpr' ), '{service}'),
'tooltip' => __( 'The blocked content text appears when for example a YouTube video is embedded.', 'complianz-gdpr' ),
'help' => [
'label' => 'default',
'title' => __( "Blocked content text", 'complianz-gdpr' ),
'text' => __( 'Do not change or translate the {service} string.', 'complianz-gdpr' ).'&nbsp;'.__( 'You may remove it if you want.', 'complianz-gdpr' ).'&nbsp;'.__( 'It will be replaced with the name of the service that is blocked.', 'complianz-gdpr' ),
],
'condition_action' => 'disable',
'react_conditions' => [
'relation' => 'AND',
[
'safe_mode' => false,
'consent_per_service' => 'yes',
'dont_use_placeholders' => false,
]
],
],
[
'id' => 'agree_text_per_service',
'menu_id' => 'placeholders',
'group_id' => 'placeholders-settings',
'type' => 'text',
'translatable' => true,
'label' => __( "Text on 'I agree' button", 'complianz-gdpr' ),
'default' => __( "I agree", 'complianz-gdpr' ),
'tooltip' => __( 'The blocked content text appears when for example a YouTube video is embedded.', 'complianz-gdpr' ),
'condition_action' => 'disable',
'react_conditions' => [
'relation' => 'AND',
[
'safe_mode' => false,
'consent_per_service' => 'yes',
'dont_use_placeholders' => false,
]
],
],
[
'id' => 'placeholder_style',
'menu_id' => 'placeholders',
'group_id' => 'placeholders-appearance',
'type' => 'select',
'premium' => [
'comment' =>'',
'disabled' => false,
'help' => [
'label' => 'default',
'title' => __( "Custom placeholders", 'complianz-gdpr' ),
'text' => __( "Choose the style that best complements your website's design.", 'complianz-gdpr' ),
'url' => 'https://complianz.io/changing-the-default-social-placeholders/',
]
],
'options' => array(
'minimal' => __("Default",'complianz-gdpr'),
'light' => __("Light",'complianz-gdpr'),
'color' => __("Full Color",'complianz-gdpr'),
'dark' => __("Dark Mode",'complianz-gdpr'),
'custom' => __("Custom",'complianz-gdpr'),
),
'condition_action' => 'disable',
'disabled' => array(
'light',
'color',
'dark',
'custom',
),
'label' => __( "Placeholder style", 'complianz-gdpr' ),
'default' => 'minimal',
'tooltip' => __( "You can choose your favorite placeholder style here.", 'complianz-gdpr' ),
'help' => [
'label' => 'default',
'title' => __( "Custom placeholders", 'complianz-gdpr' ),
'text' => __( "You can change your placeholders manually or use Premium to do it for you.", 'complianz-gdpr' ),
'url' => 'https://complianz.io/changing-the-default-social-placeholders/',
],
'react_conditions' => [
'relation' => 'AND',
[
'safe_mode' => false,
'dont_use_placeholders' => false,
]
],
],
[
'id' => 'placeholder_preview',
'menu_id' => 'placeholders',
'group_id' => 'placeholders-appearance',
'type' => 'placeholder_preview',
'condition_action' => 'disable',
'react_conditions' => [
'relation' => 'AND',
[
'safe_mode' => false,
]
],
],
[
'id' => 'google-maps-format',
'menu_id' => 'placeholders',
'group_id' => 'placeholders-appearance',
'type' => 'select',
'options' => array(
'1280x920' => "1280 x 920",
'1280x500' => "1280 x 500",
'500x500' => "500 x 500",
'custom' => __("Custom",'complianz-gdpr'),
),
'label' => __( "Google Maps placeholder ratio", 'complianz-gdpr' ),
'default' => '1280x920',
'tooltip' => __( "Select the optimal placeholder ratio for your site.", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'safe_mode' => false,
'thirdparty_services_on_site' => ['google-maps','openstreetmaps'],
]
],
'help' => [
'label' => 'default',
'title' => __( "Custom ratio for Google Maps", 'complianz-gdpr' ),
'text' => __( "If you select custom, you need to add your custom image to your site.", 'complianz-gdpr'),
'url' => 'https://complianz.io/changing-the-google-maps-placeholder/',
],
],
]
);
}

View File

@@ -0,0 +1,61 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_processing_agreement_fields', 100 );
function cmplz_processing_agreement_fields($fields){
return array_merge($fields, [
[
'id' => 'create-processing-agreements',
'menu_id' => 'processing-agreements',
'group_id' => 'create-processing-agreements',
'type' => 'create-processing-agreements',
'default' => false,
'help' => [
'label' => 'default',
'title' => __( "About Processing Agreements", 'complianz-gdpr' ),
'text' =>__("To learn what Processing Agreements are and what you need them for, please read the below article", 'complianz-gdpr'),
'url' => 'https://complianz.io/what-are-processing-agreements',
],
],
[
'id' => 'processing_agreements',
'menu_id' => 'processing-agreements',
'group_id' => 'processing-agreements',
'premium' => [
'url' => 'https://complianz.io/pricing',
],
'type' => 'processing-agreements',
'default' => false,
],
[
'id' => 'create-data-breach-reports',
'menu_id' => 'data-breach-reports',
'group_id' => 'create-data-breach-reports',
'premium' => [
'url' => 'https://complianz.io/pricing',
],
'type' => 'create-data-breach-reports',
'default' => false,
'help' => [
'label' => 'default',
'title' => __( "About Data Breach Reports", 'complianz-gdpr' ),
'text' =>__("To learn what Data Breach Reports are and what you need them for, please read the below article", 'complianz-gdpr'),
'url' => 'https://complianz.io/what-are-dataleak-reports',
],
],
[
'id' => 'data_breach_reports',
'menu_id' => 'data-breach-reports',
'group_id' => 'data-breach-reports',
'premium' => [
'url' => 'https://complianz.io/pricing',
],
'type' => 'data-breach-reports',
'default' => false,
],
]);
}

View File

@@ -0,0 +1,96 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_proof_of_consent_fields', 110 );
function cmplz_proof_of_consent_fields($fields){
return array_merge($fields, [
[
'id' => 'create-proof_of_consent',
'menu_id' => 'proof-of-consent',
'group_id' => 'create-proof-of-consent',
'type' => 'create-proof-of-consent',
'default' => false,
// 'label' => __( "Proof of Consent", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'!records_of_consent' => 'yes',
]
],
],
[
'id' => 'proof_of_consent',
'menu_id' => 'proof-of-consent',
'group_id' => 'proof-of-consent',
'type' => 'proof-of-consent',
'default' => false,
// 'label' => __( "Proof of Consent", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'!records_of_consent' => 'yes',
]
],
],
[
'id' => 'create-records_of_consent',
'menu_id' => 'records-of-consent',
'group_id' => 'create-records-of-consent',
'premium' => [
'disabled' => false,
],
'type' => 'create-proof-of-consent',
'default' => false,
// 'label' => __( "Proof of Consent", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'records_of_consent' => 'yes',
]
],
],
[
'id' => 'export-records_of_consent',
'menu_id' => 'records-of-consent',
'group_id' => 'create-records-of-consent',
'premium' => [
'disabled' => false,
],
'type' => 'export-records-of-consent',
'default' => false,
'label' => __( "Export Records of Consent", 'complianz-gdpr' ),
'help' => [
'label' => 'default',
'title' => __( "What are records of consent?", 'complianz-gdpr' ),
'text' => __( 'Records of Consent are required in certain circumstances, you can read our article about dealing with records of consent and why it is needed.', 'complianz-gdpr' ),
'url' => 'https://complianz.io/records-of-consent/',
],
'react_conditions' => [
'relation' => 'AND',
[
'records_of_consent' => 'yes',
]
],
],
[
'id' => 'records_of_consent_overview',
'menu_id' => 'records-of-consent',
'group_id' => 'records-of-consent',
'premium' => [
'disabled' => false,
],
'type' => 'records-of-consent',
'default' => false,
//'label' => __( "Records of Consent", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'records_of_consent' => 'yes',
]
],
],
]);
}

View File

@@ -0,0 +1,37 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_security_fields', 100 );
function cmplz_security_fields($fields){
return array_merge($fields, [
[
'id' => 'install-really-simple-ssl',
'type' => 'install-plugin',
'plugin_data' => [
'title' => "Really Simple Security",
'summary' => __("Lightweight plugin. Heavyweight security features.", 'complianz-gdpr'),
'slug' => 'really-simple-ssl',
'description' => __("Leverage your SSL certificate to the fullest, with health checks, security headers, hardening, vulnerability detection and more.", 'complianz-gdpr'),
'image' => "really-simple-ssl.png"
],
'help' => [
'label' => 'default',
'title' => "Really Simple Security",
'text' => __( "5+ million websites are secured with Really Simple Security", 'complianz-gdpr'),
'url' => 'https://really-simple-ssl.com/pro',
],
'menu_id' => 'security',
'group_id' => 'security-install',
'label' => '',
],
[
'id' => 'security-rsssl',
'type' => 'security_measures',
'menu_id' => 'security',
'group_id' => 'security-privacy',
'label' => '',
],
]);
}

View File

@@ -0,0 +1,56 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_support_fields', 100 );
function cmplz_support_fields($fields){
return array_merge($fields, [
[
'id' => 'safe_mode',
'menu_id' => 'support',
'group_id' => 'debugging',
'source_id' => 'enable_cookie_blocker',
'source_mapping' => [
//source value => target value
'no' => 1,
'yes' => 0,
],
'type' => 'checkbox',
'label' => __( "Enable safe mode", 'complianz-gdpr' ),
'help' => [
'label' => 'default',
'title' => __( "Safe Mode", 'complianz-gdpr' ),
'text' => __( "When safe mode is enabled, all integrations will be disabled temporarily, please read the instructions to debug the issue or ask support if needed.", 'complianz-gdpr'),
'url' => 'https://complianz.io/debugging-issues/',
],
],
[
'id' => 'debug_data',
'menu_id' => 'support',
'group_id' => 'debugging',
'type' => 'debug-data',
'label' => __( "Possible relevant errors", 'complianz-gdpr' ),
'default' => false,
],
[
'id' => 'system_status',
'menu_id' => 'support',
'group_id' => 'debugging',
'type' => 'button',
'label' => __( "System Status", 'complianz-gdpr' ),
'button_text' => __( "Download", 'complianz-gdpr' ),
'default' => false,
'url' => trailingslashit( cmplz_url ) . 'system-status.php'
],
[
'id' => 'support_form',
'menu_id' => 'support',
'group_id' => 'premiumsupport',
'type' => 'support',
'label' => __( "Support form", 'complianz-gdpr' ),
'default' => false,
],
]);
}

View File

@@ -0,0 +1,614 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_wizard_consent_fields', 100 );
function cmplz_wizard_consent_fields( $fields ) {
$fields = array_merge( $fields,
[
[
'id' => 'cookie_scan',
'type' => 'cookie_scan',
'menu_id' => 'cookie-scan',
'group_id' => 'cookie-scan',
'help' => [
'label' => 'default',
'title' => __( "Website Scan", 'complianz-gdpr' ),
'text' => __( "If you want to clear all cookies from the plugin, you can do so here. If you want to start with a clean slate, you might need to clear your browsercache, to make sure all cookies are removed from your browser as well.",
"complianz-gdpr" ),
'url' => 'https://complianz.io/cookie-scan-results/',
],
],
[
'id' => 'compile_statistics',
'type' => 'radio',
'menu_id' => 'consent-statistics',
'group_id' => 'consent-statistics',
'required' => true,
'default' => '',
'revoke_consent_onchange' => true,
'label' => __( "Do you compile statistics of this website?", 'complianz-gdpr' ),
'options' => [
'google-tag-manager' => __( 'Yes, and Google Tag Manager fires this script', 'complianz-gdpr' ),
'matomo-tag-manager' => __( 'Yes, and Matomo Tag Manager fires this script', 'complianz-gdpr' ),
'google-analytics' => __( 'Yes, with Google Analytics', 'complianz-gdpr' ),
'matomo' => __( 'Yes, with Matomo', 'complianz-gdpr' ),
'clicky' => __( 'Yes, with Clicky', 'complianz-gdpr' ),
'yandex' => __( 'Yes, with Yandex', 'complianz-gdpr' ),
'clarity' => __( 'Yes, with Clarity', 'complianz-gdpr' ),
'yes' => __( 'Yes, but not with any of the above services', 'complianz-gdpr' ),
'no' => __( 'No', 'complianz-gdpr' ),
],
],
[
'id' => 'compile_statistics_more_info',
'menu_id' => 'consent-statistics',
'group_id' => 'consent-statistics',
'type' => 'multicheckbox',
'revoke_consent_onchange' => true,
'default' => '',
'label' => __( "Does the following apply to your website?", 'complianz-gdpr' ),
'tooltip' => __( "When checking all three checkboxes, we will set statistics to anonymous. Based on your region, statistics might be set before consent.",
'complianz-gdpr' ),
'comment' => __( "By design, IP anonymization is always enabled for GA4 properties.", 'complianz-gdpr' ),
'options' => [
'accepted' => __( 'I have accepted the Google data processing amendment', 'complianz-gdpr' ),
'no-sharing' => __( 'Google is not allowed to use this data for other Google services', 'complianz-gdpr' ),
'ip-addresses-blocked' => __( 'IP addresses are anonymized or let Complianz do this for me.', 'complianz-gdpr' ),
],
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => 'google-analytics',
]
],
'help' => [
'label' => 'default',
'title' => __( "Anonymized IP", 'complianz-gdpr' ),
'text' => __( 'If you select the option that IP addresses are anonymized, and let Complianz handle the statistics, Complianz will ensure that ip addresses are anonymized by default, unless consent is given for statistics.',
'complianz-gdpr' ),
'url' => 'https://complianz.io/how-to-configure-google-analytics-for-gdpr/',
],
],
[
'id' => 'compile_statistics_more_info_tag_manager',
'menu_id' => 'consent-statistics',
'group_id' => 'consent-statistics',
'type' => 'multicheckbox',
'revoke_consent_onchange' => true,
'default' => '',
'label' => __( "Does the following apply to your website?", 'complianz-gdpr' ),
'options' => array(
'accepted' => __( 'I have accepted the Google data processing amendment', 'complianz-gdpr' ),
'no-sharing' => __( 'Google is not allowed to use this data for other Google services', 'complianz-gdpr' ),
'ip-addresses-blocked' => __( 'Acquiring IP-addresses is blocked', 'complianz-gdpr' ),
),
'help' => [
'label' => 'default',
'title' => "Configuring Google Tag Manager",
'text' => __( 'You can configure Google Tag Manager for Complianz, and, if applicable, adjust configuration for Google Analytics for GDPR and other opt-in based privacy laws.', 'complianz-gdpr' ),
'url' => 'https://complianz.io/how-to-configure-tag-manager-for-gdpr/',
],
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => 'google-tag-manager',
]
],
],
[
'id' => 'matomo_anonymized',
'menu_id' => 'consent-statistics',
'group_id' => 'consent-statistics',
'type' => 'select',
'revoke_consent_onchange' => true,
'default' => '',
'label' => __( "Do you want to use cookieless tracking with Matomo?", 'complianz-gdpr' ),
'options' => COMPLIANZ::$config->yes_no,
'help' => [
'label' => 'default',
'title' => "Matomo",
'text' => __( 'Learn more about using cookieless tracking with Matomo.', 'complianz-gdpr' ),
'url' => 'https://complianz.io/cookieless-tracking-matomo/',
],
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => 'matomo',
]
],
],
[
'id' => 'consent_for_anonymous_stats',
'menu_id' => 'statistics-configuration',
'order' => 10,
'type' => 'radio',
'tooltip' => __( "In some countries, like Germany, Austria, Belgium or Spain, consent is required for statistics, even if the data is anonymized.", 'complianz-gdpr' ),
'default' => 'yes',
'label' => __( "Do you want to ask consent for statistics?", 'complianz-gdpr' ),
'options' => COMPLIANZ::$config->yes_no,
'server_conditions' => [
'relation' => 'AND',
[
'cmplz_statistics_privacy_friendly()' => true,
]
],
'react_conditions' => [
'relation' => 'AND',
[
'!compile_statistics' => 'no',
]
],
],
[
'id' => 'script_center_button',
'menu_id' => 'statistics-configuration',
'type' => 'button',
'post_get' => 'get',
'url' => '#integrations/integrations-script-center',
'default' => 'yes',
'label' => __( "Controlling your statistics script", 'complianz-gdpr' ),
'button_text' => __( "Script Center", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => 'yes',
]
],
'help' => [
'label' => 'default',
'title' => __( "Script Center", "complianz-gdpr" ),
'text' => __( "Below you can choose to implement your statistics script with Complianz.", 'complianz-gdpr' ) . '&nbsp;' .
__( "We will add the needed snippets and control consent at the same time.", 'complianz-gdpr' ),
'url' => 'https://complianz.io/integrating-plugins/',
],
],
[
'id' => 'configuration_by_complianz',
'menu_id' => 'statistics-configuration',
'type' => 'radio',
'default' => 'yes',
'label' => cmplz_sprintf(__( "Do you want Complianz to add %s to your website?", 'complianz-gdpr' ), '{cmplz_dynamic_content=compile_statistics}' ),
'options' => array(
'yes' => __( 'Yes', 'complianz-gdpr' ),
'no' => __( 'No', 'complianz-gdpr' ),
),
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => [ 'google-analytics', 'matomo', 'yandex', 'clicky', 'google-tag-manager', 'matomo-tag-manager' ],
]
],
'tooltip' => __( "It's recommended to let Complianz handle the statistics script. This way, the plugin can detect if it needs to be hooked into the cookie consent code or not. But if you have set it up yourself and don't want to change this, you can choose to do so.", 'complianz-gdpr' ),
],
[
'id' => 'consent-mode',
'menu_id' => 'statistics-configuration',
'type' => 'radio',
'default' => 'no',
'premium' => [
'url' => 'https://complianz.io/pricing',
'disabled' => false,
],
'label' => __( "Do you want to enable Google Consent Mode V2?", 'complianz-gdpr' ),
'comment' => cmplz_sprintf(__("Please read this %sarticle%s to make sure Consent Mode is working as expected.", "complianz-gdpr"),'<a target="_blank" href="https://complianz.io/simplified-guide-to-google-consent-mode-v2/">', '</a>'),
'options' => array(
'yes' => __( 'Yes', 'complianz-gdpr' ),
'no' => __( 'No', 'complianz-gdpr' ),
),
'disabled' => true,
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => [ 'google-analytics', 'google-tag-manager' ],
'configuration_by_complianz' => 'yes',
]
],
'help' => [
'label' => 'default',
'title' => "About Google Consent Mode",
'text' => __( 'Enabling this feature means all Google tags will be handled by Google Consent Mode. You will need to read the integration manual below, and double-check to see if it works for your setup.', 'complianz-gdpr' ),
'url' => 'https://complianz.io/consent-mode-for-7-0/',
],
],
[
'id' => 'gtag-basic-consent-mode',
'menu_id' => 'statistics-configuration',
'type' => 'radio',
'default' => 'no',
'premium' => [
'url' => 'https://complianz.io/pricing',
'disabled'=> false,
],
'label' => __( "Do you want to block all Google Tags before consent?", 'complianz-gdpr' ),
'help' => [
'label' => 'warning',
'title' => __( "Do you want to block all Google Tags before consent?", "complianz-gdpr" ),
'text' => __( 'By default Consent Mode is enabled in Advanced Mode. This means tags are loaded before consent, but depending on user preferences selects the appropriate tracking mechanisms, e.g. cookieless tracking or cookies, automatically. If you answer Yes, Complianz will only apply Consent Mode after consent.', 'complianz-gdpr' ),
'url' => 'https://complianz.io/consent-mode-for-7-0/',
],
'options' => array(
'yes' => __( 'Yes', 'complianz-gdpr' ),
'no' => __( 'No', 'complianz-gdpr' ),
),
'disabled' => true,
'react_conditions' => [
'relation' => 'AND',
[
'consent-mode' => 'yes',
'compile_statistics' => 'google-analytics',
'configuration_by_complianz' => 'yes',
]
],
],
[
'id' => 'cmplz-gtag-urlpassthrough',
'menu_id' => 'statistics-configuration',
'type' => 'radio',
'default' => 'no',
'premium' => [
'url' => 'https://complianz.io/pricing',
'disabled'=> false,
],
'label' => __( "Do you want to set a URL passthrough parameter", 'complianz-gdpr' ),
'tooltip' => __( "This can improve conversion accuracy, but can contain personal data like a client ID.", 'complianz-gdpr' ),
'options' => array(
'yes' => __( 'Yes', 'complianz-gdpr' ),
'no' => __( 'No', 'complianz-gdpr' ),
),
'disabled' => true,
'react_conditions' => [
'relation' => 'AND',
[
'consent-mode' => 'yes',
'compile_statistics' => 'google-analytics',
'configuration_by_complianz' => 'yes',
]
],
],
[
'id' => 'cmplz-gtag-ads_data_redaction',
'menu_id' => 'statistics-configuration',
'type' => 'radio',
'default' => 'no',
'premium' => [
'url' => 'https://complianz.io/pricing',
'disabled'=> false,
],
'label' => __( "Deny cookies when advertising is rejected?", 'complianz-gdpr' ),
'tooltip' => __( "When enabled, cookies will no longer be set when ad_storage is denied and identifiers in network requests will be redacted.", 'complianz-gdpr' ),
'options' => array(
'yes' => __( 'Yes', 'complianz-gdpr' ),
'no' => __( 'No', 'complianz-gdpr' ),
),
'disabled' => true,
'react_conditions' => [
'relation' => 'AND',
[
'consent-mode' => 'yes',
'compile_statistics' => 'google-analytics',
'configuration_by_complianz' => 'yes',
]
],
],
[
'id' => 'cmplz-tm-template',
'menu_id' => 'statistics-configuration',
'type' => 'radio',
'default' => 'no',
'premium' => [
'url' => 'https://complianz.io/pricing',
'disabled'=> false,
],
'label' => __( "Will you be using our Tag Manager template?", 'complianz-gdpr' ),
'options' => array(
'yes' => __( 'Yes', 'complianz-gdpr' ),
'no' => __( 'No', 'complianz-gdpr' ),
),
'disabled' => true,
'react_conditions' => [
'relation' => 'AND',
[
'consent-mode' => 'yes',
'compile_statistics' => 'google-tag-manager',
'configuration_by_complianz' => 'yes',
]
],
'help' => [
'label' => 'warning',
'title' => __( "Configuring Consent Mode & Tag Manager", "complianz-gdpr" ),
'text' => __( 'You can choose the official Consent Mode template by Complianz from the template gallery, or use local initialization.', 'complianz-gdpr' ),
'url' => 'https://complianz.io/consent-mode-for-7-0/',
],
],
[
'id' => 'ua_code',
'menu_id' => 'statistics-configuration',
'type' => 'text',
'default' => '',
'placeholder' => 'G_TRACKING_ID',
'required' => false,
'revoke_consent_onchange' => true,
'label' => __( "Google Tag - Statistics", 'complianz-gdpr' ),
'help' => [
'label' => 'default',
'title' => __( "Tracking ID", 'complianz-gdpr' ),
'text' => __( 'If you add the ID for your Statistics tool here, Complianz will configure your site for statistics tracking.', 'complianz-gdpr' ),
'url' => 'https://complianz.io/consent-mode-for-7-0/',
],
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => 'google-analytics',
'configuration_by_complianz' => 'yes',
]
],
'tooltip' => __( "For the Google Analytics tracking ID, log in and click Admin and copy the tracking ID.", 'complianz-gdpr' ),
],
[
'id' => 'additional_gtags_stats',
'menu_id' => 'statistics-configuration',
'type' => 'text',
'placeholder' => 'GT_TRACKING_ID',
'required' => false,
'revoke_consent_onchange' => true,
'label' => __( "Additional Google Tags - Statistics", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'consent-mode' => 'yes',
'compile_statistics' => 'google-analytics',
'configuration_by_complianz' => 'yes',
]
],
'tooltip' => __( "You can add additional tags, comma separated.", 'complianz-gdpr' ),
],
[
'id' => 'gtm_code',
'menu_id' => 'statistics-configuration',
'type' => 'text',
'default' => '',
'required' => true,
'revoke_consent_onchange' => true,
'label' => __( "Please enter your GTM container ID", 'complianz-gdpr' ),
'help' => [
'label' => 'default',
'title' => __( "Configuration by Complianz", 'complianz-gdpr' ),
'text' => __( 'If you add the ID for your statistics tool here, Complianz will configure your site for statistics tracking.', 'complianz-gdpr' )
],
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => 'google-tag-manager',
'configuration_by_complianz' => 'yes',
]
],
'tooltip' => __( "For the Google Tag Manager code, log in and you will immediatly see your container codes. The one next to your website name is the code you will need to fill in here, the container ID.", 'complianz-gdpr' ),
],
[
'id' => 'gtm_code_head',
'menu_id' => 'statistics-configuration',
'type' => 'radio',
'default' => 'no',
'premium' => [
'url' => 'https://complianz.io/pricing',
'disabled'=> false,
],
'label' => __( "Do you want to force the script in the header?", 'complianz-gdpr' ),
'options' => array(
'yes' => __( 'Yes - (Experimental)', 'complianz-gdpr' ),
'no' => __( 'No', 'complianz-gdpr' ),
),
'comment' => __("It's possible that forcing this script in the header breaks configurations and integrations with other plugins.", "complianz-gdpr"),
'disabled' => true,
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => [ 'google-analytics', 'google-tag-manager' ],
'configuration_by_complianz' => 'yes'
]
],
],
[
'id' => 'aw_code',
'menu_id' => 'statistics-configuration',
'source' => 'wizard',
'type' => 'text',
'default' => '',
'placeholder' => 'AW_CONVERSION_ID',
'required' => false,
'revoke_consent_onchange' => true,
'label' => __( "Google Tag - Marketing or Advertising", 'complianz-gdpr' ),
'tooltip' => __( "This will be fired on marketing consent.", 'complianz-gdpr' ),
'Comment' => __( "Optional.", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => 'google-analytics',
'configuration_by_complianz' => 'yes',
]
],
],
[
'id' => 'additional_gtags_marketing',
'menu_id' => 'statistics-configuration',
'type' => 'text',
'placeholder' => 'DC_FLOODLIGHT_ID',
'required' => false,
'revoke_consent_onchange' => true,
'label' => __( "Additional Google Tags - Marketing or Advertising", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => 'google-analytics',
'configuration_by_complianz' => 'yes',
]
],
'tooltip' => __( "You can add additional tags, comma separated.", 'complianz-gdpr' ),
],
/**
* Matomo Classic
*/
[
'id' => 'matomo_url',
'menu_id' => 'statistics-configuration',
'type' => 'url',
'placeholder' => 'https://domain.com/stats',
'required' => true,
'revoke_consent_onchange' => true,
'label' => __( "Enter the URL of Matomo", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => 'matomo',
'configuration_by_complianz' => 'yes',
]
],
'help' => [
'label' => 'default',
'title' => __( "Configuration by Complianz", 'complianz-gdpr' ),
'text' => __( "The URL depends on your configuration of Matomo.", 'complianz-gdpr' ),
'url' => 'https://complianz.io/configuring-matomo-for-wordpress-with-complianz/',
],
],
[
'id' => 'matomo_site_id',
'menu_id' => 'statistics-configuration',
'type' => 'number',
'label' => __( "Enter your Matomo site ID", 'complianz-gdpr' ),
'default' => '',
'required' => true,
'revoke_consent_onchange' => true,
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => 'matomo',
'configuration_by_complianz' => 'yes',
]
],
'help' => [
'label' => 'default',
'title' => __( "Configuration by Complianz", 'complianz-gdpr' ),
'text' => __( 'If you add the ID for your statistics tool here, Complianz will configure your site for statistics tracking.', 'complianz-gdpr' )
],
],
/**
* Matomo Tag Manager
*/
[
'id' => 'matomo_tag_url',
'menu_id' => 'statistics-configuration',
'type' => 'url',
'placeholder' => 'https://domain.com/stats/js',
'required' => true,
'revoke_consent_on§§change' => true,
'label' => __( "Enter the URL of Matomo", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => 'matomo-tag-manager',
'configuration_by_complianz' => 'yes',
]
],
'help' => [
'label' => 'default',
'title' => __( "Configuration", "complianz-gdpr" ),
'text' => __( "The URL depends on your configuration of Matomo.", 'complianz-gdpr' ),
'url' => 'https://complianz.io/configuring-matomo-for-wordpress-with-complianz/',
],
],
[
'id' => 'matomo_container_id',
'menu_id' => 'statistics-configuration',
'type' => 'text',
'default' => '',
'placeholder' => 'Aaa1bBBB',
'required' => true,
'revoke_consent_onchange' => true,
'label' => __( "Enter your Matomo container ID", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => 'matomo-tag-manager',
'configuration_by_complianz' => 'yes',
]
],
],
[
'id' => 'clicky_site_id',
'menu_id' => 'statistics-configuration',
'type' => 'number',
'default' => '',
'required' => true,
'revoke_consent_onchange' => true,
'label' => __( "Enter your Clicky site ID", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => 'clicky',
'configuration_by_complianz' => 'yes',
]
],
'help' => [
'label' => 'default',
'title' => __( "Configuration", "complianz-gdpr" ),
'text' => __( "Because Clicky always sets a so-called unique identifier cookie, consent for statistics is always required.", 'complianz-gdpr' ),
'url' => 'https://complianz.io/configuring-clicky-for-gdpr/',
],
],
[
'id' => 'yandex_id',
'menu_id' => 'statistics-configuration',
'type' => 'number',
'default' => '',
'required' => true,
'revoke_consent_onchange' => true,
'label' => __( "Enter your Yandex ID", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => 'yandex',
'configuration_by_complianz' => 'yes',
]
],
],
[
'id' => 'clarity_id',
'menu_id' => 'statistics-configuration',
'type' => 'text',
'default' => '',
'required' => true,
'revoke_consent_onchange' => true,
'label' => __( "Enter your Clarity project ID", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => 'clarity',
'configuration_by_complianz' => 'yes',
]
],
],
[
'id' => 'yandex_ecommerce',
'menu_id' => 'statistics-configuration',
'type' => 'radio',
'default' => 'no',
'options' => COMPLIANZ::$config->yes_no,
'required' => true,
'revoke_consent_onchange' => true,
'label' => __( "Do you want to enable the Yandex ecommerce datalayer?", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'compile_statistics' => 'yandex',
'configuration_by_complianz' => 'yes',
]
],
],
]
);
return $fields;
}

View File

@@ -0,0 +1,20 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_wizard_cookiedatabase_fields', 100 );
function cmplz_wizard_cookiedatabase_fields( $fields ) {
$fields = array_merge( $fields,
[
[
'id' => 'cookiedatabase_sync',
'menu_id' => 'cookie-descriptions',
'label' => __( "Connect with Cookiedatabase.org", 'complianz-gdpr' ),
'type' => 'cookiedatabase_sync',
],
]
);
return $fields;
}

View File

@@ -0,0 +1,69 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_wizard_document_fields', 100 );
function cmplz_wizard_document_fields( $fields ) {
$fields = array_merge( $fields,
[
[
'id' => 'create-documents',
'type' => 'create-documents',
'menu_id' => 'create-documents',
'group_id' => 'create-documents',
'label' => __( "Create documents", 'complianz-gdpr' ),
],
[
'id' => 'region_redirect',
'menu_id' => 'document-menu',
'type' => 'radio',
'options' => [
'yes' => __("Yes, redirect based on GEO IP", 'complianz-gdpr'),
'no' => __("No, choose a menu per document", 'complianz-gdpr'),
],
'premium' => [
'url' => 'https://complianz.io/pricing',
'default' => 'yes',
'disabled' => false,
],
'disabled' => true,
'default' => 'no',
'comment' => __("GEO IP based redirect is available in Premium", "complianz-gdpr"),
'label' => __("Use a region redirect on the relevant documents", 'complianz-gdpr'),
'react_conditions' => [
'relation' => 'OR',
[
'use_country' => true,
]
],
],
[
'id' => 'add_pages_to_menu',
'menu_id' => 'document-menu',
'type' => 'documents_menu',
'label' => '',
'react_conditions' => [
'relation' => 'OR',
[
'region_redirect' => 'no',
]
],
],
[
'id' => 'add_pages_to_menu_region_redirected',
'menu_id' => 'document-menu',
'type' => 'documents_menu_region_redirect',
'label' => '',
'react_conditions' => [
'relation' => 'OR',
[
'region_redirect' => 'yes',
]
],
],
]
);
return $fields;
}

View File

@@ -0,0 +1,81 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_wizard_finish_fields', 100 );
function cmplz_wizard_finish_fields( $fields ) {
$fields = array_merge( $fields,
[
[
'id' => 'cookie_banner_required',
'menu_id' => 'finish',
'group_id' => 'finish',
'type' => 'hidden',
'default' => false,
'disabled' => false,
'label' => '',
],
[
'id' => 'last-step-feedback',
'menu_id' => 'finish',
'group_id' => 'finish',
'type' => 'finish',
'disabled' => false,
],
[
'id' => 'enable_cookie_banner',
'menu_id' => 'finish',
'group_id' => 'finish',
'type' => 'radio',
'required' => true,
'revoke_consent_onchange' => true,
'disabled' => false,
'options' => COMPLIANZ::$config->yes_no,
'label' => __( "Show Consent Banner", 'complianz-gdpr' ),
'tooltip' => __( "If you enable this setting, a consent banner will be enabled, if needed.", 'complianz-gdpr' ),
'comment' => __( "You can always enable and disable the Consent Banner when styling the Consent Banner, under Consent Banner settings.", 'complianz-gdpr' ),
// 'condition_action' => 'disable',
// 'react_conditions' => [
// 'relation' => 'AND',
// [
// 'cookie_banner_required' => true,
// ]
// ],
],
[
'id' => 'enable_cookie_blocker',
'menu_id' => 'finish',
'group_id' => 'finish',
'type' => 'radio',
'required' => true,
'revoke_consent_onchange' => true,
'disabled' => false,
'options' => COMPLIANZ::$config->yes_no,
'label' => __( "Enable cookie and script blocker", 'complianz-gdpr' ),
'tooltip' => __( "The Cookie Blocker will, among others, block any tracking and third-party scripts configured by the wizard, automatic configuration or our script center.", 'complianz-gdpr' ),
'help' => [
'label' => 'warning',
'title' => __( "Using Safe Mode", 'complianz-gdpr' ),
'text' => __( "If the Cookie Blocker causes an issue, you can enable Safe Mode under settings. Disabling Safe Mode will activate the Cookie Blocker.", 'complianz-gdpr' ),
'url' => 'https://complianz.io/debugging-issues/',
],
// 'condition_action' => 'disable',
// 'react_conditions' => [
// 'relation' => 'AND',
// [
// 'cookie_banner_required' => true,
// ]
// ],
'source_id' => 'safe_mode',
'source_mapping' => [
//source value => target value
1 => 'no',
0 => 'yes',
],
],
]
);
return $fields;
}

View File

@@ -0,0 +1,407 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_wizard_fields', 10 );
function cmplz_wizard_fields($fields){
$fields += [
[
'id' => 'regions',
'premium' => [
'label' => __( "Which region(s) do you target with your website?","complianz-gdpr"),
'url' => 'https://complianz.io/pricing/',
'comment' => ' ',//an empty string doesn't override the premium string
],
'menu_id' => 'visitors',
'type' => 'radio',
'label' => __( "Which privacy law or guideline do you want to use as the default for your worldwide visitors?", 'complianz-gdpr' ),
'options' => COMPLIANZ::$config->supported_regions,
'help' => [
'label' => 'default',
'title' => __( "Which region(s) do I target?", 'complianz-gdpr' ),
'text' => __( "You dont need to configure your website for accidental visitors. Only choose the regions your website is intended for.", 'complianz-gdpr'),
'url' => 'https://complianz.io/what-regions-do-i-target/',
],
'default' => false,
'revoke_consent_onchange' => true,
'required' => true,
'comment' => __("If you want to dynamically apply privacy laws based on the visitor's location, consider upgrading to the premium version, which allows you to apply a privacy law specific for that region.", 'complianz-gdpr' ),
],
[
'id' => 'other_region_behaviour',
'menu_id' => 'visitors',
'type' => 'select',
'default' => 'none',
'label' => __( "Which banner do you want to display in other regions?", 'complianz-gdpr' ),
'options' => ['none'=> __("None", 'complianz-gdpr')] + COMPLIANZ::$config->supported_regions,
'revoke_consent_onchange' => true,
'react_conditions' => [
'relation' => 'AND',
[
'use_country' => true,
]
]
],
[
'id' => 'eu_consent_regions',
'menu_id' => 'visitors',
'type' => 'radio',
'default' => 'no',
'label' => __( "Do you target visitors from Germany, Austria, Belgium and/or Spain?", 'complianz-gdpr' ),
'options' => COMPLIANZ::$config->yes_no,
'revoke_consent_onchange' => true,
'required' => true,
'react_conditions' => [
'relation' => 'AND',
[
'regions' => ['eu'],
]
]
],
[
'id' => 'uk_consent_regions',
'menu_id' => 'visitors',
'type' => 'radio',
'default' => 'no',
'label' => __( "Do you target visitors from Jersey or Guernsey?", 'complianz-gdpr' ),
'options' => COMPLIANZ::$config->yes_no,
'revoke_consent_onchange' => true,
'required' => true,
'react_conditions' => [
'relation' => 'AND',
[
'regions' => ['uk'],
]
]
],
[
'id' => 'ca_targets_quebec',
'menu_id' => 'visitors',
'type' => 'radio',
'default' => '',
'label' => __( "Do you target visitors from Quebec?", 'complianz-gdpr' ),
'options' => COMPLIANZ::$config->yes_no,
'revoke_consent_onchange' => true,
'tooltip' => __( "This will apply an opt-in mechanism for all visitors from Canada, as required by Quebec bill 64.", 'complianz-gdpr' ),
'required' => false,
'react_conditions' => [
'relation' => 'AND',
[
'regions' => ['ca'],
]
]
],
[
'id' => 'us_states',
'menu_id' => 'visitors',
'type' => 'multicheckbox',
'options' => COMPLIANZ::$config->supported_states,
// 'help' => [
// 'label' => 'default',
// 'title' => __( "Do Not Sell My Personal Information", 'complianz-gdpr' ),
// 'text' => __( "If you choose California you will be able to generate a DNSMPI page.", 'complianz-gdpr' ),
// 'url' => 'https://complianz.io/privacy-in-the-united-states/',
// ],
'label' => __( "Do you specifically target visitors from these states?", 'complianz-gdpr' ),
'tooltip' => __( "There are some laws that only apply to one or more states and are described separately if needed.", 'complianz-gdpr' ),
'required' => false,
'react_conditions' => [
'relation' => 'AND',
[
'regions' => ['us'],
]
],
],
[
'id' => 'wp_admin_access_users',
'menu_id' => 'visitors',
'type' => 'radio',
'default' => 'no',
'label' => __( "Does your site have visitors with log-in access to a restricted area of the website?", 'complianz-gdpr' ),
'tooltip' => __( "If so, the scan will be extended to the wp-admin part of your site. ", 'complianz-gdpr' ),
'required' => false,
'options' => COMPLIANZ::$config->yes_no,
],
[
'id' => 'cookie-statement',
'menu_id' => 'documents',
'default' => 'generated',
'type' => 'document',
'options' => [
[ 'label' => __('Generated with Complianz','complianz-gdpr'), 'value'=> 'generated' ],
[ 'label' => __('Existing page','complianz-gdpr'), 'value'=> 'custom' ],
[ 'label' => 'URL', 'value'=> 'url' ],
],
'label' => __( "Cookie Policy", 'complianz-gdpr' ),
'required' => true,
'tooltip' => __( 'A Cookie Policy is required to inform your visitors about the way cookies and similar techniques are used on your website.', "complianz-gdpr" ),
],
[
'id' => 'privacy-statement',
'premium' => [
'url' => 'https://complianz.io/pricing',
'default' => 'generated',
'disabled' => false,
],
'menu_id' => 'documents',
'disabled' => ['generated'],
'type' => 'document',
'default' => 'custom',
'label' => __( "Privacy Statement", 'complianz-gdpr' ),
'options' => [
[ 'label' => __('Generated with Complianz','complianz-gdpr'), 'value'=> 'generated' ],
[ 'label' => __('Existing page','complianz-gdpr'), 'value'=> 'custom' ],
[ 'label' => 'URL', 'value'=> 'url' ],
[ 'label' => __('None','complianz-gdpr'), 'value'=> 'none' ],
],
'required' => true,
'tooltip' => __("A Privacy Statement is required to inform your visitors about the way you deal with the privacy of website visitors. A link to this document is placed on your consent banner.", 'complianz-gdpr'),
],
[
'id' => 'impressum',
'menu_id' => 'documents',
'premium' => [
'url' => 'https://complianz.io/pricing',
],
'disabled' => ['generated'],
'default' => 'none',
'type' => 'document',
'label' => __( "Imprint", 'complianz-gdpr' ),
'options' => [
[ 'label' => __('Generated with Complianz','complianz-gdpr'), 'value'=> 'generated' ],
[ 'label' => __('Existing page','complianz-gdpr'), 'value'=> 'custom' ],
[ 'label' => 'URL', 'value'=> 'url' ],
[ 'label' => __('None','complianz-gdpr'), 'value'=> 'none' ],
],
'required' => true,
'tooltip' => __("An Imprint provides general contact information about the organization behind this website and might be required in your region.", 'complianz-gdpr'),
],
[
'id' => 'disclaimer',
'menu_id' => 'documents',
'premium' => [
'url' => 'https://complianz.io/pricing',
],
'disabled' => ['generated'],
'default' => 'none',
'type' => 'document',
'options' => [
[ 'label' => __('Generated','complianz-gdpr'), 'value'=> 'generated' ],
[ 'label' => __('Existing page','complianz-gdpr'), 'value'=> 'custom' ],
[ 'label' => 'URL', 'value'=> 'url' ],
[ 'label' => __('None','complianz-gdpr'), 'value'=> 'none' ],
],
'label' => __( "Disclaimer", 'complianz-gdpr' ),
'required' => true,
'tooltip' => __("A Disclaimer is commonly used to exclude or limit liability or to make statements about the content of the website. Having a Disclaimer is not legally required.", 'complianz-gdpr'),
],
[
'id' => 'organisation_name',
'menu_id' => 'website-information',
'type' => 'text',
'default' => '',
'placeholder' => __( "Name or company name", 'complianz-gdpr' ),
'label' => __( "Who is the owner of the website?", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'OR',
[
'impressum' => 'generated',
'cookie-statement' => 'generated',
'privacy-statement' => 'generated',
'disclaimer' => 'generated',
]
],
'required' => true,
],
[
'id' => 'address_company',
'menu_id' => 'website-information',
'placeholder' => __( 'Address, City and Zipcode', 'complianz-gdpr' ),
'type' => 'textarea',
'default' => '',
'label' => __( "What is your address?", 'complianz-gdpr' ),
'required' => true,
'react_conditions' => [
'relation' => 'OR',
[
'impressum' => 'generated',
'cookie-statement' => 'generated',
'privacy-statement' => 'generated',
'disclaimer' => 'generated',
]
],
],
[
'id' => 'country_company',
'menu_id' => 'website-information',
'type' => 'select',
'options' => COMPLIANZ::$config->countries,
'default' => 'NL',
'label' => __( "What is your country?", 'complianz-gdpr' ),
'required' => true,
'tooltip' => __( "This setting is automatically selected based on your WordPress language setting.", 'complianz-gdpr' ),
],
[
'id' => 'email_company',
'menu_id' => 'website-information',
'type' => 'email',
'default' => '',
'tooltip' => __( "The email address will be obfuscated on the front-end to prevent spidering.", 'complianz-gdpr' ),
'label' => __( "What is the email address your visitors can use to contact you about privacy issues?", 'complianz-gdpr' ),
'required' => true,
'react_conditions' => [
'relation' => 'OR',
[
'impressum' => 'generated',
'cookie-statement' => 'generated',
'privacy-statement' => 'generated',
'disclaimer' => 'generated',
]
],
],
[
'id' => 'telephone_company',
'menu_id' => 'website-information',
'type' => 'phone',
'default' => '',
'document_label' => __( 'Phone number:', 'complianz-gdpr' ) . ' ',
'label' => __( "What is the telephone number your visitors can use to contact you about privacy issues?", 'complianz-gdpr' ),
'required' => false,
'react_conditions' => [
'relation' => 'OR',
[
'impressum' => 'generated',
'cookie-statement' => 'generated',
'privacy-statement' => 'generated',
'disclaimer' => 'generated',
]
],
],
[
'id' => 'ca_name_accountable_person',
'menu_id' => 'website-information',
'type' => 'text',
'required' => true,
'default' => '',
'react_conditions' => [
'relation' => 'AND',
[
'privacy-statement' => 'generated',
'regions' => ['ca', 'au', 'za'],
]
],
'label' => __("Person who is accountable for the organizations policies and practices and to whom complaints or inquiries can be forwarded.", 'complianz-gdpr'),
],
[
'id' => 'ca_address_accountable_person',
'menu_id' => 'website-information',
'type' => 'textarea',
'required' => true,
'default' => '',
'react_conditions' => [
'relation' => 'AND',
[
'privacy-statement' => 'generated',
'regions' => ['ca', 'au', 'za'],
]
],
'label' => __("What is the address where complaints or inquiries can be forwarded?", 'complianz-gdpr'),
],
[
'id' => 'purpose_personaldata',
'menu_id' => 'purpose',
'type' => 'multicheckbox',
'disabled' => false,
#In the free version, the purpose is not necessary for EU. In the premium it is necessary if a privacy statement is needed.
'premium' => [
'react_conditions' => [
'relation' => 'OR',
[
'privacy-statement' => 'generated',
'regions' => ['us'],
]
]
],
'default' => '',
'label' => __( "Indicate for what purpose personal data is processed via your website:", 'complianz-gdpr' ),
'required' => true,
'options' => COMPLIANZ::$config->purposes,
'react_conditions' => [
'relation' => 'OR',
[
'regions' => ['us'],
]
]
],
[
'id' => 'records_of_consent',
'menu_id' => 'security-consent',
'premium' => [
'url' => 'https://complianz.io/pricing/',
'description' => __( "Extend Proof of Consent with Records of Consent", 'complianz-gdpr' ),
],
'label' => __( "Do you want to enable Records of Consent?", 'complianz-gdpr' ),
'type' => 'radio',
'options' => COMPLIANZ::$config->yes_no,
'default' => 'no',
'disabled' => true,
'help' => [
'label' => 'default',
'title' => __( "Records of Consent", 'complianz-gdpr' ),
'text' => __( "Enabling this option will extend our Proof of Consent method with user consent registration.", 'complianz-gdpr' ).' '.
__( "This option is recommended in combination with TCF and will store consent data in your database.", 'complianz-gdpr' ),
'url' => 'https://complianz.io/records-of-consent',
],
],
[
'id' => 'datarequest',
'menu_id' => 'security-consent',
'premium' => [
'url' => 'https://complianz.io/pricing',
'description' => __( "Do you want to enable Data Request Forms?", 'complianz-gdpr' ),
],
'label' => __( "Do you want to enable Data Request Forms?", 'complianz-gdpr' ),
'type' => 'radio',
'options' => COMPLIANZ::$config->yes_no,
'default' => 'no',
'disabled' => true,
'help' => [
'label' => 'default',
'title' => __( "What are data request forms?", 'complianz-gdpr' ),
'text' => __( "This will enable Data Requests Forms for your Privacy Statements.", 'complianz-gdpr' ),
'url' => 'https://complianz.io/data-requests-forms/',
],
],
[
'id' => 'respect_dnt',
'menu_id' => 'security-consent',
'type' => 'radio',
'options' => COMPLIANZ::$config->yes_no,
'default' => 'no',
'label' => __( "Respect Do Not Track and Global Privacy Control?", 'complianz-gdpr' ),
'tooltip' => __( 'If you enable this option, Complianz will not show the consent banner to users that enabled a Do Not Track or \'Global Privacy Control\' setting in their browsers and their default consent status is set to denied.', 'complianz-gdpr' ),
],
[
'id' => 'sensitive_information_processed',
'menu_id' => 'security-consent',
'type' => 'radio',
'required' => false,
'default' => '',
'options' => COMPLIANZ::$config->yes_no,
'label' => __( "Does your website contain or process sensitive (personal) information?", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'privacy-statement' => 'generated',
'regions' => ['ca', 'au'],
]
],
'tooltip' => __( 'Sensitive personal information is considered data that is very likely to have a greater impact on Privacy. For example medical, religious or legal information.', 'complianz-gdpr' ),
],
];
return $fields;
}

View File

@@ -0,0 +1,20 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_plugins_fields', 100 );
function cmplz_plugins_fields( $fields ) {
$fields = array_merge( $fields,
[
[
'label' => __('Enabled integrations', "complianz-gdpr"),
'id' => 'plugins_overviews',
'menu_id' => 'plugins',
'type' => 'plugins_overview',
'required' => false,
],
]
);
return $fields;
}

View File

@@ -0,0 +1,47 @@
<?php
defined( 'ABSPATH' ) or die();
/**
* For saving purposes, types should be overridden at the earliest moment
*
* @param array $fields
*
* @return array
*/
function cmplz_add_data_per_purpose( array $fields ): array {
$index = 10;
if ( ! empty( COMPLIANZ::$config->details_per_purpose_us ) ) {
foreach ( COMPLIANZ::$config->purposes as $key => $label ) {
$index += 10;
$fields[] = [
'id' => $key . '_data_purpose_us',
'parent_label' => $label,
'menu_id' => 'details-per-purpose',
'order' => $index + 3,
'loadmore' => 13,
'type' => 'multicheckbox',
'default' => '',
'required' => true,
'label' => __( "Specify the types of data you collect", 'complianz-gdpr' ),
'options' => COMPLIANZ::$config->details_per_purpose_us,
'react_conditions' => [
'relation' => 'AND',
[
'purpose_personaldata' => $key,
'relation' => 'OR',
[
'privacy-statement' => 'generated',
'regions' => ['us'],
]
]
],
];
}
}
return $fields;
}
add_filter( 'cmplz_fields', 'cmplz_add_data_per_purpose', 25, 1 );

View File

@@ -0,0 +1,367 @@
<?php
defined( 'ABSPATH' ) or die();
add_filter( 'cmplz_fields', 'cmplz_services_fields', 100 );
function cmplz_services_fields( $fields ) {
$fields = array_merge( $fields,
[
[
'id' => 'consent_per_service',
'menu_id' => 'services',
'type' => 'radio',
'options' => COMPLIANZ::$config->yes_no,
'default' => 'no',
'label' => __( "Do you want to use 'Consent per Service'?", 'complianz-gdpr' ),
'tooltip' => __( "The default configuration is 'Consent per Category'. This is currently compliant with your selected regions.", 'complianz-gdpr' ),
'comment' => __( "For a granular approach you can enable 'consent per service', a unique way to control cookies real-time.", 'complianz-gdpr' ),
'help' => [
'label' => 'default',
'title' => __( "Cookie Shredder", 'complianz-gdpr' ),
'text' => __( "This feature includes real-time cookie removal with the CookieShredder.", "complianz-gdpr" ) . ' ' . __( "This could break website functionality.",
'complianz-gdpr' ),
'url' => 'https://complianz.io/consent-per-service/',
],
],
[
'id' => 'uses_thirdparty_services',
'menu_id' => 'services',
'type' => 'radio',
'required' => true,
'revoke_consent_onchange' => true,
'options' => COMPLIANZ::$config->yes_no,
'default' => 'no',
'label' => __( "Does your website use third-party services?", 'complianz-gdpr' ),
'tooltip' => __( "e.g. services like Google Fonts, Maps or reCAPTCHA usually place cookies.", 'complianz-gdpr' ),
],
[
'id' => 'thirdparty_services_on_site',
'menu_id' => 'services',
'type' => 'multicheckbox',
'options' => COMPLIANZ::$config->thirdparty_services,
'default' => '',
'revoke_consent_onchange' => true,
'label' => __( "Select the types of third-party services you use on your site.", 'complianz-gdpr' ),
'tooltip' => __( "Checking services here will add the associated cookies to your Cookie Policy, and block the service until consent is given (opt-in), or after consent is revoked (opt-out).",
'complianz-gdpr' ),
'help' => [
'label' => 'default',
'title' => __( "Placeholders", 'complianz-gdpr' ),
'text' => __( "When possible a placeholder is activated. You can also disable or configure the placeholder to your liking. You can disable services and placeholders under Integrations.",
'complianz-gdpr' ),
'url' => 'https://complianz.io/integrating-plugins/',
],
'react_conditions' => [
'relation' => 'AND',
[
'uses_thirdparty_services' => 'yes',
]
],
],
[
'id' => 'block_recaptcha_service',
'menu_id' => 'services',
'type' => 'radio',
'options' => COMPLIANZ::$config->yes_no,
'default' => 'no',
'react_conditions' => [
'relation' => 'AND',
[
'thirdparty_services_on_site' => 'google-recaptcha',
]
],
'label' => __( "Do you want to block reCAPTCHA before consent, and when consent is revoked?", 'complianz-gdpr' ),
'help' => [
'label' => 'warning',
'title' => __( "Blocking reCaptcha", 'complianz-gdpr' ),
'text' => __( "If you choose to block reCAPTCHA, please make sure you add a placeholder to your forms.", 'complianz-gdpr' ),
'url' => 'https://complianz.io/blocking-recaptcha-manually/',
],
],
[
'id' => 'self_host_google_fonts',
'menu_id' => 'services',
'type' => 'radio',
'default' => 'no',
'options' => [
'self-host' => __( 'Yes (recommended)', "complianz-gdpr" ),
'block' => __( 'No', "complianz-gdpr" ),
],
'help' => [
'label' => 'warning',
'title' => __( "Self-hosting Google Fonts", 'complianz-gdpr' ),
'text' => __( "Your site uses Google Fonts. For best privacy compliance, we recommend to self host Google Fonts. To self host, follow the instructions in the below link.", 'complianz-gdpr' ),
'url' => 'https://complianz.io/self-hosting-google-fonts-for-wordpress/',
],
'comment' => __("If you choose 'No', Complianz will block all known Google Fonts sources.", "complianz-gdpr").' '.cmplz_sprintf(__("Please read this %sarticle%s why self-hosting Google Fonts is recommended.", "complianz-gdpr"),'<a target="_blank" href="https://complianz.io/self-hosting-google-fonts-for-wordpress/">', '</a>'),
'react_conditions' => [
'relation' => 'AND',
[
'thirdparty_services_on_site' =>'google-fonts'
]
],
'label' => __( "Will you self-host Google Fonts?", 'complianz-gdpr' ),
'comment_status' => 'warning',
'server_conditions' => [
'relation' => 'AND',
[
'cmplz_uses_optin()' => true,
]
],
],
[
'id' => 'block_hubspot_service',
'menu_id' => 'services',
'type' => 'radio',
'options' => COMPLIANZ::$config->yes_no,
'default' => 'no',
'react_conditions' => [
'relation' => 'AND',
[
'thirdparty_services_on_site' => 'hubspot',
]
],
'label' => __( "Did you enable the consent module in your HubSpot account?", 'complianz-gdpr' ),
'help' => [
'label' => 'warning',
'title' => __( "Integrating Hubspot", 'complianz-gdpr' ),
'text' => __( "Did you enable the consent module in your HubSpot account?", 'complianz-gdpr' ),
'url' => 'https://complianz.io/hubspot-integration/',
],
],
[
'id' => 'hotjar_privacyfriendly',
'menu_id' => 'services',
'type' => 'radio',
'required' => true,
'revoke_consent_onchange' => true,
'options' => COMPLIANZ::$config->yes_no,
'default' => '',
'label' => __( "Is Hotjar configured in a privacy-friendly way?", 'complianz-gdpr' ),
'help' => [
'label' => 'warning',
'title' => __( "Integrating Hotjar", 'complianz-gdpr' ),
'text' => __( "You can configure Hotjar privacy-friendly, if you do this, no consent is required for Hotjar.", 'complianz-gdpr' ),
'url' => 'https://complianz.io/configuring-hotjar-for-gdpr/',
],
'react_conditions' => [
'relation' => 'AND',
[
'thirdparty_services_on_site' => 'hotjar',
'!consent_for_anonymous_stats' => 'yes',
]
],
],
[
'id' => 'uses_social_media',
'menu_id' => 'services',
'type' => 'radio',
'required' => true,
'revoke_consent_onchange' => true,
'options' => COMPLIANZ::$config->yes_no,
'default' => 'no',
'label' => __( "Does your website contain embedded social media content, like buttons, timelines, videos or pixels?", 'complianz-gdpr' ),
'tooltip' => __( "Content from social media is mostly embedded through iFrames. These often place third party (tracking) cookies, so must be blocked based on visitor consent. If your website only contains buttons or links to a social media profile on an external page you can answer No.", 'complianz-gdpr' ),
],
[
'revoke_consent_onchange' => true,
'id' => 'socialmedia_on_site',
'menu_id' => 'services',
'type' => 'multicheckbox',
'options' => COMPLIANZ::$config->thirdparty_socialmedia,
'react_conditions' => [
'relation' => 'AND',
[
'uses_social_media' => 'yes',
]
],
'default' => '',
'label' => __( "Select which social media are used on the website.", 'complianz-gdpr' ),
'tooltip' => __( "Checking services here will add the associated cookies to your Cookie Policy, and block the service until consent is given (opt-in), or after consent is revoked (opt-out)", 'complianz-gdpr' ),
],
[
'id' => 'uses_firstparty_marketing_cookies',
'menu_id' => 'services',
'type' => 'radio',
'required' => true,
'revoke_consent_onchange' => true,
'options' => COMPLIANZ::$config->yes_no,
'default' => 'no',
'label' => __( "You have stated that you don't use third-party services. Do you use plugins that might set marketing cookies?", 'complianz-gdpr' ),
'tooltip' => __( "Complianz cannot automatically block first-party marketing cookies unless these plugins conform to the WP Consent API. Look for any possible integrations on our website if you're not sure. When you answer 'No' to this question, the marketing category will be removed.", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'uses_thirdparty_services' => 'no',
'uses_social_media' => 'no',
]
],
],
[
'id' => 'uses_ad_cookies',
'menu_id' => 'services',
'type' => 'radio',
'required' => true,
'revoke_consent_onchange' => true,
'options' => COMPLIANZ::$config->yes_no,
'default' => 'no',
'tooltip' => __( "If you show advertising on your website, or place scripts for advertising purposes e.g. Google Shopping or remarketing, please answer with Yes.", 'complianz-gdpr' ),
'label' => __( "Does your website contain scripts for advertising purposes?", 'complianz-gdpr' ),
],
[
'id' => 'uses_ad_cookies_personalized',
'menu_id' => 'services',
'premium' => [
'disabled' => false,
'url' => "https://complianz.io/tcf-for-wordpress",
],
'type' => 'radio',
'required' => true,
'tooltip' => __( "If you're using AdSense, AdManager or AdMob, please choose Google CMP Certified Consent Management, for other advertising products that don't use Google you can only use TCF.", 'complianz-gdpr' ),
'revoke_consent_onchange' => true,
'options' => [
'no' => __("Don't use an additional framework.", "complianz-gdpr"),
'yes' => __("Enable TCF, without support for Google Advertising Products.", "complianz-gdpr"),
'tcf' => __("Enable TCF & Google CMP Certified Consent Management with support for Google Advertising Products", "complianz-gdpr"),
],
'default' => 'no',
'label' => __( "Choose the appropriate frameworks needed for your configuration.", 'complianz-gdpr' ),
'comment' => __( "Google Advertising Products requires Google CMP Certified Consent Management. If you don't show ads, but use Google Advertising Products with Google Consent Mode, an additional framework is not required. Please be aware that this consent banner has additional guidelines and restricts customization.", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'uses_ad_cookies' => 'yes',
]
],
'disabled' => [
'tcf',
'yes',
],
],
//consent mode v2
/*
[
'id' => 'uses_ad_cookies_consent_mode',
'tooltip' => __( "If you're using AdSense, AdManager or AdMob, please choose Google CMP Certified Consent Mode, for other advertising products that don't use Google you can only use TCF.", 'complianz-gdpr' ),
'menu_id' => 'services',
'premium' => [
'disabled' => false,
'url' => "https://complianz.io/consent-mode-v2-ready-for-2024/",
],
'type' => 'radio',
'required' => false,
'tooltip' => __( "", 'complianz-gdpr' ),
'revoke_consent_onchange' => false,
'options' => [
'yes' => __("Yes, I will designate all Google core plaform services to receive data. (Default)", "complianz-gdpr"),
'manual' => __("Yes, but I only allow a subset of Google core platform services to receive data.", "complianz-gdpr"),
'no' => __("No, I don't share any data with Google core platform services.", "complianz-gdpr"),
],
'default' => 'yes',
'help' => [
'label' => 'warning',
'title' => __( "The Digital Markets Act", 'complianz-gdpr' ),
'text' => __( "The largest online platforms act as so-called gatekeepers in digital markets. The Digital Markets Act (DMA) aims to ensure that these platforms behave in a fair way online.", 'complianz-gdpr' ),
'url' => 'https://complianz.io/consent-mode-v2-ready-for-2024/',
],
'label' => __( "Do you allow sharing data across Google core plaform services?", 'complianz-gdpr' ),
'tooltip' => __( "When using Consent Mode and Advertising products by Google, you have the option to minimize sharing data between Google products as required by The Digital Markets Act. This should be designated in the UI of the Google product(s) you're using. Answer below what reflects your choice.", 'complianz-gdpr' ),
'comment' => __( "Only change from the default answer if you actively configured you Google Advertising Products to reflect this choice, otherwise the default is recommended.", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'uses_ad_cookies_personalized' => 'no',
'consent-mode' => 'yes',
]
],
'disabled' => [
'tcf'
],
],
// gekoppelde accounts, Google Ads?
[
'id' => 'domain_cps',
'menu_id' => 'services',
'type' => 'text',
'default' => '',
'comment' => __( "Comma separate core platform services.", 'complianz-gdpr' ),
'placeholder' => __( "Link to the privacy policies for each Google product e.g. Google Shopping, YouTube etc", 'complianz-gdpr' ),
'tooltip' => __( "", 'complianz-gdpr' ),
'label' => __( "List the subset of core platform services.", 'complianz-gdpr' ),
'react_conditions' => [
'relation' => 'AND',
[
'uses_ad_cookies_consent_mode' => 'manual',
'uses_ad_cookies_personalized' => 'no',
'consent-mode' => 'yes',
]
],
'required' => false,
],
*/
// consent mode v2 end
[
'id' => 'uses_wordpress_comments',
'menu_id' => 'services',
'type' => 'radio',
'required' => true,
'revoke_consent_onchange' => true,
'options' => COMPLIANZ::$config->yes_no,
'default' => 'no',
'label' => __( "Does your website use WordPress comments?", 'complianz-gdpr' ),
'server_conditions' => [
'relation' => 'AND',
[
'cmplz_uses_optin()' => true,
'cmplz_consent_api_active()' => false,
]
],
],
[
'id' => 'block_wordpress_comment_cookies',
'menu_id' => 'services',
'type' => 'radio',
'required' => true,
'revoke_consent_onchange' => true,
'options' => COMPLIANZ::$config->yes_no,
'default' => 'yes',
'label' => __( "Do you want to disable the storage of personal data by the WP comments function and the checkbox?", 'complianz-gdpr' ),
'help' => [
'label' => 'default',
'title' => __( "WordPress comments", 'complianz-gdpr' ),
'text' => __( "If you enable this, WordPress will not store personal data with comments and you won't need a consent checkbox for the comment form. The consent box will not be displayed.", 'complianz-gdpr' ),
],
'condition' => array(
'uses_wordpress_comments' => 'yes',
),
'react_conditions' => [
'relation' => 'AND',
[
'uses_wordpress_comments' => 'yes',
]
],
'server_conditions' => [
'relation' => 'AND',
[
'cmplz_uses_optin()' => true,
'cmplz_consent_api_active()' => false,
]
],
],
]
);
return $fields;
}

View File

@@ -0,0 +1 @@
<?php //You don't belong here. ?>

View File

@@ -0,0 +1,499 @@
<?php
defined( 'ABSPATH' ) or die();
function cmplz_menu() {
if ( ! cmplz_user_can_manage() ) {
return [];
}
$menu_items = [
[
"id" => "dashboard",
"title" => __( "Dashboard", 'complianz-gdpr' ),
'menu_items' => [],
],
[
"id" => "wizard",
"title" => __( "Wizard", 'complianz-gdpr' ),
'menu_items' => [
[
'id' => 'general',
'group_id' => 'general',
'title' => __( 'General', 'complianz-gdpr' ),
'menu_items' => [
[
'id' => 'visitors',
'title' => __( 'Visitors', 'complianz-gdpr' ),
'intro' => __('The Complianz wizard will guide you through the necessary steps to configure your website for privacy legislation around the world. We designed the wizard to be comprehensible, without making concessions in legal compliance.', 'complianz-gdpr'),
],
[
'id' => 'documents',
'title' => __('Documents', 'complianz-gdpr' ),
'intro' => __('Here you can select which legal documents you want to generate with Complianz. You can also use existing legal documents.', 'complianz-gdpr'),
],
[
'id' => 'website-information',
'title' => __('Website information', 'complianz-gdpr' ),
'intro' => __('We need some information to be able to generate your documents and configure your consent banner.', 'complianz-gdpr'),
],
[
'id' => 'impressum',
'title' => __('Imprint', 'complianz-gdpr'),
'intro' => __('We need some information to be able to generate your Imprint. Not all fields are required.', 'complianz-gdpr'),
'helpLink' => 'https://complianz.io/impressum-required-information',
],
[
'id' => 'disclaimer',
'title' => __('Disclaimer', 'complianz-gdpr'),
'intro' => __('As you have selected the Disclaimer to be generated, please fill out the questions below.', 'complianz-gdpr'),
'helpLink' => 'https://complianz.io/definition/what-is-a-disclaimer/',
],
[
'id' => 'financial',
'title' => __("Financial incentives", 'complianz-gdpr'),
'helpLink' => 'https://complianz.io/',
'region' => array('us'),
],
[
'id' => 'children',
'title' => __("Children's Privacy Policy", 'complianz-gdpr'),
'intro' => __('In one ore more regions your selected, you need to specify if you target children.', 'complianz-gdpr'),
'helpLink' => 'https://complianz.io/',
'region' => array('us','uk', 'ca', 'au', 'za', 'br'),
],
[
'id' => 'children-purposes',
'title' => __('Children: Purposes', 'complianz-gdpr'),
'intro' => __('In one ore more regions your selected, you need to specify if you target children.', 'complianz-gdpr'),
'helpLink' => 'https://complianz.io/',
'region' => array('us', 'au'),
],
[
'id' => 'dpo',
'title' => __('Data Protection Officer', 'complianz-gdpr'),
'intro' => '',
'region' => ['eu', 'uk'],
],
[
'id' => 'purpose',
'title' => __('Purpose', 'complianz-gdpr'),
'intro' => '',
],
[
'id' => 'details-per-purpose',
'title' => __('Details per Purpose', 'complianz-gdpr'),
'intro' => '',
],
[
'id' => 'sharing-of-data',
'title' => __('Sharing of Data', 'complianz-gdpr'),
'region' => array('eu','us', 'uk', 'au', 'za', 'br'),
],
[
'id' => 'security-consent',
'title' => __('Security & Consent', 'complianz-gdpr' ),
],
],
],
[
'id' => 'consent',
'group_id' => 'consent',
'title' => __( 'Consent', 'complianz-gdpr' ),
'menu_items' => [
[
'id' => 'cookie-scan',
'title' => __('Website Scan', 'complianz-gdpr' ),
'intro' => __( 'Complianz will scan several pages of your website for first-party cookies and known third-party scripts. The scan will be recurring monthly to keep you up-to-date!', 'complianz-gdpr' ).' '. cmplz_sprintf( __( 'For more information, %sread our 5 tips%s about the site scan.', 'complianz-gdpr'), '<a href="https://complianz.io/cookie-scan-results/" target="_blank">','</a>'),
'helpLink' => 'https://complianz.io/cookie-scan-results/',
'save_buttons_required' => false,
],
[
'id' => 'consent-statistics',
'title' => __('Statistics', 'complianz-gdpr' ),
'intro' => __('Below you can choose to implement your statistics tooling with Complianz. We will add the needed snippets and control consent at the same time', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/statistics-implementation',
],
[
'id' => 'statistics-configuration',
'title' => __('Statistics configuration', 'complianz-gdpr' ),
'intro' => __('If you choose Complianz to handle your statistics implementation, please delete the current implementation.', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/statistics-implementation#configuration',
],
[
'id' => 'services',
'title' => __('Services', 'complianz-gdpr' ),
],
[
'id' => 'plugins',
'title' => __('Plugins', 'complianz-gdpr' ),
'intro' => __('We have detected the below plugins.', 'complianz-gdpr' ).' '.__('We have enabled the integrations and possible placeholders.', 'complianz-gdpr' ).' '.__('To change these settings, please visit the script center.','complianz-gdpr'),
],
//we need TCF at least one menu item separated from the option to enabled it (services) otherwise the fields data
//might not be loaded when we get here.
[
'id' => 'tcf',
'title' => __( 'Advertising', 'complianz-gdpr' ),
'intro' => __( 'The below questions will help you configure a vendor list of your choosing. Only vendors that adhere to the purposes and special features you configure will be able to serve ads.',
'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/tcf/',
],
[
'id' => 'cookie-descriptions',
'title' => 'Cookiedatabase.org',
'intro' => __( 'Complianz provides your Cookie Policy with comprehensive cookie descriptions, supplied by cookiedatabase.org.','complianz-gdpr') ." "
. __('We connect to this open-source database using an external API, which sends the results of the cookiescan (a list of found cookies, used plugins and your domain) to cookiedatabase.org, for the sole purpose of providing you with accurate descriptions and keeping them up-to-date on a regular basis.','complianz-gdpr'),
'helpLink' => 'https://complianz.io/our-cookiedatabase-a-new-initiative/',
'save_buttons_required' => false,
],
],
],
[
'id' => 'manage-documents',
'group_id' => 'manage-documents',
'title' => __( 'Documents', 'complianz-gdpr' ),
'menu_items' => [
[
'id' => 'create-documents',
'title' => __('Documents', 'complianz-gdpr' ),
'intro' => __( "Generate your documents, then you can add them to your menu directly or do it manually after the wizard is finished.", 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/how-to-create-a-menu-in-wordpress/',
],
[
'id' => 'document-menu',
'title' => __( 'Link to menu', 'complianz-gdpr' ),
'intro' => __( 'It\'s possible to use region redirect when GEO IP is enabled, and you have multiple policies and statements.','complianz-gdpr' ),
'helpLink' => 'https://complianz.io/how-to-redirect-your-policies-based-on-region/',
],
],
],
[
'id' => 'finish',
'group_id' => 'finish',
'title' => __( 'Finish', 'complianz-gdpr' ),
]
],
],
[
"id" => "banner",
"title" => __( "Consent Banner", 'complianz-gdpr' ),
'menu_items' => [
[
'id' => 'banner-general',
'title' => __( 'General', 'complianz-gdpr' ),
'intro' => __( 'These are the main options to customize your consent banner. To go even further you can use our documentation on complianz.io for CSS Lessons, or even start from scratch and create your own with just HTML and CSS.', 'complianz-gdpr' ),
],
[
'id' => 'appearance',
'title' => __( 'Appearance', 'complianz-gdpr' ),
],
[
'id' => 'colors',
'title' => __( 'Colors', 'complianz-gdpr' ),
'groups' => [
[
'id' => 'colors-general',
'title' => __('General', 'complianz-gdpr' ),
],
[
'id' => 'colors-toggles',
'title' => __('Toggles', 'complianz-gdpr' ),
],
[
'id' => 'colors-buttons',
'title' => __('Buttons', 'complianz-gdpr' ),
],
],
],
[
'id' => 'banner-texts',
'title' => __( 'Texts', 'complianz-gdpr' ),
'intro' => __( 'Here you can edit the texts on your banner.', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/social-media-on-a-cookiebanner/',
],
[
'id' => 'custom-css',
'title' => __( 'Custom CSS', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/?s=CSS+Lesson',
],
],
],
[
"id" => "integrations",
"title" => __( "Integrations", 'complianz-gdpr' ),
'menu_items' => [
[
'id' => 'integrations-services',
'title' => __( 'Services', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/integrating-plugins/',
],
[
'id' => 'integrations-plugins',
'title' => __( 'Plugins', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/integrating-plugins/',
],
[
'id' => 'integrations-script-center',
'title' => __( 'Script Center', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/integrating-plugins/',
],
],
],
[
"id" => "settings",
"title" => __( "Settings", 'complianz-gdpr' ),
'menu_items' => [
[
'id' => 'settings-general',
'group_id' => 'settings-general',
'title' => __( 'General', 'complianz-gdpr' ),
'groups' => [
[
'id' => 'settings-general',
'title' => __( 'General', 'complianz-gdpr' ),
'intro' => __( 'Missing any settings? We have moved settings to Tools, available in the menu.', 'complianz-gdpr' ),
],
],
],
[
'id' => 'settings-cd',
'group_id' => 'settings-cd',
'title' => 'APIs',
'groups' => [
[
'id' => 'settings-cd',
'title' => 'Cookiedatabase.org',
],
],
],
],
],
[
"id" => "tools",
"title" => __( "Tools", 'complianz-gdpr' ),
'menu_items' => [
[
'id' => 'support',
'title' => __( 'Support', 'complianz-gdpr' ),
'groups' => [
[
'id' => 'premiumsupport',
'title' => __( 'Support', 'complianz-gdpr' ),
'intro' => __( 'You will be redirected to our support form, with the needed information, automatically.', 'complianz-gdpr' ) . ' '.
cmplz_sprintf(__( 'If you encounter issues, you can also go to the <a href="%s">support</a> form directly.', 'complianz-gdpr' ), 'https://complianz.io/support'),
'premium' => true,
'upgrade' => 'https://complianz.io/pricing',
'premium_text' => __( "Get premium support with %sComplianz GDPR Premium%s", 'complianz-gdpr' ),
],
[
'id' => 'debugging',
'title' => __( 'Debugging', 'complianz-gdpr' ),
],
],
],
[
'id' => 'data-requests',
'title' => __( 'Data Requests', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/data-requests-forms/',
'groups' => [
[
'id' => 'datarequest-entries',
'title' => __( 'Data Requests', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/responding-to-a-data-request/',
],
[
'id' => 'settings',
'title' => __( 'Settings', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/data-requests-forms/',
],
],
],
[
'id' => 'placeholders',
'title' => __( 'Placeholders', 'complianz-gdpr' ),
'groups' => [
[
'id' => 'placeholders-appearance',
'title' => __( 'Placeholder Style', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/changing-the-default-social-placeholders/',
],
[
'id' => 'placeholders-settings',
'title' => __( 'Settings', 'complianz-gdpr' ),
],
],
],
[
'id' => 'tools-documents',
'title' => __( 'Documents', 'complianz-gdpr' ),
'groups' => [
[
'id' => 'tools-documents-general',
'title' => __( 'General', 'complianz-gdpr' ),
],
[
'id' => 'tools-documents-css',
'title' => __( 'Document CSS', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/?s=document+css',
],
],
],
[
'id' => 'multisite',
'title' => __( 'Multisite options', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/cross-domain-cookie-consent/',
],
[
'id' => 'processing-agreements',
'title' => __( 'Processing Agreements', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/',
"save_buttons_required" => false,
'groups' => [
[
'id' => 'create-processing-agreements',
'title' => __( 'Create Processing Agreements', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/do-i-need-a-processing-agreement-with-complianz/',
'intro' => __( 'Here you can create and upload processing agreements. These are necessary when you allow other third parties to process your data.', 'complianz-gdpr' ),
'premium' => true,
'upgrade' => 'https://complianz.io/pricing',
'premium_text' => __( "Create Processing Agreements with %sComplianz GDPR Premium%s", 'complianz-gdpr' ),
],
[
'id' => 'processing-agreements',
'title' => __( 'Processing Agreements', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/definition/what-is-a-processing-agreement/',
'premium' => true,
'upgrade' => 'https://complianz.io/pricing',
'premium_text' => __( "View and manage Processing Agreements with %sComplianz GDPR Premium%s", 'complianz-gdpr' ),
],
],
],
[
'id' => 'data-breach-reports',
'title' => __( 'Data Breach Reports', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/',
"save_buttons_required" => false,
'groups' => [
[
'id' => 'create-data-breach-reports',
'title' => __( 'Create Data Breach Reports', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/definition/what-is-a-data-breach/',
'intro' => __( 'Do you think your data might have been compromised? Did you experience a security incident or are not sure who had access to personal data for a period of time? Create a data breach report below to see what you need to do.', 'complianz-gdpr' ),
'premium' => true,
'upgrade' => 'https://complianz.io/pricing',
'premium_text' => __( "Create Data Breach Reports with %sComplianz GDPR Premium%s", 'complianz-gdpr' ),
],
[
'id' => 'data-breach-reports',
'title' => __( 'Data Breach Reports', 'complianz-gdpr' ),
'premium' => true,
'upgrade' => 'https://complianz.io/pricing',
'premium_text' => __( "View and manage Data Breach Reports with %sComplianz GDPR Premium%s", 'complianz-gdpr' ),
],
],
],
[
'id' => 'proof-of-consent',
'title' => __( 'Proof of Consent', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/definition/what-is-proof-of-consent/',
"save_buttons_required" => false,
'groups' => [
[
'id' => 'create-proof-of-consent',
'title' => __( 'General', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/definition/what-is-proof-of-consent/',
],
[
'id' => 'proof-of-consent',
'title' => __( 'Proof of Consent', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/',
],
],
],
[
'id' => 'records-of-consent',
'title' => __( 'Records of Consent', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/records-of-consent/',
"save_buttons_required" => false,
'groups' => [
[
'id' => 'create-records-of-consent',
'title' => __( 'General', 'complianz-gdpr' ),
'helpLink' => 'https://complianz.io/records-of-consent/',
'premium' => true,
'upgrade' => 'https://complianz.io/pricing',
'premium_text' => __( "View and manage Records of Consent with %sComplianz GDPR Premium%s", 'complianz-gdpr' ),
],
[
'id' => 'records-of-consent',
'title' => __( 'Records of Consent', 'complianz-gdpr' ),
'premium' => true,
'upgrade' => 'https://complianz.io/pricing',
'premium_text' => __( "View and manage Records of Consent with %sComplianz GDPR Premium%s", 'complianz-gdpr' ),
],
],
],
[
'id' => 'ab-testing',
'title' => __( 'Statistics', 'complianz-gdpr' ),
'groups' => [
[
'id' => 'statistics-settings',
'title' => __( 'General', 'complianz-gdpr' ),
"save_buttons_required" => true,
'premium' => true,
'upgrade' => 'https://complianz.io/pricing',
],
[
'id' => 'statistics-view',
'title' => __( 'Statistics', 'complianz-gdpr' ),
'premium' => true,
'upgrade' => 'https://complianz.io/pricing',
'premium_text' => __( "View and manage Records of Consent with %sComplianz GDPR Premium%s", 'complianz-gdpr' ),
],
],
],
[
'id' => 'security',
'title' => __( 'Security', 'complianz-gdpr' ),
"save_buttons_required" => false,
'groups' => [
[
'id' => 'security-install',
'title' => __( 'Improve Security', 'complianz-gdpr' ),
],
[
'id' => 'security-privacy',
'title' => __( 'Privacy Statement', 'complianz-gdpr' ),
'intro' => __( 'Below text is meant for your Privacy Statement, and is created by using Really Simple Security. In Complianz Premium the text will be automatically added to the Privacy Statement.', 'complianz-gdpr' ),
],
],
],
[
'id' => 'tools-data',
'group_id' => 'tools-data',
'title' => __( 'Data', 'complianz-gdpr' ),
'groups' => [
[
'id' => 'settings-data',
'title' => __( 'Data', 'complianz-gdpr' ),
],
],
],
[
'id' => 'tools-multisite',
'group_id' => 'tools-multisite',
'title' => __( 'Multisite', 'complianz-gdpr' ),
'groups' => [
[
'id' => 'tools-multisite',
'title' => __( 'Data', 'complianz-gdpr' ),
],
],
],
],
],
];
return apply_filters( 'cmplz_menu', $menu_items );
}