123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- <?php
- /**
- * WPSEO plugin file.
- *
- * @package WPSEO\Admin
- */
- /**
- * This class handles the data for the option where the Ryte data is stored.
- */
- class WPSEO_OnPage_Option {
- /**
- * Indicates the data is not fetched.
- *
- * @var int
- */
- const NOT_FETCHED = 99;
- /**
- * Indicates the option is indexable.
- *
- * @var int
- */
- const IS_INDEXABLE = 1;
- /**
- * Indicates the option is not indexable.
- *
- * @var int
- */
- const IS_NOT_INDEXABLE = 0;
- /**
- * Indicates the data could not be fetched.
- *
- * @var int
- */
- const CANNOT_FETCH = -1;
- /**
- * The name of the option where data will be stored.
- *
- * @var string
- */
- const OPTION_NAME = 'wpseo_onpage';
- /**
- * The key of the status in the option.
- *
- * @var string
- */
- const STATUS = 'status';
- /**
- * The key of the last fetch date in the option.
- *
- * @var string
- */
- const LAST_FETCH = 'last_fetch';
- /**
- * The limit for fetching the status manually.
- *
- * @var int
- */
- const FETCH_LIMIT = 15;
- /**
- * The Ryte option stored in the database.
- *
- * @var array
- */
- 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() {
- return WPSEO_Options::get( 'onpage_indexability' );
- }
- /**
- * Getting the option with the Ryte data.
- *
- * @return array
- */
- private function get_option() {
- $default = [
- self::STATUS => self::NOT_FETCHED,
- self::LAST_FETCH => 0,
- ];
- return get_option( self::OPTION_NAME, $default );
- }
- }
|