阅读并更新woocommerce_product_on_backorder挂钩中的自定义字段

时间:2019-04-07 10:53:37

标签: php wordpress woocommerce product hook-woocommerce

我在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'] ); } ,它只是一个数字。我要做的是根据该订单的缺货数量减少该数量。

但是,即使产品的常规库存已更新,我的自定义字段也保持不变。

1 个答案:

答案 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文件中。应该可以。