PluginProbe
YayMail – WooCommerce Email Customizer / trunk
YayMail – WooCommerce Email Customizer vtrunk
4.4.4 4.4.3 4.4.2 4.4.1 trunk 1.9.6 2.1.4 2.1.5 3.2.2 3.2.6 3.2.7.1 3.2.8.1 3.2.9 3.3 3.3.1 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4 3.4.1 3.4.2 3.4.3 All 55 releases
yaymail / src / Shortcodes / ResetPasswordsShortcodes.php

ResetPasswordsShortcodes.php in YayMail – WooCommerce Email Customizer trunk, at src/Shortcodes/ResetPasswordsShortcodes.php

117 lines 4.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace YayMail\Shortcodes;
4
5 use YayMail\Abstracts\BaseShortcode;
6 use YayMail\Utils\SingletonTrait;
7
8 /**
9 * @method: static ResetPasswordsShortcodes get_instance()
10 */
11 class ResetPasswordsShortcodes extends BaseShortcode {
12 use SingletonTrait;
13
14 public $available_email_ids = [
15 'customer_reset_password',
16 ];
17
18 public function get_shortcodes() {
19 $shortcodes[] = [
20 'name' => 'yaymail_password_reset_link',
21 'description' => __( 'Click here to reset your password', 'woocommerce' ),
22 'group' => 'reset_passwords',
23 'callback' => [ $this, 'yaymail_password_reset_link' ],
24 ];
25 $shortcodes[] = [
26 'name' => 'yaymail_password_reset_url',
27 'description' => __( 'Password Reset URL (String)', 'yaymail' ),
28 'group' => 'reset_passwords',
29 'callback' => [ $this, 'yaymail_password_reset_url' ],
30 ];
31 $shortcodes[] = [
32 'name' => 'yaymail_wp_password_reset_url',
33 'description' => __( 'Password Reset URL by WP', 'yaymail' ),
34 'group' => 'reset_passwords',
35 'callback' => [ $this, 'yaymail_wp_password_reset_url' ],
36 ];
37 return $shortcodes;
38 }
39
40 public function yaymail_password_reset_link( $data ) {
41
42 $render_data = isset( $data['render_data'] ) ? $data['render_data'] : [];
43
44 $link_text = esc_html__( 'Click here to reset your password', 'woocommerce' );
45
46 if ( ! empty( $render_data['is_sample'] ) || ( empty( $render_data['reset_key'] ) && empty( $render_data['email'] ) ) ) {
47 /**
48 * Is sample order
49 */
50
51 $link_reset = get_home_url() . '/my-account/lost-password';
52
53 return wp_kses_post( "<a href='$link_reset'> $link_text </a>" );
54 }
55
56 $user = new \WP_User( intval( $render_data['email']->user_id ) );
57
58 $link_reset = add_query_arg(
59 [
60 'key' => $render_data['reset_key'],
61 'id' => $user->ID,
62 ],
63 wc_get_endpoint_url( 'lost-password', '', wc_get_page_permalink( 'myaccount' ) )
64 );
65
66 return wp_kses_post( "<a href='$link_reset'> $link_text </a>" );
67 }
68
69 public function yaymail_password_reset_url( $data ) {
70
71 $render_data = isset( $data['render_data'] ) ? $data['render_data'] : [];
72
73 if ( ! empty( $render_data['is_sample'] ) || ( empty( $render_data['reset_key'] ) && empty( $render_data['email'] ) ) ) {
74 /**
75 * Is sample order
76 */
77 return esc_url( get_home_url() . '/my-account/lost-password' );
78 }
79
80 if ( empty( $render_data['reset_key'] ) && empty( $render_data['email'] ) ) {
81 return '';
82 }
83
84 $user = new \WP_User( intval( $render_data['email']->user_id ) );
85
86 $link_reset = add_query_arg(
87 [
88 'key' => $render_data['reset_key'],
89 'id' => $user->ID,
90 ],
91 wc_get_endpoint_url( 'lost-password', '', wc_get_page_permalink( 'myaccount' ) )
92 );
93
94 return esc_url( $link_reset );
95 }
96
97 public function yaymail_wp_password_reset_url( $data ) {
98
99 $render_data = isset( $data['render_data'] ) ? $data['render_data'] : [];
100
101 if ( ! empty( $render_data['is_sample'] ) ) {
102 /**
103 * Is sample order
104 */
105 return esc_url( get_home_url() . '/my-account/lost-password' );
106 }
107
108 if ( isset( $render_data['email']->user_login ) && isset( $render_data['email']->user_data ) && isset( $render_data['email']->key ) ) {
109 $locale = get_user_locale( $render_data['email']->user_data );
110 $key = $render_data['email']->key;
111 $user_login = $render_data['email']->user_login;
112 return network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . '&wp_lang=' . $locale;
113 }
114 return '';
115 }
116 }
117