1 <?php
2 3 4 5 6 7 8 9 10
11
12
13 if ( ! defined( 'ABSPATH' ) ) exit;
14
15 16 17 18 19 20 21 22 23
24 function edd_login_form( $redirect = '' ) {
25 global $edd_options, $post;
26
27 if ( $redirect == '' ) {
28 $redirect = edd_get_current_page_url();
29 }
30
31 ob_start();
32
33 if ( ! is_user_logged_in() ) { ?>
34 <?php
35
36 edd_print_errors(); ?>
37 <form id="edd_login_form" class="edd_form" action="" method="post">
38 <fieldset>
39 <legend><?php _e( 'Log into Your Account', 'edd' ); ?></legend>
40 <?php do_action('edd_checkout_login_fields_before');?>
41 <p>
42 <label for="edd_user_Login"><?php _e( 'Username', 'edd' ); ?></label>
43 <input name="edd_user_login" id="edd_user_login" class="required" type="text" title="<?php _e( 'Username', 'edd' ); ?>"/>
44 </p>
45 <p>
46 <label for="edd_user_pass"><?php _e( 'Password', 'edd' ); ?></label>
47 <input name="edd_user_pass" id="edd_user_pass" class="password required" type="password"/>
48 </p>
49 <p>
50 <input type="hidden" name="edd_redirect" value="<?php echo $redirect; ?>"/>
51 <input type="hidden" name="edd_login_nonce" value="<?php echo wp_create_nonce( 'edd-login-nonce' ); ?>"/>
52 <input type="hidden" name="edd_action" value="user_login"/>
53 <input id="edd_login_submit" type="submit" class="edd_submit" value="<?php _e( 'Login', 'edd' ); ?>"/>
54 </p>
55 <p class="edd-lost-password">
56 <a href="<?php echo wp_lostpassword_url(); ?>" title="<?php _e( 'Lost Password', 'edd' ); ?>">
57 <?php _e( 'Lost Password?', 'edd' ); ?>
58 </a>
59 </p>
60 <?php do_action('edd_checkout_login_fields_after');?>
61 </fieldset>
62 </form>
63 <?php
64 } else {
65 echo '<p class="edd-logged-in">' . __('You are already logged in', 'edd' ) . '</p>';
66 }
67 return ob_get_clean();
68 }
69
70 71 72 73 74 75 76
77 function edd_process_login_form( $data ) {
78 if ( wp_verify_nonce( $data['edd_login_nonce'], 'edd-login-nonce' ) ) {
79 $user_data = get_user_by( 'login', $data['edd_user_login'] );
80 if ( $user_data ) {
81 $user_ID = $user_data->ID;
82 $user_email = $user_data->user_email;
83 if ( wp_check_password( $data['edd_user_pass'], $user_data->user_pass, $user_data->ID ) ) {
84 edd_log_user_in( $user_data->ID, $data['edd_user_login'], $data['edd_user_pass'] );
85 } else {
86 edd_set_error( 'password_incorrect', __('The password you entered is incorrect', 'edd' ) );
87 }
88 } else {
89 edd_set_error( 'username_incorrect', __('The username you entered does not exist', 'edd' ) );
90 }
91
92 $errors = edd_get_errors();
93 if ( ! $errors ) {
94 $redirect = apply_filters( 'edd_login_redirect', $data['edd_redirect'], $user_ID );
95 wp_redirect( $redirect );
96 exit;
97 }
98 }
99 }
100 add_action( 'edd_user_login', 'edd_process_login_form' );
101
102 103 104 105 106 107 108 109 110
111 function edd_log_user_in( $user_id, $user_login, $user_pass ) {
112 if ( $user_id < 1 )
113 return;
114
115 wp_set_auth_cookie( $user_id );
116 wp_set_current_user( $user_id, $user_login );
117 do_action( 'wp_login', $user_login, get_userdata( $user_id ) );
118 do_action( 'edd_log_user_in', $user_id, $user_login, $user_pass );
119 }
120