Filtro de productos de Elementor: Usando HUSKY con Elementor
HUSKY funciona con tiendas WooCommerce creadas con Elementor. Añade el filtro a cualquier página con el shortcode [woof] en un widget de Shortcode, o mantenlo en la barra lateral como un widget normal.
Si la cuadrícula de productos es renderizada por el propio Elementor (un bucle personalizado o plantilla de productos), conéctala al filtro con este código en el tema hijo functions.php:
add_action('pre_get_posts', function ($query) {
if (defined('ELEMENTOR_VERSION')) {
if (is_object($query) AND isset($query->query['post_type'])) {
if ($query->query['post_type'] === 'product' /* AND is_page(__YOUR_PAGE_ID__)*/) {
global $WOOF;
if (is_object($WOOF) AND !empty(woof()->get_request_data())) {
woof()->woof_products_ids_prediction(true);
$query->query_vars['post__in'] = $_REQUEST['woof_wp_query_ids'];
}
}
}
}
return $query;
});
Descomenta is_page(__YOUR_PAGE_ID__) para ejecutar el filtrado solo en una página específica.
Si el editor de Elementor deja de abrirse mientras HUSKY está activo, desregistra el widget de HUSKY de Elementor:
add_action('elementor/widgets/widgets_registered', function($widgets_manager)
{
$widgets_manager->unregister_widget_type('wp-widget-woof_widget');
});
Relacionado: Compatibilidad con Elementor, Hacer que los constructores de páginas y las plantillas personalizadas sean filtrables