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,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;
}