【发布时间】:2021-10-16 10:12:43
【问题描述】:
如何更改 line_total 或通过贝宝支付的价格? 我能够计算和更改结帐页面中的价格。 但是当我去paypal时,价格是不正确的。
我听过很多疑问,他们使用这个钩子。但我不知道如何更改 line_total 或税,无论贝宝。 add_action('woocommerce_calculate_totals', array($this, 'calculate_totals'), 10, 1);
function calculate_totals($totals){
//your code
$my_new_price = 100;
????? = $my_new_price;
}
对于我的结帐页面,我有这个
add_filter( 'woocommerce_cart_item_subtotal', 'show_coupon_item_subtotal_discountt', 100, 3 );
function show_coupon_item_subtotal_discountt( $subtotal, $cart_item, $cart_item_key ){
global $woocommerce;
//$cartsub = wp_proce(0);
$cartsub = 0;
$line_subtotal = $cart_item['line_subtotal'];//$110
$line_total = number_format(floor(($cart_item['line_total']*100))/100,2);//144.51
if( $line_subtotal !== $line_total ) {
$discount = 0;
$cpn=0;
foreach ( WC()->cart->get_coupons() as $code => $coupon_notsure ) {
$coupon = new WC_Coupon($code);
$discount_type = $coupon->get_discount_type(); // Get coupon discount type
if ($discount_type=="percent"){
$discount += $line_subtotal*($coupon->get_amount()/100);
}
if ($discount_type=="fixed"){
$discount += $coupon->get_amount();
}
$cpn++;
}
$subtotal_tax = $cart_item['line_subtotal_tax'];//$12.20
$total_tax = $cart_item['line_tax'];//10.39598131
$incl_taxes = WC()->cart->display_prices_including_tax() && $cart_item['data']->is_taxable();
$raw_subtotal = $incl_taxes ? $line_subtotal + $subtotal_tax : $line_subtotal;
$raw_total = $incl_taxes ? $line_total + $total_tax : $line_total;
///$subtotal = sprintf( '<del>%s</del> <ins>%s<ins>', wc_price($raw_subtotal), wc_price($raw_total) );
$subtotal = sprintf( '<ins>%s<ins>', wc_price($raw_subtotal) );
$cartsub1 = (float)((float)($raw_total)+$cartsub);
$cartsub = (floor($cartsub1*100)/100);
$woocommerce->cart->total=($line_subtotal-$discount)+$total_tax;
$woocommerce->cart->cart_contents_total =($line_subtotal-$discount)+$total_tax;
//print_r($woocommerce->cart);
//$subtotal=$cartsub;
}else{
$cartsub=$line_subtotal;
}
$woocommerce->cart->subtotal =$cartsub;
//$cart_item['line_subtotal']=$line_subtotal;
return $subtotal;
}
我的沮丧是,结帐时的价格完全反映了我想要的价格。但是在paypal结账时,价格是使用钩子之前的价格。
【问题讨论】:
标签: wordpress woocommerce paypal checkout