File: /home/nassaugo/www/wp-content/plugins/wp-all-import-pro/src/Scheduling/Import.php
<?php
namespace Wpai\Scheduling;
class Import {
/**
* @param $logger
* @return mixed
*/
function process( $import, $logger ) {
$log_storage = (int) \PMXI_Plugin::getInstance()->getOption( 'log_storage' );
// unlink previous logs
if ( (int) $import->imported + (int) $import->skipped <= (int) $import->count ) {
// Try to find existing cron processing logs.
$history_log = false;
$by = array();
$by[] = array( array( 'import_id' => $import->id ), 'AND' );
$historyLogs = new \PMXI_History_List();
$historyLogs->setColumns( 'id', 'import_id', 'type', 'date' )->getBy( $by, 'id DESC' );
if ( $historyLogs->count() ) {
foreach ( $historyLogs as $i => $file ) {
$history_log = new \PMXI_History_Record();
$history_log->getBy( 'id', $file['id'] );
if ( ! $history_log->isEmpty() and $history_log->type !== 'processing' ) {
$history_log = false;
}
break;
}
}
$by = array();
$by[] = array( array( 'import_id' => $import->id ), 'AND' );
$historyLogs = new \PMXI_History_List();
$historyLogs->setColumns( 'id', 'import_id', 'type', 'date' )->getBy( $by, 'id ASC' );
if ( $historyLogs->count() and $historyLogs->count() >= $log_storage ) {
$logsToRemove = $historyLogs->count() - $log_storage;
foreach ( $historyLogs as $i => $file ) {
$historyRecord = new \PMXI_History_Record();
$historyRecord->getBy( 'id', $file['id'] );
if ( ! $historyRecord->isEmpty() ) {
$historyRecord->delete(); // unlink history file only
}
if ( $i == $logsToRemove ) {
break;
}
}
}
if ( ! $history_log ) {
$history_log = new \PMXI_History_Record();
$history_log->set(
array(
'import_id' => $import->id,
'date' => date( 'Y-m-d H:i:s' ),
'type' => 'processing',
'summary' => __( 'cron processing', 'wp-all-import-pro' ),
)
)->save();
}
if ( $log_storage ) {
$wp_uploads = wp_upload_dir();
$log_file = wp_all_import_secure_file( $wp_uploads['basedir'] . DIRECTORY_SEPARATOR . \PMXI_Plugin::LOGS_DIRECTORY, $history_log->id ) . DIRECTORY_SEPARATOR . $history_log->id . '.html';
//if (@file_exists($log_file)) wp_all_import_remove_source($log_file, false);
}
}
ob_start();
$response = $import->set(
array(
'canceled' => 0,
'failed' => 0,
)
)->execute( $logger, true, $history_log->id );
$log_data = ob_get_clean();
if ( $log_storage ) {
$log = @fopen( $log_file, 'a+' );
if ( is_resource( $log ) ) {
@fwrite( $log, $log_data );
@fclose( $log );
}
}
return $response;
}
/**
* @param $import
* @return \PMXI_History_Record
*/
function trigger( $import ) {
$import->set(
array(
'triggered' => 1,
'imported' => 0,
'created' => 0,
'updated' => 0,
'skipped' => 0,
'deleted' => 0,
'changed_missing' => 0,
'queue_chunk_number' => 0,
'last_activity' => date( 'Y-m-d H:i:s' ),
)
)->update();
$history_log = new \PMXI_History_Record();
$history_log->set(
array(
'import_id' => $import->id,
'date' => date( 'Y-m-d H:i:s' ),
'type' => 'trigger',
'summary' => __( 'triggered by cron', 'wp-all-import-pro' ),
)
)->save();
return $history_log;
}
}