我创建了一个名为公司名称的自定义字段,我在自定义注册页面上用户注册后使用此字段来更新字段
update_usermeta($user_id, 'user_company_name', $company_name);
我使用此代码插入用户
$userdata = array(
'user_login' => $email,
'user_email' => $email,
'user_pass' => $random_password,
'first_name' => $first_name,
'last_name' => $last_name,
'role' => $custom_role,
);
$user_id = wp_insert_user($userdata);
我想要做的是根据$company_name
创建用户用户名,我知道这就像将'user_login' => $email,
更改为'user_login' => $company_name,
一样简单
但公司名称有时太长,包括符号,斜线,短划线,连接词......等等,我只想使用下划线划分的前2个单词...例如,如果用户公司名称是(The Stack& ;溢出),我希望用户名成为stack_overflow。
还有什么方法可以将此应用于现有会员吗?
答案 0 :(得分:0)
来源: http://php.net/manual/en/function.explode.php
使用php的explode函数参见这个例子:
<?php
// Example 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
// Example 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
?>
答案 1 :(得分:0)
删除特殊字符&amp;用_
替换空格function removeSpecial($string)
{
$string = str_replace(' ', '_', $string); // Replaces all spaces with UnderScore.
return preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars.
}
通话功能:
echo removeSpecial("stack & Overflow");
首先,我们用空格替换下划线,然后从字符串中删除特殊字符。