如何彻底删除WooCommerce Webhook,而非仅留禁用状态?
解决方法
1. 清除WooCommerce Webhook缓存
WooCommerce会缓存Webhook列表数据,即使数据库已清空,缓存的旧数据仍会显示在后台。可以通过两种方式清除:
后台手动清除
进入WordPress后台「WooCommerce」->「状态」->「工具」,找到「清除缓存」选项,点击「清除」按钮即可。
代码清除
执行以下代码直接清理Webhook相关的缓存键:
global $wpdb; // 清除Webhook列表缓存 wp_cache_delete( 'wc_webhooks', 'woocommerce' ); // 清除单个Webhook的缓存(如果有残留记录) $webhook_ids = $wpdb->get_col("SELECT webhook_id FROM {$wpdb->prefix}wc_webhooks"); foreach( $webhook_ids as $webhook_id ) { wp_cache_delete( 'webhook_' . $webhook_id, 'woocommerce' ); }
2. 清理WordPress Transient缓存
WordPress的Transient机制可能存储了Webhook的临时数据,执行以下代码清理WooCommerce相关的Transient:
global $wpdb; // 删除所有WooCommerce相关的临时缓存 $wpdb->query( "DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_wc_%' OR option_name LIKE '_site_transient_wc_%'" );
3. 强制刷新数据存储缓存
调用WooCommerce数据存储的缓存清理方法,确保数据存储层的缓存被清空:
// 加载Webhook数据存储并清除缓存 $webhook_data_store = WC_Data_Store::load( 'webhook' ); $webhook_data_store->clear_cache();
4. 强制刷新浏览器页面
浏览器可能缓存了后台Webhook页面的旧内容,按Ctrl+F5(Windows/Linux)或Cmd+Shift+R(Mac)强制刷新页面,查看残留的Disabled状态Webhook是否消失。
内容的提问来源于stack exchange,提问作者Brian Gottier
相关产品推荐
相关产品推荐

