【发布时间】:2018-11-03 00:50:02
【问题描述】:
您好,我正在尝试了解如何使用 woocommerce 结帐功能删除一些帐单字段,具体取决于所选的运输方式。因此,当客户选择本地运输但此代码不起作用时,我尝试使用此代码取消设置帐单地址、帐单城市、帐单状态和帐单邮政编码。任何帮助,将不胜感激。
add_filter('woocommerce_checkout_fields', 'xa_remove_billing_checkout_fields');
function xa_remove_billing_checkout_fields($fields) {
$shipping_method ='local_pickup:1'; // Set the desired shipping method to hide the checkout field(s).
global $woocommerce;
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
$chosen_shipping = $chosen_methods[0];
if ($chosen_shipping == $shipping_method) {
unset($fields['billing']['billing_address_1']); // Add/change filed name to be hide
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_city']);
unset($fields['billing']['billing_state']);
unset($fields['billing']['billing_postcode']);
}
return $fields;
}
【问题讨论】:
-
这应该适用于从购物车到结帐页面。但如果不重新加载页面,将无法单独在结帐页面上工作。
-
所以你觉得代码是正确的?我已经从购物车中选择了本地取货,然后继续结帐,但字段仍然存在。
-
试着输入
print_r($chosen_methods);,看看是不是真的是'local_pickup:1'...因为我的不是1。 -
知道了,是 3。谢谢
-
所以我把代码放在了我的functions.php中但是当我在购物车页面上选择运输方式时你是对的然后它可以工作但是当我在结帐时改变它不会改变,我猜我需要添加一些 java 或 jquery?
标签: wordpress woocommerce