/var/www/html_fr/wp-content/plugins/yaymail/src/Shortcodes/ResetPasswordsShortcodes.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?php

namespace YayMail\Shortcodes;

use 
YayMail\Abstracts\BaseShortcode;
use 
YayMail\Utils\SingletonTrait;

/**
 * @method: static ResetPasswordsShortcodes get_instance()
 */
class ResetPasswordsShortcodes extends BaseShortcode {
    use 
SingletonTrait;

    public 
$available_email_ids = [
        
'customer_reset_password',
    ];

    public function 
get_shortcodes() {
        
$shortcodes[] = [
            
'name'        => '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 ) {

        
$template = ! empty( $data['template'] ) ? $data['template'] : null;

        
$text_link_color = ! empty( $template ) ? $template->get_text_link_color() : YAYMAIL_COLOR_WC_DEFAULT;

        
$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"<a style='color:$text_link_color' href='$link_reset'> $link_text </a>" );
        }

        
$user = new \WP_Userintval$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"<a style='color:$text_link_color' href='$link_reset'> $link_text </a>" );
    }

    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_urlget_home_url() . '/my-account/lost-password' );
        }

        if ( empty( 
$render_data['reset_key'] ) && empty( $render_data['email'] ) ) {
            return 
'';
        }

        
$user = new \WP_Userintval$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_urlget_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 
'';
    }
}