在 Woocommerce 中显示自定义结帐地址字段 2 标签

mik*_*019 5 php wordpress checkout woocommerce hook-woocommerce

我找到了一种方法来更改占位符,但不更改 woocommerce 中结账输入字段的标签。

我想更改 的标签adress_field_2

这是我的尝试,没有改变任何东西。我尝试了 [label] 和 [label_class] 但这不起作用......

add_filter( 'woocommerce_default_address_fields', 'new_checkout_field_label', 10, 1 );
function new_checkout_field_label( $address_fields ) {
    $address_fields['address_2']['placeholder'] = __( '', 'woocommerce' );
    $address_fields['address_2']['label'] = __( 'Apt, Unit, Etc (optional)', 'woocommerce' );
    return $address_fields;
}
Run Code Online (Sandbox Code Playgroud)

Loi*_*tec 11

您的代码可以正常工作,并且正确的相关 html 就在那里。但它screen-reader-text通过 CSS 规则对标记类隐藏。

要使其<label>可见,您需要从<label>添加以下行的标记中删除该类:

$address_fields['address_2']['label_class'] = array(); // No label class
Run Code Online (Sandbox Code Playgroud)

所以在你的代码中:

add_filter( 'woocommerce_default_address_fields', 'custom_override_default_checkout_fields', 10, 1 );
function custom_override_default_checkout_fields( $address_fields ) {
    $address_fields['address_2']['placeholder'] = __( '', 'woocommerce' );
    $address_fields['address_2']['label'] = __( 'Apt, Unit, Etc (optional)', 'woocommerce' );
    $address_fields['address_2']['label_class'] = array(); // No label class

    return $address_fields;
}
Run Code Online (Sandbox Code Playgroud)

代码位于活动子主题(或活动主题)的 function.php 文件中。经过测试并有效。

在此输入图像描述