• Brahim

    (@parasenderismo)


    Hola, tengo una tienda con productos de Amazon, es decir de Afiliado y quiero que al hacer click en un producto, no te lleve a la página de este, sino directamente a un enlace (en este caso al de Amazon).

Viendo 5 respuestas - de la 1 a la 5 (de un total de 5)
  • Moderador Fernando Tellado

    (@fernandot)

    Eso lo tiene ya WooCommerce por defecto. Son los productos de tipo externo/afiliado

    🙂

    Iniciador del debate Brahim

    (@parasenderismo)

    Ya, tienes razón, y eso ya lo estoy usando, pero me refiero a que cuando haces click en la imágen del producto, este te lleva a la página del producto, y yo quiero que los enlaces de las miniaturas también lleven a Amazon.

    (Ya se que seguramente esto se tenga que hacer por código, pero pregunto por si tu sabes cómo)

    Muchas gracias por responder.

    Moderador Fernando Tellado

    (@fernandot)

    Ah vale, no decías nada de la imagen.

    Prueba esto en tu functions.php o plugin de personalizaciones:

    add_filter('woocommerce_single_product_image_html', 'change_product_image_link', 10, 2);
    
    function change_product_image_link( $html, $product_id ){
      $product = wc_get_product( $product_id );
      if( is_singular( 'product' ) && $product && $product->is_type( 'external' ) ){
        $attachment_count = count( $product->get_gallery_attachment_ids() );
        $gallery          = $attachment_count > 0 ? '[product-gallery]' : '';
        $props            = wc_get_product_attachment_props( get_post_thumbnail_id(), $post );
        $image            = get_the_post_thumbnail( $post->ID, apply_filters( 'single_product_large_thumbnail_size', 'shop_single' ), array(
          'title'    => $props['title'],
          'alt'    => $props['alt'],
        ) );
        return sprintf(
          '<a href="%s" itemprop="image" class="woocommerce-main-image zoom" title="%s">%s</a>',
          $product->get_product_url(),
          esc_attr( $props['caption'] ),
          $image
        );
      } else {
        return $html;
      }
    }
    Iniciador del debate Brahim

    (@parasenderismo)

    Ya lo he añadido al functions.php (al final del código) pero sigue abriéndose la página del producto.

    Muchas gracias por responder.

    Iniciador del debate Brahim

    (@parasenderismo)

    Otra cosa que acaba de notar es que con ese código, además de no llevarte a la url de amazon, las imágenes que están dentro de la página del producto desaparecen.

Viendo 5 respuestas - de la 1 a la 5 (de un total de 5)
  • El debate ‘WooCommerce para Afiliados’ está cerrado a nuevas respuestas.