首页 > 解决方案 > 检查 Woocommerce Hook 是否来自 API

问题描述

我有这样的问题:

我在 WooCommerce 中有一个自定义字段,它是文章是否转移/更新到另一个系统的标志。

字段/标志可以通过在 Woocommerce 中手动编辑文章来设置,也可以由另一个系统通过 REST API 设置。

如果我手动编辑该字段,我将使用此代码将其设置为“否”:

add_action( 'woocommerce_update_product', 'lg_set_transferd_flag', 10, 1 );
function lg_set_transferd_flag( $product_id ) {
         update_post_meta( $product_id, 'product_transferd_to_visma', 'no' );
}

要从另一个系统中的操作设置它,我使用以下代码:

add_action( 'woocommerce_api_edit_product', 'lg_set_transferd_flag_from_api', 10, 1);
function lg_set_transferd_flag_from_api( $product_id ) {
      update_post_meta( $product_id, 'product_transferd_to_visma', 'yes' );
} 

问题是“woocommerce_api_edit_product”钩子触发了“woocommerce_update_product”,所以我最终得到了“不”的标志。

有没有办法在钩子“woocommerce_update_product”上运行以知道该操作来自“woocommerce_api_edit_product”?

标签: woocommercehook

解决方案


推荐阅读