jQuery(document).ready(function ($) { $(".confirm-order").click(function () { if (confirm("آیا از تایید سفارش اطمینان دارید؟")) { var orderId = $(this).data("order"); var nonce = $(this).data("nonce"); $.ajax({ url: ajaxurl, method: "POST", data: { action: "confirm_basalam_order", order_id: orderId, _wpnonce: nonce, }, success: function (data) { if (data.success) { alert(data.data?.message || "عملیات با موفقیت انجام شد."); } else { alert(data.data?.message || "خطایی رخ داده است."); } location.reload(); }, error: function () { alert("خطایی در ارسال درخواست رخ داد."); location.reload(); }, }); } }); $(".cancel-order").click(function () { var orderId = $(this).data("order"); var nonce = $(this).data("nonce"); $("#cancel-order-popup").show(); }); $("#cancel-cancel-order").click(function () { $("#cancel-order-popup").hide(); $("#cancel-reason").val(""); $("#cancel-description").val(""); }); $("#submit-cancel-order").click(function () { var orderId = $(this).data("order"); var nonce = $(this).data("nonce"); var reasonId = $("#cancel-reason").val(); var description = $("#cancel-description").val(); if (!reasonId) { alert("لطفاً دلیل لغو سفارش را انتخاب کنید."); return; } if (!description.trim()) { alert("لطفاً توضیحات را وارد کنید."); return; } $.ajax({ url: ajaxurl, type: "POST", data: { action: "cancel_basalam_order", order_id: orderId, reason_id: reasonId, description: description, _wpnonce: nonce, }, success: function (data) { if (data.success) { alert(data.data?.message || "عملیات با موفقیت انجام شد."); } else { alert(data.data?.message || "خطایی رخ داده است."); console.error("Server error:", data); } location.reload(); }, error: function () { alert("خطایی در ارسال درخواست رخ داد."); }, }); }); $(".request-cancel-order").click(function () { var orderId = $(this).data("order"); var nonce = $(this).data("nonce"); $("#request-cancel-order-popup").show(); $("#submit-request-cancel-order") .data("order", orderId) .data("nonce", nonce); }); $("#cancel-request-cancel-order").click(function () { $("#request-cancel-order-popup").hide(); $("#request-cancel-description").val(""); }); $("#submit-request-cancel-order").click(function () { var orderId = $(this).data("order"); var nonce = $(this).data("nonce"); var description = $("#request-cancel-description").val(); if (!description.trim()) { alert("لطفاً توضیحات را وارد کنید."); return; } $.ajax({ url: ajaxurl, type: "POST", data: { action: "request_cancel_basalam_order", order_id: orderId, description: description, _wpnonce: nonce, }, success: function (response) { if (response.success) { alert( response.data?.message || "درخواست لغو سفارش با موفقیت ارسال شد." ); location.reload(); } else { alert(response.data?.message || "خطایی رخ داده است"); } }, error: function () { alert("خطایی در ارسال درخواست رخ داد."); }, }); }); $(".save-tracking-code").click(function () { var orderId = $(this).data("order"); var trackingCode = $("#order_tracking_code").val(); var phoneNumber = $("#phone_number").val(); if (!trackingCode || !phoneNumber) { alert("لطفاً کد رهگیری و شماره تلفن را وارد کنید."); return; } $("#shipping-method-popup").show(); }); $("#cancel-shipping-method").click(function () { $("#shipping-method-popup").hide(); }); $("#submit-shipping-method").click(function (e) { e.preventDefault(); var orderId = $(".save-tracking-code").data("order"); var trackingCode = $("#order_tracking_code").val(); var phoneNumber = $("#phone_number").val(); var shippingMethod = $("#shipping-method").val(); var nonce = $(this).data("nonce"); if (!shippingMethod) { alert("لطفاً روش ارسال را انتخاب کنید."); return; } $.ajax({ url: ajaxurl, method: "POST", data: { action: "tracking_code_basalam_order", order_id: orderId, tracking_code: trackingCode, phone_number: phoneNumber, shipping_method: shippingMethod, _wpnonce: nonce, }, success: function (data) { if (data.success) { alert(data.data?.message || "عملیات با موفقیت انجام شد."); } else { alert(data.data?.message || "خطایی رخ داده است."); console.error("Server error:", data); } location.reload(); }, error: function (xhr) { let errorMsg = "خطایی در ارسال درخواست رخ داد."; try { const json = JSON.parse(xhr.responseText); errorMsg = json.data?.message || errorMsg; } catch (e) { console.error("JSON parse error:", e); } alert(errorMsg); console.error("AJAX error:", xhr); location.reload(); }, }); }); $(".request-delay").click(function () { $("#delay-request-popup").show(); }); $("#cancel-delay-request").click(function () { $("#delay-request-popup").hide(); }); $("#submit-delay-request").click(function () { event.preventDefault(); var orderId = $(".request-delay").data("order"); var description = $("#delay-description").val(); var postponeDays = $("#postpone-days").val(); var nonce = $(this).data("nonce"); if (!description || !postponeDays) { alert("لطفاً توضیحات و تعداد روزهای تاخیر را وارد کنید."); return; } $.ajax({ url: ajaxurl, method: "POST", data: { action: "delay_req_basalam_order", order_id: orderId, description: description, postpone_days: postponeDays, _wpnonce: nonce, }, success: function (data) { if (data.success) { alert(data.data?.message || "عملیات با موفقیت انجام شد."); } else { alert(data.data?.message || "خطایی رخ داده است."); } location.reload(); }, error: function (xhr) { let errorMsg = "خطایی در ارسال درخواست رخ داد."; try { const json = JSON.parse(xhr.responseText); errorMsg = json.data?.message || errorMsg; } catch (e) {} alert(errorMsg); location.reload(); }, }); }); });