File: /home/lesanew/anestetues2/web/app/plugins/google-site-kit/includes/Core/Util/Migration_1_163_0.php
<?php
/**
* Migration for Audience Settings.
*
* @package Google\Site_Kit\Core\Util
* @copyright 2025 Google LLC
* @license https://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
* @link https://sitekit.withgoogle.com
*/
namespace Google\Site_Kit\Core\Util;
use Google\Site_Kit\Context;
use Google\Site_Kit\Core\Storage\Options;
use Google\Site_Kit\Modules\Sign_In_With_Google\Settings as Sign_In_With_Google_Settings;
/**
* Class Migration_1_163_0
*
* @since 1.163.0
* @access private
* @ignore
*/
class Migration_1_163_0 {
/**
* Target DB version.
*/
const DB_VERSION = '1.163.0';
/**
* DB version option name.
*/
const DB_VERSION_OPTION = 'googlesitekit_db_version';
/**
* Context instance.
*
* @since 1.163.0
* @var Context
*/
protected $context;
/**
* Options instance.
*
* @since 1.163.0
* @var Options
*/
protected $options;
/**
* Sign_In_With_Google_Settings instance.
*
* @since 1.163.0
* @var Sign_In_With_Google_Settings
*/
protected $sign_in_with_google_settings;
/**
* Constructor.
*
* @since 1.163.0
*
* @param Context $context Plugin context instance.
* @param Options $options Optional. Options instance.
*/
public function __construct(
Context $context,
?Options $options = null
) {
$this->context = $context;
$this->options = $options ?: new Options( $context );
$this->sign_in_with_google_settings = new Sign_In_With_Google_Settings( $this->options );
}
/**
* Registers hooks.
*
* @since 1.163.0
*/
public function register() {
add_action( 'admin_init', array( $this, 'migrate' ) );
}
/**
* Migrates the DB.
*
* @since 1.163.0
*/
public function migrate() {
$db_version = $this->options->get( self::DB_VERSION_OPTION );
if ( ! $db_version || version_compare( $db_version, self::DB_VERSION, '<' ) ) {
$this->migrate_one_tap_enabled_setting();
$this->options->set( self::DB_VERSION_OPTION, self::DB_VERSION );
}
}
/**
* Migrates the One Tap Setting to the most conservative value based
* on previous user settings.
*
* Given the new setting is equivalent to the old setting of
* "One Tap on all pages", we only set One Tap to be enabled if
* the no-longer-used "One Tap on all pages" setting was set to true.
*
* @since 1.163.0
*/
protected function migrate_one_tap_enabled_setting() {
if ( ! $this->sign_in_with_google_settings->has() ) {
return;
}
$sign_in_with_google_settings = $this->sign_in_with_google_settings->get();
if ( ! is_array( $sign_in_with_google_settings ) || empty( $sign_in_with_google_settings ) ) {
return;
}
if (
array_key_exists(
'oneTapOnAllPages',
$sign_in_with_google_settings
) &&
true === $sign_in_with_google_settings['oneTapOnAllPages']
) {
$sign_in_with_google_settings['oneTapEnabled'] = true;
} else {
$sign_in_with_google_settings['oneTapEnabled'] = false;
}
unset( $sign_in_with_google_settings['oneTapOnAllPages'] );
// Save the updated settings.
$this->sign_in_with_google_settings->set( $sign_in_with_google_settings );
}
}