你好。
我有一个 woocommerce 商店。最近我遇到了在结账账单中填写必填字段的问题。
我已经完成了这个定制:
'city' => array(
'label' => __( 'City Name', 'woocommerce' ),
'placeholder' => __( 'City Name'),
'required' => true,
'class' => array( 'form-row-wide', 'address-field', 'validate-required' ),
'validate' => array( 'city' ),
'autocomplete' => 'address-level2',
'priority' => 70,
),
在 woocommerce/includes/class-wc-countries.php 路径中, 如你所见:
'required' => true,
但没有显示星号 (*) 或 <abbr>
html 标记已添加到我的表单中。
对上述问题有什么想法吗?
问候。
最佳答案
没有任何保证,因为它可能取决于许多因素,例如您的主题、第三方插件或自定义……
官方文档:Customizing checkout fields using actions and filters
Instead of editing all the properties for this "city" checkout field, you should just override the necessary ones.
例如您不需要添加在您的class
属性中:'address-field'
和 'validate-required'
因为它们是自动添加的。此外,此帐单字段的优先级已经是 70
...
所以你应该尽量只保留你需要改变的属性:
add_filter( 'woocommerce_default_address_fields' , 'custom_override_default_address_fields', 100, 1 );
function custom_override_default_address_fields( $address_fields ) {
$address_fields['city']['label'] = __( 'City Name', 'woocommerce' );
$address_fields['city']['placeholder'] = __( 'City Name');
$address_fields['city']['required'] = true;
return $address_fields;
}
代码位于您的事件子主题(或主题)的 function.php 文件中或任何插件文件中。
代码已在 WooCommerce 中测试并运行。
此代码将以这种方式制作城市账单字段:
关于php - WooCommerce Checkout 必填字段与计费城市字段有关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45811806/