Hi to everyone. First at all, sorry for my english. Well...I was looking for this (inserting a login / registration form into a page) for a while. I found some plugins to do it but no one fills my entire goals. So, what I'm currently doing is inserting the form coding it manually. Yes...manually!
The basic steps I follow are next:
1) Go to login / registration url.
2) Look at source code and copy it (only form part).
3) Put this code into a php template file.
4) Clean the code.
5) Validate the fields via ajax (jQuery). Currently I'm not able to validate existing emails via ajax but I will explain how to do it in next steps or inserting and password strength meter (I don't know how to do it).
6) Insert a hidden field with redirect_to value.
Then, I open wp-login.php page and go to this part:
} elseif ( email_exists( $user_email ) ) {
$errors->add( 'email_exists', __( '<strong>ERROR</strong>: This email is already registered, please choose another one.' ) );
}
and edited like this
} elseif ( email_exists( $user_email ) ) {
wp_redirect(('LINK_TO_THE_PAGE_WITH_REGISTRATION_FORM/?action=registeredEmail') );
$errors->add( 'email_exists', __( '<strong>ERROR</strong>: This email is already registered, please choose another one.' ) );
}
Note the variable "registeredEmail". So, I put a conditional php tag that shows the error message into my template file. Something like this:
<?php if($_GET['action']=="registeredEmail") { ?>
<div class="errorForm" id="errorEmail">Email account is already registered. Please, enter another email address</div>
<?php } else { ?>
<div class="errorForm" id="errorEmail"></div>
<?php } ?>
That's all. I know that maybe this is not the best solution or that this process can be perfectioned. It is working for me.
You can also that a look at this post
http://wordpress.org/support/topic/alternative-registration-page?replies=4
I don't tested it yet but It looks good.
Hope this helps you.
ps: once again, sorry for my english.