Woocommerce 更新後設置購物車運輸總額問題

用戶974172

更新後,我的自定義運費規則不起作用。在更新之前,我使用以下代碼來更新運費。

add_action('woocommerce_calculate_totals', 'mysite_box_discount');
function mysite_box_discount($cart ) 
{
  $cart->shipping_total=100;
  return $cart;
}

更新後 $cart 數組的結構發生了變化,上面的代碼停止工作。現在數據以受保護數組的形式出現。我發現 $cart->get_shipping_total(); 可以給我取運費。

我還發現了以下功能來更新運費。

$cart->set_shipping_total($amount);

所以我按以下方式使用它,但它不起作用。

add_action('woocommerce_calculate_totals', 'mysite_box_discount');
function mysite_box_discount($cart ) 
{
  $cart->set_shipping_total(100);
  return $cart;
}

任何人都可以幫助我並告訴我如何使用此功能或是否有其他方法可以做到這一點。謝謝你。

LoicTheAztec

您可以使用woocommerce_package_ratesfilter hook 來設置運輸方式的成本,這將類似於您的舊代碼:

add_filter('woocommerce_package_rates', 'custom_shipping_costs', 10, 2 );
function custom_shipping_costs( $rates, $package ){
    // Loop through shipping methods rates
    foreach ( $rates as $rate_key => $rate ){
        // Targeting all shipping methods except "Free shipping"
        if ( 'free_shipping' !== $rate->method_id ) {
            $has_taxes = false;
            $taxes = [];

            $rates[$rate_key]->cost = 100; // Set to 100
            // Taxes rate cost (if enabled)
            foreach ($rates[$rate_key]->taxes as $key => $tax){
                if( $tax > 0 ){
                    $has_taxes = true;
                    $taxes[$key] = 0; // Set to 0 (zero)
                }
            }
            if( $has_taxes )
                $rates[$rate_key]->taxes = $taxes;
        }
    }
    return $rates;
}

代碼位於活動子主題(或活動主題)的 function.php 文件中。測試和工作。

您可能需要刷新運輸緩存數據:在 Woocommerce 運輸設置中禁用、保存和啟用、保存當前運輸區域的相關運輸方式。

在這個鉤子中,如果您需要遍歷購物車項目(例如進行一些計算),您將在函數代碼中使用:

foreach( $package['contents'] as $cart_item_key => $cart_item ) {
     $product = $cart_item['data']; // Get the WC_Product instance Object

     // your code
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Woocommerce挂钩以更新订单

来自分类Dev

Wordpress Woocommerce 更新元

来自分类Dev

WooCommerce Ajax更新混乱的价值

来自分类Dev

Woocommerce更新发布状态

来自分类Dev

在woocommerce的结帐页面中显示更新的数据

来自分类Dev

woocommerce更新销售价格

来自分类Dev

WooCommerce API-更新订单元字段

来自分类Dev

WooCommerce库存的哪些挂钩已保存或更新

来自分类Dev

woocommerce更新打破了开发网站?

来自分类Dev

woocommerce:库存更新时运行功能

来自分类Dev

WooCommerce 3 主要更新模板错误

来自分类Dev

在 WooCommerce 中更新订单元之前挂钩?

来自分类Dev

WooCommerce:限制“更新产品” API中返回的字段

来自分类Dev

使用WooCommerce Ajax更新购物车

来自分类Dev

WooCommerce AJAX购物车更新后运行jQuery

来自分类Dev

WooCommerce-数量更改时自动更新总价

来自分类Dev

WooCommerce产品更新–检查字段值是否已更改

来自分类Dev

在woocommerce购物车更新上发送额外的数据

来自分类Dev

更新与WooCommerce中的订单相关的地址字段

来自分类Dev

WooCommerce更新所有变体(以编程方式)

来自分类Dev

在WooCommerce管理订单仪表板中更新客户密码

来自分类Dev

WooCommerce更新后,不再包含自定义计费字段

来自分类Dev

使用Woocommerce更新Wordpress上的用户信息吗?

来自分类Dev

在woocommerce中发布/更新产品之前如何触发功能?

来自分类Dev

通过Woocommerce API V2更新库存

来自分类Dev

手动运行WooCommerce DB更新程序?

来自分类Dev

WooCommerce:我想更新结帐页面上的标签

来自分类Dev

WooCommerce:限制“更新产品” API中返回的字段

来自分类Dev

在woocommerce中成功或失败付款后更新订单

Related 相关文章

热门标签

归档