View Single Post
  #2  
Old 09-02-2011, 12:42 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

So you want new users to go to different user groups depending on which form they fill out? I don't know if I know the "right" way to do it, but if you create a plugin using hook location register_addmember_process you can set $newusergroupid to the user group you want to put the new user in, if you are not using email verification. If you are using email verification, you can check using hook location register_addmember_complete and change the useractivation table so that the user will be put in the desired user group on activation.

So, at register_addmember_process

Code:
if(!$vbulletin->options['verifyemail'])
{
    // do some check to figure out usergroupid (X)
    $newusergroupid = X;
}

and/or at register_addmember_complete

Code:
if(!$vbulletin->options['verifyemail'])
{
    // do some check to figure out usergroupid (X)
    $newusergroupid = X;
    $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "useractivation 
                                                    SET usergroupid = '".$newusergroupid."' 
                                                    WHERE activationid = '".$activateid."' LIMIT 1 ");
}

As far as what to check, I'm not sure, but I'd recommend against simply putting a usergroupid field or other hidden field in the registration form, since a user can change that pretty easily. You'd have to do something like check how much they've actually paid (assuming they're paying), or some other thing that they can't fake by changing the submitted form data.

Anyway, I hope this at least begins to answer your question. And thanks to user ForumsMods mod here: https://vborg.vbsupport.ru/showthread.php?t=188684 where I pretty much got the above hooks and code from.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02789 seconds
  • Memory Usage 1,764KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete