php - 如何在 WooCommerce 中更改帐单地址字段标签

标签 php wordpress woocommerce checkout custom-fields

在我的设计中,我有非标准的账单字段标签和标记。例如“镇/市*”应为“省*”。

我使用了 WOO 文档,并过滤了 woocommerce_billing_fields。它适用于类名、占位符、创建新字段。但我无法联系到标签已更改。

$out_arr['billing_city']['class'][0] = 'form-row-first';
$out_arr['billing_city']['label'] = __('Province', 'woocommerce');
$out_arr['billing_postcode']['label'] = __('Zipcode', 'woocommerce');

并使用新的 $out_arr 数组的 var_dump 它显示正确的标签

["billing_city"]=>
array(4) {
["label"]=>
string(8) "Province"
["required"]=>
bool(true)
["class"]=>
array(2) {
  [0]=>
  string(14) "form-row-first"
  [1]=>
  string(13) "address-field"
}
["autocomplete"]=>
string(14) "address-level2"
}

但我的前端仍然有旧标签。有什么建议吗?

最佳答案

在特定情况下您需要使用woocommerce_default_address_fields 过滤器。此过滤器适用于所有账单和运输默认字段:
'country', 'first_name', 'last_name', 'company', 'address_1' 'address_2''city''state''postcode'

这里我们只使用 'city''postcode' 作为您的代码:

add_filter( 'woocommerce_default_address_fields' , 'override_default_address_fields' );
function override_default_address_fields( $address_fields ) {

    // @ for city
    $address_fields['city']['class'] = array('form-row-first');
    $address_fields['city']['label'] = __('Province', 'woocommerce');

    // @ for postcode
    $address_fields['postcode']['label'] = __('Zipcode', 'woocommerce');

    return $address_fields;
}

这已经过测试并且可以正常工作。

此代码片段位于您的事件子主题或主题的 function.php 文件中

引用资料:

关于php - 如何在 WooCommerce 中更改帐单地址字段标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38738394/

相关文章:

javascript - 将变量从 Jquery 传递到 PHP

php - parsererror : SyntaxError: JSON. 解析:JSON 数据第 2 行第 1 列出现意外字符 200 OK

php - Woocommerce 通过 ajax 更新结帐时的运输方式

php - 选择变体时,Woocommerce 自定义可用性文本会多次显示

javascript - 未点击时显示 div 元素的点击功能

php - 我的自定义 php 函数有问题

javascript - 变量的选定选项属性

php - 如何直接从浏览器 URL 调用自定义插件功能

css - 如何在 woocommerce 中设置价格标签宽度固定列产品列表的样式

php - WooCommerce 订单页面添加客户角色自定义列