我已经开发了自定义付款网关,它将通过ajax延迟处理付款。我想展示当前在woocommerce中使用的同一微调器。
那是我的jQuery代码的一部分:
function callAjax(){
jQuery.ajax({
type : "POST",
url: '<?php echo site_url().'/?wc-api=custom_ function'; ?>',
data: response,
//data: {action:'gateway'},
dataType : "json",
cache: false,
success: function(response) {
//alert("Your vote could not be added");
//alert(response);
flag = true;
// window.location = response.redirect;
//console.log(response);
return false;
}
});
}
setTimeout(
function(){ callAjax();
}, 3000);
所以我要这样做:
如何在ajax Woocommerce覆盖图微调框的结帐页面中启动和停止?
答案 0 :(得分:0)
Woocommerce使用jQuery BlockUI Plugin在某些jQuery事件和特定页面上使用动画微调器进行屏蔽覆盖。
以下是结帐页面上的示例,该页面在加载页面2秒钟后将激活woocommerce微调框,并在3秒后将其停止:
add_action('wp_footer', 'spinners_example_on_checkout_jquery_script');
function spinners_example_on_checkout_jquery_script() {
if ( is_checkout() && ! is_wc_endpoint_url() ) :
?>
<script type="text/javascript">
jQuery( function($){
// Targeting checkout checkout payment and Review order table like Woocommerce does.
var a = '.woocommerce-checkout-payment, .woocommerce-checkout-review-order-table';
// Starting spinners with a delay of 2 seconds
setTimeout(function() {
// Starting spinners
$(a).block({
message: null,
overlayCSS: {
background: "#fff",
opacity: .6
}
});
console.log('start');
// Stop spinners after 3 seconds
setTimeout(function() {
// Stop spinners
$(a).unblock();
console.log('stop');
}, 5000);
}, 2000);
});
</script>
<?php
endif;
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。