2

我需要在每个订单中保存购物车重量,以便稍后检索以生成 UPS 标签。我有这个工作,但我升级了 Woocommerce,现在它坏了。

我可以确认它正在获取 order_id,但$woocommerce->cart->cart_contents_weight没有返回任何内容。

清空后,我是否要尝试获取购物车的重量?在结帐过程中的什么时候创建$order_id(aka $post)?

add_action('woocommerce_checkout_update_order_meta', 'add_cart_weight');

function add_cart_weight( $order_id ) {
    global $woocommerce;
    $weight = $woocommerce->cart->cart_contents_weight;
    update_post_meta($order_id, '_cart_weight', $weight);
}
4

1 回答 1

1

WC_Cart Docs提示有刷新总数的函数,尝试在$weight:

<?php
    function add_cart_weight( $order_id ) {
        global $woocommerce;
        $woocommerce->cart->calculate_totals();
        $weight = $woocommerce->cart->cart_contents_weight;
        update_post_meta($order_id, '_cart_weight', $weight);
    }
?>

“我是否要在推车清空后计算它的重量?”

不幸的是,该函数只是想在添加新项目后增加整个购物车重量的新总和,随后通过update_post_meta列标题meta_idmeta_valueof更新数据库中的总重量记录$order_id

于 2013-10-18T18:22:20.073 回答