Estoy construyendo con elementor la «pagina del producto» para woocommerce, y queria saber como puedo hacer para que un boton me lleve a la pagina de la categoria del producto que estoy viendo.
Les dejo un imagen del boton para que vean a que me refiero:
El boton deberia llevar a la pagina de la categoria del producto que el visitante este viendo en ese momento, por lo que necesito tomar la categoria del producto que esta en pantalla.
¿Como puedo hacer?
Desde ya muchas gracias.
Saludos
Viendo 10 respuestas - de la 1 a la 10 (de un total de 10)
No sé cómo se haría con Elementor, pero he escrito un código para lograr lo que quieres:
/**
* WooCommerce:
* Añadir un botón adicional después del de «Añadir al carrito» que enlaza a la categoría del producto
*/
add_action( 'woocommerce_after_add_to_cart_button', 'anadir_boton_categoria_producto', 15 );
function anadir_boton_categoria_producto() {
global $product;
// Obtener la categoría principal del producto
$categorias = get_the_terms( $product->get_id(), 'product_cat' );
if ( $categorias && is_array( $categorias ) ) {
$categoria = reset( $categorias );
$categoria_url = get_term_link( $categoria );
printf( '<a href="%s" class="button categoria-button" style="margin-top:.875em">Comprar productos relacionados</a>', esc_url( $categoria_url ) );
}
}
Si tienes un tema hijo, puede añadir este código a su archivo functions.php, que se encuentra en el directorio raíz: No hagas esto en un tema principal, ¡porque puedes perder tus personalizaciones cuando este se actualice!
Si no tienes un tema hijo, otra forma de añadir fragmentos de código que, en mi opinión, es más fácil y segura, es usar Code Snippets: este plugin almacena los fragmentos de código en tu base de datos, por lo que no tendrás que preocuparte por perder tus personalizaciones después de actualizar tus plugins o tema 😉
En el elementor existe algo llamado etiquetas dinamicas que sirve para mostrar un contenido basandose en la etiqueta seleccionada.
Dependiendo del elementor (Gratuito o Pago) y plugins para el elementor, el listado de las etiquetas cambia, asi que deberias primero comprobar si tienes la opcion de crear dinamicamente el enlace a partir de la categoria.
Para ver el listado, creas un boton y donde deberias poner el enlace veras un par de iconos en la derecha, si mal no recuerdo es el primero empezando por la derecha.
Si aun asi, no puedes comentalo y va lo miro en alguna web con elementor y WooCommerce.
Saludos
Esta respuesta fue modificada hace 1 año por kallookoo.
La verdad que eso fue lo que intente hacer desde un principio, no se si te refieres a los «Dynamic tags», probe buscando algun Shortcode de la categoria del producto pero no encontre, y fue ahi cuando decidi pedir ayuda.
@yordansoares muchas gracias, eso me funciono. Lo unico que estoy luchando para poder acomodar el boton debajo del boton de «add to card». ¿Sabes como podria hacerlo?
Intenta actualizando el código con esta versión:
/**
* WooCommerce:
* Añadir un botón adicional después del de «Añadir al carrito» que enlaza a la categoría del producto
*/
add_action( 'woocommerce_after_add_to_cart_button', 'anadir_boton_categoria_producto', 15 );
function anadir_boton_categoria_producto() {
global $product;
// Obtener la categoría principal del producto
$categorias = get_the_terms( $product->get_id(), 'product_cat' );
if ( $categorias && is_array( $categorias ) ) {
$categoria = reset( $categorias );
$categoria_url = get_term_link( $categoria );
printf( '<a href="%s" class="button categoria-button" style="margin-top:.875em;display:block;width:fit-content;">Comprar productos relacionados</a>', esc_url( $categoria_url ) );
}
}
@yordansoares@kallookoo Logre solucionarlo, muchas gracias por su ayuda. Lo que hice fue reemplazar en el codigo que me envio @yordansoares ‘woocommerce_after_add_to_cart_button’ por ‘woocommerce_after_add_to_cart_form’ y agregue en el Product Page un «product meta». Quedo asi: