/var/www/hkosl.com/aga/wp-content/plugins/simple-membership/classes/class.swpm-registration.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
<?php

/**
 * Description of BRegistration
 *
 * @author nur
 */
abstract class SwpmRegistration {

    protected 
$member_info = array();
    var 
$email_activation false;
    protected static 
$_intance null;

    
//public abstract static function get_instance();
    
protected function send_reg_email() {
        global 
$wpdb;
        if (empty(
$this->member_info)) {
            return 
false;
        }

        
$member_info $this->member_info;
        
$settings SwpmSettings::get_instance();
        
$subject $settings->get_value('reg-complete-mail-subject');
        
$body $settings->get_value('reg-complete-mail-body');

        if (
$this->email_activation) {
            
$swpm_user SwpmMemberUtils::get_user_by_user_name($member_info['user_name']);
            
$member_id $swpm_user->member_id;
            
$act_code md5(uniqid() . $member_id);
            
$enc_pass SwpmUtils::crypt($member_info['plain_password']);
            
$user_data = array('timestamp' => time(), 'act_code' => $act_code'plain_password' => $enc_pass);
            
$user_data apply_filters('swpm_email_activation_data'$user_data);
            
update_option('swpm_email_activation_data_usr_' $member_id$user_datafalse);
            
$body $settings->get_value('email-activation-mail-body');
            
$subject $settings->get_value('email-activation-mail-subject');
            
$activation_link add_query_arg(array(
                
'swpm_email_activation' => '1',
                
'swpm_member_id' => $member_id,
                
'swpm_token' => $act_code,
                    ), 
get_home_url());
            
$member_info['activation_link'] = $activation_link;
        }

        
$from_address $settings->get_value('email-from');
        
$login_link $settings->get_value('login-page-url');
        
$headers 'From: ' $from_address "\r\n";
        
$member_info['membership_level_name'] = SwpmPermission::get_instance($member_info['membership_level'])->get('alias');
        
$member_info['password'] = $member_info['plain_password'];
        
$member_info['login_link'] = $login_link;
        
$values array_values($member_info);
        
$keys array_map('swpm_enclose_var'array_keys($member_info));
        
$body html_entity_decode($body);
        
$body str_replace($keys$values$body);

        
$swpm_user SwpmMemberUtils::get_user_by_user_name($member_info['user_name']);
        
$member_id $swpm_user->member_id;
        
$body SwpmMiscUtils::replace_dynamic_tags($body$member_id); //Do the standard merge var replacement.

        
$email sanitize_email(filter_input(INPUT_POST'email'FILTER_UNSAFE_RAW));

        if (empty(
$email)) {
            
$email $swpm_user->email;
        }

        
$body apply_filters('swpm_registration_complete_email_body'$body); //This filter can be used to modify the registration complete email body dynamically.
        //Send notification email to the member
        
$subject apply_filters('swpm_email_registration_complete_subject'$subject);
        
$body apply_filters('swpm_email_registration_complete_body'$body); //You can override the email to empty to disable this email.
        
if (!empty($body)) {
            
wp_mail(trim($email), $subject$body$headers);
            
SwpmLog::log_simple_debug('Member registration complete email sent to: ' $email '. From email address value used: ' $from_addresstrue);
        } else {
            
SwpmLog::log_simple_debug('NOTICE: Registration complete email body value is empty. Member registration complete email will NOT be sent.'true);
        }

        if (
$settings->get_value('enable-admin-notification-after-reg') && !$this->email_activation) {
            
//Send notification email to the site admin
            
$admin_notification $settings->get_value('admin-notification-email');
            
$admin_notification = empty($admin_notification) ? $from_address $admin_notification;
            
$notify_emails_array explode(","$admin_notification);

            
$headers 'From: ' $from_address "\r\n";

            
$admin_notify_subject $settings->get_value('reg-complete-mail-subject-admin');
            if (empty(
$admin_notify_subject)) {
                
$admin_notify_subject "Notification of New Member Registration";
            }

            
$admin_notify_body $settings->get_value('reg-complete-mail-body-admin');
            if (empty(
$admin_notify_body)) {
                
$admin_notify_body "A new member has completed the registration.\n\n" .
                        
"Username: {user_name}\n" .
                        
"Email: {email}\n\n" .
                        
"Please login to the admin dashboard to view details of this user.\n\n" .
                        
"You can customize this email message from the Email Settings menu of the plugin.\n\n" .
                        
"Thank You";
            }
            
$additional_args = array('password' => $member_info['plain_password']);
            
$admin_notify_body SwpmMiscUtils::replace_dynamic_tags($admin_notify_body$member_id$additional_args); //Do the standard merge var replacement.

            
foreach ($notify_emails_array as $to_email) {
                
$to_email trim($to_email);
                
$admin_notify_subject apply_filters('swpm_email_admin_notify_subject'$admin_notify_subject);
                
$admin_notify_body apply_filters('swpm_email_admin_notify_body'$admin_notify_body);
                
wp_mail($to_email$admin_notify_subject$admin_notify_body$headers);
                
SwpmLog::log_simple_debug('Admin notification email sent to: ' $to_emailtrue);
            }
        }
        return 
true;
    }

}

function 
swpm_enclose_var($n) {
    return 
'{' $n '}';
}