首页 > 解决方案 > 迷你卡中的自定​​义价格值仅在单个产品站点上是错误的

问题描述

我有一个功能可以更改购物车中产品的价格。

实际上一切正常。我可以将产品添加到购物车,完成订单,然后到处都是我的 custom_price。当我通过存档页面添加产品时,一切正常(小部件购物车和购物车)。

但是,如果我通过单一产品站点添加产品,则小部件购物车中的价格不正确。但是总数又是正确的。

截图存档页面

单品页面截图

这是我的代码:

add_action( 'woocommerce_before_calculate_totals', 'add_custom_price' );
add_action( 'woocommerce_before_mini_cart', 'add_custom_price' );

 function add_custom_price( $cart_object ) {

  if( !WC()->session->__isset( "reload_checkout" )) {

    foreach ( $cart_object->cart_contents as $key => $value ) {

        foreach( WC()->cart->get_cart() as $cart_item ){
                    $product_id = $cart_item['data']->get_id(); 
        }               

            $product_group = get_field( "produktegruppe", $product_id );
            $current_user_id = get_current_user_id();
            $usergroup = get_field($product_group,'user_'. $current_user_id);
            $value1 = $usergroup['rabatt'];
            $value2 = $usergroup['zusatzrabatt'];

            $orgPrice = floatval( $value['data']->get_price() );
            if ( $value2 ) {
                $discPrice = ($orgPrice / 100 * (100-$value1)) / 100 * (100-$value2);
            }
            else {
                $discPrice = $orgPrice / 100 * (100-$value1);               
            }    
            $value['data']->set_price($discPrice);

    }
  }
}

有没有人有这个问题的解决方案?

标签: phpwordpresswoocommercecart

解决方案


推荐阅读