wordpress - 在散装垃圾产品的情况下,挂钩“wp_trash_post”多次执行

我目前正在使用钩子 wp_trash_post 在 WooCommerce 产品被丢弃时触发我的自定义 API。这适用于单个垃圾的情况。但是,在大容量垃圾的情况下,此事件会执行多次。例如,如果选择了 3 个产品进行回收,则此事件将触发 3 次。

我需要针对 Bulk Trash 执行一次但具有所有产品 ID 的不同事件。希望清楚明白。请帮忙!

回答1

您的 API 调用必须使用 foreach 循环,因此正在运行 foreach 帖子 ID。您可以捕获变量中的 ID 并在 if 和 foreach 语句完成后执行 API 调用:

function wpdocs_trash_multiple_posts( $post_id = '' ) {

    $trashed_ids = [];

    if ( isset( $_GET['post'] ) && is_array( $_GET['post'] ) ) {
        foreach ( $_GET['post'] as $post_id ) {
            $trashed_ids[] = $post_id;
        }
    } else {
        $trashed_ids[] = $post_id;
    }

    // Do something here, $trashed_ids array 
    // contains either one, or several IDs
    
}
add_action( 'wp_trash_post', 'wpdocs_trash_multiple_posts' );

相似文章

db2 - 如何识别是否发出了同步点

我正在开发COBOLcics程序,该程序有多个同步点并在不同的场景中执行。如果此cics任务同步点下的任何时间点发出与否,我想执行一些逻辑。请帮助告知是否有任何方法或关键字可以检查相同的内容。...

google-bigquery - Countif 或 CASE 有多个条件

我试图找出最有效的方法来计算放置在在线购物车中的产品。我已经按购买时间(它们放入购物车的时间而不是实际的结账时间)对放入购物车的前3件商品进行了排名,但现在我正在努力找出一种方法来计算进入购物车的不同...

nuget - Nuget 用于更快更新的中介

假设我的公司创建:商业产品“产品”一个免费的开源库“Library”“图书馆”在Nuget上为其他人发布。“产品”也通过nuget引用使用“库”。有时我们会在“库”中发现紧急错误,我们需要修复并发布“...