php - WooCommerce Checkout 必填字段与计费城市字段有关

标签 php wordpress forms woocommerce checkout

你好。

我有一个 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 中测试并运行。

此代码将以这种方式制作城市账单字段:

enter image description here

关于php - WooCommerce Checkout 必填字段与计费城市字段有关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45811806/

相关文章:

php - 当它是 hasMany 关联的一部分时,如何将 CakePHP 表单中的字段设为 'unlock'

php - 机器人提交表单的方式与使用浏览器的方式不同吗?

php 脚本不通过 ajax 调用执行

java - 如何在命令行中输入星号以使其能够理解?

php - 如何忽略多个字段的唯一性

php - 使用 PHP 维护不同页面的对象状态

Javascript $(document).ready 错误与 Wordpress 中的 XPath

forms - 如何从 HTML 表单调用 RESTful 服务?

html - 我的 html/css 代码在 IE 和 firefox 中的兼容性

php - WordPress 中的 CSS 背景图片