198 lines
3.2 KiB
PHP
198 lines
3.2 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* 3.0 Data Migration - Base.
|
||
|
*
|
||
|
* @subpackage Admin/Upgrades/v3
|
||
|
* @copyright Copyright (c) 2018, Easy Digital Downloads, LLC
|
||
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
||
|
* @since 3.0
|
||
|
*/
|
||
|
|
||
|
namespace EDD\Admin\Upgrades\v3;
|
||
|
|
||
|
// Exit if accessed directly
|
||
|
defined( 'ABSPATH' ) || exit;
|
||
|
|
||
|
/**
|
||
|
* Base Class.
|
||
|
*
|
||
|
* @since 3.0
|
||
|
*/
|
||
|
class Base extends \EDD_Batch_Export {
|
||
|
|
||
|
/**
|
||
|
* Orders.
|
||
|
*
|
||
|
* @since 3.0
|
||
|
* @var string
|
||
|
*/
|
||
|
const ORDERS = 'orders';
|
||
|
|
||
|
/**
|
||
|
* Discounts.
|
||
|
*
|
||
|
* @since 3.0
|
||
|
* @var string
|
||
|
*/
|
||
|
const DISCOUNTS = 'discounts';
|
||
|
|
||
|
/**
|
||
|
* Our export type. Used for export-type specific filters/actions.
|
||
|
*
|
||
|
* @since 3.0
|
||
|
* @var string
|
||
|
*/
|
||
|
public $export_type = '';
|
||
|
|
||
|
/**
|
||
|
* Allows for a non-download batch processing to be run.
|
||
|
*
|
||
|
* @since 3.0
|
||
|
* @var bool
|
||
|
*/
|
||
|
public $is_void = true;
|
||
|
|
||
|
/**
|
||
|
* Sets the number of items to pull on each step.
|
||
|
*
|
||
|
* @since 3.0
|
||
|
* @var int
|
||
|
*/
|
||
|
public $per_step = 50;
|
||
|
|
||
|
/**
|
||
|
* Is the upgrade done?
|
||
|
*
|
||
|
* @since 3.0
|
||
|
* @var bool
|
||
|
*/
|
||
|
public $done;
|
||
|
|
||
|
/**
|
||
|
* Message.
|
||
|
*
|
||
|
* @since 3.0
|
||
|
* @var string
|
||
|
*/
|
||
|
public $message;
|
||
|
|
||
|
/**
|
||
|
* Completed message.
|
||
|
*
|
||
|
* @since 3.0
|
||
|
* @var string
|
||
|
*/
|
||
|
public $completed_message;
|
||
|
|
||
|
/**
|
||
|
* Upgrade routine.
|
||
|
*
|
||
|
* @since 3.0
|
||
|
* @var string
|
||
|
*/
|
||
|
public $upgrade;
|
||
|
|
||
|
/**
|
||
|
* Retrieve the data pertaining to the current step and migrate as necessary.
|
||
|
*
|
||
|
* @since 3.0
|
||
|
*
|
||
|
* @return bool True if data was migrated, false otherwise.
|
||
|
*/
|
||
|
public function get_data() {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Process a step.
|
||
|
*
|
||
|
* @since 3.0
|
||
|
*
|
||
|
* @return bool
|
||
|
*/
|
||
|
public function process_step() {
|
||
|
if ( ! $this->can_export() ) {
|
||
|
wp_die(
|
||
|
esc_html__( 'You do not have permission to run this upgrade.', 'easy-digital-downloads' ),
|
||
|
esc_html__( 'Error', 'easy-digital-downloads' ),
|
||
|
array(
|
||
|
'response' => 403,
|
||
|
)
|
||
|
);
|
||
|
}
|
||
|
|
||
|
$had_data = $this->get_data();
|
||
|
|
||
|
if ( $had_data ) {
|
||
|
$this->done = false;
|
||
|
// Save the *next* step to do.
|
||
|
update_option( sprintf( 'edd_v3_migration_%s_step', sanitize_key( $this->upgrade ) ), $this->step + 1 );
|
||
|
return true;
|
||
|
} else {
|
||
|
$this->done = true;
|
||
|
$this->message = $this->completed_message;
|
||
|
edd_set_upgrade_complete( $this->upgrade );
|
||
|
delete_option( sprintf( 'edd_v3_migration_%s_step', sanitize_key( $this->upgrade ) ) );
|
||
|
edd_v30_is_migration_complete();
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Set the headers.
|
||
|
*
|
||
|
* @since 3.0
|
||
|
*/
|
||
|
public function headers() {
|
||
|
edd_set_time_limit();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Perform the migration.
|
||
|
*
|
||
|
* @since 3.0
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
public function export() {
|
||
|
|
||
|
// Set headers.
|
||
|
$this->headers();
|
||
|
|
||
|
edd_die();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Return the global database interface.
|
||
|
*
|
||
|
* @since 3.0
|
||
|
* @access protected
|
||
|
* @static
|
||
|
*
|
||
|
* @return \wpdb|\stdClass
|
||
|
*/
|
||
|
protected static function get_db() {
|
||
|
return isset( $GLOBALS['wpdb'] )
|
||
|
? $GLOBALS['wpdb']
|
||
|
: new \stdClass();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Set properties specific to the export.
|
||
|
*
|
||
|
* @since 3.0
|
||
|
*
|
||
|
* @param array $request Form data passed into the batch processor.
|
||
|
*/
|
||
|
public function set_properties( $request ) {
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Allow for pre-fetching of data for the remainder of the batch processor.
|
||
|
*
|
||
|
* @since 3.0
|
||
|
*/
|
||
|
public function pre_fetch() {
|
||
|
}
|
||
|
}
|