How to put register form on a home page for non logged in users?

I stripped home page of a Blogs mu theme of almost everything and i would like to add registration form to it that would be visible only to non logged in visitors.
I hope it's easy enough task that can be explained in a reasonably sized forum post : )

  • ThePath

    Hi Zoran,

    If its BP then you will need to put this code where you want the form to appear:

    <?php do_action( 'bp_before_sidebar_login_form' ) ?>
    
    		<?php if ( bp_get_signup_allowed() ) : ?>
    
    			<p id="login-text">
    
    				<?php printf( __( 'Please <a href="%s" title="Create an account">create an account</a> to get started.', 'buddypress' ), site_url( bp_get_signup_slug() . '/' ) ) ?>
    
    			</p>
    
    		<?php endif; ?>
    
    		<form name="login-form" id="sidebar-login-form" class="standard-form" action="<?php echo site_url( 'wp-login.php', 'login_post' ) ?>" method="post">
    			<label><?php _e( 'Username', 'buddypress' ) ?><br />
    			<input type="text" name="log" id="sidebar-user-login" class="input" value="<?php if ( isset( $user_login) ) echo esc_attr(stripslashes($user_login)); ?>" tabindex="97" /></label>
    
    			<label><?php _e( 'Password', 'buddypress' ) ?><br />
    			<input type="password" name="pwd" id="sidebar-user-pass" class="input" value="" tabindex="98" /></label>
    
    			<p class="forgetmenot"><label><input name="rememberme" type="checkbox" id="sidebar-rememberme" value="forever" tabindex="99" /> <?php _e( 'Remember Me', 'buddypress' ) ?></label></p>
    
    			<?php do_action( 'bp_sidebar_login_form' ) ?>
    			<input type="submit" name="wp-submit" id="sidebar-wp-submit" value="<?php _e( 'Log In', 'buddypress' ); ?>" tabindex="100" />
    			<input type="hidden" name="testcookie" value="1" />
    		</form>
    
    		<?php do_action( 'bp_after_sidebar_login_form' ) ?>

    That should do it for ya! This code was taken directly out of the default BP theme.

    Any probs give me a shout.

  • ThePath

    Sorry Zoran must have misread. So you need a registration form well since its BP these registration forms can be extended with extra fields. Have you done this at all? The reason I ask is that it would be a bit daft to show a registration form say in the sidebar.

    However if you want it just to have its own page (normally BP has this by default). This code is from the default registration page:

    <?php do_action( 'bp_before_register_page' ) ?>
    
    		<div class="page" id="register-page">
    
    			<form action="" name="signup_form" id="signup_form" class="standard-form" method="post" enctype="multipart/form-data">
    
    			<?php if ( 'registration-disabled' == bp_get_current_signup_step() ) : ?>
    				<?php do_action( 'template_notices' ) ?>
    				<?php do_action( 'bp_before_registration_disabled' ) ?>
    
    					<p><?php _e( 'User registration is currently not allowed.', 'buddypress' ); ?></p>
    
    				<?php do_action( 'bp_after_registration_disabled' ); ?>
    			<?php endif; // registration-disabled signup setp ?>
    
    			<?php if ( 'request-details' == bp_get_current_signup_step() ) : ?>
    
    				<h2><?php _e( 'Create an Account', 'buddypress' ) ?></h2>
    
    				<?php do_action( 'template_notices' ) ?>
    
    				<p><?php _e( 'Registering for this site is easy, just fill in the fields below and we\'ll get a new account set up for you in no time.', 'buddypress' ) ?></p>
    
    				<?php do_action( 'bp_before_account_details_fields' ) ?>
    
    				<div class="register-section" id="basic-details-section">
    
    					<?php /***** Basic Account Details ******/ ?>
    
    					<h4><?php _e( 'Account Details', 'buddypress' ) ?></h4>
    
    					<label for="signup_username"><?php _e( 'Username', 'buddypress' ) ?> <?php _e( '(required)', 'buddypress' ) ?></label>
    					<?php do_action( 'bp_signup_username_errors' ) ?>
    					<input type="text" name="signup_username" id="signup_username" value="<?php bp_signup_username_value() ?>" />
    
    					<label for="signup_email"><?php _e( 'Email Address', 'buddypress' ) ?> <?php _e( '(required)', 'buddypress' ) ?></label>
    					<?php do_action( 'bp_signup_email_errors' ) ?>
    					<input type="text" name="signup_email" id="signup_email" value="<?php bp_signup_email_value() ?>" />
    
    					<label for="signup_password"><?php _e( 'Choose a Password', 'buddypress' ) ?> <?php _e( '(required)', 'buddypress' ) ?></label>
    					<?php do_action( 'bp_signup_password_errors' ) ?>
    					<input type="password" name="signup_password" id="signup_password" value="" />
    
    					<label for="signup_password_confirm"><?php _e( 'Confirm Password', 'buddypress' ) ?> <?php _e( '(required)', 'buddypress' ) ?></label>
    					<?php do_action( 'bp_signup_password_confirm_errors' ) ?>
    					<input type="password" name="signup_password_confirm" id="signup_password_confirm" value="" />
    
    				</div><!-- #basic-details-section -->
    
    				<?php do_action( 'bp_after_account_details_fields' ) ?>
    
    				<?php /***** Extra Profile Details ******/ ?>
    
    				<?php if ( bp_is_active( 'xprofile' ) ) : ?>
    
    					<?php do_action( 'bp_before_signup_profile_fields' ) ?>
    
    					<div class="register-section" id="profile-details-section">
    
    						<h4><?php _e( 'Profile Details', 'buddypress' ) ?></h4>
    
    						<?php /* Use the profile field loop to render input fields for the 'base' profile field group */ ?>
    						<?php if ( bp_is_active( 'xprofile' ) ) : if ( bp_has_profile( 'profile_group_id=1' ) ) : while ( bp_profile_groups() ) : bp_the_profile_group(); ?>
    
    						<?php while ( bp_profile_fields() ) : bp_the_profile_field(); ?>
    
    							<div class="editfield">
    
    								<?php if ( 'textbox' == bp_get_the_profile_field_type() ) : ?>
    
    									<label for="<?php bp_the_profile_field_input_name() ?>"><?php bp_the_profile_field_name() ?> <?php if ( bp_get_the_profile_field_is_required() ) : ?><?php _e( '(required)', 'buddypress' ) ?><?php endif; ?></label>
    									<?php do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' ) ?>
    									<input type="text" name="<?php bp_the_profile_field_input_name() ?>" id="<?php bp_the_profile_field_input_name() ?>" value="<?php bp_the_profile_field_edit_value() ?>" />
    
    								<?php endif; ?>
    
    								<?php if ( 'textarea' == bp_get_the_profile_field_type() ) : ?>
    
    									<label for="<?php bp_the_profile_field_input_name() ?>"><?php bp_the_profile_field_name() ?> <?php if ( bp_get_the_profile_field_is_required() ) : ?><?php _e( '(required)', 'buddypress' ) ?><?php endif; ?></label>
    									<?php do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' ) ?>
    									<textarea rows="5" cols="40" name="<?php bp_the_profile_field_input_name() ?>" id="<?php bp_the_profile_field_input_name() ?>"><?php bp_the_profile_field_edit_value() ?></textarea>
    
    								<?php endif; ?>
    
    								<?php if ( 'selectbox' == bp_get_the_profile_field_type() ) : ?>
    
    									<label for="<?php bp_the_profile_field_input_name() ?>"><?php bp_the_profile_field_name() ?> <?php if ( bp_get_the_profile_field_is_required() ) : ?><?php _e( '(required)', 'buddypress' ) ?><?php endif; ?></label>
    									<?php do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' ) ?>
    									<select name="<?php bp_the_profile_field_input_name() ?>" id="<?php bp_the_profile_field_input_name() ?>">
    										<?php bp_the_profile_field_options() ?>
    									</select>
    
    								<?php endif; ?>
    
    								<?php if ( 'multiselectbox' == bp_get_the_profile_field_type() ) : ?>
    
    									<label for="<?php bp_the_profile_field_input_name() ?>"><?php bp_the_profile_field_name() ?> <?php if ( bp_get_the_profile_field_is_required() ) : ?><?php _e( '(required)', 'buddypress' ) ?><?php endif; ?></label>
    									<?php do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' ) ?>
    									<select name="<?php bp_the_profile_field_input_name() ?>" id="<?php bp_the_profile_field_input_name() ?>" multiple="multiple">
    										<?php bp_the_profile_field_options() ?>
    									</select>
    
    								<?php endif; ?>
    
    								<?php if ( 'radio' == bp_get_the_profile_field_type() ) : ?>
    
    									<div class="radio">
    										<span class="label"><?php bp_the_profile_field_name() ?> <?php if ( bp_get_the_profile_field_is_required() ) : ?><?php _e( '(required)', 'buddypress' ) ?><?php endif; ?></span>
    
    										<?php do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' ) ?>
    										<?php bp_the_profile_field_options() ?>
    
    										<?php if ( !bp_get_the_profile_field_is_required() ) : ?>
    											<a class="clear-value" href="javascript:clear( '<?php bp_the_profile_field_input_name() ?>' );"><?php _e( 'Clear', 'buddypress' ) ?></a>
    										<?php endif; ?>
    									</div>
    
    								<?php endif; ?>
    
    								<?php if ( 'checkbox' == bp_get_the_profile_field_type() ) : ?>
    
    									<div class="checkbox">
    										<span class="label"><?php bp_the_profile_field_name() ?> <?php if ( bp_get_the_profile_field_is_required() ) : ?><?php _e( '(required)', 'buddypress' ) ?><?php endif; ?></span>
    
    										<?php do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' ) ?>
    										<?php bp_the_profile_field_options() ?>
    									</div>
    
    								<?php endif; ?>
    
    								<?php if ( 'datebox' == bp_get_the_profile_field_type() ) : ?>
    
    									<div class="datebox">
    										<label for="<?php bp_the_profile_field_input_name() ?>_day"><?php bp_the_profile_field_name() ?> <?php if ( bp_get_the_profile_field_is_required() ) : ?><?php _e( '(required)', 'buddypress' ) ?><?php endif; ?></label>
    										<?php do_action( 'bp_' . bp_get_the_profile_field_input_name() . '_errors' ) ?>
    
    										<select name="<?php bp_the_profile_field_input_name() ?>_day" id="<?php bp_the_profile_field_input_name() ?>_day">
    											<?php bp_the_profile_field_options( 'type=day' ) ?>
    										</select>
    
    										<select name="<?php bp_the_profile_field_input_name() ?>_month" id="<?php bp_the_profile_field_input_name() ?>_month">
    											<?php bp_the_profile_field_options( 'type=month' ) ?>
    										</select>
    
    										<select name="<?php bp_the_profile_field_input_name() ?>_year" id="<?php bp_the_profile_field_input_name() ?>_year">
    											<?php bp_the_profile_field_options( 'type=year' ) ?>
    										</select>
    									</div>
    
    								<?php endif; ?>
    
    								<?php do_action( 'bp_custom_profile_edit_fields' ) ?>
    
    								<p class="description"><?php bp_the_profile_field_description() ?></p>
    
    							</div>
    
    						<?php endwhile; ?>
    
    						<input type="hidden" name="signup_profile_field_ids" id="signup_profile_field_ids" value="<?php bp_the_profile_group_field_ids() ?>" />
    
    						<?php endwhile; endif; endif; ?>
    
    					</div><!-- #profile-details-section -->
    
    					<?php do_action( 'bp_after_signup_profile_fields' ) ?>
    
    				<?php endif; ?>
    
    				<?php if ( bp_get_blog_signup_allowed() ) : ?>
    
    					<?php do_action( 'bp_before_blog_details_fields' ) ?>
    
    					<?php /***** Blog Creation Details ******/ ?>
    
    					<div class="register-section" id="blog-details-section">
    
    						<h4><?php _e( 'Blog Details', 'buddypress' ) ?></h4>
    
    						<p><input type="checkbox" name="signup_with_blog" id="signup_with_blog" value="1"<?php if ( (int) bp_get_signup_with_blog_value() ) : ?> checked="checked"<?php endif; ?> /> <?php _e( 'Yes, I\'d like to create a new site', 'buddypress' ) ?></p>
    
    						<div id="blog-details"<?php if ( (int) bp_get_signup_with_blog_value() ) : ?>class="show"<?php endif; ?>>
    
    							<label for="signup_blog_url"><?php _e( 'Blog URL', 'buddypress' ) ?> <?php _e( '(required)', 'buddypress' ) ?></label>
    							<?php do_action( 'bp_signup_blog_url_errors' ) ?>
    
    							<?php if ( is_subdomain_install() ) : ?>
    								http:// <input type="text" name="signup_blog_url" id="signup_blog_url" value="<?php bp_signup_blog_url_value() ?>" /> .<?php bp_blogs_subdomain_base() ?>
    							<?php else : ?>
    								<?php echo site_url() ?>/ <input type="text" name="signup_blog_url" id="signup_blog_url" value="<?php bp_signup_blog_url_value() ?>" />
    							<?php endif; ?>
    
    							<label for="signup_blog_title"><?php _e( 'Site Title', 'buddypress' ) ?> <?php _e( '(required)', 'buddypress' ) ?></label>
    							<?php do_action( 'bp_signup_blog_title_errors' ) ?>
    							<input type="text" name="signup_blog_title" id="signup_blog_title" value="<?php bp_signup_blog_title_value() ?>" />
    
    							<span class="label"><?php _e( 'I would like my site to appear in search engines, and in public listings around this network.', 'buddypress' ) ?>:</span>
    							<?php do_action( 'bp_signup_blog_privacy_errors' ) ?>
    
    							<label><input type="radio" name="signup_blog_privacy" id="signup_blog_privacy_public" value="public"<?php if ( 'public' == bp_get_signup_blog_privacy_value() || !bp_get_signup_blog_privacy_value() ) : ?> checked="checked"<?php endif; ?> /> <?php _e( 'Yes', 'buddypress' ) ?></label>
    							<label><input type="radio" name="signup_blog_privacy" id="signup_blog_privacy_private" value="private"<?php if ( 'private' == bp_get_signup_blog_privacy_value() ) : ?> checked="checked"<?php endif; ?> /> <?php _e( 'No', 'buddypress' ) ?></label>
    
    						</div>
    
    					</div><!-- #blog-details-section -->
    
    					<?php do_action( 'bp_after_blog_details_fields' ) ?>
    
    				<?php endif; ?>
    
    				<?php do_action( 'bp_before_registration_submit_buttons' ) ?>
    
    				<div class="submit">
    					<input type="submit" name="signup_submit" id="signup_submit" value="<?php _e( 'Complete Sign Up', 'buddypress' ) ?>" />
    				</div>
    
    				<?php do_action( 'bp_after_registration_submit_buttons' ) ?>
    
    				<?php wp_nonce_field( 'bp_new_signup' ) ?>
    
    			<?php endif; // request-details signup step ?>
    
    			<?php if ( 'completed-confirmation' == bp_get_current_signup_step() ) : ?>
    
    				<h2><?php _e( 'Sign Up Complete!', 'buddypress' ) ?></h2>
    
    				<?php do_action( 'template_notices' ) ?>
    				<?php do_action( 'bp_before_registration_confirmed' ) ?>
    
    				<?php if ( bp_registration_needs_activation() ) : ?>
    					<p><?php _e( 'You have successfully created your account! To begin using this site you will need to activate your account via the email we have just sent to your address.', 'buddypress' ) ?></p>
    				<?php else : ?>
    					<p><?php _e( 'You have successfully created your account! Please log in using the username and password you have just created.', 'buddypress' ) ?></p>
    				<?php endif; ?>
    
    				<?php do_action( 'bp_after_registration_confirmed' ) ?>
    
    			<?php endif; // completed-confirmation signup step ?>
    
    			<?php do_action( 'bp_custom_signup_steps' ) ?>
    
    			</form>
    
    		</div>
    
    		<?php do_action( 'bp_after_register_page' ) ?>
  • Rene

    Hi,

    HELP!

    I'm using bp-community theme but wanted to have a simple registration on the static homepage.

    And I copied the code from "registration/register.php". It is pretty much the same thing ThePro has suggested. Unfortunately, the form doesn't display.

    It seems that bp_get_current_signup_step() is not returning 'request-details'. I decided to removed the IF condition:

    <?php if ( 'request-details' == bp_get_current_signup_step() ) : ?>

    The form does display, but registration isn't processed.

    Thanks in advance.

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.