terminos template productos personalizar pagina modificar formulario finalizar configurar condiciones compra cambiar php wordpress woocommerce checkout hook-woocommerce

php - template - Precio de cambio de woocommerce en la página de pago y carrito



terminos y condiciones woocommerce (2)

Con woocommerce, en mi sitio web me gustaría agregar en la página del carro una entrada de selección donde el usuario puede seleccionar un valor entre dos opciones, y dependiendo de este valor, cambiaré el precio.

hasta ahora, pude obtener el total y cambiarlo usando esto:

function action_woocommerce_before_cart_totals( ) { global $woocommerce; $woocommerce->cart->total = $woocommerce->cart->total*0.25; var_dump( $woocommerce->cart->total);};

El problema es que cuando voy a la página de pago no toma el total calculado en functions.php

Gracias por ayudarme.


También puede usar woocommerce_review_order_before_order_total hook al mismo tiempo, para mostrar su precio personalizado en el proceso de pago, de esta manera:

add_action( ''woocommerce_review_order_before_order_total'', ''custom_cart_total'' ); add_action( ''woocommerce_before_cart_totals'', ''custom_cart_total'' ); function custom_cart_total() { if ( is_admin() && ! defined( ''DOING_AJAX'' ) ) return; WC()->cart->total *= 0.25; //var_dump( WC()->cart->total); }

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.


La puerta de enlace de pago siempre usa la variable $ order-> get_total () para obtener el gran total del carrito. Entonces, para modificar utilice este filtro woocommerce_order_amount_total para su función si sigue los pasos a continuación. Su pasarela de pago siempre muestra el total que modificó.

add_filter( ''woocommerce_order_amount_total'', ''custom_cart_total'' ); function custom_cart_total($order_total) { return $order_total *= 0.25; }