plugin descuentos cupones 2x1 woocommerce

cupones - Woocommerce: crea un nuevo pedido usando wc_create_order pero los descuentos no funcionan



descuentos en woocommerce (1)

Para lograrlo, deberá calcular el descuento en cada producto que agrega a la orden programáticamente, pasándolo como parámetro adicional. Ver ejemplo actualizado:

$order = wc_create_order(); $product_to_add = get_product( $pid ); $sale_price = $product_to_add->get_price(); // Here we calculate the final price with the discount $final_price = round($sale_price * ((100-$discount[''amount'']) / 100), 2); // Create the price params that will be passed with add_product(), if you have taxes you will need to calculate them here too $price_params = array( ''totals'' => array( ''subtotal'' => $sale_price, ''total'' => $final_price ) ); $order->add_product( get_product( $pid ), $item[''quantity''], $price_params ); // pid 8 & qty 1 $order->set_address( $address_billing, ''billing'' ); $order->set_address( $address_shipping, ''shipping'' ); $order->add_coupon( $discount[''code''], ($discount[''amount'']/100) ); // not pennies (use dollars amount) $order->set_total( ($discount[''amount'']/100) , ''order_discount''); // not pennies (use dollar amount) $order->set_payment_method($this); $rate = new WC_Shipping_Rate( $response_body[''shippingMethodCode''] , $ship_method_title, ($response_body[''shippingCost'']/100), array(), $response_body[''shippingMethodCode''] ); $order->add_shipping( $rate );enter code here $order->calculate_totals(); $return_url = $this->get_return_url( $order );

No se pueden obtener cupones para aplicar el descuento a un pedido. (programáticamente creando un nuevo orden)

Aquí está el código:

$order = wc_create_order(); $order->add_product( get_product( $pid ), $item[''quantity''] ); // pid 8 & qty 1 $order->set_address( $address_billing, ''billing'' ); $order->set_address( $address_shipping, ''shipping'' ); $order->add_coupon( $discount[''code''], ($discount[''amount'']/100) ); // not pennies (use dollars amount) $order->set_total( ($discount[''amount'']/100) , ''order_discount''); // not pennies (use dollar amount) $order->set_payment_method($this); $rate = new WC_Shipping_Rate( $response_body[''shippingMethodCode''] , $ship_method_title, ($response_body[''shippingCost'']/100), array(), $response_body[''shippingMethodCode''] ); $order->add_shipping( $rate ); $order->calculate_totals(); $return_url = $this->get_return_url( $order );

El pedido se crea en WooCommerce y todo se ve bien, excepto que el código de cupón aplicado no refleja el monto del descuento en la página de agradecimiento de la URL de devolución, y no en el administrador de wp al ver el pedido de WooCommerce, y no en el Nuevo correo electrónico de pedido del cliente que se envía ...

Muestra el código de cupón en wp-admin pero la línea de descuento todavía muestra $ 0 y el total no muestra ninguna cantidad restada.

Alguien sabe lo que se está haciendo mal aquí? estado en esto por un par de semanas y parece que no puede resolverlo.