我在Woocommerce变体产品中有一个自定义字段,并且我尝试在有缺货的地方更新该字段。这是代码
read
自定义字段称为add_action( 'woocommerce_product_on_backorder', 'reduce_second_stock' );
function reduce_second_stock( $array ){
$temp = get_post_meta($array['product']->ID, 'second_stock', true);
update_post_meta( $array['product']->ID, 'second_stock', $temp - $array['quantity'] );
}
,它只是一个数字。我要做的是根据该订单的缺货数量减少该数量。
但是,即使产品的常规库存已更新,我的自定义字段也保持不变。
答案 0 :(得分:1)
对于this hook,$array['product']
是WC_Product
对象,因此,要获取产品ID,您需要使用相关方法get_id()
…由于WooCommerce 3和{{3 }},您可以直接在WC_Data
对象上使用get_meta()
方法update_meta_data()
,save()
和WC_Product
,例如:
add_action( 'woocommerce_product_on_backorder', 'reduce_second_stock' );
function reduce_second_stock( $array ){
if( $original_stock = $array['product']->get_meta('second_stock') ) {
$array['product']->update_meta_data( 'second_stock', ( $original_stock - $array['quantity'] ) );
$array['product']->save();
}
}
代码进入您的活动子主题(或活动主题)的function.php文件中。应该可以。