Add WordPress timezone support and fix dashboard phone number display
- Add format_timestamp_with_timezone() helper to convert UTC to WP timezone - Update all timestamp displays to use WordPress timezone setting - Fix dashboard showing call SID instead of phone numbers in From field - Fix dashboard showing "System" instead of actual phone numbers in To field - Query actual from_number and to_number fields for dashboard display 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -32,6 +32,27 @@ class TWP_Admin {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Format timestamp with WordPress timezone
|
||||
*
|
||||
* @param string $timestamp Database timestamp (assumed to be in UTC)
|
||||
* @param string $format Date format string
|
||||
* @return string Formatted date in WordPress timezone
|
||||
*/
|
||||
private function format_timestamp_with_timezone($timestamp, $format = 'M j, Y g:i A') {
|
||||
// Get WordPress timezone
|
||||
$timezone = wp_timezone();
|
||||
|
||||
// Create DateTime object from the UTC timestamp
|
||||
$date = new DateTime($timestamp, new DateTimeZone('UTC'));
|
||||
|
||||
// Convert to WordPress timezone
|
||||
$date->setTimezone($timezone);
|
||||
|
||||
// Return formatted date
|
||||
return $date->format($format);
|
||||
}
|
||||
|
||||
/**
|
||||
* Register admin menu
|
||||
*/
|
||||
@@ -2527,7 +2548,7 @@ class TWP_Admin {
|
||||
foreach ($recent_calls as $call) {
|
||||
?>
|
||||
<tr>
|
||||
<td><?php echo esc_html(date('M j, Y g:i A', strtotime($call->created_at))); ?></td>
|
||||
<td><?php echo esc_html($this->format_timestamp_with_timezone($call->created_at)); ?></td>
|
||||
<td><?php echo esc_html($call->from_number ?: 'N/A'); ?></td>
|
||||
<td><?php echo esc_html($call->to_number ?: 'N/A'); ?></td>
|
||||
<td><?php echo esc_html($call->agent_name ?: 'N/A'); ?></td>
|
||||
@@ -2651,7 +2672,7 @@ class TWP_Admin {
|
||||
foreach ($voicemails as $voicemail) {
|
||||
?>
|
||||
<tr>
|
||||
<td><?php echo esc_html(date('M j, Y g:i A', strtotime($voicemail->created_at))); ?></td>
|
||||
<td><?php echo esc_html($this->format_timestamp_with_timezone($voicemail->created_at)); ?></td>
|
||||
<td><?php echo esc_html($voicemail->from_number); ?></td>
|
||||
<td><?php echo esc_html($voicemail->workflow_name ?: 'N/A'); ?></td>
|
||||
<td><?php echo $voicemail->duration ? esc_html($voicemail->duration . 's') : 'Unknown'; ?></td>
|
||||
@@ -2704,7 +2725,7 @@ class TWP_Admin {
|
||||
foreach ($logs as $log) {
|
||||
?>
|
||||
<tr>
|
||||
<td><?php echo esc_html(date('M j, Y g:i A', strtotime($log->created_at))); ?></td>
|
||||
<td><?php echo esc_html($this->format_timestamp_with_timezone($log->created_at)); ?></td>
|
||||
<td><?php echo esc_html($log->from_number ?: 'Unknown'); ?></td>
|
||||
<td><?php echo esc_html($log->to_number ?: 'System'); ?></td>
|
||||
<td>
|
||||
@@ -3391,9 +3412,9 @@ class TWP_Admin {
|
||||
}
|
||||
|
||||
if ($log_table_exists) {
|
||||
// Get recent calls from last 24 hours
|
||||
// Get recent calls from last 24 hours with phone numbers
|
||||
$recent_calls = $wpdb->get_results(
|
||||
"SELECT call_sid, status, duration, updated_at
|
||||
"SELECT call_sid, from_number, to_number, status, duration, updated_at
|
||||
FROM $log_table
|
||||
WHERE updated_at >= DATE_SUB(NOW(), INTERVAL 24 HOUR)
|
||||
ORDER BY updated_at DESC
|
||||
@@ -3407,10 +3428,14 @@ class TWP_Admin {
|
||||
|
||||
$formatted_calls = array();
|
||||
foreach ($recent_calls as $call) {
|
||||
// Format phone numbers for display
|
||||
$from_display = $call->from_number ?: 'Unknown';
|
||||
$to_display = $call->to_number ?: 'Unknown';
|
||||
|
||||
$formatted_calls[] = array(
|
||||
'time' => date('H:i', strtotime($call->updated_at)),
|
||||
'from' => substr($call->call_sid, 0, 10) . '...',
|
||||
'to' => 'System',
|
||||
'time' => $this->format_timestamp_with_timezone($call->updated_at, 'H:i'),
|
||||
'from' => $from_display,
|
||||
'to' => $to_display,
|
||||
'status' => ucfirst($call->status),
|
||||
'duration' => $call->duration ? $call->duration . 's' : '-'
|
||||
);
|
||||
@@ -4720,7 +4745,7 @@ class TWP_Admin {
|
||||
<br><small style="color: #666;">Received on</small>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo esc_html(date('M j, H:i', strtotime($conversation->last_message_time))); ?>
|
||||
<?php echo esc_html($this->format_timestamp_with_timezone($conversation->last_message_time, 'M j, H:i')); ?>
|
||||
<br>
|
||||
<small style="color: <?php echo $conversation->last_message_direction === 'incoming' ? '#d63384' : '#0f5132'; ?>;">
|
||||
<?php echo $conversation->last_message_direction === 'incoming' ? '← Received' : '→ Sent'; ?>
|
||||
|
Reference in New Issue
Block a user