• Resolved daz1uk

    (@daz1uk)


    Hi all,

    I would appreciate it if you could help me with the code changes I need to make to make the product image on the product page open the product affiliate link when clicked.

    I have tried a couple of different snippets found on wordpress forum but nothing has worked so far.

    https://wordpress.org/plugins/woocommerce/

Viewing 7 replies - 1 through 7 (of 7 total)
  • Plugin Author Mike Jolley (a11n)

    (@mikejolley)

    What have you tried? Are these external products? And which thumbnail – on archives, or on single?

    Thread Starter daz1uk

    (@daz1uk)

    Hi Mike,

    Thanks for the response, yes these are external products. It is on the product page that I wish to link the image to the external product.

    I have tried following this:

    https://wordpress.org/support/topic/making-product-images-link-out-to-external-affiliate-site?replies=11

    In particular, this:

    Here’s how I fixed it in Woocommerce version 2.5.2

    1. Disable the lightbox, you’ll find this option in Woocommerce -> Settings -> Products Tab -> Display Link -> Very bottom checkbox

    2. Edit the product-image.php in \plugins\woocommerce\templates\single-product

    Change the line:
    $image_link = wp_get_attachment_url( get_post_thumbnail_id() );
    to
    $image_link = esc_url( $product->get_product_url() );

    Save and enjoy.

    But maybe I am trying it in the wrong file?

    Plugin Author Mike Jolley (a11n)

    (@mikejolley)

    That looks fine.

    Have a read here on how to do proper template changes https://docs.woothemes.com/document/template-structure/

    Thread Starter daz1uk

    (@daz1uk)

    By wrong file, what I mean is I am copying the file product-image.php to the root of my child theme and making the edit there. Maybe it needs to be located elsewhere?

    Thread Starter daz1uk

    (@daz1uk)

    Hi Mike,

    Thanks for your help, it’s still not working though.

    I have made the change in product-image.php in /wp-content/themes/MyChildTheme/woocommerce.

    Do I need to replicate the woocommerce file structure in my child theme for this to work?

    Thread Starter daz1uk

    (@daz1uk)

    Sorry, my bad, having read the documentation it now works 😉

    Thanks for your help Mike, much appreciated!

    For anyone reading this, the woocommerce file structures is replicated minus the templates folder.

    I was also looking to do this. I’ve copied the template directory to my theme but the product-image.php file does not have the line of code you mention.

    Change the line:
    $image_link = wp_get_attachment_url( get_post_thumbnail_id() );
    to
    $image_link = esc_url( $product->get_product_url() ); Save and enjoy.

    Here’s my file code:

    <?php
    /**
    * Single Product Image
    *
    * This template can be overridden by copying it to yourtheme/woocommerce/single-product/product-image.php.
    *
    * HOWEVER, on occasion WooCommerce will need to update template files and you
    * (the theme developer) will need to copy the new files to your theme to
    * maintain compatibility. We try to do this as little as possible, but it does
    * happen. When this occurs the version of the template file will be bumped and
    * the readme will list any important changes.
    *
    * @see https://docs.woocommerce.com/document/template-structure/
    * @author WooThemes
    * @package WooCommerce/Templates
    * @version 2.6.3
    */

    if ( ! defined( ‘ABSPATH’ ) ) {
    exit;
    }

    global $post, $product;
    ?>
    <div class=”images”>
    <?php
    if ( has_post_thumbnail() ) {
    $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’],
    ) );
    echo apply_filters(
    ‘woocommerce_single_product_image_html’,
    sprintf(
    %s‘,
    esc_url( $props[‘url’] ),
    esc_attr( $props[‘caption’] ),
    $gallery,
    $image
    ),
    $post->ID
    );
    } else {
    echo apply_filters( ‘woocommerce_single_product_image_html’, sprintf( ‘%s‘, wc_placeholder_img_src(), __( ‘Placeholder’, ‘woocommerce’ ) ), $post->ID );
    }

    do_action( ‘woocommerce_product_thumbnails’ );
    ?>
    </div>

    Anyone know how I should modify this?

    Cheers

Viewing 7 replies - 1 through 7 (of 7 total)
  • The topic ‘How to make product image on product page open product link.’ is closed to new replies.