post_status && 'publish' !== $old_meeting->post_status) { $update_type = 'publish'; } elseif ('draft' === $meeting->post_status && 'draft' !== $old_meeting->post_status) { $update_type = 'draft'; } elseif ('draft' === $meeting->post_status && 'draft' === $old_meeting->post_status) { // no email when staying in draft return; } $fields = array_keys($tsml_export_columns); $fields_changed = []; if ('publish' !== $update_type) { // for updates only share changed fields $fields_changed = tsml_compare_meetings($old_meeting, $meeting); if (null === $fields_changed) { return; } $fields = array_merge($fields, $fields_changed); $fields = array_unique($fields); } $message = '

'; $subject = ''; if ('publish' === $update_type) { $subject = __('Meeting Published', '12-step-meeting-list'); $message .= sprintf( // translators: 1: user display name, 2: meeting permalink, 3: site name __('This is to notify you that %1$s published a meeting on the %3$s site.', '12-step-meeting-list'), $user->display_name, get_permalink($meeting->ID), get_bloginfo('name') ); } elseif ('draft' === $update_type) { $subject = __('Meeting moved to Draft', '12-step-meeting-list'); $message .= sprintf( // translators: 1: user display name, 2: meeting permalink, 3: site name __('This is to notify you that %1$s saved a meeting as a draft on the %3$s site.', '12-step-meeting-list'), $user->display_name, get_permalink($meeting->ID), get_bloginfo('name') ); } else { $subject = __('Meeting Updated', '12-step-meeting-list'); $message .= sprintf( // translators: 1: user display name, 2: meeting permalink, 3: site name __('This is to notify you that %1$s updated a meeting on the %3$s site.', '12-step-meeting-list'), $user->display_name, get_permalink($meeting->ID), get_bloginfo('name') ); } $subject .= ': ' . sanitize_text_field($meeting->name); $message .= '

'; foreach ($fields as $field) { $old = property_exists($old_meeting, $field) ? $old_meeting->$field : ''; $new = property_exists($meeting, $field) ? $meeting->$field : ''; if (in_array($field, $tsml_array_fields)) { if (is_array($new)) $new = implode(', ', $new); if (is_array($old)) $old = implode(', ', $old); } elseif ($field == 'day') { $old = in_array($old, ['0', '1', '2', '3', '4', '5', '6']) ? $tsml_days[$old] : __('Appointment', '12-step-meeting-list'); $new = in_array($new, ['0', '1', '2', '3', '4', '5', '6']) ? $tsml_days[$new] : __('Appointment', '12-step-meeting-list'); } elseif ($field == 'time' || $field == 'end_time') { $old = empty($old) ? '' : tsml_format_time($old); $new = empty($new) ? '' : tsml_format_time($new); } $field_name = !empty($tsml_export_columns[$field]) ? $tsml_export_columns[$field] : ucwords(str_replace('_', ' ', $field)); if (in_array($field, $fields_changed)) { $message .= ''; } elseif (!empty($new)) { $message .= ''; } } $message .= '
' . $field_name . ''; if (!empty($old)) { $message .= '' . $old . ' '; } $message .= $new . '
' . $field_name . '' . $new . '
'; tsml_email($email_to, $subject, $message); }