DOMが最初に読み込まれると、フィールドはとにかく表示されます。
私が "身体" から委任利用可能なすべてのjavascriptのイベントで試してみました:added_to_cart
adding_to_cart
change
click
country_to_state_changed
country_to_state_changing
init_checkout
update_checkout
updated_wc_div
wc_fragment_refresh
wc_fragment_refreshed
。 フィールドは常に少し表示されます。
唯一の方法は、あなたのアクティブなテーマstyles.css
ファイルに追加され、いくつかのCSSルールをロードするときにチェックアウトフォームを非表示にすることです:
form.checkout.woocommerce-checkout{
visibility:hidden;
opacity: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
}
このコードは、任意のプラグインファイルでも、あなたのアクティブな子テーマ(またはテーマ)のfunction.phpファイルになりますか。
すべてのコードは、Woocommerce 3+でテストされ、動作します。
両方のイベントであなたの機能を呼び出しますか? '' init_checkout updated_checkout ''、function(){... ' – George
' 'init_checkout'では、後にフィールドを表示する何かがあるように見えるので問題はないということです。 –
ここでは、ページの読み込みのデモです。https://www.dropbox.com/s/f0b6ec7v3meje67/checkout.gif?dl=0 –