Php 覆盖用于电子商务签出的前端JS
为了使用我们的地址验证脚本,我需要在加载结帐页面时隐藏账单地址、城市、州和邮政编码字段。下面的代码实现了我们想要的,但是在这个过程中它做得太晚了。您会看到这些字段,直到它运行Php 覆盖用于电子商务签出的前端JS,php,jquery,wordpress,woocommerce,checkout,Php,Jquery,Wordpress,Woocommerce,Checkout,为了使用我们的地址验证脚本,我需要在加载结帐页面时隐藏账单地址、城市、州和邮政编码字段。下面的代码实现了我们想要的,但是在这个过程中它做得太晚了。您会看到这些字段,直到它运行updated\u checkout事件为止,该事件在该过程中已经太晚了。然而,在init_checkout上运行它似乎太早了,因为还有其他东西迫使显示这些字段。在init\u checkout和updated\u checkout之间是否有我应该关注的东西 jQuery( "body" ).on( "updated_che
updated\u checkout
事件为止,该事件在该过程中已经太晚了。然而,在init_checkout
上运行它似乎太早了,因为还有其他东西迫使显示这些字段。在init\u checkout
和updated\u checkout
之间是否有我应该关注的东西
jQuery( "body" ).on( "updated_checkout", function() {
jQuery("#billing_country_field,
#billing_address_1_field
#billing_address_2_field,
#billing_city_field,
#billing_state_field,
#billing_postcode_field").css("display", "none");
});
在首次加载DOM时,字段仍将显示 我已尝试使用“body”委派的所有可用javascript事件:
添加到购物车
添加到购物车更改点击
国家到州更改
国家到州更改
初始签出
更新签出更新的wc分区wc碎片刷新
wc碎片刷新
。
字段将始终显示一点
唯一的方法是在加载一些CSS规则时隐藏签出表单,这些规则将添加到活动主题styles.CSS
文件中:
form.checkout.com-checkout{
可见性:隐藏;
不透明度:0;
}
还有一点jQuery,它将在显示签出表单之前首先隐藏字段:
add_filter( 'wp_footer', 'custom_checkout_script' );
function custom_checkout_script( ){
if( ! is_checkout() ) return;
?>
<script type="text/javascript">
jQuery(function($){
var events = 'update_checkout',
billingFields = '#billing_country_field,#billing_address_1_field,#billing_address_2_field';
billingFields += ',#billing_city_field,#billing_state_field,#billing_postcode_field';
$('body').on( events, function(){
$(billingFields).hide( 0,function(){
$('form.checkout.woocommerce-checkout').css('visibility','visible').fadeIn({ duration: 1000 });
});
});
});
</script>
<?php
}
add_filter('wp_footer','custom_checkout_script');
函数自定义\u签出\u脚本(){
如果(!is_checkout())返回;
?>
jQuery(函数($){
var事件='update_checkout',
计费字段=“#计费国家字段,#计费地址字段,#计费地址字段”;
计费字段+=',#计费字段#城市字段#计费字段#州字段#计费字段#邮政编码字段#;
$('body').on(事件,函数(){
$(billingFields).hide(0,函数(){
$('form.checkout.woocommerce checkout').css('visibility','visibility').fadeIn({duration:1000});
});
});
});
在两个事件上调用您的功能?jQuery(“body”)。在(“init\u checkout updated\u checkout”,function()上{…
问题是它在init\u checkout
上不起作用,因为之后似乎还有其他东西显示字段。这里是页面加载的演示。为什么不通过wp\u enqueue\u脚本加载脚本呢?我见过其他地址插件这样做,它可以隐藏字段。虽然这不能解决问题,但似乎不能解决问题o是目前最好的选择。谢谢