当客户没有填写所有必填字段时,我想更改结帐页面上出现的错误消息的文本。目前,消息会显示每个需要填写的字段,例如:“帐单地址是必填字段,帐单邮政编码是Q必填字段,电子邮件地址是必填字段...”
我只想要一条消息,说“请填写必填字段。”或者,如果需要在“请填写必填字段”中填写多个字段。
有谁知道怎么染这个吗?我的PHP是有限的。谢谢!
发布于 2016-08-22 20:20:45
更新代码:
在function.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>希望它能解决您的顾虑:)
发布于 2017-01-30 23:19:51
此代码可以很好地显示一般所需的错误消息。但是在strpos函数中搜索字符串'required‘也依赖于网站的语言,这需要根据你的网站语言来改变。
同样在代码中,错误模板文件需要从
$removeReq = array_diff($messages, ["Required"]);至
$removeReq = array_diff($messages, array("Required"));它就像一种护身符。覆盖错误消息的好主意。目前还没有找到解决这个问题的方法,但这真的很好用。
但它适用于所有woocommerce表单,如从我的帐户页面编辑地址等。
https://stackoverflow.com/questions/39061036
复制相似问题