Soporte » Plugins y Hacks » WooCommerce » Consulta para precios y PHP

  • Resuelto zoilberg

    (@zoilberg)


    Buenos días a todos,

    tengo una duda y me estoy liando (ya que no controlo demasiado de php) he metido un poco de código (que he encontrado por internet) para que en mi tienda aparezcan los precios con y sin Iva, uno debajo de otro. Pero el problema es que tengo que meterlos sin Iva en la ficha de producto y al generar el pago, me lo saca también sin Iva (vamos, que no lo cobraría).

    La formula, por lo que entiendo, coge el precio sin Iva y se lo suma automáticamente y la idea es cambiar este código para que en vez de coger el precio sin IVA y sumárselo, coja el precio total (Iva incluido) y se lo reste.

    Así, al generar el cobro, será siempre con el IVA aunque tenga que cambiar todos los precios (no me importaría).

    El código que tengo es el siguiente:

    function edit_price_display() {
        global $product;
        $price = $product->price;
        $price_incl_tax = $price + round($price * ( 21 / 100 ), 2);
        $price_incl_tax = number_format($price_incl_tax, 2, ",", ".");
        $price = number_format($price, 2, ",", ".");
        $display_price = '<span class="price">';
        $display_price .= '<strong><span class="amount" style="font-size:13px;">€ ' . $price_incl_tax .'<small class="woocommerce-price-suffix">&nbsp;incl. IVA</small></span></strong>';
        $display_price .= '<br>';
        $display_price .= '<span class="amount" style="font-size:12px;">€ ' . $price .'<small class="woocommerce-price-suffix">&nbsp;excl. IVA</small></span>';
        $display_price .= '</span>';
        echo $display_price;
    }
    add_filter('woocommerce_get_price_html', 'edit_price_display', 10, 2);

    Muchas gracias chic@s!!!

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • Moderador jose64

    (@jose64)

    Hola.

    No necesitas ningún código para hacer lo que quieres, con la configuración de WooCommerce lo puedes hacer directamente, la única diferencia es el precio te aparecerá al lado. {price_including_tax} y {price_excluding_tax} son los precios con y sin impuestos, si tienes los impuestos correctamente configurados y el producto como imponible siempre te aparecerá el impuesto en el total, por lo que comentas tienes un error en la configuración.

    Primeramente revisa en WooCommerce > Ajustes en la pestaña General, en las Opciones generales asegúrate de que la opción: Activar impuestos esté seleccionada, esto te permite activar tasas de impuestos y sus cálculos, de forma que se muestre en el pago.

    A continuación, en la pestaña Impuesto tienes que definir la forma en que se muestran los impuestos y las tasas:

    Para mostrar el precio con el formato XX IVA incluido (YY sin IVA) Busca la ruta WooCommmerce > Ajustes > Impuestos, en Opciones de impuestos usa esta configuración:

    Precios con impuestos incluídos > No, introduciré los precios sin impuestos
    Mostrar precios en la tienda > Impuestos incluidos
    Mostrar precios en el carrito y en el pago > Impuestos incluidos
    Sufijo a mostrar en el precio > IVA incluido (precio sin IVA {price_excluding_tax})

    De esta forma te aparecerán los precios con el IVA y la nota con el precio base. Si lo que quieres es que aparezcan los precios sin IVA y la nota con el precio con IVA la configuración sería:

    Precios con impuestos incluídos > No, introduciré los precios sin impuestos
    Mostrar precios en la tienda > Sin impuestos
    Mostrar precios en el carrito y en el pago > Sin impuestos
    Sufijo a mostrar en el precio > ({price_including_tax} IVA incluido)

    Para definir la tasa de impuesto sigue la ruta WooCommmerce > Ajustes > Impuestos, en Tarifas estándar usa esta configuración:

    Código de país > ES
    Tarifa % > 21.0000
    Nombre del impuesto > IVA
    Prioridad> 1
    Envío > Selecionado

    Con estas configuraciones aplicas y visualizas de distintas formas el IVA, siempre y cuando lo tengas definido en el producto. En la edición del producto tienes que seleccionar:

    Estado del impuesto > Imponible
    Clase de impuesto > Estándar

    Te dejo enlace a la documentación de WooCommerce:

    Configurar impuestos en WooCommerce

    Revisa, prueba y coméntanos si tienes alguna duda, de todas formas, el código que indicas no funciona para productos variables con distintos precios en las variaciones, por lo que no te recomiendo que sigas usándolo. Recuerda cerrar el debate marcándolo como resuelto cuando así sea, de esta forma nos ayudas a mantener el foro al día.

    • Esta respuesta fue modificada hace 3 años, 5 meses por jose64. Razón: Añadir enlace a la documentación
    Iniciador del debate zoilberg

    (@zoilberg)

    Genial, muchísimas gracias. Es perfecta esa solución. Yo dándole vueltas y al final era tan simple como configurarlo bien. Aunque tengo un problemita aún, me muestra el precio sin iva.

    Es decir, por ejemplo, en un producto que sin Iva es 4500€ me saca esto:

    4.500,00€ IVA incluido (4.500,00€ + IVA)

    Seguro que hay algo que estoy haciendo mal…
    En la configuración que me has dado, únicamente he modificado el sufijo a mostrar que he puesto: IVA incluido ({price_excluding_tax} + IVA)
    en el producto he marcado estado del impuesto: imponible, y clase estándar. La ubicación del cliente (como solo venderemos en España, es dirección principal del negocio) y la dirección de la tienda es la correcta con código postal…es como si no leyera que los productos llevan IVA el IVA. ¿Sabes por qué puede ser?

    Gracias!!

    • Esta respuesta fue modificada hace 3 años, 5 meses por zoilberg.
    • Esta respuesta fue modificada hace 3 años, 5 meses por zoilberg.
    Iniciador del debate zoilberg

    (@zoilberg)

    Escribo y cierro el post que ya lo he solucionado, era por que tenía marcada la provincia dentro de la configuración del IVA y entonces no me lo mostraba.

    Esta perfecto. Gracias!!

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • El debate ‘Consulta para precios y PHP’ está cerrado a nuevas respuestas.