在计算运费之前更改购物车物品的重量-WooCommerce

时间:2019-07-15 18:03:24

标签: php wordpress woocommerce cart ups

我正在使用我网站上的UPS送货方式扩展程序来获取运费。在计算费率之前,我需要更改购物车物品的重量。以下是我尝试过的方法。在这种情况下,我想将任何包含“-$$$”的购物车商品的重量更改为1。

  function cart_weight_change( $cart ){
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
        return;

    foreach( $cart->get_cart() as $cart_item ){
        $itemId = wc_get_product($cart_item['data']->get_id());
        $itemName = $itemId->get_title();
        if ( strpos( $itemName, '-$$$' ) !== false ) {
            $cart_item['data']->set_weight(1);
        }
    }
}
add_action( 'woocommerce_before_calculate_totals', 'cart_weight_change', 25, 1 );

使用这种方法可以改变购物车的重量,但是仍然使用“-$$$”产品的原始重量来拉动运费。我尝试将操作的优先级更改为较低/较高的数字(即从25减少到5或100),希望这只是时间问题,但不幸的是,该操作也不起作用。

0 个答案:

没有答案