'رهگیری مرسوله',
'placeholder' => 'شماره بارنامه را وارد کنید',
'button_text' => 'رهگیری',
), $atts);
ob_start();
?>
'',
), $atts);
if (empty($atts['awb'])) {
return 'شماره بارنامه وارد نشده است.
';
}
$client = new IFNEX_API_Client();
$result = $client->track_shipment($atts['awb']);
if (is_wp_error($result)) {
return '' . esc_html($result->get_error_message()) . '
';
}
ob_start();
?>
وضعیت مرسوله
نوع:
جهت:
فرستنده:
گیرنده:
برای مشاهده موجودی باید وارد شوید.';
}
$atts = shortcode_atts(array(
'show_details' => 'no',
), $atts);
$bridge = new IFNEX_User_Bridge();
$balance = $bridge->get_wallet_balance(get_current_user_id());
if (is_wp_error($balance)) {
return '' . esc_html($balance->get_error_message()) . '
';
}
ob_start();
?>
موجودی کیف پول:
ریال
مجموع واریزی: ریال
مجموع برداشت: ریال
⚠️ کیف پول شما مسدود است.
برای مشاهده تراکنشها باید وارد شوید.';
}
$atts = shortcode_atts(array(
'per_page' => 10,
'show_pagination' => 'no',
), $atts);
$bridge = new IFNEX_User_Bridge();
$transactions = $bridge->get_transactions(get_current_user_id(), intval($atts['per_page']));
if (is_wp_error($transactions)) {
return '' . esc_html($transactions->get_error_message()) . '
';
}
if (empty($transactions['transactions'])) {
return 'هنوز تراکنشی ثبت نشده است.
';
}
ob_start();
?>
برای مشاهده پروفایل، باید وارد شوید.';
}
$atts = shortcode_atts(array(
'show_stats' => 'yes',
'show_wallet' => 'yes',
'show_recent_orders' => 'yes',
), $atts);
$bridge = new IFNEX_User_Bridge();
$user_id = get_current_user_id();
$profile = $bridge->get_customer_profile($user_id);
if (is_wp_error($profile)) {
return '' . esc_html($profile->get_error_message()) . '
';
}
ob_start();
?>
💰 کیف پول
ریال
مسدود
فعال
📊 آمار سفارشات
0): ?>
مجموع خرید:
ریال
برای مشاهده سفارشات، باید وارد شوید.';
}
$atts = shortcode_atts(array(
'per_page' => 10,
'status' => '',
), $atts);
$bridge = new IFNEX_User_Bridge();
$user_id = get_current_user_id();
$result = $bridge->get_customer_orders($user_id, intval($atts['per_page']), $atts['status']);
if (is_wp_error($result)) {
return '' . esc_html($result->get_error_message()) . '
';
}
$orders = $result['data'] ?? [];
$pagination = $result['pagination'] ?? [];
ob_start();
?>
وزن:
kg
مبلغ:
ریال
تاریخ:
1): ?>
🔐 ورود لازم است
برای ثبت سفارش، ابتدا باید وارد حساب کاربری خود شوید.
ورود به حساب
برای پرداخت، باید وارد شوید.';
}
$atts = shortcode_atts(array('order_id' => ''), $atts);
// دریافت order_id از URL parameter
$order_id = $atts['order_id'] ?: ($_GET['order_id'] ?? 0);
if (!$order_id) {
return 'شناسه سفارش مشخص نشده است.
';
}
$bridge = new IFNEX_User_Bridge();
$user_id = get_current_user_id();
$order = $bridge->get_customer_order($user_id, $order_id);
if (is_wp_error($order)) {
return '' . esc_html($order->get_error_message()) . '
';
}
$data = $order['data'];
// بررسی وضعیت
if ($data['status']['value'] !== 'pending_payment') {
return '
✅ این سفارش قبلاً پرداخت شده است
وضعیت: ' . esc_html($data['status']['label']) . '
بازگشت به سفارشات
';
}
$balance = $bridge->get_wallet_balance($user_id);
$wallet_balance = is_wp_error($balance) ? 0 : ($balance['balance'] ?? 0);
$can_pay_wallet = $wallet_balance >= $data['total_fee'];
ob_start();
?>
💳 پرداخت سفارش
شماره پیگیری:
مسیر:
→
مبلغ قابل پرداخت:
ریال
💰 پرداخت از کیف پول
موجودی فعلی: ریال
پرداخت فوری از کیف پول
⚠️ موجودی کافی نیست. لطفاً ابتدا کیف پول خود را شارژ کنید.
شارژ کیف پول
🏦 پرداخت از درگاه بانکی
انتقال به درگاه پرداخت امن (زرینپال)
انتقال به درگاه بانکی
برای مشاهده جزئیات، باید وارد شوید.';
}
$atts = shortcode_atts(array('order_id' => ''), $atts);
$order_id = $atts['order_id'] ?: ($_GET['order_id'] ?? 0);
// اگر از URL pretty استفاده شده (order-detail/14/)
if (!$order_id && isset($_SERVER['REQUEST_URI'])) {
if (preg_match('/order-detail\/(\d+)/', $_SERVER['REQUEST_URI'], $matches)) {
$order_id = $matches[1];
}
}
if (!$order_id) {
return 'شناسه سفارش مشخص نشده است.
';
}
$bridge = new IFNEX_User_Bridge();
$user_id = get_current_user_id();
$order = $bridge->get_customer_order($user_id, $order_id);
if (is_wp_error($order)) {
return '' . esc_html($order->get_error_message()) . '
';
}
$data = $order['data'];
$status = $data['status'];
ob_start();
?>
📦 اطلاعات مرسوله
نوع سرویس
جهت ارسال
وزن واقعی
kg
وزن قابل محاسبه
kg
تاریخ ثبت
💰 اطلاعات مالی
مبلغ خالص (درهم):
AED
مبلغ خالص (ریال):
ریال
مبلغ کل:
ریال
وضعیت پرداخت:
📍 تاریخچه رهگیری
هنوز رویدادی ثبت نشده است.
' ',
'orders' => ' ',
'plus' => ' ',
'wallet' => ' ',
'chart' => ' ',
'tracking' => ' ',
'user' => ' ',
'logout' => ' ',
'truck' => ' ',
'check' => ' ',
'clock' => ' ',
];
$path = $icons[$name] ?? $icons['dashboard'];
return '' . $path . ' ';
}
// ══════════════════════════════════════════════════════════════
// شورتکد پنل مشتری (Customer Dashboard)
// ══════════════════════════════════════════════════════════════
add_shortcode('ifnex_customer_dashboard', 'ifnex_customer_dashboard_shortcode');
function ifnex_customer_dashboard_shortcode($atts) {
if (!is_user_logged_in()) {
ob_start();
?>
🔐 ورود لازم است
برای دسترسی به پنل کاربری، ابتدا وارد حساب خود شوید.
ورود به حساب
get_customer_profile($user_id);
$wallet_balance = 0; $stats = [];
if (!is_wp_error($profile)) {
$wallet_balance = $profile['wallet']['balance'] ?? 0;
$stats = $profile['stats'] ?? [];
}
$recent_orders = [];
if ($tab === 'dashboard') {
$orders_result = $bridge->get_customer_orders($user_id, 3);
if (!is_wp_error($orders_result)) $recent_orders = $orders_result['data'] ?? [];
}
$base_url = get_permalink();
$menu_items = [
'dashboard' => ['icon' => 'dashboard', 'label' => 'داشبورد'],
'orders' => ['icon' => 'orders', 'label' => 'سفارشات من'],
'new-order' => ['icon' => 'plus', 'label' => 'ثبت سفارش جدید'],
'wallet' => ['icon' => 'wallet', 'label' => 'کیف پول'],
'transactions' => ['icon' => 'chart', 'label' => 'تراکنشها'],
'tracking' => ['icon' => 'tracking', 'label' => 'رهگیری مرسوله'],
'profile' => ['icon' => 'user', 'label' => 'پروفایل'],
];
$tab_titles = [
'dashboard' => 'داشبورد', 'orders' => 'سفارشات من', 'new-order' => 'ثبت سفارش جدید',
'wallet' => 'کیف پول', 'transactions' => 'تراکنشها', 'tracking' => 'رهگیری مرسوله', 'profile' => 'پروفایل',
];
ob_start();
?>