PATH:
var
/
www
/
clients
/
client1
/
web1
/
web
/
wp-content
/
sitepress-multilingual-cms
/
classes
/
ICL-20-migration
<?php /** * @author OnTheGo Systems */ class WPML_TM_ICL20_Migrate { private $local_migration; private $progress; private $remote_migration; private $status; /** @var WPML_TP_Services */ private $tp_services; public function __construct( WPML_TM_ICL20_Migration_Progress $progress, WPML_TM_ICL20_Migration_Status $status, WPML_TM_ICL20_Migrate_Remote $remote_migration, WPML_TM_ICL20_Migrate_Local $local_migration, WPML_TP_Services $tp_services ) { $this->progress = $progress; $this->status = $status; $this->remote_migration = $remote_migration; $this->local_migration = $local_migration; $this->tp_services = $tp_services; } public function migrate_project_rollback() { if ( ! $this->status->has_active_legacy_icl() ) { return false; } $project = $this->tp_services->get_current_project(); $token = $this->get_token( $project ); if ( $token ) { return $this->remote_migration->migrate_project_rollback( $project->id, $project->access_key ); } return false; } public function run() { $this->progress->set_migration_started(); $project = $this->tp_services->get_current_project(); $token = $project ? $this->get_token( $project ) : null; if ( (bool) $token && $this->migrate_project( $project, $token ) && $this->acknowledge_icl( $project ) && $this->migrate_local_service( $token ) && $this->migrate_local_project() && $this->migrate_local_jobs( WPML_TM_ICL20_Migrate_Local::JOBS_TYPES_DOCUMENTS, WPML_TM_ICL20_Migration_Progress::STEP_MIGRATE_JOBS_DOCUMENTS ) && $this->migrate_local_jobs( WPML_TM_ICL20_Migrate_Local::JOBS_TYPES_STRINGS, WPML_TM_ICL20_Migration_Progress::STEP_MIGRATE_JOBS_STRINGS ) ) { $this->progress->set_migration_done(); return true; } return false; } /** * @param $project * * @return string */ private function get_token( $project ) { $token = $this->progress->get_completed_step( WPML_TM_ICL20_Migration_Progress::STEP_TOKEN ); if ( WPML_TM_ICL20_Migration_Progress::STEP_FAILED === $token ) { $token = $this->remote_migration->get_token( $project->ts_id, $project->ts_access_key ); } return $token; } /** * @param $project * @param $token * * @return bool */ private function migrate_project( $project, $token ) { $project_migrated = $this->progress->get_completed_step( WPML_TM_ICL20_Migration_Progress::STEP_MIGRATE_REMOTE_PROJECT ); if ( WPML_TM_ICL20_Migration_Progress::STEP_FAILED === $project_migrated ) { $project_migrated = $this->remote_migration->migrate_project( $project->id, $project->access_key, $token ); } return (bool) $project_migrated; } /** * @param $project * * @return bool */ private function acknowledge_icl( $project ) { $icl_acknowledged = $this->progress->get_completed_step( WPML_TM_ICL20_Migration_Progress::STEP_ICL_ACK ); if ( WPML_TM_ICL20_Migration_Progress::STEP_FAILED === $icl_acknowledged ) { $icl_acknowledged = $this->remote_migration->acknowledge_icl( $project->ts_id, $project->ts_access_key ); } return (bool) $icl_acknowledged; } /** * @param $token * * @return bool */ private function migrate_local_service( $token ) { $service_migrated = $this->progress->get_completed_step( WPML_TM_ICL20_Migration_Progress::STEP_MIGRATE_LOCAL_SERVICE ); if ( WPML_TM_ICL20_Migration_Progress::STEP_DONE === $service_migrated ) { $current_service = $this->tp_services->get_current_service(); $service_migrated = $current_service && $this->status->get_ICL_20_TS_ID() === $current_service->id; } if ( WPML_TM_ICL20_Migration_Progress::STEP_FAILED === $service_migrated ) { $service_migrated = $this->local_migration->migrate_service( $token ); } return (bool) $service_migrated; } /** * @return bool */ private function migrate_local_project() { $project_migrated = $this->progress->get_completed_step( WPML_TM_ICL20_Migration_Progress::STEP_MIGRATE_LOCAL_PROJECT ); if ( WPML_TM_ICL20_Migration_Progress::STEP_FAILED === $project_migrated ) { $project_migrated = $this->local_migration->migrate_project(); } return (bool) $project_migrated; } /** * @param string $table * @param string $step * * @return bool */ private function migrate_local_jobs( $table, $step ) { $job_migrated = $this->progress->get_completed_step( $step ); if ( WPML_TM_ICL20_Migration_Progress::STEP_FAILED === $job_migrated ) { $job_migrated = $this->local_migration->migrate_jobs( $table ); } return (bool) $job_migrated; } }
[-] class-wpml-tm-icl20-migration-factory.php
[edit]
[-] class-wpml-tm-icl20-migrate-remote.php
[edit]
[-] class-wpml-tm-icl20-migration-ajax.php
[edit]
[+]
remote
[-] class-wpml-tm-icl20-migration-progress.php
[edit]
[-] class-wpml-tm-icl20-migration-loader.php
[edit]
[+]
res
[-] class-wpml-tm-icl20-migration-exception.php
[edit]
[-] class-wpml-tm-icl20-migrate.php
[edit]
[+]
..
[+]
ui
[-] class-wpml-tm-icl20-migration-status.php
[edit]
[-] class-wpml-tm-icl20-migrate-local.php
[edit]