我需要为每个订单保存购物车重量,以便稍后检索以生成UPS标签。我有这个工作,但我升级了Woocommerce,现在已经破产了。
我可以确认它收到了order_id,但$woocommerce->cart->cart_contents_weight
没有返回任何内容。
我是否试图在清空后获得推车重量?结账过程中的什么时候会创建$order_id
(又名$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);
}
答案 0 :(得分: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
列标题{{1}更新数据库中的总重量记录和meta_id
的{{1}}。