提问者:小点点

更改错误消息


当客户没有填写所有必需的字段时,我想更改结账页面上发生的错误消息的文本。Currnetly,消息将显示需要填写的每个字段,例如:“账单地址是必需的字段。账单邮政编码是q必填字段。电子邮件地址是必填字段。..."

我只想要一条信息,上面写着“请填写必填字段。”或者,如果需要填写多个字段,“请填写必填字段。”

有人知道怎么做吗?我的PHP是有限的。谢谢


共2个答案

匿名用户

更新代码:

在函数中添加此代码。php文件:

function my_woocommerce_add_error( $error ) {
    if (strpos($error,'required') !== false) {
        $error = 'Required';
    }
    return $error;
}
add_filter( 'woocommerce_add_error', 'my_woocommerce_add_error' );

并在notices\error中添加此代码。php文件:

<ul class="woocommerce-error">
    <?php 
    $totalReq = count(array_keys($messages, 'Required')); 
    $removeReq = array_diff($messages, ["Required"]);

    if($totalReq > 1){
        echo '<li>Please fill in all the <strong>required</strong> fields.</li>';
    }else{
        echo '<li>Please fill in the <strong>required</strong> field.</li>';
    }
    ?>
    <?php foreach ( $removeReq as $message ) : ?>
        <li><?php echo wp_kses_post( $message ); ?></li>
    <?php endforeach; ?>
</ul>

希望它能解决您的问题:)

匿名用户

这段代码在显示一般要求的错误消息时运行良好。但在strpos函数中搜索字符串“required”也取决于网站的语言,这需要根据您的网站语言进行更改。

此外,在代码中,错误模板文件需要从

$removeReq = array_diff($messages, ["Required"]);

$removeReq = array_diff($messages, array("Required"));

比它更像魅力。覆盖错误消息的好主意。目前还没有找到解决方案,但这真的很好。

但它适用于所有woocommerce表单,如“编辑我账户页面中的地址”等。。