Personalización de los productos de la página de la tienda para ir directamente al sitio de afiliados

2 minutos de lectura

Personalizacion de los productos de la pagina de la tienda
Chrissieg

¿Qué necesito usar en WooCommerce, de modo que cuando vea un producto en la página de la tienda/catálogo, se vincule directamente al sitio afiliado y no a través de la página de un solo producto?

Luego, si es posible, que se abra en una nueva pestaña.

Gracias

Personalizacion de los productos de la pagina de la tienda
LoicTheAztec

Actualización: Añadida compatibilidad con WC 3+

Hay 3 funciones enganchadas personalizadas relacionadas para su caso, que deberá personalizar:

### Custom Product link ###

// Removing the default hooked function
remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10 );
// Add back the hook to a custom function
add_action ( 'woocommerce_before_shop_loop_item', 'custom_loop_product_link', 10 );
function custom_loop_product_link() {
    $custom_link = get_permalink( 16 ); // link to a custom page
    echo '<a href="'%20.%20$custom_link%20.%20'" class="woocommerce-LoopProduct-link">';
}

### Custom add-to-cart link ###

add_filter( 'woocommerce_loop_add_to_cart_link', 'customizing_add_to_cart_button', 10, 2 );
function customizing_add_to_cart_button( $link, $product ){
    // CUSTOM ADD TO CART text and link
    $add_to_cart_url = site_url('/custom_link/');
    $button_text =  __('View now', 'woocommerce');

    // compatibility with WC +3
    $product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;
    $product_type = method_exists( $product, 'get_type' ) ? $product->get_type() : $product->product_type;

    $link = sprintf( '<a href="%s" rel="nofollow" data-product_id="%s" data-product_sku="%s" data-quantity="%s" class="button product_type_%s">%s</a>',
        esc_url( $add_to_cart_url ),
        esc_attr( $product_id ),
        esc_attr( $product->get_sku() ),
        esc_attr( isset( $quantity ) ? $quantity : 1 ),
        esc_attr( $product_type ),
        esc_html( $button_text )
    );

    return $link;
}

### Custom link Redirect after add-to-cart ###

add_filter( 'woocommerce_add_to_cart_redirect', 'my_custom_add_to_cart_redirect', 10, 1 );
function my_custom_add_to_cart_redirect( $url ) {
    $url = get_permalink( 16 ); // an example: here redirect is on page ID 16
    return $url;
}

El código va en el archivo function.php de su tema secundario activo (o tema) o también en cualquier archivo de complemento.

  • Gracias. ¿Tiene el código para que esto también funcione en la imagen y el título del producto de la página de la tienda?

    – Chrissieg

    11 de abril de 2017 a las 14:22

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad