101 lines
2.5 KiB
PHP
101 lines
2.5 KiB
PHP
<?php
|
|
/**
|
|
* WPSEO Premium plugin file.
|
|
*
|
|
* @package WPSEO\Premium\Classes
|
|
*/
|
|
|
|
/**
|
|
* Represents the premium option.
|
|
*/
|
|
class WPSEO_Premium_Option extends WPSEO_Option {
|
|
|
|
/**
|
|
* Option name.
|
|
*
|
|
* @var string
|
|
*/
|
|
public $option_name = 'wpseo_premium';
|
|
|
|
/**
|
|
* Array of defaults for the option.
|
|
*
|
|
* {@internal Shouldn't be requested directly, use $this->get_defaults();}}
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $defaults = [
|
|
// Form fields.
|
|
'prominent_words_indexing_completed' => null,
|
|
'workouts' => [ 'cornerstone' => [ 'finishedSteps' => [] ] ],
|
|
'should_redirect_after_install' => false,
|
|
'activation_redirect_timestamp' => 0,
|
|
'dismiss_update_premium_notification' => '0',
|
|
];
|
|
|
|
/**
|
|
* Registers the option to the WPSEO Options framework.
|
|
*/
|
|
public static function register_option() {
|
|
WPSEO_Options::register_option( static::get_instance() );
|
|
}
|
|
|
|
/**
|
|
* Get the singleton instance of this class.
|
|
*
|
|
* @return static Returns instance of itself.
|
|
*/
|
|
public static function get_instance() {
|
|
if ( ! ( static::$instance instanceof static ) ) {
|
|
static::$instance = new static();
|
|
}
|
|
|
|
return static::$instance;
|
|
}
|
|
|
|
/**
|
|
* All concrete classes must contain a validate_option() method which validates all
|
|
* values within the option.
|
|
*
|
|
* @param array $dirty New value for the option.
|
|
* @param array $clean Clean value for the option, normally the defaults.
|
|
* @param array $old Old value of the option.
|
|
*
|
|
* @return array The clean option value.
|
|
*/
|
|
protected function validate_option( $dirty, $clean, $old ) {
|
|
foreach ( $clean as $key => $value ) {
|
|
switch ( $key ) {
|
|
case 'prominent_words_indexing_completed':
|
|
if ( isset( $dirty[ $key ] ) && $dirty[ $key ] !== null ) {
|
|
$clean[ $key ] = WPSEO_Utils::validate_bool( $dirty[ $key ] );
|
|
}
|
|
|
|
break;
|
|
case 'workouts':
|
|
if ( isset( $dirty[ $key ] ) && is_array( $dirty[ $key ] ) ) {
|
|
$clean[ $key ] = $dirty[ $key ];
|
|
}
|
|
break;
|
|
case 'should_redirect_after_install':
|
|
if ( isset( $dirty[ $key ] ) && is_bool( $dirty[ $key ] ) ) {
|
|
$clean[ $key ] = $dirty[ $key ];
|
|
}
|
|
break;
|
|
case 'activation_redirect_timestamp':
|
|
if ( isset( $dirty[ $key ] ) && is_int( $dirty[ $key ] ) ) {
|
|
$clean[ $key ] = $dirty[ $key ];
|
|
}
|
|
break;
|
|
case 'dismiss_update_premium_notification':
|
|
if ( isset( $dirty[ $key ] ) && is_string( $dirty[ $key ] ) ) {
|
|
$clean[ $key ] = $dirty[ $key ];
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
return $clean;
|
|
}
|
|
}
|