你好,所以我试图找出如何使用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;
}
字符串
2条答案
按热度按时间eyh26e7m1#
我会这样解决这个问题。
这将涉及php,css和JavaScript(jQuery)。
PHP
字符串
而不是取消设置字段,我们将只是改变它的
required
ness。这意味着,如果选择的方法是我们想要检查的方法,我们将不需要它。然后我们将添加一个hide
类。这样,我们可以使用css隐藏这些字段。woocommerce不会抛出一个错误,它是必需的。使用jQuery,我们可以显示/隐藏这些字段。因此,如果我们在第一次运行时取消设置,则没有任何内容可以显示,因为这些字段首先不存在,并且页面需要重新加载。这是JavaScript和css部分。
型
avwztpqn2#
字符串
我修改了像这样的最后一个片段.我想这些字段将被启用和活动,只有这两种运输方法(他们是为不同的运输国家.隐藏部分工作良好,但他们仍然需要.我应该做什么不同?