我已通过向functions.php
添加以下行删除了WooCommerce结帐页面上的结算字段:
add_filter("woocommerce_checkout_fields", "remove_billing_fields");
function remove_billing_fields($fields) {
unset($fields["billing"]["billing_first_name"]);
unset($fields["billing"]["billing_last_name"]);
unset($fields["billing"]["billing_company"]);
unset($fields["billing"]["billing_address_1"]);
unset($fields["billing"]["billing_address_2"]);
unset($fields["billing"]["billing_city"]);
unset($fields["billing"]["billing_postcode"]);
unset($fields["billing"]["billing_country"]);
unset($fields["billing"]["billing_state"]);
unset($fields["billing"]["billing_email"]);
unset($fields["billing"]["billing_phone"]);
return $fields;
}
这会删除结算字段,并根据需要保留发货字段。但是,现在我在结账时收到错误:
Please enter an address to continue.
但是,所有运输字段都已填写。请求通过AJAX(/shop/checkout?wc-ajax=checkout
)发送。在检查请求时,我看到正在发送以下字段:
billing_email:john@example.com
shipping_first_name:John
shipping_last_name:Doe
shipping_address_1:123 Easy St
shipping_address_2:
shipping_country:US
shipping_state:NY
shipping_city:New York
shipping_postcode:12345
billing_phone:123-456-7890
payment_method:stripe
wc-stripe-payment-token:abc123
_wpnonce:abc123
_wp_http_referer:/shop/checkout
请注意,在设置结算字段时请求会完成,因此我相信其他所有内容都已正确设置。有什么想法为什么会抛出这个错误?
答案 0 :(得分:2)
我发现虽然我可以隐藏billing_country
字段,但是为了计算税金和运费,它是必需的,即使WooCommerce被配置为默认使用运费字段。