%PDF- %PDF-
Direktori : /home/t/r/a/tradesc/www/relax/wp-content/plugins/complianz-gdpr/settings/config/ |
Current File : /home/t/r/a/tradesc/www/relax/wp-content/plugins/complianz-gdpr/settings/config/config.php |
<?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; }