Php 产品缺货时如何更改产品状态?(发布到待审核)
在woocommerce中,如果缺货,则产品将发布为待定产品状态 我尝试了产品发布(使用以下代码),然后它变为挂起,但它无法自动更改状态Php 产品缺货时如何更改产品状态?(发布到待审核),php,wordpress,woocommerce,Php,Wordpress,Woocommerce,在woocommerce中,如果缺货,则产品将发布为待定产品状态 我尝试了产品发布(使用以下代码),然后它变为挂起,但它无法自动更改状态 add\u操作( “woocommerce\u产品\u对象\u更新的\u道具”, '更改产品上的\u状态\u对象\u产品' ); 功能更改\u产品上的状态\u对象\u产品($product$updated\u props){ $stock=$product->get_stock_quantity(); $changed_props=$product->get_
add\u操作(
“woocommerce\u产品\u对象\u更新的\u道具”,
'更改产品上的\u状态\u对象\u产品'
);
功能更改\u产品上的状态\u对象\u产品($product$updated\u props){
$stock=$product->get_stock_quantity();
$changed_props=$product->get_changes();
如果($product->get_status()!='pending'&($stock<1)){
更新_post_meta(数组('ID'=>$product->get_ID(),'post_status'=>'pending');
}
}
$args=array(
“post_类型”=>“产品”,
“每页帖子数”=>-1,
“发布状态”=>“发布”,
'字段'=>'ID',//重复-未分配
“元查询”=>数组(
排列(
'键'=>''库存状况',
'value'=>'outofstock',
)
),
);
$loop\u arg=新的WP\u查询($args);
$loop\u id=$loop\u arg->posts;
foreach($loop\u id为$loop=>$loop\u id){
wp_update_post(数组('ID'=>$loop_ID,
“post_状态”=>“待定”);
wp_reset_query();
echo“console.log('产品从发布更新为挂起');”;
}
此状态应在何时更改?下单后,当产品售罄时,或当您手动编辑并保存产品时?一旦产品缺货,则发布产品将是草稿或待审核,这并不能完全回答我的问题。客户下订单后,产品可能会“脱销”(自动)。但您也可以通过产品编辑设置手动调整“缺货”状态。在哪种情况下应该进行更改(发布到挂起状态)?由于两种情况都需要两个单独的代码。产品缺货的情况下,我想将产品发布状态更改为草稿或挂起(将自动),每当产品有库存时,管理员将再次发布该产品
$args = array(
'post_type' => 'product',
'posts_per_page' => -1,
'post_status' => 'publish',
'fields' => 'ids', // duplicate - not assigned
'meta_query' => array(
array(
'key' => '_stock_status',
'value' => 'outofstock',
)
),
);
$loop_arg = new WP_Query( $args );
$loop_ids = $loop_arg->posts;
foreach($loop_ids as $loop => $loop_id){
wp_update_post( array( 'ID' => $loop_id,
'post_status' => 'pending' ) );
wp_reset_query();
echo "<script>console.log('Product updating from publish to pending');</script>";
}