Soporte » Plugins y Hacks » WooCommerce » Links de productos externos en una pagina nueva

  • Hola, tengo problemas con los el boton de comprar, ya que se abre en la misma pagina y deseo que se abra en una nueva, intenté con el plugin woocommerce improved external products pero solo funciona para en producto simple, y por ejemplo para los productos que están por categorias o los productos recientes no me funciona porque se siguen abriendo en la misma pagina, he buscado y buscado y no encuentro nada para arreglar eso, en sí necesito que todos los productos externos abran en una pagina nueva no importando si es un producto simple o si está en una categoria como tal, muchas gracias

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)
  • 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.

    Iniciador del debate fabioroae

    (@fabioroae)

    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!

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)
  • El debate ‘Links de productos externos en una pagina nueva’ está cerrado a nuevas respuestas.