From 13b36da0b286ea559b75338f0094f5877d78ea82 Mon Sep 17 00:00:00 2001 From: KrasnoshchokBohdan Date: Tue, 29 Apr 2025 10:29:09 +0300 Subject: [PATCH 1/4] magento/magento2#39146: Image resize queue error due to .tmp file handling when deleting unsaved product images - clean up removed images from the image array --- .../Catalog/Observer/ImageResizeAfterProductSave.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php b/app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php index bb69918f5e99f..00f8f9c87c8a9 100644 --- a/app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php +++ b/app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php @@ -93,6 +93,13 @@ public function execute(\Magento\Framework\Event\Observer $observer) } } else { $new = $product->getData('media_gallery'); + + foreach ($new['images'] as $key => $value) { + if($value['removed'] == 1){ + unset($new['images'][$key]); + } + } + $original = $product->getOrigData('media_gallery'); $mediaGallery = !empty($new['images']) ? array_column($new['images'], 'file') : []; $mediaOriginalGallery = !empty($original['images']) ? array_column($original['images'], 'file') : []; From bf490b7d96dadf29315e2d2df9bed3145e7fc731 Mon Sep 17 00:00:00 2001 From: KrasnoshchokBohdan Date: Fri, 2 May 2025 11:58:02 +0300 Subject: [PATCH 2/4] magento/magento2#39146: Image resize queue error due to .tmp file handling when deleting unsaved product images - static tests fix --- .../Magento/Catalog/Observer/ImageResizeAfterProductSave.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php b/app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php index 00f8f9c87c8a9..2707571cdaea9 100644 --- a/app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php +++ b/app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php @@ -95,7 +95,7 @@ public function execute(\Magento\Framework\Event\Observer $observer) $new = $product->getData('media_gallery'); foreach ($new['images'] as $key => $value) { - if($value['removed'] == 1){ + if ($value['removed'] == 1) { unset($new['images'][$key]); } } From ecb3d69c8b4261943f3e46326c370f5c2c6fca33 Mon Sep 17 00:00:00 2001 From: KrasnoshchokBohdan Date: Fri, 2 May 2025 12:01:00 +0300 Subject: [PATCH 3/4] magento/magento2#39146: Image resize queue error due to .tmp file handling when deleting unsaved product images - copyright --- .../Magento/Catalog/Observer/ImageResizeAfterProductSave.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php b/app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php index 2707571cdaea9..945c456d7552f 100644 --- a/app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php +++ b/app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php @@ -1,7 +1,7 @@ Date: Sat, 3 May 2025 18:08:22 +0300 Subject: [PATCH 4/4] magento/magento2#39146: Image resize queue error due to .tmp file handling when deleting unsaved product images - fix for static tests --- .../Catalog/Observer/ImageResizeAfterProductSave.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php b/app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php index 945c456d7552f..c90b4c2a6363b 100644 --- a/app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php +++ b/app/code/Magento/Catalog/Observer/ImageResizeAfterProductSave.php @@ -94,11 +94,7 @@ public function execute(\Magento\Framework\Event\Observer $observer) } else { $new = $product->getData('media_gallery'); - foreach ($new['images'] as $key => $value) { - if ($value['removed'] == 1) { - unset($new['images'][$key]); - } - } + $new['images'] = array_filter($new['images'], fn($value) => $value['removed'] != 1); $original = $product->getOrigData('media_gallery'); $mediaGallery = !empty($new['images']) ? array_column($new['images'], 'file') : [];