'yaymail_password_reset_link',
'description' => __( 'Click here to reset your password', 'woocommerce' ),
'group' => 'reset_passwords',
'callback' => [ $this, 'yaymail_password_reset_link' ],
];
$shortcodes[] = [
'name' => 'yaymail_password_reset_url',
'description' => __( 'Password Reset URL (String)', 'yaymail' ),
'group' => 'reset_passwords',
'callback' => [ $this, 'yaymail_password_reset_url' ],
];
$shortcodes[] = [
'name' => 'yaymail_wp_password_reset_url',
'description' => __( 'Password Reset URL by WP', 'yaymail' ),
'group' => 'reset_passwords',
'callback' => [ $this, 'yaymail_wp_password_reset_url' ],
];
return $shortcodes;
}
public function yaymail_password_reset_link( $data ) {
$render_data = isset( $data['render_data'] ) ? $data['render_data'] : [];
$link_text = esc_html__( 'Click here to reset your password', 'woocommerce' );
if ( ! empty( $render_data['is_sample'] ) || ( empty( $render_data['reset_key'] ) && empty( $render_data['email'] ) ) ) {
/**
* Is sample order
*/
$link_reset = get_home_url() . '/my-account/lost-password';
return wp_kses_post( " $link_text " );
}
$user = new \WP_User( intval( $render_data['email']->user_id ) );
$link_reset = add_query_arg(
[
'key' => $render_data['reset_key'],
'id' => $user->ID,
],
wc_get_endpoint_url( 'lost-password', '', wc_get_page_permalink( 'myaccount' ) )
);
return wp_kses_post( " $link_text " );
}
public function yaymail_password_reset_url( $data ) {
$render_data = isset( $data['render_data'] ) ? $data['render_data'] : [];
if ( ! empty( $render_data['is_sample'] ) || ( empty( $render_data['reset_key'] ) && empty( $render_data['email'] ) ) ) {
/**
* Is sample order
*/
return esc_url( get_home_url() . '/my-account/lost-password' );
}
if ( empty( $render_data['reset_key'] ) && empty( $render_data['email'] ) ) {
return '';
}
$user = new \WP_User( intval( $render_data['email']->user_id ) );
$link_reset = add_query_arg(
[
'key' => $render_data['reset_key'],
'id' => $user->ID,
],
wc_get_endpoint_url( 'lost-password', '', wc_get_page_permalink( 'myaccount' ) )
);
return esc_url( $link_reset );
}
public function yaymail_wp_password_reset_url( $data ) {
$render_data = isset( $data['render_data'] ) ? $data['render_data'] : [];
if ( ! empty( $render_data['is_sample'] ) ) {
/**
* Is sample order
*/
return esc_url( get_home_url() . '/my-account/lost-password' );
}
if ( isset( $render_data['email']->user_login ) && isset( $render_data['email']->user_data ) && isset( $render_data['email']->key ) ) {
$locale = get_user_locale( $render_data['email']->user_data );
$key = $render_data['email']->key;
$user_login = $render_data['email']->user_login;
return network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . '&wp_lang=' . $locale;
}
return '';
}
}