Foros » Plugins y Hacks » WooCommerce » Boton que enlace a categoria de producto Woocommerce

  • Resuelto gringofer

    (@gringofer)


    Hola, buenas tardes.

    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)
  • Hola,

    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 😉

    Moderador kallookoo

    (@kallookoo)

    Hola @gringofer

    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 3 meses, 3 semanas por kallookoo.
    Iniciador del debate gringofer

    (@gringofer)

    @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?

    Gracias!

    • Esta respuesta fue modificada hace 3 meses, 3 semanas por gringofer.
    Iniciador del debate gringofer

    (@gringofer)

    @kallookoo Muchas gracias por tu respuesta.

    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 ) );
        }    
    }
    Iniciador del debate gringofer

    (@gringofer)

    @yordansoares muchas gracias nuevamente por tu respuesta.
    Intente con ese codigo, pero sigue quedando al lado del boton «add to card»

    Saludos

    ¿Puedes indicarme el nombre del tema que estás usando para adaptar el código a sus estilos?

    Iniciador del debate gringofer

    (@gringofer)

    @yordansoares si claro, es Elessi Theme.

    Estoy construyendo la pagina del producto con Theme Builder, puedes ver un ejemplo de un producto del sitio en la siguiente url: https://bouchezjewelry.com/product/arracadas-lisas-2/

    Desde ya muchas gracias por tu ayuda y predisposición.

    Saludos

    Iniciador del debate gringofer

    (@gringofer)

    @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:

    Muchas gracias por su ayuda, Saludos!

    Hola, @gringofer:

    ¡Me alegra saber que lograste personalizar el código para configurar el botón como querías! 💪

    ¡Que tengas un feliz año nuevo 2️⃣0️⃣2️⃣4️⃣!

Viendo 10 respuestas - de la 1 a la 10 (de un total de 10)
  • Debes estar registrado para responder a este debate.