如何使用编码更新可变产品库存状态

时间:2016-02-24 作者:Sanjay Nakate

我有产品id:-$posts. 现在,我必须使用代码将产品变量variation stock更改为outofstock。我有下面的代码片段,但它并没有更新产品的变体库存。任何人都可以告诉我怎么做。

$children = get_posts( array(
      \'post_parent\'   => $posts,
      \'posts_per_page\'=> -1,
      \'post_type\'   => \'product_variation\',
      \'fields\'     => \'ids\',
      \'post_status\'  => \'publish\'
    ) );

    $out_of_stock_staus = \'outofstock\';

    foreach ( $children as $child_id ) {
        echo $child_idss= $child_id->ID;
      echo $child_stock_status = get_post_meta( $child_id, \'_stock_status\', true );
     // $child_stock_status = $child_stock_status ? $child_stock_status : \'instock\';
        //wc_update_product_stock_status( $product_id, $stock_statusss );
        update_post_meta( $child_id, \'_stock_status\', wc_clean( $out_of_stock_staus ) );
    }

1 个回复
最合适的回答,由SO网友:fischi 整理而成

代码的大多数部分都是不必要的。

假设您使用get_posts(), 您可以循环浏览这些帖子,并更新meta。

循环中的变量和对象也很混乱,您试图通过post对象而不是$id.

$children = get_posts( array(
    \'post_parent\'   => $posts,
    \'posts_per_page\'=> -1,
    \'post_type\'   => \'product_variation\',
    \'post_status\'  => \'publish\'
) );

$out_of_stock_staus = \'outofstock\';

foreach ( $children as $thischild ) {

    update_post_meta( $thischild->ID, \'_stock_status\', wc_clean( $out_of_stock_staus ) );

}

相关推荐