Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if ( $GLOBALS['pagenow'] === 'wp-login.php' && ! empty( $_REQUEST['action'] ) && $_REQUEST['action'] === 'register' ) {
- // We're registering
- }
- add_action('register_form', 'register_message');
- function register_message() {
- $html = '
- <div style="margin:5px 0;border:1px solid red;padding:5px">
- <p style="margin:5px 0;">
- Hello Cruncher..!! Use this form to reigster at Crunchify.com.
- </p>
- </div>';
- echo $html;
- }
- field to my form:
- //Add Custom Password Field
- $output .= '<div class="col-md-12 col-lg-12 col-sm-12 col-xs-12">';
- $output .='<label class="password">';
- $cs_opt_array = array(
- 'id' => '',
- 'std' => __('Password', 'jobhunt'),
- 'cust_id' => 'user_pass' . $rand_id,
- 'cust_name' => 'pass1',
- 'cust_type' => 'password',
- 'classes' => 'form-control',
- 'extra_atr' => ' size="100" tabindex="101" placeholder="' . __('Password*', 'jobhunt') . '"',
- 'return' => true,
- );
- $output .= $cs_form_fields2->cs_form_text_render($cs_opt_array);
- $output .='</label>';
- $output .= '</div>';
- $output .= '<div class="col-md-12 col-lg-12 col-sm-12 col-xs-12">';
- $output .='<label class="password">';
- $cs_opt_array = array(
- 'id' => '',
- 'std' => __('Password', 'jobhunt'),
- 'cust_id' => 'user_pass' . $rand_id,
- 'cust_name' => 'pass2',
- 'cust_type' => 'password',
- 'classes' => 'form-control',
- 'extra_atr' => ' size="100" tabindex="101" placeholder="' . __('Repeat Password*', 'jobhunt') . '"',
- 'return' => true,
- );
- $output .= $cs_form_fields2->cs_form_text_render($cs_opt_array);
- $output .='</label>';
- $output .= '</div>';
- //End
- After that i validate this two fields by below code:
- if ( empty( $_POST['pass1'] ) || ! empty( $_POST['pass1'] ) && trim( $_POST['pass1'] ) == '' ) {
- $json['type'] = "error";
- $json['message'] = $cs_danger_html . __('<strong>ERROR</strong>: Password field is required.') . $cs_msg_html;
- echo json_encode($json);
- exit();
- }
- if ( empty( $_POST['pass2'] ) || ! empty( $_POST['pass2'] ) && trim( $_POST['pass2'] ) == '' ) {
- $json['type'] = "error";
- $json['message'] = $cs_danger_html . __('<strong>ERROR</strong>: Confirm Password field is required.') . $cs_msg_html;
- echo json_encode($json);
- exit();
- }
- if ( $_POST['pass1'] != $_POST['pass2'] ) {
- $json['type'] = "error";
- $json['message'] = $cs_danger_html . __('<strong>ERROR</strong>: Password field and Confirm Password field do not match.') . $cs_msg_html;
- echo json_encode($json);
- exit();
- }
- $random_password = $_POST['pass1'];
- After validation its time to save the data in database and i used below code for saving the entered password:
- function mytheme_registration_save($user_id) {
- if ( isset($_REQUEST['action']) && $_REQUEST['action'] == 'register' ) {
- $random_password = $_POST['pass1'];
- wp_set_password($random_password, $user_id);
- $reg_user = get_user_by('ID', $user_id);
- if ( isset($reg_user->roles) && (in_array('subscriber', $reg_user->roles) || in_array('editor', $reg_user->roles) || in_array('author', $reg_user->roles)) ) {
- // Site owner email hook
- do_action('theme_domain_new_user_notification_site_owner', $reg_user->data->user_login, $reg_user->data->user_email);
- // normal user email hook
- do_action('theme_domain_user_register', $reg_user, $random_password);
- }
- }
- }
- }
- functions.php
- function wc_registration_redirect( $redirect_to ) {
- wp_logout();
- wp_redirect( '/sign-in/?q=');
- exit;
- }
- // when user login, we will check whether this guy email is verify
- function wp_authenticate_user( $userdata ) {
- $isActivated = get_user_meta($userdata->ID, 'is_activated', true);
- if ( !$isActivated ) {
- $userdata = new WP_Error(
- 'inkfool_confirmation_error',
- __( '<strong>ERROR:</strong> Your account has to be activated before you can login. You can resend by clicking <a href="/sign-in/?u='.$userdata->ID.'">here</a>', 'inkfool' )
- );
- }
- return $userdata;
- }
- // when a user register we need to send them an email to verify their account
- function my_user_register($user_id) {
- // get user data
- $user_info = get_userdata($user_id);
- // create md5 code to verify later
- $code = md5(time());
- // make it into a code to send it to user via email
- $string = array('id'=>$user_id, 'code'=>$code);
- // create the activation code and activation status
- update_user_meta($user_id, 'is_activated', 0);
- update_user_meta($user_id, 'activationcode', $code);
- // create the url
- $url = get_site_url(). '/sign-in/?p=' .base64_encode( serialize($string));
- // basically we will edit here to make this nicer
- $html = 'Please click the following links <br/><br/> <a href="'.$url.'">'.$url.'</a>';
- // send an email out to user
- wc_mail($user_info->user_email, __('Please activate your account'), $html);
- }
- // we need this to handle all the getty hacks i made
- function my_init(){
- // check whether we get the activation message
- if(isset($_GET['p'])){
- $data = unserialize(base64_decode($_GET['p']));
- $code = get_user_meta($data['id'], 'activationcode', true);
- // check whether the code given is the same as ours
- if($code == $data['code']){
- // update the db on the activation process
- update_user_meta($data['id'], 'is_activated', 1);
- wc_add_notice( __( '<strong>Success:</strong> Your account has been activated! ', 'inkfool' ) );
- }else{
- wc_add_notice( __( '<strong>Error:</strong> Activation fails, please contact our administrator. ', 'inkfool' ) );
- }
- }
- if(isset($_GET['q'])){
- wc_add_notice( __( '<strong>Error:</strong> Your account has to be activated before you can login. Please check your email.', 'inkfool' ) );
- }
- if(isset($_GET['u'])){
- my_user_register($_GET['u']);
- wc_add_notice( __( '<strong>Succes:</strong> Your activation email has been resend. Please check your email.', 'inkfool' ) );
- }
- }
- // hooks handler
- add_action( 'init', 'my_init' );
- add_filter('woocommerce_registration_redirect', 'wc_registration_redirect');
- add_filter('wp_authenticate_user', 'wp_authenticate_user',10,2);
- add_action('user_register', 'my_user_register',10,2);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement