PluginProbe ʕ •ᴥ•ʔ
Download Manager / trunk
Download Manager vtrunk
3.3.61 3.3.60 3.3.59 3.3.58 3.3.57 3.3.56 trunk 2.1.3 2.3.0 2.5.96 2.5.97 2.6.2 2.6.96 2.8.3 2.9.99 3.0.4 3.1.05 3.1.07 3.1.08 3.1.11 3.1.12 3.1.14 3.1.17 3.1.18 3.1.22 3.1.23 3.1.24 3.1.25 3.1.26 3.1.27 3.1.28 3.2.04 3.2.13 3.2.14 3.2.16 3.2.18 3.2.19 3.2.21 3.2.22 3.2.23 3.2.24 3.2.25 3.2.27 3.2.28 3.2.29 3.2.30 3.2.31 3.2.32 3.2.33 3.2.34 3.2.35 3.2.37 3.2.38 3.2.39 3.2.40 3.2.41 3.2.42 3.2.43 3.2.44 3.2.45 3.2.46 3.2.47 3.2.48 3.2.49 3.2.50 3.2.51 3.2.52 3.2.53 3.2.54 3.2.55 3.2.56 3.2.57 3.2.58 3.2.59 3.2.60 3.2.61 3.2.63 3.2.64 3.2.65 3.2.66 3.2.67 3.2.68 3.2.69 3.2.70 3.2.71 3.2.72 3.2.73 3.2.74 3.2.75 3.2.76 3.2.77 3.2.78 3.2.79 3.2.80 3.2.81 3.2.82 3.2.83 3.2.84 3.2.85 3.2.86 3.2.87 3.2.88 3.2.89 3.2.90 3.2.91 3.2.92 3.2.93 3.2.94 3.2.95 3.2.96 3.2.97 3.2.98 3.2.99 3.3.00 3.3.01 3.3.02 3.3.03 3.3.04 3.3.05 3.3.06 3.3.07 3.3.08 3.3.09 3.3.10 3.3.11 3.3.12 3.3.13 3.3.14 3.3.15 3.3.16 3.3.17 3.3.18 3.3.19 3.3.20 3.3.21 3.3.22 3.3.23 3.3.24 3.3.25 3.3.26 3.3.27 3.3.28 3.3.29 3.3.30 3.3.31 3.3.32 3.3.33 3.3.34 3.3.35 3.3.36 3.3.37 3.3.38 3.3.39 3.3.40 3.3.41 3.3.42 3.3.43 3.3.44 3.3.45 3.3.46 3.3.47 3.3.48 3.3.49 3.3.50 3.3.51 3.3.52 3.3.53 3.3.54 3.3.55
download-manager / src / User / UserController.php
download-manager / src / User Last commit date
views 1 hour ago Dashboard.php 4 months ago EditProfile.php 5 months ago Login.php 4 months ago PublicProfile.php 5 months ago Register.php 5 months ago User.php 2 months ago UserController.php 4 months ago
UserController.php
185 lines
1 <?php
2
3
4 namespace WPDM\User;
5
6
7 use WPDM\__\__;
8 use WPDM\__\__MailUI;
9 use WPDM\__\Email;
10 use WPDM\__\Template;
11
12 if(!defined("ABSPATH")) die("Shit happens!");
13
14 class UserController
15 {
16 private static $instance;
17
18 public $data;
19 public $dashboard;
20 public $login;
21 public $register;
22 public $profile;
23 public $authorDashboard;
24 public $editProfile;
25
26 public static function getInstance()
27 {
28 if (self::$instance === null) {
29 self::$instance = new self;
30 }
31 return self::$instance;
32 }
33
34 private function __construct()
35 {
36
37 $this->data = User::getInstance();
38 $this->login = Login::getInstance();
39 $this->register = Register::getInstance();
40 $this->profile = PublicProfile::getInstance();
41 $this->dashboard = Dashboard::getInstance();
42 $this->editProfile = EditProfile::getInstance();
43
44 add_filter('manage_users_columns', [$this, 'addUserColumns']);
45 add_filter('manage_users_custom_column', [$this, 'addUserColumnData'], 9999, 3);
46
47 add_action('wp_ajax_wpdmdz_user_status', [$this, 'reviewUserStatus']);
48 add_action('wp_ajax_wpdmdz_update_user_status', [$this, 'updateUserStatus']);
49
50 add_action('personal_options', [$this, 'reviewUserStatusEP']);
51 }
52
53 /**
54 *
55 *
56 */
57 public function addUserColumns($column)
58 {
59 $column['wpdm_user_status'] = __('Status', WPDM_TEXT_DOMAIN);
60 return $column;
61 }
62
63
64 /**
65 *
66 *
67 */
68 public function addUserColumnData($output, $column_name, $user_id)
69 {
70 switch ($column_name) {
71 case 'wpdm_user_status':
72 $colors = ['' => 'success', 'approved' => 'success', 'pending' => 'warinng', 'declined' => 'danger', 'suspended' => 'danger'];
73 $_status = get_user_meta($user_id, '__wpdm_user_status', true);
74 if(in_array($_status, ['', 'approved']))
75 $status = '<i class="fa-solid fa-check-double"></i> '.__('Approved', WPDM_TEXT_DOMAIN);
76 else if($_status === 'pending')
77 $status = '<i class="fa-solid fa-clock"></i> '.__('Pending', WPDM_TEXT_DOMAIN);
78 else if($_status === 'declined')
79 $status = '<i class="fa-solid fa-times-circle"></i> '.__('Declined', WPDM_TEXT_DOMAIN);
80 else
81 $status = '<i class="fa-solid fa-ban"></i> Suspended';
82 $url = admin_url('admin-ajax.php?action=wpdmdz_user_status&user='.$user_id."&wpdmusnonce=".wp_create_nonce(WPDM_PRI_NONCE));
83 return "<div class='w3eden' id='usts-{$user_id}'><span onclick='WPDM.bootAlert(\"Review User Status\", {url: \"$url\"}, 500);' class='c-pointer text-{$colors[$_status]}'>".$status."</span></div>";
84 default:
85 }
86
87 return $output;
88 }
89
90 function requiresApproval()
91 {
92 return (int)get_option('__wpdm_signups_need_approval', 0);
93 }
94
95 function isApproved($userID)
96 {
97 $status = get_user_meta($userID, '__wpdm_user_status', true);
98 return in_array($status, ['', 'approved']);
99 }
100
101 function getStatus($userID)
102 {
103 $status = get_user_meta($userID, '__wpdm_user_status', true);
104 $status = $status ?: 'approved';
105 return $status;
106 }
107
108 function reviewUserStatus()
109 {
110 __::isAuthentic('wpdmusnonce', WPDM_PRI_NONCE, 'manage_options', true);
111 $id = __::query_var('user', 'int');
112 $user = get_user_by('id', $id);
113 $status = get_user_meta($id, '__wpdm_user_status', true);
114 include Template::locate("review-user-status.php", __DIR__.'/views');
115 die();
116 }
117
118 function reviewUserStatusEP($user)
119 {
120 $colors = ['' => 'success', 'approved' => 'success', 'pending' => 'warinng', 'declined' => 'danger', 'suspended' => 'danger'];
121 $_status = get_user_meta($user->ID, '__wpdm_user_status', true);
122 if(in_array($_status, ['', 'approved']))
123 $status = '<i class="fa-solid fa-check-double"></i> '.__('Approved', WPDM_TEXT_DOMAIN);
124 else if($_status === 'pending')
125 $status = '<i class="fa-solid fa-clock"></i> '.__('Pending', WPDM_TEXT_DOMAIN);
126 else if($_status === 'declined')
127 $status = '<i class="fa-solid fa-times-circle"></i> '.__('Declined', WPDM_TEXT_DOMAIN);
128 else
129 $status = '<i class="fa-solid fa-ban"></i> Suspended';
130 $url = admin_url('admin-ajax.php?action=wpdmdz_user_status&user='.$user->ID."&wpdmusnonce=".wp_create_nonce(WPDM_PRI_NONCE));
131
132 ?>
133 <div class="w3eden">
134 <div class="panel panel-default" style="display: inline-block">
135 <div class="panel-body">
136 <?php _e('Account status', WPDM_TEXT_DOMAIN); ?>: &nbsp;&nbsp;<strong id="usts-<?= $user->ID ?>"><span class="text-<?= $colors[$_status] ?>"><?= $status ?></span></strong>
137 </div>
138 <div class="panel-footer">
139 <button type="button" onclick="WPDM.bootAlert('Review User Status', {url: '<?= $url ?>'}, 500);" class="btn btn-block btn-info btn-sm"><?php _e('Update account status', WPDM_TEXT_DOMAIN); ?></button>
140 </div>
141 </div>
142 </div>
143 <?php
144 }
145
146 function updateUserStatus()
147 {
148 __::isAuthentic('__uscnonce', WPDM_PRI_NONCE, 'manage_options');
149 $id = __::query_var('user', 'int');
150 $user = get_user_by('id', $id);
151 $params = [ 'to_email' => $user->user_email, 'name' => $user->display_name, 'username' => $user->user_login, 'display_name' => $user->display_name, 'first_name' => $user->first_name, 'last_name' => $user->last_name, 'email' => $user->user_email ];
152
153 $status = '';
154 if(__::query_var('do') === 'approve') {
155 //$params['subject'] = __("Congratulation! Your signup request is approved", WPDM_TEXT_DOMAIN);
156 //$params['message'] = "Hello {$user->display_name},<br/>Congratulation!! Your signup request is approved! <hr/><a class='button green' href='".WPDM()->user->login->url()."'>Login</a>";
157 update_user_meta($id, '__wpdm_user_status', 'approved');
158 $status = 'approved';
159 }
160 if(__::query_var('do') === 'decline') {
161 //wp_delete_user($id);
162 update_user_meta($id, '__wpdm_user_status', 'declined');
163 //$params['subject'] = __("Your signup request is declined", WPDM_TEXT_DOMAIN);
164 //$params['message'] = "Hello {$user->display_name},<br/>Unfortunately we are unable to approve your signup!";
165 //if(__::query_var('reason', 'txt') !== '')
166 // $params['message'] .= __MailUI::panel("Reason", [wpautop(__::query_var('reason', 'kses'))]);
167 $params['reason'] = wpautop(__::query_var('reason', 'kses'));
168 $status = 'declined';
169 }
170 if(__::query_var('do') === 'suspend') {
171 //wp_delete_user($id);
172 update_user_meta($id, '__wpdm_user_status', 'suspended');
173 //$params['subject'] = __("Your account is suspended", WPDM_TEXT_DOMAIN);
174 //$params['message'] = "Hello {$user->display_name},<br/>Unfortunately your account is suspended!";
175 //if(__::query_var('reason', 'txt') !== '')
176 // $params['message'] .= __MailUI::panel("Reason", [wpautop(__::query_var('reason', 'kses'))]);
177 $params['reason'] = wpautop(__::query_var('reason', 'kses'));
178 $status = 'suspended';
179 }
180 Email::send("user-signup-{$status}", $params);
181 wp_send_json(['success' => true, 'status' => $status, 'msg' => __('Operation executed successfully', WPDM_TEXT_DOMAIN)]);
182 die();
183 }
184 }
185