我正在尝试更新 Woocommerce 产品更新事件的自定义元。我读过我应该使用 woocommerce_update_product 而不是 save_post 但我不明白为什么只有 save_post 在我的情况下有效。
下面的代码有效
add_action( 'save_post', 'mp_sync_on_product_save', 20);
function mp_sync_on_product_save( $product_id ) {
update_post_meta($product_id, 'test_acf_product', "text");
};
Run Code Online (Sandbox Code Playgroud)
下面的代码不起作用
add_action( 'woocommerce_update_product', 'mp_sync_on_product_save', 20);
function mp_sync_on_product_save( $product_id ) {
update_post_meta($product_id, 'test_acf_product', "text");
};
Run Code Online (Sandbox Code Playgroud)
我意外地发现,如果我exit;在末尾添加如下内容,则上面的代码可以工作(破坏页面,但元保存在数据库中)
add_action( 'woocommerce_update_product', 'mp_sync_on_product_save', 20);
function mp_sync_on_product_save( $product_id ) {
update_post_meta($product_id, 'test_acf_product', "text");
exit;
};
Run Code Online (Sandbox Code Playgroud)
我可以逃脱 save_post 但我很想知道为什么 woocommerce_update_product 不起作用,如果有人能给我一些提示,我将不胜感激。
谢谢你!