Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/wp-conte.../plugins/sitepres.../classes/utilitie.../lock
File: class-wpml-lock.php
<?php
[0] Fix | Delete
[1] Fix | Delete
namespace WPML\Utilities;
[2] Fix | Delete
[3] Fix | Delete
class Lock implements ILock {
[4] Fix | Delete
[5] Fix | Delete
/** @var \wpdb */
[6] Fix | Delete
private $wpdb;
[7] Fix | Delete
[8] Fix | Delete
/** @var string */
[9] Fix | Delete
protected $name;
[10] Fix | Delete
[11] Fix | Delete
/**
[12] Fix | Delete
* Lock constructor.
[13] Fix | Delete
*
[14] Fix | Delete
* @param \wpdb $wpdb
[15] Fix | Delete
* @param string $name
[16] Fix | Delete
*/
[17] Fix | Delete
public function __construct( \wpdb $wpdb, $name ) {
[18] Fix | Delete
$this->wpdb = $wpdb;
[19] Fix | Delete
$this->name = 'wpml.' . $name . '.lock';
[20] Fix | Delete
}
[21] Fix | Delete
[22] Fix | Delete
/**
[23] Fix | Delete
* Creates a lock using WordPress options ( Based on WP class WP_Upgrader ).
[24] Fix | Delete
*
[25] Fix | Delete
* @param int $release_timeout Optional. The duration in seconds to respect an existing lock.
[26] Fix | Delete
* Default: 1 hour.
[27] Fix | Delete
* @return bool False if a lock couldn't be created or if the lock is still valid. True otherwise.
[28] Fix | Delete
*/
[29] Fix | Delete
public function create( $release_timeout = null ) {
[30] Fix | Delete
if ( ! $release_timeout ) {
[31] Fix | Delete
$release_timeout = HOUR_IN_SECONDS;
[32] Fix | Delete
}
[33] Fix | Delete
[34] Fix | Delete
// Try to lock.
[35] Fix | Delete
$lock_result = $this->wpdb->query( $this->wpdb->prepare( "INSERT IGNORE INTO {$this->wpdb->options} ( `option_name`, `option_value`, `autoload` ) VALUES (%s, %s, 'no') /* LOCK */", $this->name, time() ) );
[36] Fix | Delete
[37] Fix | Delete
if ( ! $lock_result ) {
[38] Fix | Delete
$lock_result = get_option( $this->name );
[39] Fix | Delete
[40] Fix | Delete
// If a lock couldn't be created, and there isn't a lock, bail.
[41] Fix | Delete
if ( ! $lock_result ) {
[42] Fix | Delete
return false;
[43] Fix | Delete
}
[44] Fix | Delete
[45] Fix | Delete
// Check to see if the lock is still valid. If it is, bail.
[46] Fix | Delete
if ( $lock_result > ( time() - $release_timeout ) ) {
[47] Fix | Delete
return false;
[48] Fix | Delete
}
[49] Fix | Delete
[50] Fix | Delete
// There must exist an expired lock, clear it and re-gain it.
[51] Fix | Delete
$this->release();
[52] Fix | Delete
[53] Fix | Delete
return $this->create( $release_timeout );
[54] Fix | Delete
}
[55] Fix | Delete
[56] Fix | Delete
// Update the lock, as by this point we've definitely got a lock, just need to fire the actions.
[57] Fix | Delete
update_option( $this->name, time() );
[58] Fix | Delete
[59] Fix | Delete
return true;
[60] Fix | Delete
}
[61] Fix | Delete
[62] Fix | Delete
/**
[63] Fix | Delete
* Releases an upgrader lock.
[64] Fix | Delete
*
[65] Fix | Delete
* @return bool True if the lock was successfully released. False on failure.
[66] Fix | Delete
*/
[67] Fix | Delete
public function release() {
[68] Fix | Delete
return delete_option( $this->name );
[69] Fix | Delete
}
[70] Fix | Delete
}
[71] Fix | Delete
[72] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function