向WooCommerce购物车项目添加带有GET_PRICE的价格是否会乘以3?

时间:2018-10-30 作者:Nicolai Byø Friis

类似问题:WooCommerce Dynamic Cart Pricing

function odb_add_length_price( $cart_object ) {
    if( !(is_admin() && !defined(\'DOING_AJAX\'))) {
        foreach ( $cart_object->get_cart() as $cart_item ) {
            $price = $cart_item[\'data\']->get_price();

            $price = 1 + $price;

            $cart_item[\'data\']->set_price( $price ); 
        }
    }
}
add_action( \'woocommerce_before_calculate_totals\', \'odb_add_length_price\', 10, 1);
如果产品价格设置为100,则总计应为101。返回的价格设置为103,出于某种原因,它会乘以3。

如果我删除$价格并将静态值设置为100,则返回的价格为101。

如果我只返回价格,则价格返回为100。

所以每次我合并或计算get\\u price加x,它就会乘以3。

1 个回复
最合适的回答,由SO网友:Nicolai Byø Friis 整理而成

解决方案是添加remove_action( \'woocommerce_before_calculate_totals\', \'odb_add_length_price\', 10, 1); 在函数的第一行。

这会在每次运行时删除该函数,并按预期工作。

结束

相关推荐