我尝试使用以下代码在WooCommerce结帐中添加错误通知:
add_action('woocommerce_after_checkout_validation', 'validate_checkout_email_opt', 999);
function validate_checkout_email_opt()
{
if (!$_POST['terms_emails']) {
wc_add_notice(__('Bitte stimme zu, dass du den Hinweis zu unseren E-Mail- und SMS-Benachrichtigungen gelesen hast.'), 'error');
}
}
显示错误消息,但不幸的是,它显示在所有错误列表的顶部。我想把它放在最后(因为它是结帐表单中的最后一个字段),或者理想情况下,将它放在列表中的特定位置。
我已经扫描了WooCommerce的核心代码,但找不到我可以用于此目的的过滤器或操作。我尝试了很多不同的过滤器,没有成功。它根本没有显示或者在开头显示。
设置'优先级'至''也没有帮助。
任何人都有解决此问题的方法吗?谢谢!
我正在使用WC V 3.3.5
答案 0 :(得分:0)
你应该这样做。
add_action('woocommerce_after_checkout_validation', 'validate_checkout_email_opt', 10, 2);
function validate_checkout_email_opt( $data, $errors )
{
if (!$_POST['terms_emails']) {
$errors->add( 'terms-email', __('Bitte stimme zu, dass du den Hinweis zu unseren E-Mail- und SMS-Benachrichtigungen gelesen hast.') );
}
}
样本结果: