WordPress WooCommerce子主题无法移除指定action的技术求助
解决WooCommerce目标Action无法移除的问题
你遇到的问题核心是执行时机不对——目标meow_enovathemes_summary_details_open_2是在挂载到init的匿名函数里,根据店铺布局判断后才添加的。你原来的移除代码同样挂载在init,默认优先级都是10,大概率你的移除代码先执行了,这时候目标Action还没被添加,自然移除无效。
以下是几种可行的解决方法:
- 方案1:提高
init钩子的执行优先级
把你的移除函数的init钩子优先级设得比目标匿名函数高(数字越大,执行越晚),比如设为20:
add_action( 'init', 'remove_my_action', 20 ); function remove_my_action(){ remove_action( 'woocommerce_single_product_summary', 'meow_enovathemes_summary_details_open_2', 45 ); }
- 方案2:使用更晚触发的钩子
如果方案1无效,换用wp_loaded钩子,它会在所有主题、插件初始化完成后触发,能确保目标Action已经被添加:
add_action( 'wp_loaded', 'remove_my_action' ); function remove_my_action(){ remove_action( 'woocommerce_single_product_summary', 'meow_enovathemes_summary_details_open_2', 45 ); }
- 方案3:针对产品页面精准移除
因为目标Action是绑定在产品详情页的钩子上,你可以把移除代码挂载到产品页面专属的woocommerce_before_single_product钩子,既保证时机正确,又避免不必要的全局执行:
add_action( 'woocommerce_before_single_product', 'remove_my_action' ); function remove_my_action(){ remove_action( 'woocommerce_single_product_summary', 'meow_enovathemes_summary_details_open_2', 45 ); }
内容的提问来源于stack exchange,提问作者chris tophe
相关产品推荐
相关产品推荐

