ID;
?>
تابع طلباتك بكل سهولة
تتبع حالة طلباتك في الوقت الفعلي مع تفاصيل شاملة لكل مرحلة.
‘meta_query’ => array(
array(
‘key’ => ‘_osp_order_customer_email’,
‘value’ => $current_user->user_email,
‘compare’ => ‘=’
)
),
‘orderby’ => ‘date’,
‘order’ => ‘DESC’,
‘posts_per_page’ => -1
));
$orders = array();
if ($orders_query->have_posts()) {
while ($orders_query->have_posts()) {
$orders_query->the_post();
$order_id = get_the_ID();
$status = get_post_meta($order_id, ‘_osp_order_status’, true);
$total_amount = get_post_meta($order_id, ‘_osp_order_total_amount’, true);
$order_date = get_post_meta($order_id, ‘_osp_order_date’, true);
$delivery_date = get_post_meta($order_id, ‘_osp_order_delivery_date’, true);
$ordered_services = get_post_meta($order_id, ‘_osp_order_ordered_services’, true);
$status_log = get_post_meta($order_id, ‘_osp_order_status_log’, true);
// Get service name
$service_name = get_the_title();
if ($ordered_services) {
$service_ids = explode(‘,’, $ordered_services);
$first_service = get_post(trim($service_ids[0]));
if ($first_service) {
$service_name = $first_service->post_title;
if (count($service_ids) > 1) {
$service_name .= ‘ +’ . (count($service_ids) – 1) . ‘ أخرى’;
}
}
}
// Calculate progress
$progress = 0;
switch ($status) {
case ‘pending’:
$progress = 20;
break;
case ‘processing’:
$progress = 60;
break;
case ‘completed’:
$progress = 100;
break;
case ‘cancelled’:
$progress = 0;
break;
case ‘on_hold’:
$progress = 30;
break;
}
// Status labels
$status_labels = array(
‘pending’ => ‘قيد المراجعة’,
‘processing’ => ‘قيد التنفيذ’,
‘completed’ => ‘مكتمل’,
‘cancelled’ => ‘ملغي’,
‘on_hold’ => ‘في الانتظار’
);
// Create timeline from status log
$timeline = array();
if ($status_log && is_array($status_log)) {
foreach ($status_log as $log_entry) {
$timeline[] = array(
‘step’ => $status_labels[$log_entry[‘new_status’]] ?? $log_entry[‘new_status’],
‘date’ => $log_entry[‘timestamp’],
‘completed’ => true
);
}
} else {
// Default timeline
$timeline = array(
array(‘step’ => ‘تم استلام الطلب’, ‘date’ => $order_date ?: get_the_date(), ‘completed’ => true),
array(‘step’ => ‘قيد المراجعة’, ‘date’ => $order_date ?: get_the_date(), ‘completed’ => in_array($status, [‘processing’, ‘completed’])),
array(‘step’ => ‘بدء التنفيذ’, ‘date’ => ”, ‘completed’ => in_array($status, [‘processing’, ‘completed’])),
array(‘step’ => ‘التسليم النهائي’, ‘date’ => $delivery_date ?: ‘متوقع قريباً’, ‘completed’ => $status === ‘completed’),
);
}
$orders[] = array(
‘id’ => $order_id,
‘service_name’ => $service_name,
‘status’ => $status,
‘status_text’ => $status_labels[$status] ?? $status,
‘date’ => $order_date ?: get_the_date(),
‘total’ => $total_amount,
‘progress’ => $progress,
‘timeline’ => $timeline
);
}
wp_reset_postdata();
}
// If no real orders, show sample data for demo
if (empty($orders)) {
$orders = array(
array(
‘id’ => 12345,
‘service_name’ => ‘تصميم موقع إلكتروني’,
‘status’ => ‘processing’,
‘status_text’ => ‘قيد التنفيذ’,
‘date’ => ‘2025-08-01’,
‘total’ => 2500,
‘progress’ => 60,
‘timeline’ => array(
array(‘step’ => ‘تم استلام الطلب’, ‘date’ => ‘2025-08-01 10:00’, ‘completed’ => true),
array(‘step’ => ‘قيد المراجعة’, ‘date’ => ‘2025-08-01 14:30’, ‘completed’ => true),
array(‘step’ => ‘بدء التنفيذ’, ‘date’ => ‘2025-08-02 09:00’, ‘completed’ => true),
array(‘step’ => ‘مرحلة التصميم’, ‘date’ => ‘2025-08-03 11:00’, ‘completed’ => true),
array(‘step’ => ‘مرحلة البرمجة’, ‘date’ => ‘2025-08-05 10:00’, ‘completed’ => false),
array(‘step’ => ‘التسليم النهائي’, ‘date’ => ‘متوقع 2025-08-10’, ‘completed’ => false),
)
),
array(
‘id’ => 12344,
‘service_name’ => ‘تطوير تطبيق جوال’,
‘status’ => ‘completed’,
‘status_text’ => ‘مكتمل’,
‘date’ => ‘2025-07-15’,
‘total’ => 5000,
‘progress’ => 100,
‘timeline’ => array(
array(‘step’ => ‘تم استلام الطلب’, ‘date’ => ‘2025-07-15 10:00’, ‘completed’ => true),
array(‘step’ => ‘قيد المراجعة’, ‘date’ => ‘2025-07-15 14:30’, ‘completed’ => true),
array(‘step’ => ‘بدء التنفيذ’, ‘date’ => ‘2025-07-16 09:00’, ‘completed’ => true),
array(‘step’ => ‘مرحلة التصميم’, ‘date’ => ‘2025-07-18 11:00’, ‘completed’ => true),
array(‘step’ => ‘مرحلة البرمجة’, ‘date’ => ‘2025-07-22 10:00’, ‘completed’ => true),
array(‘step’ => ‘التسليم النهائي’, ‘date’ => ‘2025-07-30 16:00’, ‘completed’ => true),
)
),
);
if ( ! empty( $orders ) ) {
foreach ( $orders as $order ) {
$status_class = ‘osp-status-‘ . $order[‘status’];
?>
طلب #
تاريخ الطلب: المبلغ: ريال
لا توجد طلبات حالياً.
‘;
}
?>