diff --git a/includes/class-wc-regenerate-images-request.php b/includes/class-wc-regenerate-images-request.php index 0fc08a18c0f..a6c7996fc24 100644 --- a/includes/class-wc-regenerate-images-request.php +++ b/includes/class-wc-regenerate-images-request.php @@ -241,7 +241,16 @@ class WC_Regenerate_Images_Request extends WC_Background_Process { * @return array */ public function adjust_intermediate_image_sizes( $sizes ) { - return apply_filters( 'woocommerce_regenerate_images_intermediate_image_sizes', array( 'woocommerce_thumbnail', 'woocommerce_gallery_thumbnail', 'woocommerce_single' ) ); + // Prevent a filter loop. + $unfiltered_sizes = array( 'woocommerce_thumbnail', 'woocommerce_gallery_thumbnail', 'woocommerce_single' ); + static $in_filter = false; + if ( $in_filter ) { + return $unfiltered_sizes; + } + $in_filter = true; + $filtered_sizes = apply_filters( 'woocommerce_regenerate_images_intermediate_image_sizes', $unfiltered_sizes ); + $in_filter = false; + return $filtered_sizes; } /**