WordPress рекурсивный почтовый файл скачать файл php / путь проблема

Я знаю, что есть довольно много кода на эту тему. Но я не могу заставить код, который я нашел, работать …

Я использую функцию из плагина WordPress, которая называется Zip-Attachments.
Поэтому я изменил его, чтобы ZIP-файлы из определенной папки. НО это не работает ….

Кажется, что я что-то упускаю, когда дело доходит до точного назначения путей в классе RecursiveDirectoryIterator.

Мне удалось заархивировать один файл и загрузить его без функции recursiveIteration и передать абсолютный путь в виде строки. Так что основная часть функции работает.

Чего мне не хватает, чтобы заставить эту функцию работать?

Вот мой нерабочий код:

function za_create_zip_callback(){

$upload_dir = wp_upload_dir();
$rootPath = $upload_dir['basedir'];
$upload_dir_Knippsbox = 'Knippsbox';

// Prepare File
$file = tempnam($upload_dir['path'], "zip");
$zip = new ZipArchive();
$zip->open($file, ZipArchive::OVERWRITE);

// create recursive directory iterator
$files = new RecursiveIteratorIterator (new RecursiveDirectoryIterator("{$rootPath}/{$upload_dir_Knippsbox}/"), RecursiveIteratorIterator::LEAVES_ONLY);

// let's iterate
foreach ($files as $name => $fileX) {
$filePath = $fileX->getRealPath();
$zip->addFile($filePath);
}

//Close the file
$zip->close();

// Add a download to the Counter

global $wpdb;
$meta_name = "_za_counter";

// Retrieve the meta value from the DB

$za_download_count = get_post_meta($postId, $meta_name, true) != '' ? get_post_meta($postId, $meta_name, true) : '0';
$za_download_count = $za_download_count + 1;

// Update the meta value

update_post_meta($postId, $meta_name, $za_download_count);

// We have to return an actual URL, that URL will set the headers to force the download
echo zip_attachments_url."/download.php?za_pretty_filename=".sanitize_file_name($pretty_filename)."&za_real_filename=".$filename;

die();}

Отчаянно ищите ваши экспертные мнения …
Спасибо,
Бен

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]