productos plugin personalizar personalizados para imagenes editar carrito campos atributos php wordpress woocommerce cart products

php - personalizar - plugin woocommerce



WooCommerce: agregar un precio personalizado a cada producto en el carro (1)

Me gustaría actualizar el precio de los productos que agregan un precio personalizado en el carrito usando esta simple pieza de código update_post_meta( $product->id, ''_regular_price'', $frame_price_added); .

Nota: lo que intento lograr es agregar este precio personalizado a cada producto en el carrito.

$frame_price_added obtener $frame_price_added esta manera:

$frame_price = $res[''_number_field''][0]; $frame_price_added = $product->price + $frame_price;

Aquí $product->price es el precio que proviene del producto woocomerce y $frame_price proviene de mi precio recién agregado.

Me preguntaba cómo puedo asociar este nuevo precio al carrito, porque no funciona.

He intentado usar update_post_meta( $product->id, ''_price'', $frame_price_added); y cuando la página se actualiza, agrega y almacena el precio personalizado al producto y lo guarda.

¿Alguna idea sobre cómo puedo lograr esto correctamente?

Gracias.

Editar: Una cosa más ... He buscado una función que se puede woocommerce_template_single_add_to_cart para agregar al carro y no encontré nada, y también se llamó a un gancho de acción en woocommerce_template_single_add_to_cart que tenía woocommerce_single_product_summary pero no encontró ninguna función.


Actualización: para WooCommerce 3.0+ Cambie los precios de los artículos en la versión 3.0 de WooCommerce

Puede usar woocommerce_before_calculate_totals hook para personalizar los precios de sus artículos de carrito.

Puede definir variables de $framed_price como globales en su función, de esta manera.

Este es el código:

// getting your additional price outside the function (making any conditional calculations) $framed_price = 20; add_action( ''woocommerce_before_calculate_totals'', ''add_custom_total_price'', 10 ); function add_custom_total_price( $cart_object ) { if ( is_admin() && ! defined( ''DOING_AJAX'' ) ) return; global $framed_price; foreach ( $cart_object->get_cart() as $key => $value ) { $value[''data'']->price += $framed_price; } }

O obtenga su precio personalizado dentro de la función enganchada (opcionalmente, dependiendo de cómo obtenga su precio personalizado) :

add_action( ''woocommerce_before_calculate_totals'', ''add_custom_total_price'', 10 ); function add_custom_total_price( $cart_object ) { if ( is_admin() && ! defined( ''DOING_AJAX'' ) ) return; $framed_price = 20; foreach ( $cart_object->get_cart() as $key => $value ) { $value[''data'']->price += $framed_price; } }

Este código está probado y funcionando.

Naturalmente, este código va en el archivo function.php de su tema (o tema) hijo activo o en cualquier archivo de complemento.

Referencia: Carro de WooCommerce - Variable de precio dinámico pasa al gancho de precio personalizado