';
// print_r( $_POST );
// echo '';
// wp_die();
// this returns the user ID and other info from the user name
$user = get_userdatabylogin( $_POST['ambprog_user_login'] );
if(!$user) {
// if the user name doesn't exist
ambprog_errors()->add('empty_username', __('Invalid username'));
}
if(!isset($_POST['ambprog_user_pass']) || $_POST['ambprog_user_pass'] == '') {
// if no password was entered
ambprog_errors()->add('empty_password', __('Please enter a password'));
}
// check the user's login with their password
if(!wp_check_password($_POST['ambprog_user_pass'], $user->user_pass, $user->ID)) {
// if the password is incorrect for the specified user
ambprog_errors()->add('empty_password', __('Incorrect password'));
}
// retrieve all error messages
$errors = ambprog_errors()->get_error_messages();
// only log the user in if there are no errors
if(empty($errors)) {
wp_setcookie( $_POST['ambprog_user_login'], $_POST['ambprog_user_pass'], true );
wp_set_current_user( $user->ID, $_POST['ambprog_user_login'] );
do_action( 'wp_login', $_POST['ambprog_user_login'] );
wp_redirect( $_POST['ambprog_login_redirect'] ); exit;
}
}
}
add_action('init', 'ambprog_login_member');
// register a new user
function ambprog_add_new_member() {
if ( isset( $_POST["ambprog_user_login"] ) &&
wp_verify_nonce( $_POST['ambprog_register_nonce'], 'ambprog-register-nonce' ) ) {
$user_login = $_POST["ambprog_user_login"];
$user_email = $_POST["ambprog_user_email"];
$user_first = $_POST["ambprog_user_first"];
$user_last = $_POST["ambprog_user_last"];
$user_pass = $_POST["ambprog_user_pass"];
$pass_confirm = $_POST["ambprog_user_pass_confirm"];
if(username_exists($user_login)) {
// Username already registered
ambprog_errors()->add('username_unavailable', __('Username already taken'));
}
if(!validate_username($user_login)) {
// invalid username
ambprog_errors()->add('username_invalid', __('Invalid username'));
}
if($user_login == '') {
// empty username
ambprog_errors()->add('username_empty', __('Please enter a username'));
}
if(!is_email($user_email)) {
//invalid email
ambprog_errors()->add('email_invalid', __('Invalid email'));
}
if(email_exists($user_email)) {
//Email address already registered
ambprog_errors()->add('email_used', __('Email already registered'));
}
if($user_pass == '') {
// passwords do not match
ambprog_errors()->add('password_empty', __('Please enter a password'));
}
if($user_pass != $pass_confirm) {
// passwords do not match
ambprog_errors()->add('password_mismatch', __('Passwords do not match'));
}
$errors = ambprog_errors()->get_error_messages();
// only create the user in if there are no errors
if(empty($errors)) {
$new_user_id = wp_insert_user(array(
'user_login' => $user_login,
'user_pass' => $user_pass,
'user_email' => $user_email,
'first_name' => $user_first,
'last_name' => $user_last,
'user_registered' => date('Y-m-d H:i:s'),
'role' => 'subscriber'
)
);
if($new_user_id) {
// send an email to the admin alerting them of the registration
wp_new_user_notification( $new_user_id );
// log the new user in
wp_setcookie($user_login, $user_pass, true);
wp_set_current_user( $new_user_id, $user_login );
do_action( 'ambrog_after_register', $new_user_id );
do_action('wp_login', $user_login);
// send the newly created user to the home page after logging them in
wp_redirect( $_POST['ambprog_redirect'] ); exit;
}
}
}
}
add_action('init', 'ambprog_add_new_member');
function ambprog_after_register_test( $user_id )
{
if( $user_id < 1 )
return;
$first_name = $_POST['ambprog_user_first'];
$last_name = $_POST['ambprog_user_last'];
$full_name = $first_name . ' ' . $last_name;
$profile_args = array(
'post_type' => 'ambprog_profiles',
'post_author' => $user_id,
'post_status' => 'pending',
'post_name' => $_POST['ambprog_user_login'],
'post_title' => $full_name
);
$post_id = wp_insert_post( $profile_args );
}
add_action( 'ambrog_after_register', 'ambprog_after_register_test' );
// used for tracking error messages
function ambprog_errors(){
static $wp_error; // Will hold global variable safely
return isset( $wp_error ) ? $wp_error : ( $wp_error = new WP_Error( null, null, null ) );
}
// displays error messages from form submissions
function ambprog_show_error_messages() {
if( $codes = ambprog_errors()->get_error_codes() ) {
echo '';
// Loop error codes and display errors
foreach( $codes as $code ) {
$message = ambprog_errors()->get_error_message( $code );
echo '' . __( 'Error' ) . ': ' . $message . '
';
}
echo '
';
}
}
/**
* Load our CSS file if the global variable is present.
* @return [type] [description]
*/
function ambprog_print_css() {
global $ambprog_load_css, $ambprog_load_dashboard_css;
// this variable is set to TRUE if the short code is used on a page/post
if ( ! $ambprog_load_css )
return; // this means that neither short code is present, so we get out of here
wp_print_styles('ambprog-form-css');
if( ! $ambprog_load_dashboard_css )
return;
wp_print_styles( 'ambprog-dashboard-css' );
}
add_action('wp_footer', 'ambprog_print_css');
/**
* Load our CSS file if the global variable is present.
* @return [type] [description]
*/
function ambprog_print_dashboard_css() {
global $ambprog_load_dashboard_css;
// this variable is set to TRUE if the short code is used on a page/post
if( ! $ambprog_load_dashboard_css )
return;
wp_print_styles( 'ambprog-dashboard-css' );
}
add_action('wp_footer', 'ambprog_print_dashboard_css');