You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
4.0 KiB
132 lines
4.0 KiB
<?php
|
|
|
|
function pmxe_wp_loaded() {
|
|
|
|
@ini_set("max_input_time", PMXE_Plugin::getInstance()->getOption('max_input_time'));
|
|
|
|
if ( ! empty($_GET['action']) && ! empty($_GET['export_id']) && (!empty($_GET['export_hash']) || !empty($_GET['security_token'])))
|
|
{
|
|
pmxe_set_max_execution_time();
|
|
|
|
if(empty($_GET['export_hash'])) {
|
|
$securityToken = $_GET['security_token'];
|
|
} else {
|
|
$securityToken = $_GET['export_hash'];
|
|
}
|
|
|
|
$cron_job_key = PMXE_Plugin::getInstance()->getOption('cron_job_key');
|
|
|
|
if ( $securityToken == substr(md5($cron_job_key . $_GET['export_id']), 0, 16) )
|
|
{
|
|
$export = new PMXE_Export_Record();
|
|
|
|
$export->getById($_GET['export_id']);
|
|
|
|
if ( ! $export->isEmpty())
|
|
{
|
|
switch ($_GET['action'])
|
|
{
|
|
case 'get_data':
|
|
|
|
if ( ! empty($export->options['current_filepath']) and @file_exists($export->options['current_filepath']))
|
|
{
|
|
$filepath = $export->options['current_filepath'];
|
|
}
|
|
else
|
|
{
|
|
$is_secure_import = PMXE_Plugin::getInstance()->getOption('secure');
|
|
|
|
if ( ! $is_secure_import)
|
|
{
|
|
$filepath = get_attached_file($export->attch_id);
|
|
}
|
|
else
|
|
{
|
|
$filepath = wp_all_export_get_absolute_path($export->options['filepath']);
|
|
}
|
|
}
|
|
|
|
if ( ! empty($_GET['part']) and is_numeric($_GET['part'])) $filepath = str_replace(basename($filepath), str_replace('.' . $export->options['export_to'], '', basename($filepath)) . '-' . $_GET['part'] . '.' . $export->options['export_to'], $filepath);
|
|
|
|
break;
|
|
|
|
case 'get_bundle':
|
|
|
|
$filepath = wp_all_export_get_absolute_path($export->options['bundlepath']);
|
|
|
|
break;
|
|
}
|
|
|
|
if (file_exists($filepath))
|
|
{
|
|
$uploads = wp_upload_dir();
|
|
$fileurl = $uploads['baseurl'] . str_replace($uploads['basedir'], '', str_replace(basename($filepath), rawurlencode(basename($filepath)), $filepath));
|
|
|
|
if($export['options']['export_to'] == XmlExportEngine::EXPORT_TYPE_XML && $export['options']['xml_template_type'] == XmlExportEngine::EXPORT_TYPE_GOOLE_MERCHANTS) {
|
|
|
|
// If we are doing a google merchants export, send the file as a download.
|
|
header("Content-type: text/plain");
|
|
header("Content-Disposition: attachment; filename=".basename($filepath));
|
|
readfile($filepath);
|
|
|
|
die;
|
|
}
|
|
|
|
if(apply_filters('wp_all_export_no_cache', false)) {
|
|
|
|
// If we are doing a google merchants export, send the file as a download.
|
|
header("Content-type: " . mime_content_type($filepath));
|
|
header("Content-Disposition: attachment; filename=" . basename($filepath));
|
|
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
|
|
header("Cache-Control: post-check=0, pre-check=0", false);
|
|
header("Pragma: no-cache");
|
|
|
|
readfile($filepath);
|
|
|
|
die;
|
|
}
|
|
|
|
$fileurl = str_replace( "\\", "/", $fileurl );
|
|
|
|
wp_redirect($fileurl);
|
|
}
|
|
else
|
|
{
|
|
wp_send_json(array(
|
|
'status' => 403,
|
|
'message' => __('File doesn\'t exist', 'wp_all_export_plugin')
|
|
));
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
wp_send_json(array(
|
|
'status' => 403,
|
|
'message' => __('Export hash is not valid.', 'wp_all_export_plugin')
|
|
));
|
|
}
|
|
}
|
|
|
|
if(isset($_GET['action']) && $_GET['action'] == 'wpae_public_api') {
|
|
|
|
pmxe_set_max_execution_time();
|
|
|
|
$router = new \Wpae\Http\Router();
|
|
$router->route($_GET['q'], false);
|
|
}
|
|
}
|
|
|
|
if(!function_exists('pmxe_set_max_execution_time')) {
|
|
function pmxe_set_max_execution_time()
|
|
{
|
|
@ini_set("max_input_time", PMXE_Plugin::getInstance()->getOption('max_input_time'));
|
|
|
|
$maxExecutionTime = PMXE_Plugin::getInstance()->getOption('max_execution_time');
|
|
if ($maxExecutionTime == -1) {
|
|
$maxExecutionTime = 0;
|
|
}
|
|
|
|
@ini_set("max_execution_time", $maxExecutionTime);
|
|
}
|
|
} |