将所有特定订单商品自定义字段的总和保存为WooCommerce中的订单元数据

下面我刚才的问题“ 保存WooCommerce订单项目自定义字段和作为一个新的元数据,当一个订单时,一些订单项目自定义元数据quantityassemblycost以及calculated_field (哪个值quantityassemblycost保存。

如何将所有订单项calculated_field值的总和保存为自定义订单元数据?

例如,示例订单如下所示:

Product A:

assemblycost: 10

quantity: 2

calculated_field: 20


Product B:

assemblycost: 15

quantity: 2

calculated_field: 30


Product C: 

no assemblycost, quanity or calculated_field - custom fields present. 


Product D: 

assemblycost: 30

quantity: 2

calculated_field: 60

我想为order创建一个新的自定义字段sum_calculated_fields,并将其设置为等于该订单中的总和calculated_fields,因此在上面的示例中它等于:


20 + 30 + 60 = 110。


慕桂英3389331
浏览 155回答 1
1回答

莫回无

这是calculated_fields汇总所有订单项自定义字段并将该总和保存为自定义订单元数据的方法:add_action( 'woocommerce_checkout_create_order', 'action_checkout_create_order_callback', 10, 2 );function action_checkout_create_order_callback( $order, $data ) {    $calculated_fields_sum = 0; // Initializing    // Loop Through order items    foreach ( $order->get_items() as $item ) {        if( $value = $item->get_meta('calculated_field') ) {            $calculated_fields_sum += $value;        }    }    // Update order meta data    if( $calculated_fields_sum > 0 ) {        $order->update_meta_data( 'calculated_fields_sum', $calculated_fields_sum );    }}代码进入您的活动子主题(或活动主题)的function.php文件中。它应该工作。
打开App,查看更多内容
随时随地看视频慕课网APP