繁体   English   中英

wc_add_notice 的问题

[英]Problems with wc_add_notice

在我的结帐表单中,我在 function.php 中添加了 google-captcha。 然后我正在验证验证码不是空的也不是假的:

function my_custom_checkout_field_process($data, $errors) {
    // Check if set, if its not set add an error.
    if(count($errors->get_error_messages()) == 0) {
        if ( empty( $_REQUEST['g-recaptcha-response'] ) || !(google_recaptcha( $_REQUEST['g-recaptcha-response'] )) ) {
            wc_add_notice( __( 'Please enter correct captcha.', 'error' ));

        }
    }
}

但是函数 wc_add_notice 仅在下一页(thankyou.php)中显示错误消息。 订单正在发送。 但我希望如果验证码为假或空,thankyou.php 不会加载。 我应该在此代码中添加什么? 它必须像具有必填字段的情况一样起作用。 如果出现故障 - 会出现错误消息并且用户停留在同一页面上。

我相信您应该删除if(count($errors->get_error_messages()) == 0)并且它应该可以工作。 由于该if语句,您在感谢页面上收到错误消息。

function my_custom_checkout_field_process($data, $errors) {

        if ( empty( $_REQUEST['g-recaptcha-response'] ) || !(google_recaptcha( $_REQUEST['g-recaptcha-response'] )) ) {
            throw new Exception( __( 'Please enter correct captcha.', 'error' ));

        }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM