PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 6.0.6
Taskbuilder – Project Management & Task Management Tool With Kanban Board v6.0.6
6.0.6 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 All 58 releases
taskbuilder / includes / admin / email_notifications / wppm_en_task_created.php

wppm_en_task_created.php in Taskbuilder – Project Management & Task Management Tool With Kanban Board 6.0.6, at includes/admin/email_notifications/wppm_en_task_created.php

116 lines 5.4 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
6 global $wppmfunction, $current_user,$wpdb;
7 $from_name = get_option('wppm_en_from_name');
8 $from_email = get_option('wppm_en_from_email');
9 $ignore_emails = get_option('wppm_en_ignore_emails');
10 $task_id = absint(sanitize_text_field($task_id));
11 $task_data = $wppmfunction->get_task($task_id);
12 $project_id = absint($task_data['project']);
13 $project_users = $wpdb->get_results($wpdb->prepare("SELECT user_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND role_id = 1",$project_id));
14 $p_users = $wpdb->get_var($wpdb->prepare("SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d",$project_id));
15 $p_users_array = array();
16 if(isset($p_users)){
17 $p_users_array = explode(',',$p_users);
18 }
19 $task_users = $task_data['users'];
20 $task_users = explode(',',$task_users);
21 $flag= false;
22 if ( !$from_name || !$from_email ) {
23 return;
24 }
25 $wppm_email_notificatins = get_option('wppm_email_notification');
26 $wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');
27 foreach ($wppm_email_notificatins as $key=>$val) :
28 if($val['type']=='new_task'){
29 $subject = $wppmfunction->replace_task_macro(stripslashes($val['subject']), $task_id);
30 $body = $wppmfunction->replace_task_macro(stripslashes($val['body']),$task_id);
31 $recipients = $val['recipients'];
32 $email_addresses = array();
33 if(!empty($recipients)){
34 foreach ($recipients as $recipient) {
35 if(is_numeric($recipient)){
36 if($recipient == 1 && !empty($project_users)){
37 foreach($project_users as $proj_user){
38 $proj_user = (array) $proj_user;
39 if(in_array($proj_user['user_id'],$p_users_array)){
40 $proj_userdata = get_userdata($proj_user['user_id']);
41 $email_addresses[] = $proj_userdata->user_email;
42 }
43 }
44 }
45 if($recipient == 1 && !empty($task_users)) {
46 foreach($task_users as $user){
47 if(!empty($user)){
48 $user = absint($user);
49 $project_user_data = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d",$project_id,$user));
50 $userdata = get_userdata($user);
51 if((!empty($project_user_data)) && $project_user_data->role_id == 1){
52 $email_addresses[] = $userdata->user_email;
53 }
54 }
55 }
56 }
57 elseif($recipient == 2 && !empty($task_users)){
58 foreach($task_users as $user){
59 if(!empty($user)){
60 $user = absint($user);
61 $project_user_data = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d",$project_id,$user));
62 $userdata = get_userdata($user);
63 if((!empty($project_user_data)) && $project_user_data->role_id == 2){
64 $email_addresses[] = $userdata->user_email;
65 }
66 }
67 }
68 }
69 }else{
70 switch ($recipient) {
71 case 'project_creator':
72 //$email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($project_id));
73 if ( ! empty($wppmfunction->get_project_creator_email($project_id)) ) {
74 $email_addresses = array_merge(
75 (array) $email_addresses,
76 (array) $wppmfunction->get_project_creator_email($project_id)
77 );
78 }
79 break;
80 case 'task_creator':
81 //$email_addresses = array_merge($email_addresses,$wppmfunction->get_task_creator_email($task_id));
82 if ( ! empty($wppmfunction->get_task_creator_email($task_id)) ) {
83 $email_addresses = array_merge(
84 (array) $email_addresses,
85 (array) $wppmfunction->get_task_creator_email($task_id)
86 );
87 }
88 break;
89 }
90 }
91 }
92 }
93 $email_addresses = array_unique($email_addresses);
94 $email_addresses = array_diff($email_addresses,$ignore_emails);
95 if(empty($wppm_default_email_notification_to_current_user)){
96 $email_addresses = array_diff($email_addresses,array($current_user->user_email));
97 }
98 $email_addresses = apply_filters('wppm_en_task_users_email_addresses',$email_addresses,$val,$task_id);
99 $email_addresses = array_values($email_addresses);
100 $to = isset($email_addresses[0])? $email_addresses[0] : '';
101 if($to){
102 unset($email_addresses[0]);
103 } else {
104 continue; // no email address found to send. So go to next foreach iteration.
105 }
106 $bcc = implode(',',$email_addresses);
107 $headers = "From: {$from_name} <{$from_email}>\r\n";
108 $email_addresses = explode(',',$bcc);
109 foreach ($email_addresses as $email_address) {
110 $headers .= "BCC: {$email_address}\r\n";
111 }
112 $headers .= "Content-Type: text/html; charset=UTF-8 \r\n";
113 wp_mail($to, $subject, $body, $headers);
114 do_action('wppm_after_submit_task_created_mail',$task_id,$val);
115 }
116 endforeach;