WooCommerce结帐字段未显示正确的错误消息

时间:2017-12-11 22:38:22

标签: php css wordpress woocommerce checkout

我在WooCommerce结帐中收到模糊的错误消息,因为我删除了所有标签。有没有办法在使用PHP隐藏标签时显示正确的错误消息?或者有没有办法用CSS隐藏结帐标签,但不必隐藏所有标签,因为它们中的一些是相关的(条款和条件,时事通讯等)。

我们使用以下代码隐藏标签:

// Fjern labels fra checkout
add_filter('woocommerce_checkout_fields','custom_wc_checkout_fields_no_label');

// Our hooked in function - $fields is passed via the filter!
// Action: remove label from $fields
function custom_wc_checkout_fields_no_label($fields) {
    // loop by category
    foreach ($fields as $category => $value) {
        // loop by fields
        foreach ($fields[$category] as $field => $property) {
            // remove label property
            unset($fields[$category][$field]['label']);
        }
    }
     return $fields;
}

也可以使用CSS

2 个答案:

答案 0 :(得分:1)

[Update 1] - 添加了一些有关如何生成错误的信息。

[更新2] - 解释了如何为WooCommerce激活特定的语言区域设置

[更新3] - 在原始问题被修改时添加了CSS规则。

错误是在validate_posted_data的{​​{1}}函数内生成的。

您在错误中看到的class-wc-checkout.php,例如" 中的名字是一个必填字段。" 是事实上Field names。因此,如果您的结帐字段'数组不会为任何字段设置labels属性,而不会获得正确的完整错误。

在当前情况下,我假设您已移除['label']属性以隐藏前端的标签,并且只显示['label']。如果你想在前端隐藏标签,请使用CSS样式。

['placeholders']

此规则仅适用于Billing& amp;运输字段标签。

我正在使用HTML5Boilerplate的.visuallyhidden utility class中的代码。这是以最直观的方式隐藏内容,但不是屏幕阅读器或其他辅助技术。

为什么你的方法是错的?

localize WooCommerce的最佳方法不是过滤输出并将英文文本替换为您的语言。对于WordpressWooCommerce

,丹麦语似乎接近100%

如果您选择安装语言为丹麦语,则不应要求您像现在一样添加丹麦语占位符。

按照此链接中的步骤为WooCommerce进行丹麦语本地化:https://docs.woocommerce.com/document/woocommerce-localization/#section-4

答案 1 :(得分:1)

相反,您可以尝试使用特定的CSS规则来隐藏结算<label>代码:

.woocommerce-billing-fields label{
    display:none;
}

这适用于您的活动子主题(或活动主题)的styles.css文件......

它应该工作。这样您就会收到正确的错误消息。