5

I'm developing a custom BuddyPress/WordPress Plugin. Here's how a user would normally register.

  1. A user registers as usual on registration page
  2. His/Her account is deactivated till he/she clicks on activation link in his/her email
  3. He/She is sent an activation link through the email he/she registered with
  4. He/She activates his account by clicking on the link

I'd like to modify step 4 above so that even if the user clicks on the activation link, his/her account remains deactivated till he/she fills another form on the site for example, a custom survey form. Once this form is filled successfuly, the user can now be activated.

I'll be programming the custom form myself so that it works the way I want it to, with wordpress/Buddypress actions/filters.

So my question is: How can you modify the WordPress/Buddypress activation Process so that the account remains deactivated till the user fill my custom form?

Here's the main action that I intend to use and it fires as soon as the user clicks the buddypress account activation link in their email:

bp_core_signup_user

I'll appreciate if someone can point in the right direction on modifying the Buddypress/Wordpress activation process.

Please help. This is where I'm stuck.

  • Could an acceptable solution put your custom form in step 1, as extra registration questions asked before email confirmation is sent? – AntonChanning May 10 '16 at 10:39
  • I don't think so. I would like to just modify step 4. – William Oneb May 17 '16 at 14:51
0

You can add the bp_core_signup_send_activation_key filter to prevent the activation email being sent as follows

add_filter('bp_core_signup_send_activation_key', 'my_bp_core_signup_send_activation_key', 10, 5);

function my_bp_core_signup_send_activation_key($send, $user_id, $user_email, $activation_key, $usermeta) {
    return false;
}

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.