以小写形式保存用户元电子邮件地址

时间:2019-12-12 作者:Kevin Nugent

我正在寻找一种将所有电子邮件地址以小写形式保存到用户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;
}

1 个回复
最合适的回答,由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

相关推荐

OOP development and hooks

我目前正在为Wordpress编写我的第一个OOP插件。为了帮助我找到一点结构,a boiler plate 这为我奠定了基础。在里面Main.php 有一种方法可以为管理员加载JS和CSS资产:/** * Register all of the hooks related to the admin area functionality * of the plugin. * * @since 0.1.0 * @access private