在所有其他通知后,在结帐时添加WC通知

时间:2018-05-21 21:49:46

标签: wordpress woocommerce

我尝试使用以下代码在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

1 个答案:

答案 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.') );
    }
}

样本结果:

reigelgallarde.me