WP_Upgrader::create_lock
Creates a lock using WordPress options.
Метод класса: WP_Upgrader{}
Хуков нет.
Возвращает
true|false. False if a lock couldn't be created or if the lock is still valid. True otherwise.
Использование
$result = WP_Upgrader::create_lock( $lock_name, $release_timeout );
- $lock_name(строка) (обязательный)
- The name of this unique lock.
- $release_timeout(int)
- The duration in seconds to respect an existing lock.
По умолчанию: 1 hour
Заметки
- Global. wpdb. $wpdb The WordPress database abstraction object.
Список изменений
| С версии 4.5.0 | Введена. |
Код WP_Upgrader::create_lock() WP Upgrader::create lock WP 6.8.3
public static function create_lock( $lock_name, $release_timeout = null ) {
global $wpdb;
if ( ! $release_timeout ) {
$release_timeout = HOUR_IN_SECONDS;
}
$lock_option = $lock_name . '.lock';
// Try to lock.
$lock_result = $wpdb->query( $wpdb->prepare( "INSERT IGNORE INTO `$wpdb->options` ( `option_name`, `option_value`, `autoload` ) VALUES (%s, %s, 'off') /* LOCK */", $lock_option, time() ) );
if ( ! $lock_result ) {
$lock_result = get_option( $lock_option );
// If a lock couldn't be created, and there isn't a lock, bail.
if ( ! $lock_result ) {
return false;
}
// Check to see if the lock is still valid. If it is, bail.
if ( $lock_result > ( time() - $release_timeout ) ) {
return false;
}
// There must exist an expired lock, clear it and re-gain it.
WP_Upgrader::release_lock( $lock_name );
return WP_Upgrader::create_lock( $lock_name, $release_timeout );
}
// Update the lock, as by this point we've definitely got a lock, just need to fire the actions.
update_option( $lock_option, time(), false );
return true;
}