| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- <?php if ( ! defined( 'ABSPATH' ) ) exit;
- /**
- * Class NF_Upgrade
- *
- * The Upgrade class should be extended by all upgrades to be used by the Upgrade Handler.
- */
- abstract class NF_Upgrade
- {
- /**
- * @var name
- *
- * The name is the unique identifier for the upgrade.
- */
- public $name;
- /**
- * @var priority
- *
- * The priority determines the oder in which the upgrades are run.
- * Priorities are compared as version numbers that corresponds to when they were introduced.
- */
- public $priority;
- /**
- * @var decription
- *
- * The description will be displayed for the user in the Upgrade Handler admin screen.
- */
- public $description;
- /**
- * @var total_steps
- *
- * The total number of steps that need to be processed.
- */
- public $total_steps;
- /**
- * @var args
- *
- * The args variable is passes between calls.
- */
- public $args = array();
- /**
- * @var errors
- *
- * The errors property is used to store errors for the Upgrade Handler to reference.
- */
- public $errors = array();
- /**
- * Constructor
- */
- public function __construct()
- {
- $this->nice_name = ucwords( str_replace( '_', ' ', $this->name) );
- $this->description = __( $this->description, 'ninja-forms' );
- }
- /**
- * Loading
- *
- * The loading method is used to setup the upgrade and is called by the Upgrade Handler.
- */
- abstract function loading();
- /**
- * Step
- *
- * @param $step
- *
- * The step method will be called by the parent _step method.
- */
- abstract public function step( $step );
- /**
- * Complete
- *
- * The complete method will be called by the Upgrade Handler when all steps are complete.
- */
- abstract public function complete();
- /**
- * Is Complete
- *
- * The isComplete method checks to see if the upgrade has already been completed.
- */
- abstract public function isComplete();
- /**
- * _Step
- *
- * @param $step
- *
- * The _step method is called by the Upgrade Handler and is a middleman for step.
- */
- public function _step( $step )
- {
- $last_step = $this->getLastStep();
- if( $step < $last_step ) {
- $step = $last_step;
- }
- $this->_beforeStep( $step );
- $this->step( $step );
- $this->_afterStep( $step );
- $this->setLastStep( $step );
- }
- /**
- * Before Step
- *
- * @param $step
- *
- * The _beforeStep method is called by the _step method before calling the extended step method.
- */
- public function _beforeStep( $step )
- {
- // This method is optionally extended and is intentionally left blank.
- }
- /**
- * After Step
- *
- * @param $step
- *
- * The _afterStep method is called by the _step method after calling the extended step method.
- */
- public function _afterStep( $step )
- {
- // This method is optionally extended and is intentionally left blank.
- }
- /**
- * Get Last Step
- *
- * Gets the last step processed from the wp_options table.
- *
- * @return mixed
- */
- public function getLastStep()
- {
- return get_option( 'nf_upgrade_' . $this->name . '_last_step', 0 );
- }
- /**
- * Set Last Step
- *
- * Updates the value in the wp_options table with the last step processed.
- *
- * @param $step
- */
- public function setLastStep( $step )
- {
- update_option( 'nf_upgrade_' . $this->name . '_last_step', $step );
- }
- }
|