Soporte » Plugins y Hacks » WooCommerce » Doble precio en producto

  • Resuelto periago89

    (@periago89)


    Buenas tardes, tengo una duda que después de un año no he conseguido resolver.

    Como verán en el enlace que he dejado, en la parte inferior del titulo del producto indica el precio Desde: X€ y cuando selecciono la variación me indica justo encima del botón de añadir al carrito el precio de la variación.

    No me gusta la idea de que se muestren dos precios, ya que puede llevar a confusión del cliente y por lo tanto a abandonar la web.

    Pero claro, si elimino el precio que pone debajo del título, en los productos simples no aparecerá el precio y eso me ha impedido poder eliminarlo.

    Lo ideal sería que en el precio que hay bajo el título, variase con la selección de las variaciones y poder eliminar el que aparece encima del boton de compra, pero es algo que no he logrado (y que no se si es posible)

    Gracias de antemano por vuestro apoyo.

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

Viendo 7 respuestas - de la 1 a la 7 (de un total de 7)
  • Moderador Jose Luis

    (@jose64)

    Hola.

    Bienvenido al foro de soporte. En los productos variables tienes dos opciones, la que estas usando (mostrar el precio mínimo) o mostrar el rango de precios, no te preocupes por confusiones, el cliente sabe que si es desde ese es el mínimo, abandonará la web si el precio de su selección no le interesa, aparte de que es la opción más clara.

    La otra opción que tienes es mostrar el rango de precios, esa es la opción por defecto de WooCommerce. De todas formas te dejo un código que hace justo lo que quieres:

    add_action( 'woocommerce_before_single_product', 'move_variations_single_price', 1 );
    function move_variations_single_price(){
      global $product, $post;
      if ( $product->is_type( 'variable' ) ) {
        add_action( 'woocommerce_single_product_summary', 'replace_variation_single_price', 10 );
      }
    }
    
    function replace_variation_single_price() {
      ?>
        <style>
          .woocommerce-variation-price {
            display: none;
          }
        </style>
        <script>
          jQuery(document).ready(function($) {
            var priceselector = '.product p.price';
            var originalprice = $(priceselector).html();
    
            $( document ).on('show_variation', function() {
              $(priceselector).html($('.single_variation .woocommerce-variation-price').html());
            });
            $( document ).on('hide_variation', function() {
              $(priceselector).html(originalprice);
            });
          });
        </script>
      <?php
    }

    Puedes ver su desarrollo aquí

    Recuerda marcar el debate como resuelto, así nos ayudas a mantener el foro al día.

    Iniciador del debate periago89

    (@periago89)

    Gracias por el aporte, pero sigue exactamente igual, creo que puede ser problema de elementor, ya que he visto que hay un plugin que realiza estas opciones, lo he probado también pero tiene el mismo problema.

    Iniciador del debate periago89

    (@periago89)

    Acabo de revisar el desarrollo y he conseguido que medio me funcione. Ahora tengo un problema y es que en algunos productos variables si lo ejecuta bien y en otros no.

    Moderador Jose Luis

    (@jose64)

    Hola.

    Eso si es raro, debería funcionar en todos o en ninguno, yo lo probé con un par de productos y me funcionó sin problema, pero por supuesto está el detalle que te comenté antes: una instalación limpia con WooCommerce, si haces la maquetación con Elementor Pro ya no te puedo decir nada.

    he visto que hay un plugin que realiza estas opciones

    Podrías indicar qué plugin es, recuerda que una de las claves del foro de soporte es compartir y ese detalle puede ser útil para otras personas que tengan un problema similar.

    Iniciador del debate periago89

    (@periago89)

    Buenas tardes Jose Luis, muchas gracias por tu apoyo, por supuesto, comparto el plugin por si a alguien le puede servir.

    Tiene 3 funciones, cambiar el rango de precios por «Desde:», eliminar el boton de restablecer variaciones y por ultimo esta que comentamos de colocar el precio de la variación en el precio principal. El plugin en concreto es este, Better Variation Price for WooCommerce.

    Respecto a lo mío, ya está solucionado. Simplemente era la caché de la CDN que por algún motivo en unos sitios lo aplicaba bien y en otros no, por lo tanto ya lo tengo en funcionamiento al 100% y queda de perlas.

    El codigo que he utilizado finalmente es este:

    add_action( 'woocommerce_before_single_product', 'move_variations_single_price', 1 );
    function move_variations_single_price(){
      global $product, $post;
      if ( $product->is_type( 'variable' ) ) {
        add_action( 'woocommerce_single_product_summary', 'replace_variation_single_price', 10 );
      }
    }
    
    function replace_variation_single_price() {
      ?>
        <style>
          .woocommerce-variation-price {
            display: none;
          }
        </style>
        <script>
          jQuery(document).ready(function($) {
            var priceselector = '.product p.price';
            var originalprice = $(priceselector).html();
    
            $( document ).on('show_variation', function() {
              $(priceselector).html($('.single_variation .woocommerce-variation-price').html());
            });
            $( document ).on('hide_variation', function() {
              $(priceselector).html(originalprice);
            });
          });
        </script>
      <?php
    }

    Que no se porque motivo el primero que me has pasado no funcionaba.

    Iniciador del debate periago89

    (@periago89)

    Tema resuelto.

    Muchas gracias Jose Luis por tu ayuda!

    Moderador Jose Luis

    (@jose64)

    Gracias a ti por compartir las soluciones, estamos a la orden.

Viendo 7 respuestas - de la 1 a la 7 (de un total de 7)
  • El debate ‘Doble precio en producto’ está cerrado a nuevas respuestas.