您必须使用woocommerce_default_address_fields
挂钩:
add_filter( \'woocommerce_default_address_fields\' , \'wpse_120741_wc_def_state_label\' );
function wpse_120741_wc_def_state_label( $address_fields ) {
$address_fields[\'state\'][\'label\'] = \'County\';
return $address_fields;
}
woocommerce文档对此(及更多)进行了描述:
Customizing checkout fields using actions and filters, 所以下次彻底阅读你的材料……;)
编辑:上述代码并非适用于所有情况,因为在选择国家时,签出表单的状态字段会通过javascript更新。要使其正常工作,需要使用woocommerce_get_country_locale
像这样钩住:
add_filter(\'woocommerce_get_country_locale\', \'wpse_120741_wc_change_state_label_locale\');
function wpse_120741_wc_change_state_label_locale($locale){
// uncomment /** like this /**/ to show the locales
/**
echo \'<pre>\';
print_r($locale);
echo \'</pre>\';
/**/
$locale[\'GB\'][\'state\'][\'label\'] = __(\'test\', \'woocommerce\');
$locale[\'US\'][\'state\'][\'label\'] = __(\'anything\', \'woocommerce\');
return $locale;
}
挂钩位于
class-wc-countries.php
在
get_country_locale()
作用