Easy Digital Downloads
  • Package
  • Function
  • Tree

Packages

  • EDD
    • Admin
      • Actions
      • Add-ons
      • Dashboard
      • Discounts
      • Downloads
      • Export
      • Notices
      • Pages
      • Payments
      • Reports
      • Settings
      • System
      • Upgrades
      • Upload
      • Welcome
    • Cart
    • Checkout
    • Classes
      • API
      • Fees
      • HTML
      • Roles
      • Session
    • Emails
    • Functions
      • AJAX
      • Compatibility
      • Errors
      • Formatting
      • Install
      • Login
      • Taxes
      • Templates
    • Gateways
    • Logging
    • Payments
    • Shortcodes
    • Widgets

Functions

  • edd_log_user_in
  • edd_login_form
  • edd_process_login_form
  1 <?php
  2 /**
  3  * Login / Register Functions
  4  *
  5  * @package     EDD
  6  * @subpackage  Functions/Login
  7  * @copyright   Copyright (c) 2013, Pippin Williamson
  8  * @license     http://opensource.org/licenses/gpl-2.0.php GNU Public License
  9  * @since       1.0
 10  */
 11 
 12 // Exit if accessed directly
 13 if ( ! defined( 'ABSPATH' ) ) exit;
 14 
 15 /**
 16  * Login Form
 17  *
 18  * @since 1.0
 19  * @global $edd_options
 20  * @global $post
 21  * @param string $redirect Redirect page URL
 22  * @return string Login form
 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         // Show any error messages after form submission
 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  * Process Login Form
 72  *
 73  * @since 1.0
 74  * @param array $data Data sent from the login form
 75  * @return void
 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         // Check for errors and redirect if none present
 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  * Log User In
104  *
105  * @since 1.0
106  * @param int $user_id User ID
107  * @param string $user_login Username
108  * @param string $user_pass Password
109  * @return void
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 
Easy Digital Downloads API documentation generated by ApiGen 2.8.0