File: /home/locglobe/public_html/wp-content/plugins/wordpress-seo/admin/onpage/class-onpage-option.php
<?php
/**
* @package WPSEO\Admin
*/
/**
* This class handles the data for the option where the OnPage.org data is stored.
*/
class WPSEO_OnPage_Option {
const NOT_FETCHED = 99;
const IS_INDEXABLE = 1;
const IS_NOT_INDEXABLE = 0;
const CANNOT_FETCH = -1;
/**
* The name of the option where data will be stored
*/
const OPTION_NAME = 'wpseo_onpage';
/**
* The key of the status in the option
*/
const STATUS = 'status';
/**
* The key of the last fetch date in the option.
*/
const LAST_FETCH = 'last_fetch';
/**
* The limit for fetching the status manually.
*/
const FETCH_LIMIT = 15;
/**
* @var array The OnPage.org option stored in the database.
*/
private $onpage_option;
/**
* Setting the object by setting the properties
*/
public function __construct() {
$this->onpage_option = $this->get_option();
}
/**
* Getting the status from the option.
*
* @return string
*/
public function get_status() {
if ( array_key_exists( self::STATUS, $this->onpage_option ) ) {
return $this->onpage_option[ self::STATUS ];
}
return self::CANNOT_FETCH;
}
/**
* Saving the status to the options.
*
* @param string $status The status to save.
*/
public function set_status( $status ) {
$this->onpage_option[ self::STATUS ] = $status;
}
/**
* Saving the last fetch timestamp to the options.
*
* @param integer $timestamp Timestamp with the new value.
*/
public function set_last_fetch( $timestamp ) {
$this->onpage_option[ self::LAST_FETCH ] = $timestamp;
}
/**
* Check if the last fetch is within the time of 60 minutes
*
* @return bool
*/
public function should_be_fetched() {
return ( ( time() - $this->onpage_option[ self::LAST_FETCH ] ) > self::FETCH_LIMIT );
}
/**
* Saving the option with the current data
*/
public function save_option() {
update_option( self::OPTION_NAME, $this->onpage_option );
}
/**
* Returns the value of the onpage_enabled status
*
* @return bool
*/
public function is_enabled() {
$options = get_option( 'wpseo' );
return ! empty( $options['onpage_indexability'] );
}
/**
* Getting the option with the OnPage.org data
*
* @return array
*/
private function get_option() {
return get_option( self::OPTION_NAME, array( self::STATUS => self::NOT_FETCHED, self::LAST_FETCH => 0 ) );
}
/**
* @deprecated 3.0.2
* @codeCoverageIgnore
*
* Returns the indexable status of the website.
*
* @return bool
*/
public function is_indexable() {
_deprecated_function( __METHOD__, 'WPSEO 3.0.2' );
return self::IS_INDEXABLE === $this->get_status();
}
}