Filtro de navegación por capas dinámico
-
Hola a todos,
Estoy montando una web con WordPress y que incluye una tienda online a través del plugin Woocommerce.
Mi intención es tener en la barra lateral un filtro de navegación por capas creado con el plugin que incluye Woocommerce por defecto, pero tengo un pequeño problema. Algunos atributos de mi productos son comunes a todos los productos, pero otros son solo específicos a determinados productos.
Dado que hay muchos atributos que no son comunes y que son solo específicos a ciertos productos estoy buscando una solución que me permita hacer aparecer en cada categoria de productos solamente los filtros de navegación por capas correspondientes a los atributos que tengan esos productos determinados.
Buscando en internet encontré una solución que en principio me parecio muy buena, crear de forma dinámica los widgets necesarios de navegación por capas al vuelo para cada categoria.
Básicamente se trata en incluir el siguiente código dentro del archivo sidebar.php de la plantilla:
<?php if ( is_post_type_archive( 'product' ) || is_tax( array( 'product_cat', 'product_tag' ) ) ) { global $woocommerce; $attribute_taxonomies = $woocommerce->get_attribute_taxonomies(); foreach ( $attribute_taxonomies as $attribute ) { the_widget( 'WC_Widget_Layered_Nav', array( 'title' => $attribute->attribute_label, 'attribute' => $attribute->attribute_name, 'query_type' => 'and', 'display_type' => 'list' ) ); } } ?>
Despues de esto, hay simplemente que crear un atributo que no esté asignado a ningun producto de nuestra tienda e incluir solamente un widget de navegación por capas en nuestra barra lateral a modo de «disparador» que lo que hará es ejecutar el código anterior creando al vuelo tantos widgets como atributos tengan los productos listados en esa categoria.
El problema que tengo es que al poner el código anterior en mi web parece que no funciona adecuadamente, los otros widgets desaparecen o la web se vuelve inestable y queria preguntaros si es que este código no sirve a día de hoy o hay que cambiar algo para que funcione en las últimas versiones tanto de WordPress como de Woocommerce.
Os estaria muy agradecido si pudierais decirme si este código es correcto o si sabéis cual puede ser el motivo de que «rompa» mi web al colocarlo.
-
Ese código usa funciones obsoletas en WooCommerce. Por ejemplo, get_attribute_taxonomies ahora es wc_get_attribute_taxonomies, y no tengo claro que funcionen otras líneas que lleva, aunque algunos filtros me suena que tampoco están disponibles ya.
https://docs.woocommerce.com/wc-apidocs/index.html
Pásate por la web del codex de WooCommerce y revisa las funciones que usa por si alguna más está obsoleta y cámbialas. Luego sería mejor incluirlo en tu tema mediante un include para controlar errores.
Hola Fernando y en primer lugar muchas gracias por tomarte la molestia de contestar al mensaje.
Voy a intentar ver si encuentro las funciones obsoletas como me comentas y probar la solución de nuevo en mi tema.
Si alguien más encuentra alguna otra función del código que sepa que ya está obsoleta le agradeceria mucho que contestara al mensaje igualmente, ya que no se si finalmente seré capaz de hacerlo funcionar.
Gracias nuevamente.
- El debate ‘Filtro de navegación por capas dinámico’ está cerrado a nuevas respuestas.