1

I'm useing D7.

What I want to do is...

Step1: Let users register only by inputting their email address & password on user registration form (http://www.my_website.com/user/register)

Step2: Redirect them to user account edit page (http://www.my_website.com/user/user id/edit) after their registration. And then, enforce them to input the rest of fields such as [first_name] & [hobby] on the edit page.

The 'step1' was able to be done by using 'Email Registration' & 'User registration password' module. And I think I can redirect users to the edit page. But I don't know how to enforce them to complete the rest of fields in edit page.

I want to do this without using Profile2 module. Does anybody have idea to do that?

I'm really sorry if this is an entry-level question to you. But I'm very new to Drupal and I have been struggling with this for a week, but I couldn't find the way. Please somebody help me!

Thank you!

  • ?Have you tried the module Complete profile. It says: ... this module will force the user to complete their profile before they can continue using the site. – J. Reynolds Sep 17 '14 at 4:02
2

Try using Rules. You could add a new field into the users' accounts that is Completed Profile Fields and it could be a single boolean or possabily a multi-value field.

Then your rule could check:

  • If login, or page load -- has user completed profile fields? If yes, continue to any page -- else show a profile form page (not necessarily their account page).
  • I'm not sure it would be easy to do this globally, or test the profiles have been filled prior to going to a /node/add page for instance.
  • After filling in the profile values the Rule could update the user account field completed profile fields to True.

If you don't want users to see this completed profile fields field -- you can install and use Field Permissions.

EDIT

If you dont want the user to see this special completed profile fields but still want the rule to update the value you may need to set the uid of the user updating this field. I do this usually by creating a fake user for the system called like mysite-system-user and give him a special role called system role for instance.

  • Thank you so much, tenken! After all, I used differrent way than the one you suggested. That was using Profile2. I wanted to know the way without using the Profile2 module because I didn't know how to set particular fields(not all fields) on profile with it. But now, I fond how to do... But, Thank you anyway. I really appreciate your kindness! – carrotandme Sep 28 '14 at 3:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.