当在此WooCommerce商店中订购特定产品时,两个元值将添加到该订单中。
存储元值的两个字段位于 wp_woocommerce_order_itemmeta
中继键为:
quantity
assemblycost
我想在下新订单时以编程方式创建一个新的自定义字段,并将此新字段的值设置为等于quanity * assemblycost是否已订购的产品存在元密钥assemblycost。
经过一番研究,我发现这woocommerce_checkout_update_order_meta是一个将订单保存到数据库并且元数据已更新后执行的挂钩。因此,这似乎是我应该使用的钩子。
参考: 在Woocommerce中为订单添加额外的meta:
function add_item_meta( $order_id ) {
//global $woocommerce;
update_post_meta( $order_id, '_has_event', 'yes' );
}
我尝试在functions.php中添加以下代码:
add_action('woocommerce_checkout_update_order_meta',function( $order_id, $posted ) {
$assemblycost = wc_get_order_item_meta($order_id, 'assemblycost');
$quantity = wc_get_order_item_meta($order_id, 'quantity');
$calculatedValue = $quantity * $assemblycost;
wc_update_order_item_meta( $order_id, 'calculated_field', $calculatedValue );
} , 10, 2);
这确实创建了新的meta字段,但是将其值设置为0。
我如何更改上面的代码,以使calculated_field的值是的乘积quantity * assemblycost
?
海绵宝宝撒