Solucionar el conflicto con YITH WooCommerce Zoom Magnifier

Si estás usando el plugin YITH WooCommerce Zoom Magnifier, puede haber un conflicto con la minificación JavaScript y el LazyLoad. Aquí te decimos como solucionarlo.

Excluír un archivo JS de la minificación

Si has habilitado la minificación JS, tienes que excluir este URL de la minificación: 

/wp-content/plugins/yith-woocommerce-zoom-magnifier/assets/js/yith_magnifier.min.js

Deshabilitar LazyLoad para productos variables

Si parece que Zoom magnifier no está funcionando correctamente en las imágenes de productos variables cuando LazyLoad está habilitado, tienes que deshabilitar LazyLoad solamente en esas páginas específicas (esta función es disponible solo en versiones de WP Rocket sucesivas a la 2.5).

Deshabilitar LazyLoad programáticamente en las páginas producto

Si tienes una versión de WP Rocket precedente a la 2.5, tienes que deshabilitar LazyLoad en las imágenes producto de manera programática con un MU-plugin o a través del archivo functions.php.

MU-Plugin personalizado

Sigue las instrucciones generales de este artículo:
¿Cómo hacer un MU-plugin personalizado?

1

Crea una carpeta llamada  mu-plugins dentro de  wp-content
En caso de que la carpeta mu-plugins exista ya, no es necesario crearla otra vez, usa la existente.

2

Usando un editor de texto básico  crea un nuevo fichero e introduce este código:

<?php
defined( 'ABSPATH' ) or die( 'Cheatin&#8217; uh?' );
/**
 * Plugin Name: WP Rocket | Disable LazyLoad for Single Products
 * Description: Programatically deactivates LazyLoad on WooCommerce single product pages.
 * Author:      WP Rocket Support Team
 * Author URI:  http://wp-rocket.me/
 * License:     GNU General Public License v3 or later
 * License URI: http://www.gnu.org/licenses/gpl-3.0.html
 */

/**
 * Disable LazyLoad on single product pages.
 * @return void
 */
function __deactivate_rocket_lazyload_if_page() {
	if( is_product() ) {
		add_filter( 'do_rocket_lazyload', '__return_false' );
	}
}
add_filter( 'wp', '__deactivate_rocket_lazyload_if_page' );
	
3
Guarda el archivo como  wp-rocket-disable-lazyload.php
4
Sube el archivo a la carpeta  mu-plugins que has creado al punto 1.
5
Finalmente, asegúrate de  desactivar y re-activar WP Rocket.

Desde tu tema

Añade este código al archivo functions.php de tu tema hijo o tema personalizado:

/**
 * Disable LazyLoad on single product pages.
 * @return void
 */
function __deactivate_rocket_lazyload_if_page() {
	if( is_product() ) {
		add_filter( 'do_rocket_lazyload', '__return_false' );
	}
}
add_filter( 'wp', '__deactivate_rocket_lazyload_if_page' );