Files
2026-04-28 15:13:50 +02:00

94 lines
2.1 KiB
PHP

<?php
/**
* Logic to run on plugin install.
*
* @package WPConsent
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Class WPConsent_Install.
*/
class WPConsent_Install {
/**
* WPConsent_Install constructor.
*/
public function __construct() {
register_activation_hook( WPCONSENT_FILE, array( $this, 'activate' ) );
add_action( 'admin_init', array( $this, 'maybe_run_install' ) );
}
/**
* Activation hook.
*
* @return void
*/
public function activate() {
// Use an action to have a single activation hook plugin-wide.
do_action( 'wpconsent_plugin_activation' );
set_transient( 'wpconsent_just_activated', class_exists( 'WPConsent_Premium' ) ? 'pro' : 'lite', 60 );
}
/**
* Maybe run the install.
*
* @return void
*/
public function maybe_run_install() {
if ( ! is_admin() ) {
return;
}
$activated = get_option( 'wpconsent_activated', array() );
if ( empty( $activated['wpconsent'] ) ) {
$activated['wpconsent'] = time();
$activated['version'] = '0';
update_option( 'wpconsent_activated', $activated );
set_transient( 'wpconsent_onboarding_redirect', true, 60 );
}
// Maybe run manually just one time.
$install = get_option( 'wpconsent_install', false );
if ( ! empty( $install ) ) {
$this->activate();
delete_option( 'wpconsent_install' );
}
// If not first install, that means before 1.0.3.
if ( ! isset( $activated['version'] ) ) {
$activated['version'] = '1.0.0';
}
if ( isset( $activated['version'] ) && version_compare( $activated['version'], '1.0.5', '<' ) ) {
$this->update_1_0_5();
}
do_action( 'wpconsent_before_version_update', $activated );
// Re-fetch the option to preserve any changes made by upgrade hooks.
$activated = get_option( 'wpconsent_activated', array() );
$activated['version'] = WPCONSENT_VERSION;
update_option( 'wpconsent_activated', $activated );
}
/**
* Upgrade routine for version 1.0.5.
*
* @return void
*/
private function update_1_0_5() {
// Clear the cache for script blocking.
wpconsent()->file_cache->delete( 'script-blocking-data' );
}
}
new WPConsent_Install();