Php minicard中的自定义价格值仅在单个产品站点上是错误的

Php minicard中的自定义价格值仅在单个产品站点上是错误的,php,wordpress,woocommerce,cart,Php,Wordpress,Woocommerce,Cart,我有一个功能,可以改变我的购物车中产品的价格 事实上,一切都正常。我可以将产品添加到购物车,完成订单,然后到处都是我的定制价格。 当我通过归档页面添加产品时,一切正常(小部件购物车和购物车) 但是如果我通过单一产品站点添加产品,widget购物车中的价格是不正确的。但是总数还是正确的 这是我的密码: add_action( 'woocommerce_before_calculate_totals', 'add_custom_price' ); add_action( 'woocommerce

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

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

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

这是我的密码:

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);

    }
  }
}
有人能解决这个问题吗