setting role not working for create_user after I create the user
-
I created a php script that runs after a gravity form is submitted. after I validate the authenticity, I pass them them through a script, that again authenticates the key, to make sure it was just loaded through the scripts, so it cannot be hacked.
That passthrough script creates the user:
$_newUserId = wp_create_user( $_newUname, $_newpassword, $_newemail );
Then that variable has the newly created member Id, so then I use the S2Member system to add the custom fields information:
$custom_fields = get_user_option('s2member_custom_fields', $_newUserId); $custom_fields['first_name'] = $_POST['fname']; $custom_fields['last_name'] = $_POST['lname']; $custom_fields['referred_by'] = $_POST['rmid']; $custom_fields['phone'] = $_POST['phone']; $custom_fields['street_address'] = $_POST['street']; $custom_fields['street_address2'] = $_POST['street2']; $custom_fields['city'] = $_POST['city']; $custom_fields['state'] = $_POST['state']; $custom_fields['zip'] = $_POST['zip']; $custom_fields['country'] = $_POST['country']; update_user_option($_newUserId, 's2member_custom_fields', $custom_fields);
Then I add the custom capability I want them to have access to for filling out that form:
$tuser = new WP_User($_newUserId); $tuser->set_role("s2member_level0"); $tuser->add_cap('access_s2member_ccap_videotwentyone');
So I set their role to the level0 that I want them to have access to as now, because they are a new member, and that is the only level they need for this video requirement.
So I did that and it worked, all of it, except the role. When I viewed the new user I test created, all the custom fields were set, the custom capability was set, but the role was “Blank” the user was not assigned to any role at all.
I have that role labeled in S2MemberPro as “Free Club Member” and I have it forcing WordPress to use those labels I set in there.
But how do I set them to the Role of level 0 that I labeled “Free Club Member”?
was s2member_level0 not right?
I also tried just “level_0”, but that also resulted in “No Role” for the new user the test created.
This way:
$tuser->set_role("level_0");
Same thing, everything else worked, just no role set.
Can you tell me what I did wrong?
Thanks, Richard
- The topic ‘setting role not working for create_user after I create the user’ is closed to new replies.