首页 > 解决方案 > 在 Woocommerce 中翻译结帐字段验证错误通知

问题描述

如何翻译 Woocommerce Checkout 页面验证错误消息?我试过用

function ship_to_different_address_translation( $translated_text, $text, $domain ) {
    switch ( $translated_text ) {

        case 'Billing First name is a required field.' :
            if ( get_locale() == 'en_GB' ) {
                $translated_text = __( 'Please fill in all the required fields!', 'woocommerce' );
            }
            break;
    }

    return $translated_text;
}

add_filter('gettext', 'ship_to_different_address_translation', 20, 3);       

此代码适用于所有字符串(结帐验证错误消息除外)。是否可以将所有错误消息替换为“请填写所有必填字段!”?

在此处输入图像描述

标签: phpwordpressvalidationwoocommercecheckout

解决方案


1) 自定义Woocommerce 结帐字段的默认验证错误通知:

您可以使用woocommerce_checkout_required_field_notice专用过滤器挂钩来自定义每个通知,更改以下文本:

add_filter( 'woocommerce_checkout_required_field_notice', 'custom_checkout_required_fields_error_notice', 10, 2 );
function custom_checkout_required_fields_error_notice( $error_notice, $field_label ) {
    $error_notice = sprintf( __( '%s is a required field.', 'woocommerce' ), '<strong>' . esc_html( $field_label ) . '</strong>' );

    return $error_notice; 
}

代码在您的活动子主题(活动主题)的 function.php 文件中。测试和工作。

2) 将所有验证错误通知替换为 Woocommerce 结帐字段的唯一自定义错误通知:

请参阅:在 Woocommerce 结帐页面中设置唯一的验证错误通知


推荐阅读