Cuando creas un producto externo o afiliado en WooCommerce el botón de compra, que ya sabes que es personalizable el texto, se abre por defecto en la misma ventana en la que está, la de tu tienda, pero ¿y si quieres que abra en una nueva pestaña/ventana?
Pues resulta que WooCommerce no tiene ningún ajuste para esto, así que toca ser creativo.
¿Cómo hago que los botones de compra de productos externos/afiliados abran en una ventana nueva?
Si ya lo tienes decidido, para que el botón de compra de producto externos o afiliados de WooCommerce abran en una pestaña o ventana nueva del navegador solo tienes que añadir el siguiente código a tu plugin de personalizaciones o plugin MU:
//Abrir botón de compra de productos externos/afiliados en nueva ventana remove_action( 'woocommerce_external_add_to_cart', 'woocommerce_external_add_to_cart', 30 ); add_action( 'woocommerce_external_add_to_cart', 'rei_external_add_to_cart', 30 ); function rei_external_add_to_cart(){ global $product; if ( ! $product->add_to_cart_url() ) { return; } $product_url = $product->add_to_cart_url(); $button_text = $product->single_add_to_cart_text(); do_action( 'woocommerce_before_add_to_cart_button' ); ?> <p class="cart"> <a href="<?php echo esc_url( $product_url ); ?>" target="_blank" rel="nofollow" class="single_add_to_cart_button button alt"><?php echo esc_html( $button_text ); ?></a> </p> <?php do_action( 'woocommerce_after_add_to_cart_button' ); }
¿Y no hay algún plugin que haga lo mismo?
Pues sí, se llama WooCommerce Improved External Products. Simplemente lo instalas, lo activas y ya.
No busques ajustes, no los tiene.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
Intente hacer un plugin mu para eso, ya que el plugin WooCommerce Improved External Products no me funciono como queria, pero ahora me aparecen dos botones, uno como quiero y el predeterminado y eso solo en la ficha del producto, también quería hacerlo colocando el producto en cualquier parte de la web pero solo deja el botón predeterminado, hay alguna solucion?
Según la id que tenga el botón le podrías agregar a tu CSS las siguientes lineas:
#main .cart:nth-child(6) .single_add_to_cart_button{
display:none;
}
Espero que te funcione
En realidad lo que busco y no encuentro es cómo hacer esto mismo pero con woocommerce blocks
Me funciona el plugin, es muy rápido tan fácil como instalar el plugin, probando me di cuenta que solo funciona cuando se está dentro del producto no modifica el comportamiento del botón el las listas o bloques de gutenberg. La siguiente opción es modificar todas las funciones que tengan los botones de enlaces externos, igual como indica Fernando. También se me ocurre modificar los archivos de woocommerce, pero no creo que sea funcional, ya que se reemplazan cuando se actualiza el plugin.