Я пытаюсь загрузить изображение в медиа-библиотеку. Это изображение загружено на страницу продукта.
Мне удалось сделать это при добавлении товара в корзину. Но проблема в том, что сервер очень быстро заполняется, когда люди просто добавляют товары в корзину. (а не покупать)
Я хочу, чтобы изображение загружалось только при успешной покупке.
Я использую media_handle_upload()
для загрузки файла. Это прекрасно работает на add_filter('woocommerce_add_cart_item_data', 'myFunction01', 10, 4);
Но тогда, как уже упоминалось, он загружается слишком рано. в корзину добавить.
Так что я подумал о том, чтобы поместить его в это действие, чтобы оно выполнялось только при размещенном заказе. (Я делаю это здесь, потому что я также сохраняю и обновляю здесь поле для пользовательского идентификатора загружаемого медиа)
add_action('woocommerce_checkout_create_order_line_item', 'myFunction01', 10, 4);
Я почти уверен, что media_handle_upload()
получает данные от $_FILES
. И это держится, насколько я знаю, на одной странице. И поэтому он ушел в woocommerce_checkout_create_order_line_item
.
Вопрос
- Есть ли хороший вариант загрузки файла при оформлении заказа?
- Обходной путь по
$_FILES
в живых? - Временное хранилище для изображения до заказа (и, что важно, удалить, если не заказано)
- Хранить
$_FILES
в поле продукта * media_handle_upload()
с Это? Что-то вроде product_item->files