Buenos días, @fabioroae
Mira, he probado el siguiente código y funciona:
add_action( 'template_redirect', 'redirect_external_products' );
function redirect_external_products() {
global $post;
if ( ( $product = wc_get_product( $post ) ) && $product->is_type( 'external' ) ) {
wp_redirect( $product->get_product_url() );
exit;
}
}
De todas formas, me dices si te ha funcionado, ok?
Saludos y ánimo!!
Hola de nuevo, @fabioroae
Si el código que te he pasado anteriormente no te funciona, prueba con este:
function ns_open_in_new_tab($args, $product)
{
if( $product->is_type('external') ) {
// Inject target="_blank" into the attributes array
$args['attributes']['target'] = '_blank';
}
return $args;
}
add_filter( 'woocommerce_loop_add_to_cart_args', 'ns_open_in_new_tab', 10, 2 );
Ya me dices…
Saludos.
Hola Oscar, muchas gracias por responderme, disculpa mi ignorancia, ese código donde tendría que ponerlo?
@fabioroae tranquilo, no te preocupes.
Ese código lo tienes que incluir al final del fichero functions.php del tema que tienes activo en WordPress.
copiar y pega.
Te pongo uno modificado para que te haga también en las imágenes:
add_action( 'woocommerce_before_shop_loop_item', 'mycode_woocommerce_template_loop_product_link_open', 20 );
function mycode_woocommerce_template_loop_product_link_open() {
global $product;
if( $product->is_type('external') ) {
echo '<a rel="nofollow" href="' . esc_url( $product->add_to_cart_url() ) .
'" class="woocommerce-LoopProduct-link" data-quantity="'.esc_attr( isset( $quantity ) ? $quantity : 1 ).
'" data-product_id="'.esc_attr( $product->id ).'" data-product_sku="'.esc_attr( $product->get_sku() ).
'" target="_blank">';
} else {
}
}
Lo dicho, copias esto y lo pegas en el functions.php.
Asegúrate que tienes acceso al functions.php para poder volver a la versión anterior por si surge cualquier problema.
Suerte y ánimo!