/home/techb158/l2hypotheques.com/wp-content/plugins/complianz-gdpr
Edit: /home/techb158/l2hypotheques.com/wp-content/plugins/complianz-gdpr/complianz-gpdr.php (14748B)
run();
}
/**
* Run the plugin.
*
* @return void
*/
public function run(): void {
$this->define_constants();
$this->includes();
$this->instantiate_classes();
$this->hooks();
}
/**
* Instantiate the class.
*
* @return COMPLIANZ
* @since 1.0.0
*/
public static function get_instance() {
if ( ! isset( self::$instance )
&& ! ( self::$instance instanceof COMPLIANZ )
) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Define plugin constants.
*
* @return void
*/
private function define_constants() {
define( 'CMPLZ_COOKIEDATABASE_URL', 'https://cookiedatabase.org/wp-json/cookiedatabase/' );
define( 'CMPLZ_MAIN_MENU_POSITION', 40 );
// default region code.
if ( ! defined( 'CMPLZ_DEFAULT_REGION' ) ) {
define( 'CMPLZ_DEFAULT_REGION', 'us' );
}
/*statistics*/
if ( ! defined( 'CMPLZ_AB_TESTING_DURATION' ) ) {
define( 'CMPLZ_AB_TESTING_DURATION', 30 );
} //Days
define( 'CMPLZ_URL', plugin_dir_url( __FILE__ ) );
define( 'CMPLZ_PATH', plugin_dir_path( __FILE__ ) );
define( 'CMPLZ_PLUGIN', plugin_basename( __FILE__ ) );
// for auto upgrade functionality.
define( 'CMPLZ_PLUGIN_FREE', plugin_basename( __FILE__ ) );
$debug = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '#' . time() : '';
define( 'CMPLZ_VERSION', '7.4.5' . $debug );
define( 'CMPLZ_PLUGIN_FILE', __FILE__ );
}
/**
* Include required files.
*
* @return void
*/
private function includes() {
require_once CMPLZ_PATH . 'documents/class-document.php';
require_once CMPLZ_PATH . 'cookie/class-cookie.php';
require_once CMPLZ_PATH . 'cookie/class-service.php';
require_once CMPLZ_PATH . 'integrations/integrations.php';
require_once CMPLZ_PATH . 'cron/cron.php';
/* Gutenberg block */
if ( cmplz_uses_gutenberg() ) {
require_once plugin_dir_path( __FILE__ ) . 'gutenberg/block.php';
}
require_once plugin_dir_path( __FILE__ ) . 'rest-api/rest-api.php';
if ( cmplz_admin_logged_in() ) {
require_once CMPLZ_PATH . 'config/warnings.php';
require_once CMPLZ_PATH . 'settings/settings.php';
require_once CMPLZ_PATH . 'class-admin.php';
require_once CMPLZ_PATH . 'class-review.php';
require_once CMPLZ_PATH . 'progress/class-progress.php';
require_once CMPLZ_PATH . 'cookiebanner/admin/cookiebanner.php';
require_once CMPLZ_PATH . 'class-export.php';
require_once CMPLZ_PATH . 'documents/admin-class-documents.php';
require_once CMPLZ_PATH . 'settings/wizard.php';
require_once CMPLZ_PATH . 'placeholders/class-placeholders.php';
if ( isset( $_GET['install_pro'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
require_once CMPLZ_PATH . 'upgrade/upgrade-to-pro.php';
}
require_once CMPLZ_PATH . 'upgrade.php';
require_once CMPLZ_PATH . 'DNSMPD/class-admin-DNSMPD.php';
require_once CMPLZ_PATH . 'cookie/class-sync.php';
/* Website Scan */
require_once CMPLZ_PATH . 'websitescan/class-wsc.php';
}
if ( cmplz_admin_logged_in() || cmplz_scan_in_progress() ) {
require_once CMPLZ_PATH . 'cookie/class-scan.php';
}
require_once CMPLZ_PATH . 'proof-of-consent/class-proof-of-consent.php';
require_once CMPLZ_PATH . 'cookiebanner/class-cookiebanner.php';
require_once CMPLZ_PATH . 'cookiebanner/class-banner-loader.php';
require_once CMPLZ_PATH . 'class-company.php';
require_once CMPLZ_PATH . 'DNSMPD/class-DNSMPD.php';
require_once CMPLZ_PATH . 'config/class-config.php';
require_once CMPLZ_PATH . 'class-cookie-blocker.php';
require_once CMPLZ_PATH . 'websitescan/class-wsc-api.php';
require_once CMPLZ_PATH . 'websitescan/class-wsc-scanner.php';
require_once CMPLZ_PATH . 'mailer/class-mail.php';
}
/**
* Instantiate classes.
*
* @return void
*/
private function instantiate_classes(): void {
self::$config = new cmplz_config();
self::$company = new cmplz_company();
self::$DNSMPD = new cmplz_DNSMPD(); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
if ( cmplz_admin_logged_in() ) {
self::$admin_DNSMPD = new cmplz_admin_DNSMPD(); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
self::$review = new cmplz_review();
self::$admin = new cmplz_admin();
self::$export_settings = new cmplz_export_settings();
self::$progress = new cmplz_progress();
self::$documents_admin = new cmplz_documents_admin();
self::$wizard = new cmplz_wizard();
self::$sync = new cmplz_sync();
self::$websitescan = new cmplz_wsc();
self::$wsc_onboarding = new cmplz_wsc_onboarding();
}
if ( cmplz_admin_logged_in() || cmplz_scan_in_progress() ) {
self::$scan = new cmplz_scan();
}
self::$proof_of_consent = new cmplz_proof_of_consent();
self::$cookie_blocker = new cmplz_cookie_blocker();
self::$banner_loader = new cmplz_banner_loader();
self::$document = new cmplz_document();
self::$wsc_api = new cmplz_wsc_api();
self::$wsc_scanner = new cmplz_wsc_scanner();
}
/**
* Add hooks.
*
* @return void
*/
private function hooks() {
add_action( 'init', array( $this, 'load_textdomain' ), 0 );
if ( wp_doing_ajax() ) {
// using init on ajax calls, as wp is not running.
add_action( 'init', 'cmplz_init_cookie_blocker' );
} else {
// has to be wp for all non ajax calls, because of AMP plugin.
add_action( 'wp', 'cmplz_init_cookie_blocker' );
}
}
/**
* Load plugin translations.
*
* @since 7.4.0
*
* @return void
*/
public function load_textdomain(): void {
load_plugin_textdomain( 'complianz-gdpr' );
}
}
/**
* Load the plugins main class.
*/
add_action(
'plugins_loaded',
function () {
COMPLIANZ::get_instance();
},
9
);
}
if ( ! function_exists( 'cmplz_set_activation_time_stamp' ) ) {
/**
* Set an activation time stamp.
*
* @param bool $networkwide Whether the plugin is being activated network-wide.
* @return void
*/
function cmplz_set_activation_time_stamp( $networkwide ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- We need this parameter for the activation hook
update_option( 'cmplz_activation_time', time() );
update_option( 'cmplz_run_activation', true, false );
set_transient( 'cmplz_redirect_to_settings_page', true, HOUR_IN_SECONDS );
}
register_activation_hook( __FILE__, 'cmplz_set_activation_time_stamp' );
}
if ( ! function_exists( 'cmplz_activation_check' ) ) {
/**
* Start the tour of the plugin on activation
*/
function cmplz_activation_check() {
do_action( 'cmplz_activation' );
}
register_activation_hook( __FILE__, 'cmplz_activation_check' );
}
if ( ! function_exists( 'cmplz_is_logged_in_rest' ) ) {
/**
* Check if a user is logged in for Complianz REST API requests.
*
* This function determines whether the current request is related to
* the Complianz REST API (`/complianz/v1/`) and, if so, checks if a user
* is logged in.
*
* @return bool True if the request is for the Complianz REST API and the user is logged in, false otherwise.
*/
function cmplz_is_logged_in_rest() {
// phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
$is_settings_page_request = isset( $_SERVER['REQUEST_URI'] ) && strpos( $_SERVER['REQUEST_URI'], '/complianz/v1/' ) !== false;
if ( ! $is_settings_page_request ) {
return false;
}
return is_user_logged_in();
}
}
if ( ! function_exists( 'cmplz_admin_logged_in' ) ) {
/**
* Check if an admin user is logged in.
*/ function cmplz_admin_logged_in() {
$wpcli = defined( 'WP_CLI' ) && WP_CLI;
return ( is_admin() && cmplz_user_can_manage() ) || cmplz_is_logged_in_rest() || wp_doing_cron() || $wpcli || defined( 'CMPLZ_DOING_SYSTEM_STATUS' );
}
}
if ( ! function_exists( 'cmplz_add_manage_privacy_capability' ) ) {
/**
* Assign the 'manage_privacy' capability to administrators.
*
* This function ensures that the 'administrator' role has the 'manage_privacy' capability.
* If the site is part of a multisite network and `$handle_subsites` is true, the capability
* is also added to all subsites by recursively applying the function to each subsite.
*
* @param bool $handle_subsites Whether to apply the capability to all subsites in a multisite network.
* Default is true.
*
* @return void
*/
function cmplz_add_manage_privacy_capability( $handle_subsites = true ) {
$capability = 'manage_privacy';
$role = get_role( 'administrator' );
if ( $role && ! $role->has_cap( $capability ) ) {
$role->add_cap( $capability );
}
// we need to add this role across subsites as well.
if ( $handle_subsites && is_multisite() ) {
$sites = get_sites();
if ( count( $sites ) > 0 ) {
foreach ( $sites as $site ) {
switch_to_blog( $site->blog_id );
cmplz_add_manage_privacy_capability( false );
restore_current_blog();
}
}
}
}
register_activation_hook( __FILE__, 'cmplz_add_manage_privacy_capability' );
/**
* Assign Complianz management capabilities to a new subsite in a multisite network.
*
* @param WP_Site $site The newly created WordPress site object.
*
* @return void
*/
function cmplz_add_role_to_subsite( $site ) {
switch_to_blog( $site->blog_id );
cmplz_add_manage_privacy_capability( false );
restore_current_blog();
}
add_action( 'wp_initialize_site', 'cmplz_add_role_to_subsite', 10, 1 );
}