如何移除Woocommerce Germanized默认结账条款复选框
WooCommerce Germanized 结账条款复选框迁移解决方案
问题现状
已通过以下代码成功在结账提交按钮前新增条款复选框:
add_action( 'woocommerce_review_order_before_submit', 'woocommerce_gzd_template_render_pay_for_order_checkboxes', 10 );
但支付信息区域上方的默认复选框仍未移除,此前尝试的三段remove_action代码均无效。
解决方案
核心问题是直接调用remove_action的时机早于Germanized插件注册钩子的时间,导致移除操作失效。需在插件加载完成后执行移除,并使用正确的钩子与函数名。
将以下代码添加到主题的functions.php文件或自定义插件中:
// 移除Germanized默认的条款复选框(确保在插件加载后执行) add_action( 'plugins_loaded', 'remove_germanized_default_terms_checkbox', 20 ); function remove_germanized_default_terms_checkbox() { remove_action( 'woocommerce_review_order_before_payment', 'woocommerce_gzd_template_render_checkout_terms', 10 ); } // 在提交按钮前添加条款复选框(保留原有有效代码) add_action( 'woocommerce_review_order_before_submit', 'woocommerce_gzd_template_render_pay_for_order_checkboxes', 10 );
无效代码原因说明
- 时机错误:之前的
remove_action未包裹在plugins_loaded钩子中,执行时Germanized尚未完成钩子注册,无法匹配到目标动作。 - 钩子/函数名错误:此前使用的
woocommerce_checkout_show_terms、woocommerce_gzd_before_legal_checkbox_direct-debit-checkbox等,均非Germanized默认条款复选框的注册钩子或函数,导致匹配失败。
内容的提问来源于stack exchange,提问作者MoritzMario Andr
相关产品推荐
相关产品推荐

