precio de venta de actualización de woocommerce

2 minutos de lectura

Actualmente tengo un formulario en el que el administrador puede actualizar de forma masiva los precios de venta de los productos en una pantalla.

Cuando se envía el formulario, simplemente uso update_post_meta así:

update_post_meta($id,'_sale_price', 'new sale price here');

Esto actualiza la clave meta _sale_price. Cuando entro en el administrador para comprobar esto, se ha insertado el nuevo precio de venta. Cuando veo el producto en la parte delantera, el artículo no está marcado como en oferta. Tengo que volver y volver a guardar el producto.

Mi pregunta es, ¿woocommerce agrega algún otro meta_key para marcar el producto como en oferta? Tuve una ronda de excavación en la base de datos para todos los campos personalizados insertados, pero solo puedo ver _sale_price.

Cualquier ayuda sería muy apreciada

  • ¿Puedes explicar el voto negativo?

    – danio

    18/02/2014 a las 23:35

Echando un vistazo a la clase abstracta Producto en WooCommerce, el siguiente código php obtiene si el producto está a la venta o no:

return ( $this->sale_price != $this->regular_price && $this->sale_price == $this->price );

Lo que parece indicar que el _price tiene que ser el mismo que el sale_price para que se clasifique como en oferta. Por lo que sólo

update_post_meta($id, '_price', 'new sale price here too');

así como el código en su pregunta y debería funcionar.

  • ¡Gracias, le daré una oportunidad!

    – danio

    18/02/2014 a las 23:35

  • Para agregar a la respuesta: esto se debe a que podría tener una venta programada a partir de una semana. los _sale_price necesita almacenarse, pero hasta que comiencen las ventas, el precio real sigue siendo _regular_price. _price se establece en el _sale_price cuando empieza la venta, y de vuelta al partido _regular_price cuando la venta ya no está en marcha.

    – Kontur

    6 de marzo de 2018 a las 15:21

¿Ha sido útil esta solución?

precio de venta de actualización de woocommerce

2 minutos de lectura

Actualmente tengo un formulario en el que el administrador puede actualizar de forma masiva los precios de venta de los productos en una pantalla.

Cuando se envía el formulario, simplemente uso update_post_meta así:

update_post_meta($id,'_sale_price', 'new sale price here');

Esto actualiza la clave meta _sale_price. Cuando entro en el administrador para comprobar esto, se ha insertado el nuevo precio de venta. Cuando veo el producto en la parte delantera, el artículo no está marcado como en oferta. Tengo que volver y volver a guardar el producto.

Mi pregunta es, ¿woocommerce agrega algún otro meta_key para marcar el producto como en oferta? Tuve una ronda de excavación en la base de datos para todos los campos personalizados insertados, pero solo puedo ver _sale_price.

Cualquier ayuda sería muy apreciada

  • ¿Puedes explicar el voto negativo?

    – danio

    18/02/2014 a las 23:35

Echando un vistazo a la clase abstracta Producto en WooCommerce, el siguiente código php obtiene si el producto está a la venta o no:

return ( $this->sale_price != $this->regular_price && $this->sale_price == $this->price );

Lo que parece indicar que el _price tiene que ser el mismo que el sale_price para que se clasifique como en oferta. Por lo que sólo

update_post_meta($id, '_price', 'new sale price here too');

así como el código en su pregunta y debería funcionar.

  • ¡Gracias, le daré una oportunidad!

    – danio

    18/02/2014 a las 23:35

  • Para agregar a la respuesta: esto se debe a que podría tener una venta programada a partir de una semana. los _sale_price necesita almacenarse, pero hasta que comiencen las ventas, el precio real sigue siendo _regular_price. _price se establece en el _sale_price cuando empieza la venta, y de vuelta al partido _regular_price cuando la venta ya no está en marcha.

    – Kontur

    6 de marzo de 2018 a las 15:21

¿Ha sido útil esta solución?