gpt4 book ai didi

wordpress - woocommerce_update_product 操作 – 每次产品更新仅触发一次

转载 作者:行者123 更新时间:2023-12-04 02:40:47 25 4
gpt4 key购买 nike

有哪种解决方法可以使 woocommerce_update_product 操作仅触发一次?

我读过它会触发两次,因为它需要在内部保存一次以检索图像/变体保存的 ID。

但从开发人员的经验来看,我猜这真的不是最需要的。

到目前为止,我发现的唯一解决方法是直接在钩子(Hook)中添加操作并删除它:

add_action('woocommerce_update_product', 'my_product_update', 10, 2);
function my_product_update($product_id, $product){
remove_action('woocommerce_update_product');
// We'll get here only once!
}

但是,这在尝试进行批量编辑时会中断,从而使钩子(Hook)仅针对第一个产品触发(因为它随后会被删除!)。

还有什么其他方法可以解决这个问题?

谢谢!

最佳答案

也许使用 WordPress Transient能够帮助。

add_action('woocommerce_update_product', 'my_product_update', 10, 2);
function my_product_update($product_id, $product) {

$updating_product_id = 'update_product_' . $product_id;
if ( false === ( $updating_product = get_transient( $updating_product_id ) ) ) {
// We'll get here only once! within 2 seconds for each product id;
// run your code here!
set_transient( $updating_product_id , $product_id, 2 ); // change 2 seconds if not enough
}
}

关于wordpress - woocommerce_update_product 操作 – 每次产品更新仅触发一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59527908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com