Javascript WooCommerce签出页面中的淡出验证错误消息
下订单时,WooCommerce会验证所有必需的用户字段输入。如果没有,则会显示签出错误消息,如缺少名字等 我希望这些错误验证消息在给定时间后淡出 因此,我注入了jQuery代码:Javascript WooCommerce签出页面中的淡出验证错误消息,javascript,php,jquery,woocommerce,checkout,Javascript,Php,Jquery,Woocommerce,Checkout,下订单时,WooCommerce会验证所有必需的用户字段输入。如果没有,则会显示签出错误消息,如缺少名字等 我希望这些错误验证消息在给定时间后淡出 因此,我注入了jQuery代码: (function($) { var wooError = $('.woocommerce-error'); wooError.delay(4000).fadeOut(160); }) (jQuery); 只要.woocommerce error类不在form.checkout中,它就可以正常工作
(function($) {
var wooError = $('.woocommerce-error');
wooError.delay(4000).fadeOut(160);
})
(jQuery);
只要.woocommerce error
类不在form.checkout
中,它就可以正常工作,例如在登录或注册时。但它在结帐页面上不起作用
类.woocommerce error
是正确的(它就在那里),但是淡出没有触发
于是,我继续在网上搜索。找到另一种方法,等待checkout\u error
checkout page事件,如下所示:
$( document.body ).on( 'checkout_error', function(){
var wooError = $('.woocommerce-error');
wooError.delay(4000).fadeOut(160);
})
(jQuery);
但它不起作用
有人能告诉我,为什么只要.woocommerce错误
类在结帐表单中,我就不能触发它消失
如何在签出错误验证消息时触发淡出?使用
setTimeout()
而不是delay()
尝试以下代码,该代码将淡出签出页面上的任何错误消息,延迟时间为4秒,持续时间为160毫秒:
// Checkout JS
add_action( 'wp_footer', 'checkout_fadeout_error_message');
function checkout_fadeout_error_message() {
// Only on front-end and checkout page
if( is_checkout() && ! is_wc_endpoint_url() ) :
?>
<script>
jQuery(function($){
$(document.body).on( 'checkout_error', function(){
var wooError = $('.woocommerce-error');
setTimeout(function(){
wooError.fadeOut(160);
}, 4000);
})
});
</script>
<?php
endif;
}
//签出JS
添加操作('wp_footer'、'checkout_fadeout_error_message');
函数签出\淡出\错误\消息(){
//仅在前端和签出页面上
如果(is_checkout()&&!is_wc_endpoint_url()):
?>
jQuery(函数($){
$(document.body).on('checkout\u error',function(){
var wooError=$('.woocommerce错误');
setTimeout(函数(){
衰减误差(160);
}, 4000);
})
});
最后我找到了方法。如果有人在找这个,下面是它的工作原理:
(function($) {
$( document.body ).on( 'checkout_error', function(){
var wooError = $('.woocommerce-error');
wooError.delay(4000).fadeOut(160);
})
})
(jQuery);
经过13个小时的编码和一些你有时看不到明显的东西。谢谢你,伙计。我会试试看。看起来比我接近时更舒服。