仅清除 Woocommerce 中的一些结帐字段值

Clear only some checkout fields values in Woocommerce

在 Woocommerce 中,我正在尝试清除结帐字段。因此,当用户之前订购过东西,现在再次订购东西时,he/she 将不得不再次写入所有 his/her 信息。

我正在使用此代码

function clear_checkout_fields($input){
return '';
}

add_filter( 'woocommerce_checkout_get_value' , 'clear_checkout_fields' , 1);

现在这段代码正在清除所有字段,但它也将我的增值税更改为显示为 0。

有谁知道解决这个问题的方法吗?

您的 woocommerce_checkout_get_value 挂钩函数中存在一些参数错误。
实际上有 2 个参数:

  • 返回的 $value 参数是一个过滤器挂钩,
  • 可用于定位任何结帐字段的 $imput 参数。

因此,在您的情况下,您将使用 $imput 参数,以避免您的自定义增值税结帐字段被清空。在下面的代码中,您需要将 vat_number 替换为在自定义增值税结帐字段中设置的正确字段 name 属性:

add_filter( 'woocommerce_checkout_get_value' , 'clear_checkout_fields' , 10, 2 );
function clear_checkout_fields( $value, $input ){
    if( $input != 'vat_number' )
        $value = '';
    
    return $value;
}

代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。