我在询问此问题之前浏览了很多博客和SO上的帖子。
我正在使用WooCommerce插件,并尝试通过动作钩子获取产品数据以传递给第三方API。
我已经尝试了各种代码块,但没有一个能给我产品信息。
因此,我尝试在我的子主题的
我正在使用WooCommerce插件,并尝试通过动作钩子获取产品数据以传递给第三方API。
我已经尝试了各种代码块,但没有一个能给我产品信息。
因此,我尝试在我的子主题的
functions.php
文件中添加/更新/删除WooCommerce上的产品,使用以下挂钩:
挂钩1
function on_all_status_transitions( $new_status, $old_status, $post ) {
echo '<script>console.log("old_status: ' . $old_status . '")</script>';
echo '<script>console.log("new_status: ' . $new_status . '")</script>';
}
add_action('transition_post_status', 'on_all_status_transitions', 10, 3 );
当$new_status
为auto-draft
时,此函数仅会执行一次,然后当我将其保存为草稿或发布或移到回收站时,将不再执行。
钩子2
function sync_on_product_save($product_Id){
$product = wc_get_product($product_Id);
echo '<script>console.log("Product Id: ' . $product_Id . '")</script>';
// Do what you need for 3rd party here...
}
add_action('woocommerce_new_product', 'sync_on_product_save', 10, 1);
这个钩子从未被触发。
钩子 3
产品更新钩子也是同样的情况,从未被触发。
add_action('woocommerce_update_product', 'sync_on_product_save', 10, 1);
通过我所做的所有阅读,看起来很明显,应该能正常工作。所以如果有人能指出我可能做错了什么或者我可能遗漏了什么,那就太好了。
另外,我知道我们可以在WooCommerce中创建Webhook,可以将有效载荷传递到我们可以指定的URL。我希望将其作为最后一种选择。
非常感谢任何帮助。提前致谢。
注意: 我正在以启用https的方式使用wamp本地主机运行我的WordPress实例。