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_project_created.php

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

87 lines 3.8 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 $project_id = intval(sanitize_text_field(($project_id)));
11 $project_id = absint($project_id);
12 $project_data = $wppmfunction->get_project($project_id);
13 $proj_users = $project_data['users'];
14 $proj_users = explode(',',$proj_users);
15 $email_addresses = array();
16 if ( !$from_name || !$from_email ) {
17 return;
18 }
19 $wppm_email_notificatins = get_option('wppm_email_notification');
20 $wppm_default_email_notification_to_current_user = get_option('wppm_default_email_notification_to_current_user');
21 if(!empty($wppm_email_notificatins)){
22 foreach ($wppm_email_notificatins as $key=>$val) :
23 if($val['type']=='new_project'){
24 $subject = $wppmfunction->replace_macro(stripslashes($val['subject']), $project_id);
25 $body = $wppmfunction->replace_macro(stripslashes($val['body']),$project_id);
26 $recipients = $val['recipients'];
27 foreach ($recipients as $recipient) {
28 if(is_numeric($recipient)){
29 if($recipient == 1 && !empty($proj_users)) {
30 foreach($proj_users as $user){
31 if(!empty($user)){
32 $user = absint($user);
33 $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));
34 $userdata = get_userdata($user);
35 if((!empty($project_user_data)) && $project_user_data->role_id == 1){
36 $email_addresses[] = $userdata->user_email;
37 }
38 }
39 }
40 }
41 elseif($recipient == 2 && !empty($proj_users)){
42 foreach($proj_users as $user){
43 if(!empty($user)){
44 $user = absint($user);
45 $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));
46 $userdata = get_userdata($user);
47 if((!empty($project_user_data)) && $project_user_data->role_id == 2){
48 $email_addresses[] = $userdata->user_email;
49 }
50 }
51 }
52 }
53 } else{
54 switch ($recipient) {
55 case 'project_creator':
56 $email_addresses = array_merge($email_addresses,$wppmfunction->get_project_creator_email($project_id));
57 break;
58 }
59 }
60 }
61 $email_addresses = array_unique($email_addresses);
62 $email_addresses = array_diff($email_addresses,$ignore_emails);
63 if(empty($wppm_default_email_notification_to_current_user)){
64 $email_addresses = array_diff($email_addresses,array($current_user->user_email));
65 }
66 $email_addresses = apply_filters('wppm_en_project_users_email_addresses',$email_addresses,$val,$project_id);
67 $email_addresses = array_values($email_addresses);
68
69 $to = isset($email_addresses[0])? $email_addresses[0] : '';
70 if($to){
71 unset($email_addresses[0]);
72 } else {
73 continue; // no email address found to send. So go to next foreach iteration.
74 }
75
76 $bcc = implode(',',$email_addresses);
77 $headers = "From: {$from_name} <{$from_email}>\r\n";
78 $email_addresses = explode(',',$bcc);
79 foreach ($email_addresses as $email_address) {
80 $headers .= "BCC: {$email_address}\r\n";
81 }
82 $headers .= "Content-Type: text/html; charset=utf-8\r\n";
83 wp_mail($to, $subject, $body, $headers);
84 do_action('wppm_after_project_created_mail',$project_id,$val);
85 }
86 endforeach;
87 }