Cambie los precios de los artículos en la versión 3.0 de WooCommerce

Estoy intentando cambiar el precio del producto en el carro usando la siguiente función:

add_action( 'woocommerce_before_shipping_calculator', 'add_custom_price' ); function add_custom_price( $cart_object ) { foreach ( $cart_object->cart_contents as $key => $value ) { $value['data']->price = 400; } } 

Funcionaba correctamente en la versión 2.6.x de WooCommerce pero ya no funcionaba en la versión 3.0+

¿Cómo puedo hacer que funcione en la versión 3.0+ de WooCommerce?

Gracias.

Con WooCommerce versión 3.0+ necesita:

  • Para usar woocommerce_before_calculate_totals hook en su lugar.
  • Para usar el método WC_Cart get_cart() lugar
  • Para usar el método WC_product set_price() lugar

Aquí está el código:

 add_action( 'woocommerce_before_calculate_totals', 'add_custom_price', 10, 1); function add_custom_price( $cart_obj ) { // This is necessary for WC 3.0+ if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; foreach ( $cart_obj->get_cart() as $key => $value ) { $value['data']->set_price( 40 ); } } 

El Código va en el archivo function.php de su tema (o tema) hijo activo o también en cualquier archivo de complemento.

Este código está probado y funciona.

Con WooCommerce versión 3.2.6, la respuesta de @LoicTheAztec funciona para mí si aumento la prioridad a 1000.

add_action( 'woocommerce_before_calculate_totals', 'add_custom_price', 1000, 1);

Intenté valores de prioridad de 10 , 99 y 999 pero el precio y el total en mi carrito no cambiaron (aunque pude confirmar con get_price() que set_price() había establecido el precio del artículo.

Tengo un gancho personalizado que agrega una tarifa a mi carrito y estoy usando un complemento de terceros que agrega atributos del producto. Sospecho que estos “complementos” de WooCommerce introducen retrasos que me obligan a retrasar mi acción personalizada.

Intereting Posts