WooCommerce结账必填字段问题:带账单城市字段

3

您好。

我有一个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标签。

对于上述问题有什么想法吗?

祝好。


是优先级冲突吗?尝试将70更改为71。 - Kodaloid
1个回答

1

没有任何保证,因为它可能取决于许多因素,如您的主题、第三方插件或自定义…

官方文档:使用操作和过滤器自定义结帐字段

不要编辑此“城市”结帐字段的所有属性,只需覆盖必要的属性

例如,您不需要在 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 中已经过测试并且有效。

这段代码将修改账单城市字段为以下内容:

enter image description here


1
非常感谢。太棒了。 - nima
@LoicTheAztec,在我的网站上,标签和占位符已更改,但所需的函数未更改。仍然显示为可选项。如何解决? - Muhammad Wazexr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接