当客户没有填写所有必需的字段时,我想更改结账页面上发生的错误消息的文本。Currnetly,消息将显示需要填写的每个字段,例如:“账单地址是必需的字段。账单邮政编码是q必填字段。电子邮件地址是必填字段。..."
我只想要一条信息,上面写着“请填写必填字段。”或者,如果需要填写多个字段,“请填写必填字段。”
有人知道怎么做吗?我的PHP是有限的。谢谢
更新代码:
在函数中添加此代码。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表单,如“编辑我账户页面中的地址”等。。