67 lines
1.4 KiB
PHP
67 lines
1.4 KiB
PHP
<?php
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
} // Exit if accessed directly
|
|
|
|
class Flexible_Checkout_Fields_Activation_Tracker {
|
|
|
|
/** @var string */
|
|
private $namespace;
|
|
|
|
/**
|
|
* Flexible_Checkout_Fields_Activation_Tracker constructor.
|
|
*
|
|
* @param $namespace string for settings
|
|
*/
|
|
public function __construct( $namespace ) {
|
|
$this->namespace = $namespace;
|
|
}
|
|
|
|
/**
|
|
* Option name for date storage
|
|
*
|
|
* @return string
|
|
*/
|
|
private function get_option_name_activation_date() {
|
|
return $this->namespace . '_activation';
|
|
}
|
|
|
|
/**
|
|
* Returns activation date and sets it if were not set before
|
|
*
|
|
* @return int unix timestamp for activation datetime
|
|
*/
|
|
public function get_activation_date() {
|
|
$activation_date
|
|
= get_option( $this->get_option_name_activation_date() );
|
|
if ( empty( $activation_date ) ) {
|
|
return $this->touch_activation_date();
|
|
}
|
|
|
|
return intval( $activation_date );
|
|
}
|
|
|
|
/**
|
|
* Was activation more than two weeks before today
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function is_activated_more_than_two_weeks() {
|
|
$two_weeks = 60 * 60 * 24 * 7 * 2;
|
|
|
|
return $this->get_activation_date() + $two_weeks < time();
|
|
}
|
|
|
|
/**
|
|
* Sets activatiion date for today
|
|
*
|
|
* @return int unit timestamp for now
|
|
*/
|
|
public function touch_activation_date() {
|
|
$now = time();
|
|
update_option( $this->get_option_name_activation_date(), $now );
|
|
|
|
return $now;
|
|
}
|
|
}
|