如何使用 AJAX 更新 Woocommerce 结账上的计费字段

Vit*_*huk 5 ajax billing field checkout woocommerce

因此,我想根据运输方式取消设置一些计费字段,但是除非我重新加载整个结帐页面,否则它不起作用。如何使用 AJAX 重新加载计费字段?

/*
 * Remove fields for chosen shipping method
 */
add_filter( 'woocommerce_checkout_fields', 'awoohc_override_checkout_fields' );
function awoohc_override_checkout_fields( $fields ) {

$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );

if ( 'local_pickup:4' === $chosen_methods[0] ) {

  unset( $fields['billing']['billing_address_1'] );
  unset( $fields['billing']['billing_address_2'] );


}

return $fields;
}
Run Code Online (Sandbox Code Playgroud)

Sco*_*t L 0

看看我们如何在https://github.com/bakkbone/bakkbone-florist-companion/blob/trunk/incl/pickup.php中删除“本地取货”方法的运输

需要几个函数:

  • 一个取消设置字段,以便提交时的验证不会失败(特别是如果它们是必填字段)-您的做法是正确的
  • 一种是插入 JavaScript 以在运输方式更改时隐藏实际字段

欢迎您根据需要使用我们的代码(逐字或修改):)