在我的结账表单中,我在function.php中添加了google-captcha。然后我验证captcha不是空的,也不是false:
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不会加载。我应该在这段代码中添加什么?它的功能必须与具有必填字段的情况相同。如果出现故障-错误消息出现,并且用户停留在同一页面。
发布于 2019-12-17 09:43:36
我相信你应该删除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' ));
}
}https://stackoverflow.com/questions/59364254
复制相似问题