PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 1.0.1
Taskbuilder – Project Management & Task Management Tool With Kanban Board v1.0.1
6.0.5 6.0.2 6.0.3 6.0.4 6.0.1 6.0.0 5.0.8 5.0.9 4.0.9 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 All 57 releases
taskbuilder / includes / class-wppm-functions.php

class-wppm-functions.php in Taskbuilder – Project Management & Task Management Tool With Kanban Board 1.0.1, at includes/class-wppm-functions.php

641 lines 27.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit; // Exit if accessed directly
4 }
5 if ( ! class_exists( 'WPPM_Functions' ) ) :
6 final class WPPM_Functions {
7 // Array sanitization
8 public static function sanitize_array($array) {
9 if(!empty($array)){
10 foreach ( $array as $key => $value ) {
11 if ( is_array( $value ) ) {
12 $value = $this->sanitize_array($value);
13 }
14 else {
15 $value = sanitize_text_field( $value );
16 }
17 }
18 }
19 return $array;
20 }
21
22 public static function create_project($args){
23 global $wpdb,$current_user;
24 $values = array(
25 'created_by'=>$current_user->ID,
26 'project_name'=>$args['name'],
27 'description'=>isset($args['wppm_proj_description']) ? $args['wppm_proj_description']:"",
28 'start_date'=>isset($args['wppm_start_date']) ?$args['wppm_start_date']:"",
29 'end_date'=>isset($args['wppm_end_date'])? $args['wppm_end_date']:"",
30 'status'=>'1',
31 'cat_id'=>isset($args['wppm_create_project_category']) ? $args['wppm_create_project_category']:"",
32 'users'=>isset($args['user_names']) ? implode(",",$args['user_names']):"",
33 'date_created'=>date("Y-m-d h:i:sa"),
34 );
35 $wpdb->insert($wpdb->prefix .'wppm_project', $values);
36 $project_id = $wpdb->insert_id;
37 return $project_id;
38 }
39
40 public static function create_task($args){
41 global $wpdb,$current_user,$wppmfunction;
42 $values = array(
43 'created_by'=>$current_user->ID,
44 'task_name'=>$args['name'],
45 'description'=>(isset($args['wppm_task_description']))?$args['wppm_task_description']:"",
46 'project'=>(isset($args['wppm_task_project']))?$args['wppm_task_project']:"",
47 'start_date'=>(isset($args['wppm_task_start_date']))?$args['wppm_task_start_date']:"",
48 'end_date'=>(isset($args['wppm_task_end_date']))?$args['wppm_task_end_date']:"",
49 'status'=>'1',
50 'priority'=>(isset($args['wppm_create_task_priority']))?$args['wppm_create_task_priority']:"",
51 'users'=>(!empty($args['user_names']))?implode(",",$args['user_names']):"",
52 'date_created'=>date("Y-m-d h:i:sa"),
53 'task_auth_code'=> $wppmfunction->getRandomString(10),
54 'active'=>1
55 );
56 $wpdb->insert($wpdb->prefix .'wppm_task', $values);
57 $task_id = $wpdb->insert_id;
58 return $task_id;
59 }
60
61 public static function wppm_submit_task_comment($args){
62 global $wpdb;
63 $wpdb->insert($wpdb->prefix.'wppm_task_comment',$args);
64 $comment_id = $wpdb->insert_id;
65 return $comment_id;
66 }
67
68 // Random string
69 public static function getRandomString($length = 8) {
70 $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
71 $string = '';
72 for ($i = 0; $i < $length; $i++) {
73 $string .= $characters[mt_rand(0, strlen($characters) - 1)];
74 }
75 return $string;
76 }
77
78 public static function wppm_get_auth_code($id){
79 global $wpdb;
80 $auth_code = $wpdb->get_var( "SELECT task_auth_code FROM {$wpdb->prefix}wppm_task where id=$id" );
81 $auth_code = isset($auth_code) ? $auth_code : "";
82 return $auth_code;
83 }
84
85 public static function get_task_fields($task_id,$select_field){
86 global $wpdb;
87 $task_field_value = '';
88 if (apply_filters('wppm_get_select_field',true,$task_id,$select_field)) {
89 $get_task_field_value = $wpdb->get_var(" SELECT $select_field FROM {$wpdb->prefix}wppm_task WHERE id='$task_id' ");
90 $task_field_value = $get_task_field_value ? $get_task_field_value : '';
91 }
92 return stripslashes($task_field_value);
93 }
94
95 public function get_task($task_id){
96 global $wpdb;
97 $task_data = array();
98 $task = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_task WHERE id='$task_id' ");
99 if( $task ){
100 $task_data = json_decode(json_encode($task), true);
101 }
102 return $task_data;
103 }
104
105 public function get_project($project_id){
106 global $wpdb;
107 $project_data = array();
108 $project = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project WHERE id='$project_id' ");
109 if( $project ){
110 $project_data = json_decode(json_encode($project), true);
111 }
112 return $project_data;
113 }
114
115 public function has_permission($permission, $task_id){
116 global $current_user,$wppmfunction,$wpdb;
117 if(empty($comment_id)){
118 $comment_id = 0;
119 }
120 $task_data = $wppmfunction->get_task($task_id);
121 $task_comment = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = $task_id AND id = $comment_id");
122
123 if(!empty($task_data['project'])){
124 $project_id = $task_data['project'];
125 $project_user_role = $wpdb->get_var("SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = $project_id AND user_id = $current_user->ID");
126 }
127 $response = false;
128 $flag = false;
129 if(!empty($task_data)){
130 $co_worker = $task_data['users'];
131 $co_worker_array = explode(",",$co_worker);
132 }
133 if((!empty($project_user_role)) && ($project_user_role == 1)){
134 $flag= true;
135 }
136 switch ($permission) {
137 case 'change_status':
138 case 'view_task':
139 ((!empty($co_worker_array)) && (in_array($current_user->ID,$co_worker_array )) )|| ($current_user->ID == $task_data['created_by']) || ($flag==true) ? $response = true: $response = false;
140 break;
141 case 'change_task_details':
142 case 'delete_task':
143 (($flag==true) || ($current_user->ID == $task_data['created_by'])) ? $response = true: $response = false;
144 break;
145 case 'assign_task_users':
146 case 'change_raised_by':
147 (($flag==true) ? $response = true: $response = false);
148 break;
149 }
150 return apply_filters( 'wppm_has_permission', $response, $task_id, $permission );
151 }
152
153 public function has_comment_permission($permission, $task_id,$comment_id){
154 global $current_user,$wppmfunction,$wpdb;
155 if(empty($comment_id)){
156 $comment_id = 0;
157 }
158 $task_data = $wppmfunction->get_task($task_id);
159 $project_user = array();
160 $task_comment = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_task_comment WHERE task_id = $task_id AND id = $comment_id");
161
162 if(isset($task_data['project'])){
163 $project_id = $task_data['project'];
164 $project_user = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = $project_id AND user_id = $current_user->ID");
165 }
166 $response = false;
167 $flag = false;
168 if(!empty($task_data)){
169 $co_worker = $task_data['users'];
170 $co_worker_array = explode(",",$co_worker);
171 }
172 if((!empty($project_user)) && ($project_user->role_id == 1)){
173 $flag= true;
174 }
175 switch ($permission) {
176 case 'delete_task_thread':
177 case 'edit_task_comment':
178 (($flag==true) || ($current_user->ID == $task_comment->created_by)) ? $response = true: $response = false;
179 break;
180 }
181 return apply_filters( 'wppm_has_comment_permission', $response, $task_id, $comment_id, $permission );
182 }
183
184 public function has_project_permission($permission,$project_id){
185 global $current_user,$wppmfunction,$wpdb ;
186 $project_data = $wppmfunction->get_project($project_id);
187 $project_user = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = $project_id AND user_id = $current_user->ID");
188 $user = wp_get_current_user();
189 if(!empty($project_data)){
190 $co_worker = $project_data['users'];
191 $co_worker_array = explode(",",$co_worker);
192 }
193 switch ($permission) {
194 case 'view_project':
195 ((!empty($co_worker_array)) && (in_array($current_user->ID,$co_worker_array )) )? $response = true: $response = false;
196 break;
197 case 'change_project_status':
198 case 'assign_project_users':
199 case 'change_project_raised_by':
200 case 'change_project_details':
201 case 'delete_project':
202 $flag = false;
203 if( (!empty($project_user)) && ($project_user->role_id == 1)){
204 $flag = true;
205 }
206 ((!empty($co_worker_array)) && (in_array($current_user->ID,$co_worker_array) && $flag==true)) ? $response = true: $response = false;
207 break;
208 }
209 return apply_filters( 'wppm_has_project_permission', $response, $project_id, $permission );
210 }
211
212 public function change_status($task_id, $status_id){
213 global $wpdb,$wppmfunction;
214 $task_data = $wppmfunction->get_task($task_id);
215 $prev_status = $task_data['status'];
216 $values=array(
217 'status'=>$status_id
218 );
219 $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>$task_id));
220 $old_task_status_meta = $wppmfunction->get_task_meta($task_id,'old_task_status',true);
221 if(!empty($old_task_status_meta)){
222 $wppmfunction->delete_task_meta($task_id,'old_task_status');
223 }
224 $wppmfunction->add_task_meta($task_id,'old_task_status',$prev_status);
225
226 do_action('wppm_set_change_task_status', $task_id, $status_id, $prev_status);
227 }
228
229 public function change_raised_by($task_id, $user_id){
230 global $wpdb;
231 $values=array(
232 'created_by'=>$user_id
233 );
234 $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>$task_id));
235 }
236
237 public function change_task_label($task_id, $task_label){
238 global $wpdb;
239 $values=array(
240 'task_name'=>stripslashes($task_label)
241 );
242 $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>$task_id));
243 }
244
245 public function change_task_project_label($task_id, $project_label){
246 global $wpdb;
247 $values=array(
248 'project'=>$project_label
249 );
250 $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>$task_id));
251 }
252
253 public function change_start_date($task_id, $task_start_date){
254 global $wpdb;
255 $values=array(
256 'start_date'=>$task_start_date
257 );
258 $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>$task_id));
259 }
260
261 public function change_end_date($task_id, $task_end_date){
262 global $wpdb;
263 $values=array(
264 'end_date'=>$task_end_date
265 );
266 $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>$task_id));
267 }
268
269 public function change_priority($task_id, $task_priority){
270 global $wpdb;
271 $values=array(
272 'priority'=>$task_priority
273 );
274 $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>$task_id));
275 }
276
277 public function change_description($task_id, $task_description){
278 global $wpdb;
279 $values=array(
280 'description'=>$task_description
281 );
282 $wpdb->update($wpdb->prefix.'wppm_task', $values, array('id'=>$task_id));
283 }
284
285 public function get_task_comment($comment_id){
286 global $wpdb;
287 $task_comment_data = array();
288 $task_comment = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_task_comment WHERE id=$comment_id ");
289 if( $task_comment ){
290 $task_comment_data = json_decode(json_encode($task_comment), true);
291 }
292 return $task_comment_data;
293 }
294
295 public function change_task_comment($comment_id,$comment_body){
296 global $wpdb;
297 $values=array(
298 'body'=>$comment_body
299 );
300 $wpdb->update($wpdb->prefix.'wppm_task_comment', $values, array('id'=>$comment_id));
301 }
302 public function change_project_label($project_id,$project_label){
303 global $wpdb;
304 $values=array(
305 'project_name'=>$project_label
306 );
307 $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));
308 }
309
310 public function change_project_start_date($project_id, $project_start_date){
311 global $wpdb;
312 $values=array(
313 'start_date'=>$project_start_date
314 );
315 $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));
316 }
317
318 public function change_project_end_date($project_id, $project_end_date){
319 global $wpdb;
320 $values=array(
321 'end_date'=>$project_end_date
322 );
323 $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));
324 }
325
326 public function change_category($project_id, $project_category){
327 global $wpdb;
328 $values=array(
329 'cat_id'=>$project_category
330 );
331 $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));
332 }
333
334 public function change_project_description($project_id, $project_description){
335 global $wpdb;
336 $values=array(
337 'description'=>$project_description
338 );
339 $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));
340 }
341
342 public function change_project_status($project_id,$status_id){
343 global $wpdb,$wppmfunction;
344 $proj_data = $wppmfunction->get_project($project_id);
345 $prev_status = $proj_data['status'];
346 $values=array(
347 'status'=>$status_id
348 );
349 $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));
350 $old_project_status_meta = $wppmfunction->get_project_meta($project_id,'old_project_status',true);
351 if(!empty($old_project_status_meta)){
352 $wppmfunction->delete_project_meta($project_id,'old_project_status');
353 }
354 $wppmfunction->add_project_meta($project_id,'old_project_status',$prev_status);
355 do_action('wppm_set_change_project_status', $project_id, $status_id, $prev_status);
356 }
357
358 public function change_project_raised_by($project_id, $user_id){
359 global $wpdb;
360 $values=array(
361 'created_by'=>$user_id
362 );
363 $wpdb->update($wpdb->prefix.'wppm_project', $values, array('id'=>$project_id));
364 }
365
366 // Email Notification types
367 public function get_email_notification_types(){
368 $notification_types = array(
369 'new_project'=>__('New Project','taskbuilder'),
370 'new_task'=>__('New Task','taskbuilder'),
371 'change_project_status' => __('Change Project Status','taskbuilder'),
372 'change_task_status' => __('Change Task Status','taskbuilder'),
373 'change_project_assign_users' => __('Change Project Assign Users','taskbuilder'),
374 'change_task_assign_users' => __('Change Task Assign Users','taskbuilder'),
375 'new_discussion' => __('New Discussion','taskbuilder'),
376 );
377 return apply_filters('wppm_en_types',$notification_types);
378 }
379
380 public function check_rtl(){
381 $rtl_locale = array('ar','ary','ckb','haz','he_IL','fa_IR','ps','ur','ug_CN');
382 if(in_array(get_locale(),$rtl_locale)){
383 return 'rtl';
384 }else{
385 return 'ltr';
386 }
387 }
388
389 public function add_project_meta($proj_id,$meta_key,$meta_value){
390 global $wpdb;
391 $wpdb->insert(
392 $wpdb->prefix . 'wppm_project_meta',
393 array(
394 'project_id' => $proj_id,
395 'meta_key' => $meta_key,
396 'meta_value' =>$meta_value
397 ));
398 }
399
400 public function add_task_meta($task_id,$meta_key,$meta_value){
401 global $wpdb;
402 $wpdb->insert(
403 $wpdb->prefix . 'wppm_task_meta',
404 array(
405 'task_id' => $task_id,
406 'meta_key' => $meta_key,
407 'meta_value' =>$meta_value
408 ));
409 }
410
411 public function get_project_meta($project_id,$meta_key,$flag = false){
412 global $wpdb,$wppmfunction;
413 if($flag){
414 $get_meta = $wpdb->get_var("SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta WHERE project_id = '$project_id' AND meta_key = '$meta_key' ");
415 $project_meta = stripslashes($get_meta) ? stripslashes($get_meta) : '';
416
417 } else {
418 $project_meta = array();
419 $results = $wpdb->get_results("SELECT meta_value FROM {$wpdb->prefix}wppm_project_meta WHERE project_id = '$project_id' AND meta_key = '$meta_key'");
420 if( (!empty($results)) ){
421 foreach ($results as $result) {
422 if(!empty($result)){
423 $project_meta[]= stripslashes($result->meta_value);
424 }
425 }
426 }
427 }
428 return $project_meta;
429 }
430
431 public function get_task_meta($task_id,$meta_key,$flag = false){
432 global $wpdb,$wppmfunction;
433 if($flag){
434 $get_meta = $wpdb->get_var("SELECT meta_value FROM {$wpdb->prefix}wppm_task_meta WHERE task_id = '$task_id' AND meta_key = '$meta_key' ");
435 $task_meta = stripslashes($get_meta) ? stripslashes($get_meta) : '';
436
437 } else {
438 $task_meta = array();
439 $results = $wpdb->get_results("SELECT meta_value FROM {$wpdb->prefix}wppm_task_meta WHERE task_id = '$task_id' AND meta_key = '$meta_key'");
440 if( (!empty($results)) ){
441 foreach ($results as $result) {
442 if(!empty($result)){
443 $task_meta[]= stripslashes($result->meta_value);
444 }
445 }
446 }
447 }
448 return $task_meta;
449 }
450
451 public function get_previously_assigned_users($project_id){
452 global $wpdb,$wppmfunction;
453 $prev_assigned_users = $wppmfunction->get_project_meta($project_id,'prev_assigned_users');
454 $user_emails = array();
455 if(!empty($prev_assigned_users)){
456 foreach ($prev_assigned_users as $user) {
457 $userdata = get_userdata($user);
458 $user_emails[] = $userdata->user_email;
459
460 }
461 }
462 return apply_filters( 'wppm_get_prev_assigned_users_emails', $user_emails ,$project_id);
463 }
464
465 public function get_previously_assigned_task_users($task_id){
466 global $wpdb,$wppmfunction;
467 $prev_assigned_task_users = $wppmfunction->get_task_meta($task_id,'prev_assigned_task_users');
468 $user_emails = array();
469 if(!empty($prev_assigned_task_users)){
470 foreach ($prev_assigned_task_users as $user) {
471 $userdata = get_userdata($user);
472 $user_emails[] = $userdata->user_email;
473 }
474 }
475 return apply_filters( 'wppm_get_prev_assigned_task_users_emails', $user_emails ,$task_id);
476 }
477 /**
478 * Update project meta for project
479 */
480 function update_project_meta($project_id ,$meta_key ,$meta_value){
481 global $wpdb;
482 $results = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}wppm_project_meta WHERE project_id = '$project_id' AND meta_key = $meta_key");
483 $wpdb->update($wpdb->prefix.'wppm_project_meta', $meta_value, array('project_id'=>$project_id,'meta_key' => $meta_key));
484 }
485
486 /**
487 * Update task meta for task
488 */
489 function update_task_meta($task_id ,$meta_key ,$meta_value){
490 global $wpdb;
491 $results = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}wppm_task_meta WHERE task_id = '$task_id' AND meta_key = $meta_key");
492 $wpdb->update($wpdb->prefix.'wppm_task_meta', $meta_value, array('task_id'=>$task_id,'meta_key' => $meta_key));
493 }
494
495 function delete_project_meta($project_id ,$meta_key){
496 global $wpdb;
497 $wpdb->delete( $wpdb->prefix.'wppm_project_meta', array( 'project_id' => $project_id,'meta_key'=>$meta_key) );
498 }
499
500 function delete_task_meta($task_id ,$meta_key){
501 global $wpdb;
502 $wpdb->delete( $wpdb->prefix.'wppm_task_meta', array( 'task_id' => $task_id,'meta_key'=>$meta_key) );
503 }
504
505 public function replace_macro($str,$project_id){
506 include WPPM_ABSPATH . 'includes/replace_macro.php';
507 return $str;
508 }
509
510 public function replace_task_macro($str,$task_id){
511 include WPPM_ABSPATH . 'includes/replace_task_macro.php';
512 return $str;
513 }
514
515 public function get_old_project_status_name($id){
516 global $wppmfunction, $wpdb;
517 $old_project_status = $wppmfunction->get_project_meta($id,'old_project_status',true);
518 $status_name = $wpdb->get_var("SELECT name FROM {$wpdb->prefix}wppm_project_statuses WHERE id ='$old_project_status'");
519 return $status_name;
520 }
521
522 public function get_new_project_status_name($status_id){
523 global $wpdb;
524 $status_name = $wpdb->get_var("SELECT name FROM {$wpdb->prefix}wppm_project_statuses WHERE id ='$status_id'");
525 return $status_name;
526 }
527
528 public function get_old_task_status_name($task_id){
529 global $wppmfunction, $wpdb;
530 $old_task_status = $wppmfunction->get_task_meta($task_id,'old_task_status',true);
531 $status_name = $wpdb->get_var("SELECT name FROM {$wpdb->prefix}wppm_task_statuses WHERE id ='$old_task_status'");
532 return $status_name;
533 }
534
535 public function get_new_task_status_name($status_id){
536 global $wpdb;
537 $status_name = $wpdb->get_var("SELECT name FROM {$wpdb->prefix}wppm_task_statuses WHERE id ='$status_id'");
538 return $status_name;
539 }
540
541 public function get_project_category_name($cat_id){
542 global $wpdb;
543 $cat_name = $wpdb->get_var("SELECT name FROM {$wpdb->prefix}wppm_project_categories WHERE id ='$cat_id'");
544 return $cat_name;
545 }
546
547 public function get_project_assigned_users_names($project_id){
548 global $wppmfunction;
549 $wppm_project_data = $wppmfunction->get_project($project_id);
550 if(!empty($wppm_project_data['users'])){
551 $wppm_project_assign_users_array = explode(",", $wppm_project_data['users']);
552 }else{
553 $wppm_project_assign_users_array = array();
554 }
555 $users_names = array();
556 if(!empty($wppm_project_assign_users_array)){
557 foreach ($wppm_project_assign_users_array as $user_id) {
558 if(!empty($user_id)){
559 $userdata = get_userdata( $user_id );
560 if(!empty($userdata)){
561 $users_names[] = $userdata->display_name;
562 }
563 }
564 }
565 }
566 return implode(', ', $users_names);
567 }
568
569 public function get_task_assigned_users_names($task_id){
570 global $wppmfunction;
571 $wppm_task_data = $wppmfunction->get_task($task_id);
572 $wppm_task_assign_users_array = explode(",", $wppm_task_data['users']);
573 $users_names = array();
574 if(!empty($wppm_task_assign_users_array)){
575 foreach ($wppm_task_assign_users_array as $user_id) {
576 if(!empty($user_id)){
577 $userdata = get_userdata( $user_id );
578 if(!empty($userdata)){
579 $users_names[] = $userdata->display_name;
580 }
581 }
582 }
583 }
584 return implode(', ', $users_names);
585 }
586
587 public function get_project_previously_assigned_users_names($project_id){
588 global $wppmfunction;
589 $wppm_project_assign_users = $wppmfunction->get_project_meta($project_id,'prev_assigned_users');
590 $users_names = array();
591 if(!empty($wppm_project_assign_users)){
592 foreach ($wppm_project_assign_users as $user) {
593 if(!empty($user)){
594 $userdata = get_userdata( $user );
595 $users_names[] = $userdata->display_name;
596 }
597 }
598 }
599 return implode(', ', $users_names);
600 }
601
602 public function get_task_previously_assigned_users_names($task_id){
603 global $wppmfunction;
604 $wppm_task_assign_users = $wppmfunction->get_task_meta($task_id,'prev_assigned_task_users');
605 $users_names = array();
606 if(!empty($wppm_task_assign_users)){
607 foreach ($wppm_task_assign_users as $user) {
608 if(!empty($user)){
609 $userdata = get_userdata( $user );
610 $users_names[] = $userdata->display_name;
611 }
612 }
613 }
614 return implode(', ', $users_names);
615 }
616
617 public function get_task_priority_name($priority){
618 global $wpdb;
619 $priority_name = $wpdb->get_var("SELECT name FROM {$wpdb->prefix}wppm_task_priorities WHERE id ='$priority'");
620 return $priority_name;
621 }
622
623 public function get_last_comment_user_name($task_id){
624 global $wpdb;
625 $task_comment_creator = $wpdb->get_var("SELECT created_by FROM {$wpdb->prefix}wppm_task_comment WHERE (id=(select MAX(id) from {$wpdb->prefix}wppm_task_comment) AND task_id = $task_id)");
626 if(!empty($task_comment_creator)){
627 $user = get_userdata( $task_comment_creator );
628 return $user->display_name;
629 }
630 }
631
632 public function get_last_comment_body($task_id){
633 global $wpdb;
634 $task_comment = $wpdb->get_var("SELECT body FROM {$wpdb->prefix}wppm_task_comment WHERE (id=(select MAX(id) from {$wpdb->prefix}wppm_task_comment) AND task_id = $task_id)");
635 return $task_comment;
636 }
637 }
638
639
640 endif;
641 $GLOBALS['wppmfunction'] = new WPPM_Functions();