post_content, 'ifnex_tracking_form')) {
?>
false, 'message' => 'شماره بارنامه وارد نشده است.'));
return;
}
$client = new IFNEX_API_Client();
$result = $client->track_shipment($awb);
if (is_wp_error($result)) {
wp_send_json(array('success' => false, 'message' => $result->get_error_message()));
return;
}
// پشتیبانی از هر دو فرمت خروجی API (data.shipment یا مستقیم)
$shipment = $result['data']['shipment'] ?? $result;
$events = $result['data']['tracking_events'] ?? $result['timeline'] ?? array();
$carriers = $result['data']['carrier_mappings'] ?? $result['carrier_mappings'] ?? array();
// ساخت HTML نتیجه
ob_start();
?>
نوع
جهت
فرستنده
گیرنده
مبدأ
مقصد
وزن
kg
تاریخ ثبت
🚚 تاریخچه رهگیری
هنوز رویداد ترکینگی ثبت نشده است.
🏢 شرکتهای حمل
| کد رهگیری:
| وضعیت:
true, 'html' => $html));
}
// AJAX Handler: موجودی کیف پول
add_action('wp_ajax_ifnex_get_wallet_balance', 'ifnex_get_wallet_balance_ajax');
add_action('wp_ajax_nopriv_ifnex_get_wallet_balance', 'ifnex_get_wallet_balance_ajax');
function ifnex_get_wallet_balance_ajax() {
if (!is_user_logged_in()) {
wp_send_json(array('success' => false, 'message' => 'برای مشاهده موجودی باید وارد شوید.'));
return;
}
$bridge = new IFNEX_User_Bridge();
$balance = $bridge->get_wallet_balance(get_current_user_id());
if (is_wp_error($balance)) {
wp_send_json(array('success' => false, 'message' => $balance->get_error_message()));
return;
}
wp_send_json(array(
'success' => true,
'balance' => $balance['balance'],
'formatted_balance' => number_format($balance['balance']) . ' ریال',
'total_deposited' => number_format($balance['total_deposited']) . ' ریال',
'total_withdrawn' => number_format($balance['total_withdrawn']) . ' ریال',
'is_frozen' => $balance['is_frozen'],
));
}
// AJAX Handler: لیست تراکنشها
add_action('wp_ajax_ifnex_get_transactions', 'ifnex_get_transactions_ajax');
add_action('wp_ajax_nopriv_ifnex_get_transactions', 'ifnex_get_transactions_ajax');
function ifnex_get_transactions_ajax() {
if (!is_user_logged_in()) {
wp_send_json(array('success' => false, 'message' => 'برای مشاهده تراکنشها باید وارد شوید.'));
return;
}
$per_page = isset($_POST['per_page']) ? intval($_POST['per_page']) : 10;
$bridge = new IFNEX_User_Bridge();
$transactions = $bridge->get_transactions(get_current_user_id(), $per_page);
if (is_wp_error($transactions)) {
wp_send_json(array('success' => false, 'message' => $transactions->get_error_message()));
return;
}
wp_send_json(array(
'success' => true,
'transactions' => $transactions['transactions'] ?? array(),
));
}