time() ) { return false; } global $wpdb; $updated = $wpdb->update( $wpdb->options, [ 'option_value' => (string) $expires ], [ 'option_name' => $option, 'option_value' => (string) $held, ], [ '%s' ], [ '%s', '%s' ] ); if ( 1 === $updated ) { wp_cache_delete( $option, 'options' ); return true; } return false; } /** * @param string $name Lock name. */ public static function release( string $name ): void { delete_option( self::PREFIX . $name ); } /** * @param string $name Lock name. */ public static function held( string $name ): bool { return (int) get_option( self::PREFIX . $name, 0 ) > time(); } /** * @param string $name Lock name. */ public static function option_name( string $name ): string { return self::PREFIX . $name; } }