• Resuelto Shuar

    (@shuar)


    Hola Amigos, a ver si alguien puede ayudarme.

    En nuestra tienda online tenemos dos tipos de precios, PVP y Precios previo registro. Pues bien, para llevar acabo esto hemos comprado YITH Role base price que va a las mil maravillas. Pero hay un detalle que no hace el pluging y que necesitamos solventar.

    En todos los productos y cuando alguien no este conectado verá el PVP, lo que necesitamos es que ademas bajo el precio PVP se vea un texto que diga algo asi:

    «Registrate como profesional y compra a precios profesionales» y que una vez registrados esta nota desaparezca.

    Puntualizar que con YITH Role base price, esto se puede hacer pero solo cuando no dejas ver ningún precio.

    ¿Alguna ayuda o codigo con el que crear esta modificación?

    Gracias!

Viendo 13 respuestas - de la 1 a la 13 (de un total de 13)
  • Buenas,

    Ese plugin es un plugin comercial de los cuales no damos soporte aquí.

    Igualmente para poder mostrar un mensaje para usuarios que no estén registrados en el precio deberías buscar en el tema que utilices como se pinta el precio y donde.
    Si está bien y no hace peripecias, deberías encontrarlo en /woocommerce/single-product/price.php

    Entonces en ese archivo deberías tener algo del tipo:

    if(!is_user_logged_in()){
       echo '<span>'.__('Registrate como profesional y compra a precios profesionales','tudomaindetema').'</span>';
    }

    Recuerda que estas modificaciones siempre las deberás tener en un tema child.

    Espero que con esto puedas conseguir lo que necesitas y que el plugin no entre en conflicto con el normal funcionamiento de template de woocommerce. Recuerda volver al foro a explicar como lo resolviste y marcar el debate como resuelto.

    Iniciador del debate Shuar

    (@shuar)

    Hola Adrian!

    Gracias por tu interes. No a habido suerte y no funciona. Sigo sin poder resolver el problema. ¿Alguna idea?

    Un saludo.

    Entonces es porque el plugin no utiliza el price.php y lo hace de otra manera (o no lo has realizado correctamente)

    Ponte en contacto con el autor del plugin ya que aquí no ofrecemos soporte para plugins comerciales.

    Iniciador del debate Shuar

    (@shuar)

    Hola de nuevo Adrian.

    A ver creo que no me he expresado bien. Olvidemonos del plugin ya que lo tengo desinstalado. No estoy pidiendo soporte para el plugin, lo menciono por que es el plugin que adquiero para poder poner varios precios en diferentes roles.

    En todo caso seria soporte para woocommerce. El archivo price.php esta en su sitio.

    La pregunta es la siguiente: ¿Hay alguna manera de poner un texto debajo del precio de un producto (precio genérico) y que cuando un cliente se registre ese texto desaparezca?

    ¿Alguna solución?

    Gracias Adrian y perdona las molestias.

    Buenas,

    No acabo de entender cuando dices que no funciona.

    ¿Si haces alguna modificación en el archivo price.php se ve en pantalla?

    Confio en que el tema haga uso de ese archivo, ya que es la manera normal de hacerlo con woocommerce.

    Sabiendo si carga el archivo o no, se puede saber si el problema es de carga de ese archivo (que haga un override por otro lado) o del código que te pasé.

    Iniciador del debate Shuar

    (@shuar)

    Hola!

    A ver cuando digo que no funciona me refiero a que la solución aportada no funciona.

    Si, si hago modificaciones en el archivo price.php se ven en pantalla.

    No se que es un override, pero lo que si creo que esta claro es que el tema hace uso de price.php.

    Podría ser que el código no funciona?? Podríamos probar otra cosa? Necesitas más información que ayude a encontrar una solución?

    Como puedes imaginar me urge bastante encontrar una solución.

    Gracias!

    Hola!

    A ver un override es que en tu tema (o mejor en tu child-theme) tengas el fichero /woocommerce/single-product/price.php
    Dentro de tu fichero deberías tener algo del estilo:

    <p class="price"><?php echo $product->get_price_html(); ?></p>
    <?php if(!is_user_logged_in()){
       echo '<span>'.__('Registrate como profesional y compra a precios profesionales','tudomaindetema').'</span>';
    }else{
       echo '<span>'.__('Estás registrado','tudomaindetema').'</span>';
    } ?>

    De esta manera podremos saber si lo que «falla» es el is_user_logged_in() porque la primera parte saldrá para los usuarios que no estás logados y la segunda saldrá para los que están registrados.

    Espero que puedas resolverlo.

    Iniciador del debate Shuar

    (@shuar)

    AHORA SI! Adrian eres un crak!! Muchísimas gracias!

    Buenas @shuar
    Me sacas los colores 😉

    El código es exacto a lo que te pasé. Algo te habría faltado cuando lo probaste la primera vez.

    Por favor marca el debate como resuelto para mantener el foro al día.
    Muchas gracias!

    Iniciador del debate Shuar

    (@shuar)

    Bueno, lo que es diferente es lo siguiente. (Lo pongo en tu conocimiento por si es de tu interes)

    Mi pagina price.php original es de la siguiente manera

    <p class=»<?php echo esc_attr( apply_filters( ‘woocommerce_product_price_class’, ‘price’ ) );?>»><?php echo $product->get_price_html(); ?></p>

    Quitando esta linea (en la copia del child theme) y poniendo la linea que tu me das que es la siguiente:
    <p class=»price»><?php echo $product->get_price_html(); ?></p>
    La cosa a funcionado a la perfección.

    En definitiva la cosa ha quedado asi:
    <p class=»price»><?php echo $product->get_price_html(); ?></p>
    <?php if(!is_user_logged_in()){
    echo ‘<span>’.__(‘<p><span style=»font-size:11.5px;»><span style=»color:#B22222;»><span style=»white-space: pre;»>REGISTRATE COMO PROFESIONAL Y ​COMPRA A PRECIOS PROFESIONALES.</span><span style=»color: rgb(0, 0, 0); white-space: pre;»> Iniciar Sesión</span></span></span></p>’,’tudomaindetema’).'</span>’;
    }else{
    echo ‘<span>’.__(‘Estás comprando como profesional’,’tudomaindetema’).'</span>’;
    } ?>

    Yo le he metido un poco de color y un enlace.

    Por último y antes de cerrar el tema.
    He notado que la linea de cuando no estas registrado «date de alta como profe…» no se adapta al móvil, quedando toda entera en una sola linea. En cambio el texto Iniciar Sesión, si que baja cuando se visualiza en un móvil.

    No encuentro la manera de corregirlo. ¿Sabrías decirme que hago mal?

    Gracias de nuevo!

    Ojo todos los span que has puesto! Lo podrías poner solo en un span y no ponerlo dentro de la traducción, así quedaría más correcto.

    Respecto a lo que comentas, es cuestión de tu tema que no lo permitirá.
    Deberíamos saber que tema es y el css que tiene. Prueba con style=»white-space: normal !important;» pero puede ser de los span o de la p que tienes esten forzando ese comportamiento.

    Por favor si no te sale a la primera, cierra este hilo como resuelto y abre un nuevo hilo. Es para no tener varios «problemas» en el mismo y que sirva de ayuda a los nuevos usuarios.

    Iniciador del debate Shuar

    (@shuar)

    Perfecto! Efectivamente las <p> eran el problema.

    Dejo el texto tal y como a quedado por si sirve de algo. Y cierro el tema.

    <p class=»price»><?php echo $product->get_price_html(); ?></p>
    <?php if(!is_user_logged_in()){
    echo ‘<span>’.__(‘<span style=»color:#B22222;»><style=»white-space: pre;»>Registrate como profesional y compra a precios profesionales.<style=»color: rgb(0, 0, 0); white-space: pre;»> Iniciar Sesión‘,’tudomaindetema’).'</span>’;
    }else{
    echo ‘<span>’.__(‘¡Estás comprando como profesional!’,’tudomaindetema’).'</span>’;
    } ?>

    Una vez más gracias!

    Buenas,

    Por corregir el código y que al final quede bien en el foro. Sería así:

    <p class="price"><?php echo $product->get_price_html(); ?></p>
    <?php if(!is_user_logged_in()){ ?>
       <span style="font-size:11.5px;color:#B22222;"><?php _e("REGISTRATE COMO PROFESIONAL Y ​COMPRA A PRECIOS PROFESIONALES.","themedomain"); ?></span>
       <span style="color: rgb(0, 0, 0);"><?php _e("Iniciar Sesión","themedomain"); ?></span>
    <?php }else{ ?>
      <span><?php _e(‘Estás comprando como profesional’,’themedomain’); ?></span>
    <?php } ?>
Viendo 13 respuestas - de la 1 a la 13 (de un total de 13)
  • El debate ‘Texto Suscripción bajo el precio’ está cerrado a nuevas respuestas.