[ACCEPTED]-Separate registration page in WooCommerce website-woocommerce
edit your form-login.php
file and seperate the login form 7 and registration form in two different sections 6 say section A and B.
now check for a GET
parameter 5 in the page which will define which section 4 to show. By default login will be shown, if 3 parameter is found and is "register", show 2 registration section
if( isset( $_GET['action']) && $_GET['action'] == "register"){
// Section for registration
}else {
// Section for Login form
}
you can provide a link 1 for registration as
<a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '?action=register"> register </a>
The Code for form-login.php
is
--- START 4 SECTION ---
<?php
/**
* Login Form
*
* @author WooThemes
* @package WooCommerce/Templates
* @version 2.2.6
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
?>
<?php wc_print_notices(); ?>
<?php do_action( 'woocommerce_before_customer_login_form' ); ?>
<?php if ( get_option( 'woocommerce_enable_myaccount_registration' ) === 'yes' ) : ?>
<div class="col2-set" id="customer_login">
<div class="col-1">
<?php endif; ?>
<h2><?php _e( 'Login', 'woocommerce' ); ?></h2>
<form method="post" class="login">
<?php do_action( 'woocommerce_login_form_start' ); ?>
<p class="form-row form-row-wide">
<label for="username"><?php _e( 'Username or email address', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="text" class="input-text" name="username" id="username" value="<?php if ( ! empty( $_POST['username'] ) ) echo esc_attr( $_POST['username'] ); ?>" />
</p>
<p class="form-row form-row-wide">
<label for="password"><?php _e( 'Password', 'woocommerce' ); ?> <span class="required">*</span></label>
<input class="input-text" type="password" name="password" id="password" />
</p>
<?php do_action( 'woocommerce_login_form' ); ?>
<p class="form-row">
<?php wp_nonce_field( 'woocommerce-login' ); ?>
<input type="submit" class="button" name="login" value="<?php esc_attr_e( 'Login', 'woocommerce' ); ?>" />
<label for="rememberme" class="inline">
<input name="rememberme" type="checkbox" id="rememberme" value="forever" /> <?php _e( 'Remember me', 'woocommerce' ); ?>
</label>
</p>
<p class="lost_password">
<a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php _e( 'Lost your password?', 'woocommerce' ); ?></a>
</p>
<?php do_action( 'woocommerce_login_form_end' ); ?>
</form>
<?php if ( get_option( 'woocommerce_enable_myaccount_registration' ) === 'yes' ) : ?>
</div>
<div class="col-2">
<h2><?php _e( 'Register', 'woocommerce' ); ?></h2>
<form method="post" class="register">
<?php do_action( 'woocommerce_register_form_start' ); ?>
<?php if ( 'no' === get_option( 'woocommerce_registration_generate_username' ) ) : ?>
<p class="form-row form-row-wide">
<label for="reg_username"><?php _e( 'Username', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="text" class="input-text" name="username" id="reg_username" value="<?php if ( ! empty( $_POST['username'] ) ) echo esc_attr( $_POST['username'] ); ?>" />
</p>
<?php endif; ?>
<p class="form-row form-row-wide">
<label for="reg_email"><?php _e( 'Email address', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="email" class="input-text" name="email" id="reg_email" value="<?php if ( ! empty( $_POST['email'] ) ) echo esc_attr( $_POST['email'] ); ?>" />
</p>
<?php if ( 'no' === get_option( 'woocommerce_registration_generate_password' ) ) : ?>
<p class="form-row form-row-wide">
<label for="reg_password"><?php _e( 'Password', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="password" class="input-text" name="password" id="reg_password" />
</p>
<?php endif; ?>
<!-- Spam Trap -->
<div style="<?php echo ( ( is_rtl() ) ? 'right' : 'left' ); ?>: -999em; position: absolute;"><label for="trap"><?php _e( 'Anti-spam', 'woocommerce' ); ?></label><input type="text" name="email_2" id="trap" tabindex="-1" /></div>
<?php do_action( 'woocommerce_register_form' ); ?>
<?php do_action( 'register_form' ); ?>
<p class="form-row">
<?php wp_nonce_field( 'woocommerce-register' ); ?>
<input type="submit" class="button" name="register" value="<?php esc_attr_e( 'Register', 'woocommerce' ); ?>" />
</p>
<?php do_action( 'woocommerce_register_form_end' ); ?>
</form>
</div>
</div>
<?php endif; ?>
<?php do_action( 'woocommerce_after_customer_login_form' ); ?>
--- END SECTION ---
Whet can i 3 put this snippet :
--- START SECTION ---
if( isset( $_GET['action']) && $_GET['action'] == "register"){
// Section for registration
}else {
// Section for Login form
}
--- END 2 START
and this URL
--- START SECTION ---
<a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '?action=register"> register </a>
--- END 1 SECTION ---
I finally figured out the code to have separate 12 registration and login pages via individual 11 links in the header.
You will need to edit 10 2 files in your child theme:
functions.php
andform-login.php
I have attached 9 txt files for the code
1) functions.php: You want to create 8 a register link in the header that links 7 to the login page but also sets an action 6 indicating you have clicked register. So 5 this:
$aux_links_output .= ''. __("Login", "swiftframework") .''. "\n";
becomes this:
$aux_links_output .= ''. __("Login", "swiftframework") .''. "\n";
$aux_links_output .= ''. __("Register", "swiftframework") .''. "\n";
2) form-login.php code: Here you want 4 to create an if,else statement. If you clicked 3 register then goto register page, else goto 2 login page:
<?php if( isset( $_GET['action']) && $_GET['action'] == "register") : ?>
Section for registration
<?php else : ?>
Section 1 for Login form
<?php endif; ?>
Be careful of the wrappings
Thanks
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.