我正在使用Repeater字段,管理员将在其中创建名称和电子邮件地址列表。保存(或更新)名称列表后,我想根据名称和电子邮件地址创建新用户。这是我到目前为止的代码:
add_filter('acf/update_value/name=team_member', 'add_new_user', 10, 3);
function add_new_user( $value, $post_id, $field ) {
if(isset($value) && $value != '') {
if( get_field('team_member') ) {
while( has_sub_field('team_member')) {
$user_name = strtolower( get_sub_field('member_fname') ) . '_' . strtolower( get_sub_field('member_lname') ) ;
$pw = wp_generate_password( $length=12, $include_standard_special_chars=false );
$user_email = get_sub_field('member_email_address');
$value = wp_insert_user( array(
'user_login' => $user_name,
'user_pass' => $pw,
'user_email' => $user_email
));
}
}
}
return $value;
}
此代码存在以下两个问题:
有关如何使这项工作的任何想法?感谢
更新1
我已根据Aibrean的建议更新了代码,列表中的所有名称都保存为用户。
add_filter('acf/update_value/name=team_member', 'add_new_user', 10, 3);
function add_new_user( $value, $post_id, $field ) {
if(isset($value) && $value != '') {
if( have_rows('team_member') ) :
while( have_rows('team_member') ) : the_row();
$user_name = strtolower( get_sub_field('member_fname') ) . '_' . strtolower( get_sub_field('member_lname') ) ;
$pw = wp_generate_password( $length=12, $include_standard_special_chars=false );
$user_email = get_sub_field('member_email_address');
$value = wp_insert_user( array(
'user_login' => $user_name,
'user_pass' => $pw,
'user_email' => $user_email
));
endwhile;
endif;
}
return $value;
}
此代码成功将每个名称保存为新的WP用户,但以下是现在出现的两个问题: