我正在寻找一种将所有电子邮件地址以小写形式保存到用户meta的方法,理想情况下不需要验证并要求用户更改,而只需将其保存为小写。我已经做到了以下几点,但无法实现:
add_action( \'update_user_meta\', \'meta_email_tolowercase\', 10, 4 );
function meta_email_tolowercase( $meta_id, $object_id, $meta_key, $_meta_value ) {
if( strpos( $_meta_value, \'@\' ) !== false && ! ctype_lower( $_meta_value ) ):
$result = update_user_meta( get_current_user_id(), $meta_key, strtolower( $_meta_value ) );
endif;
}
最合适的回答,由SO网友:Kaperto 整理而成
您可以使用此筛选器执行此操作
add_filter("sanitize_email", function ($sanitized_email, $email, $message) {
$sanitized_email = strtolower($sanitized_email);
return $sanitized_email;
}, 10, 3);
但我不确定使用“strtolower”是否是个好主意,其他读者是否知道使用“mb\\u strtolower”处理多字节字符是否更好
https://www.php.net/manual/en/ref.mbstring.php