jQuery(document).ready(function ($) { function getAjaxErrorMessage(xhr, fallbackMessage) { if (xhr.responseJSON && xhr.responseJSON.data && xhr.responseJSON.data.message) { return xhr.responseJSON.data.message; } if (xhr.responseText) { try { var parsed = JSON.parse(xhr.responseText); if (parsed && parsed.data && parsed.data.message) { return parsed.data.message; } } catch (e) {} } return fallbackMessage; } $(document).on("change", ".category-option", function () { if ($(this).is(":checked")) { var catID = $(this).val(); var nonce = $("#basalam_get_category_attrs_nonce").val(); $(".basalam-action-button").attr("data-cat-id", catID); $("#sync_basalam_category_attributes") .html("در حال دریافت ویژگی‌ها...") .removeClass("basalam--hidden"); $.ajax({ url: ajaxurl, method: "POST", data: { action: "basalam_get_category_attrs", catID: catID.toString().split(",")[0], _wpnonce: nonce, }, success: function (res) { var html = ""; if ( res.success && res.data.attributes ) { var attributesData = JSON.parse(res.data.attributes); if (attributesData.data && attributesData.data.length && attributesData.data[0].attributes.length) { html += `
ویژگی‌های دسته‌بندی:
`; attributesData.data[0].attributes.forEach(function (attr) { html += `
${attr.title}
`; }); html += "
"; } else { html = "ویژگی‌ای برای این دسته‌بندی پیدا نشد."; } } else { html = "ویژگی‌ای برای این دسته‌بندی پیدا نشد."; } $("#sync_basalam_category_attributes").html(html); $(".basalam-copy-attr").on("click", function () { const text = $(this).text().trim(); if (navigator.clipboard) { navigator.clipboard .writeText(text) .then(function () {}) .catch(function (err) { console.error("خطا در کپی:", err); }); } else { var tempInput = document.createElement("input"); tempInput.value = text; document.body.appendChild(tempInput); tempInput.select(); document.execCommand("copy"); document.body.removeChild(tempInput); } }); }, error: function (xhr, status, error) { var message = getAjaxErrorMessage(xhr, "خطا در دریافت ویژگی‌ها."); $("#sync_basalam_category_attributes").html(message); }, }); } else { $(".basalam-action-button").removeAttr("data-cat-id"); $("#sync_basalam_category_attributes").html(""); } }); $("#basalam_fetch_categories_btn").on("click", function () { var productTitle = $("#title").val(); if (!productTitle || productTitle.trim() === "") { window.BasalamToast.warning("لطفاً ابتدا عنوان محصول را وارد کنید."); $("#title").focus(); return; } var nonce = $("#basalam_get_category_ids_nonce").val(); var $btn = $(this); var originalText = $btn.text(); $btn.prop("disabled", true).text("در حال دریافت..."); $("#sync_basalam_category_id") .html("") .removeClass("basalam--hidden"); $.ajax({ url: ajaxurl, method: "POST", data: { action: "basalam_get_category_ids", productTitle: productTitle, _wpnonce: nonce, }, success: function (res) { if (res.success) { var categories = res.data; var html = `
دسته‌بندی‌های باسلام:
`; categories.forEach(function (category) { html += ` `; }); html += `
`; $("#sync_basalam_category_id").html(html); } else { $("#sync_basalam_category_id").html( res.data && res.data.message ? res.data.message : "خطا در دریافت دسته‌بندی‌ها." ); } $btn.prop("disabled", false).text(originalText); }, error: function (xhr, status, error) { var message = getAjaxErrorMessage(xhr, "خطا در دریافت دسته‌بندی خودکار محصول."); $("#sync_basalam_category_id").html(message); $btn.prop("disabled", false).text(originalText); }, }); }); });