Как мне добиться, чтобы при этом эти изображения удалялись как из медиатеки, так и из папки с файлами?
Я уже придумал, как их удалить, когда я удалить товар...
Проблема в том, что я, например, создаю товар с 15 изображениями, затем удаляю 5 из них, храню товар в своем магазине в течение полугода и затем удалите продукт, но тогда будут удалены только 10 изображений, все еще связанных с продуктом, и со временем у меня останется много неиспользуемых изображений...
Так как я могу удалить изображения навсегда когда я удаляю их через страницу продукта в Woocommerce.. (маленький крестик на изображении)
Надеюсь, это имеет смысл

ОБНОВЛЕНИЕ :
Я исследовал и так далее, чтобы получить идентификатор галереи изображений продукта.
Пытаюсь
add_action ('save_post', 'my_function')
add_action ('woocommerce_update_product', 'my_function')
add_action ('post_updated', 'my_function')
Моя цель состоит в том, чтобы получить массив идентификаторов изображений продуктов из галереи изображений как до обновления, так и после обновления, а затем выполнить для них array_diff(), а затем выполнить wp_delete_attachment( $delete, $force_delete = true );
на них, и я получил идентификаторы галереи изображений, но, похоже, не могу получить одновременно старые и новые значения.
Работаю
Где-то читал, что хук woocommerce_update_product
на самом деле выполняется дважды, поэтому, вдохновленный другим умным постом, я использовал глобальные значения для хранения значений до и после

add_action( 'woocommerce_update_product', 'action_save_product_data', 10, 2);
function action_save_product_data( $post_id, $product ) {
// Specify the post type on which to run
if ( 'product' == get_post_type() ) {
global $previous_product_id;
global $before;
if($previous_product_id === $post_id) {
$after = wc_get_product( $post_id )->gallery_image_ids;
}
if($previous_product_id === $post_id) {
null;
}
else {
$before = wc_get_product( $post_id )->gallery_image_ids;
}
if($previous_product_id === $post_id) {
$images_to_be_deleted = array_diff($before, $after);
foreach($images_to_be_deleted as $delete) {
wp_delete_attachment( $delete, $force_delete = true );
}
}
$previous_product_id = $post_id;
}
}
Подробнее здесь: https://stackoverflow.com/questions/777 ... lete-it-in