在 woocommerce 中,如果缺货,则产品将发布为待处理产品状态。
我尝试了产品发布(使用以下代码),然后它变为待处理状态,但自动无法更改状态。
add_action(
'woocommerce_product_object_updated_props',
'change_status_on_product_object_product'
);
function change_status_on_product_object_product($product, $updated_props) {
$stock = $product->get_stock_quantity();
$changed_props = $product->get_changes();
if ($product->get_status() !== 'pending' && ($stock < 1)) {
update_post_meta(array('ID' => $product->get_id(), 'post_status' => 'pending'));
}
}
答案 0 :(得分:0)
$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>";
}