php - 迷你卡中的自定义价格值仅在单个产品站点上是错误的
问题描述
我有一个功能可以更改购物车中产品的价格。
实际上一切正常。我可以将产品添加到购物车,完成订单,然后到处都是我的 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);
}
}
}
有没有人有这个问题的解决方案?
解决方案
推荐阅读
- java - 带有@Param null 参数的 JPA 仍然抛出错误
- javascript - 如何重新启动已设置间隔的倒数计时器?Javascript
- azure - 如何将 Ubuntu VM 从 Digital Ocean 迁移到 Azure
- reactjs - 材质 UI 工具提示未在嵌套组件上呈现
- asciidoc - asciidoc:源块对齐到嵌套列表项
- python - sns pairplot 变量“GrLivArea”输出为空白
- c# - 将计算传递给字符串插值
- c# - c# JSON REST 响应通过 3 种不同的方法(WebRequest、RESTSharp、HttpClient)是空的,但 Postman 和浏览器可以工作
- c# - 删除 Swagger UI 上的架构 - 续
- cron - 每个月底运行工作的表达式:骆驼,石英