J'ai l'identifiant du produit: - $posts
. Maintenant, je dois changer le stock de variation de produit variable en stock supérieur en utilisant le code.J'ai le code de fragment ci-dessous, mais il ne met pas à jour le stock de variation du produit. alors quelqu'un me dit comment faire cela.
$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 ) );
}
La plupart des parties de votre code étaient inutiles.
En supposant que vous obteniez le bon ensemble de publications avec votre get_posts()
, vous pouvez simplement parcourir ces publications et mettre à jour la méta.
Vous avez également eu une confusion des variables et des objets dans votre boucle et vous avez essayé de mettre à jour/obtenir des informations en passant un objet de publication au lieu d'un $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 ) );
}