forked from woocommerce/woocommerce
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
added lost password shortcode / email notification
I think the current process for a customer to reset their password is jarring, especially if the shop hasn't styled the wordpress login form to match their branding. The form process is mainly copied from the same process in wp-login.php and fires the same actions to maintain compatibility.
- Loading branch information
Showing
9 changed files
with
447 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
106 changes: 106 additions & 0 deletions
106
classes/emails/class-wc-email-customer-reset-password.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
<?php | ||
/** | ||
* Customer Reset Password | ||
* | ||
* An email sent to the customer when they reset their password. | ||
* | ||
* @class WC_Email_Customer_Reset_Password | ||
* @version 1.7.0 | ||
* @package WooCommerce/Classes/Emails | ||
* @author WooThemes | ||
* @extends WC_Email | ||
*/ | ||
class WC_Email_Customer_Reset_Password extends WC_Email { | ||
|
||
/** @var string */ | ||
var $user_login; | ||
|
||
/** @var string */ | ||
var $user_email; | ||
|
||
/** @var string */ | ||
var $reset_key; | ||
|
||
/** | ||
* Constructor | ||
* | ||
* @access public | ||
* @return void | ||
*/ | ||
function __construct() { | ||
|
||
$this->id = 'customer_reset_password'; | ||
$this->title = __( 'Reset password', 'woocommerce' ); | ||
$this->description = __( 'Customer reset password emails are sent when a customer resets their password.', 'woocommerce' ); | ||
|
||
$this->template_html = 'emails/customer-reset-password.php'; | ||
$this->template_plain = 'emails/plain/customer-reset-password.php'; | ||
|
||
$this->subject = __( 'Password Reset for {blogname}', 'woocommerce'); | ||
$this->heading = __( 'Password Reset Instructions for {blogname}', 'woocommerce'); | ||
|
||
// Trigger | ||
add_action( 'woocommerce_reset_password_notification', array( $this, 'trigger' ), 10, 2 ); | ||
|
||
// Call parent constuctor | ||
parent::__construct(); | ||
} | ||
|
||
/** | ||
* trigger function. | ||
* | ||
* @access public | ||
* @return void | ||
*/ | ||
function trigger( $user_login = '', $reset_key = '' ) { | ||
global $woocommerce; | ||
if ( $user_login && $reset_key ) { | ||
$this->object = get_user_by( 'login', $user_login ); | ||
|
||
$this->user_login = $user_login; | ||
$this->reset_key = $reset_key; | ||
$this->user_email = stripslashes( $this->object->user_email ); | ||
$this->recipient = $this->user_email; | ||
} | ||
|
||
if ( ! $this->is_enabled() || ! $this->get_recipient() ) | ||
return; | ||
|
||
$this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() ); | ||
|
||
} | ||
|
||
/** | ||
* get_content_html function. | ||
* | ||
* @access public | ||
* @return string | ||
*/ | ||
function get_content_html() { | ||
ob_start(); | ||
woocommerce_get_template( $this->template_html, array( | ||
'email_heading' => $this->get_heading(), | ||
'user_login' => $this->user_login, | ||
'reset_key' => $this->reset_key, | ||
'blogname' => $this->get_blogname() | ||
) ); | ||
return ob_get_clean(); | ||
} | ||
|
||
/** | ||
* get_content_plain function. | ||
* | ||
* @access public | ||
* @return string | ||
*/ | ||
function get_content_plain() { | ||
ob_start(); | ||
woocommerce_get_template( $this->template_plain, array( | ||
'email_heading' => $this->get_heading(), | ||
'user_login' => $this->user_login, | ||
'reset_key' => $this->reset_key, | ||
'blogname' => $this->get_blogname() | ||
) ); | ||
return ob_get_clean(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.