Хук заказа обновлений Woocommerce & quot; save_post & quot; не разрешает сохранение файлов

Так что я нахожу это странным, но, возможно, кто-то может помочь.

Мне нужно сохранить входящий файл с удаленного сервера, когда администратор сайта WordPress обновляет порядок в бэкэнде.

Крюк, который я использую,

add_action( 'save_post', 'courier_save_wc_order_fields', 10, 2 );

Теперь все работает отлично, и я могу обновить post_meta, как мне нужно.

Когда дело доходит до сохранения входящего файла PDF, дела идут на юг.

внутри этого перкулярного крючка (только один я когда-либо нашел) я не могу сохранять файлы.

Это потому, что это когда woocommerce собирается сохранить в БД?

Я даже удалил весь другой код и оставил его как

add_action( 'save_post', 'courier_save_wc_order_fields', 10, 2 );

function courier_save_wc_order_fields( $post_id ) {
file_put_contents('incommingdata.txt', print_r("This is random text",true));
}

Опять же, это единственное место, где это происходит ..
Есть ли лучший крюк, что у меня не будет этой проблемы?

Мне нужен тот, который проверяет значение meta_box на странице заказа администратора и обновляет мета порядка соответствующим образом при связи с удаленным сервером, чтобы сохранить и получить файл …. Все работает, кроме сохранения этого файла.

Примечание:

$path="my_file_received.pdf"$decodedString = base64_decode($base64string);
$fileHandle = fopen($path, "w");
if ($fileHandle) {
fwrite($fileHandle, $decodedString);
fclose($fileHandle);
return 1;
}

Не показывает ошибку, но файл также не существует.

0

Решение

Так что я нашел ответ на свой вопрос …

save_post Hook имеет другой URL, чем другие хуки, которые я использовал ..

Поэтому, когда я обычно использовал
file_put_contents('incommingdata.txt', print_r("This is random text",true));
Я всегда получал файл, сохраненный в папке моего плагина или папке темы или базовом URL.

URL для этого хука — это папка wp-admin, а не папка базового домена или плагина.

чтобы исправить это и убедиться, что я сохранил в нужной папке, решение:

 $this_dir_of_my_file = dirname(__FILE__);
$this_dir_of_my_file = $this_dir_of_my_file . "/Example.txt";
file_put_contents($this_dir_of_mine, print_r("This is random text in my file.",true));
0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector