{"id":528,"date":"2026-07-13T13:33:16","date_gmt":"2026-07-13T13:33:16","guid":{"rendered":"https:\/\/ets-moheb.com\/?page_id=528"},"modified":"2026-07-22T11:41:53","modified_gmt":"2026-07-22T11:41:53","slug":"manage-products","status":"publish","type":"page","link":"https:\/\/ets-moheb.com\/index.php\/manage-products\/","title":{"rendered":"Manage Products"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"528\" class=\"elementor elementor-528\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a4b9236 e-flex e-con-boxed e-con e-parent\" data-id=\"a4b9236\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9c1f7eb elementor-widget elementor-widget-html\" data-id=\"9c1f7eb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\n<div class=\"etsm-mp-wrap\" id=\"etsmMPApp\">\n  <div class=\"etsm-mp-card\">\n    <div class=\"etsm-mp-header\">\n      <span class=\"etsm-mp-eyebrow\">Team Tools<\/span>\n      <h1>Manage Products<\/h1>\n      <p class=\"etsm-mp-sub\">Sign in to view, edit, or remove products in the catalogue.<\/p>\n    <\/div>\n\n    <form id=\"etsmMPLoginForm\" class=\"etsm-mp-form\">\n      <div class=\"etsm-mp-field\">\n        <label>Username<\/label>\n        <input type=\"text\" id=\"etsmMPUser\" autocomplete=\"username\" required=\"\">\n      <\/div>\n      <div class=\"etsm-mp-field\">\n        <label>Password<\/label>\n        <input type=\"password\" id=\"etsmMPPass\" autocomplete=\"current-password\" required=\"\">\n      <\/div>\n      <div class=\"etsm-mp-error\" id=\"etsmMPLoginError\" style=\"display:none;\"><\/div>\n      <button type=\"submit\" class=\"etsm-btn etsm-btn-orange\" id=\"etsmMPLoginBtn\">Sign In<\/button>\n    <\/form>\n\n    <div id=\"etsmMPListView\" style=\"display:none;\">\n      <div class=\"etsm-mp-toolbar\">\n        <div class=\"etsm-mp-welcome\">Signed in as <strong id=\"etsmMPWho\"><\/strong> \u00b7 <a href=\"#\" id=\"etsmMPLogout\">Sign out<\/a><\/div>\n        <a href=\"https:\/\/ets-moheb.com\/index.php\/add-product\/\" class=\"etsm-btn etsm-btn-outline etsm-mp-addnew\">+ Add New Product<\/a>\n      <\/div><div class=\"etsm-mp-searchbar\"><svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"><circle cx=\"7\" cy=\"7\" r=\"5.5\" stroke=\"currentColor\" stroke-width=\"1.4\"><\/circle><path d=\"M11 11L15 15\" stroke=\"currentColor\" stroke-width=\"1.4\" stroke-linecap=\"round\"><\/path><\/svg><input type=\"text\" id=\"etsmMPSearch\" placeholder=\"Search by product name...\"><span id=\"etsmMPSearchStatus\" class=\"etsm-mp-search-status\"><\/span><\/div>\n      <div id=\"etsmMPLoading\" class=\"etsm-mp-loading\">Loading products...<\/div>\n      <div id=\"etsmMPList\" class=\"etsm-mp-list\"><\/div>\n    <\/div>\n\n    <form id=\"etsmMPEditForm\" class=\"etsm-mp-form\" style=\"display:none;\">\n      <div class=\"etsm-mp-toolbar\">\n        <button type=\"button\" id=\"etsmMPBack\" class=\"etsm-btn etsm-btn-outline\">\u2190 Back to list<\/button>\n      <\/div>\n      <div class=\"etsm-mp-field\"><label>Product Name *<\/label><input type=\"text\" id=\"etsmMPName\" required=\"\"><\/div>\n      <div class=\"etsm-mp-row\">\n        <div class=\"etsm-mp-field\"><label>Material<\/label><input type=\"text\" id=\"etsmMPMaterial\"><\/div>\n        <div class=\"etsm-mp-field\"><label>Family \/ ISO Shape<\/label><input type=\"text\" id=\"etsmMPFamily\"><\/div>\n      <\/div>\n      <div class=\"etsm-mp-row\">\n        <div class=\"etsm-mp-field\"><label>Size<\/label><input type=\"text\" id=\"etsmMPSize\"><\/div>\n        <div class=\"etsm-mp-field\"><label>Status<\/label>\n          <select id=\"etsmMPStatus\">\n            <option>In Stock<\/option>\n            <option>On Order<\/option>\n            <option>Discontinued<\/option>\n          <\/select>\n        <\/div>\n      <\/div>\n      <div class=\"etsm-mp-field\"><label>Short Description<\/label><textarea id=\"etsmMPDesc\" rows=\"3\"><\/textarea><\/div>\n      <div class=\"etsm-mp-field\">\n        <label>Product Photo<\/label>\n        <div id=\"etsmMPCurrentImageWrap\"><img id=\"etsmMPCurrentImage\" style=\"display:none;max-height:90px;border-radius:8px;margin-bottom:8px;\"><\/div>\n        <input type=\"file\" id=\"etsmMPImage\" accept=\"image\/*\">\n        <div class=\"etsm-mp-hint\">Leave empty to keep the current photo.<\/div>\n      <\/div>\n\n      <div class=\"etsm-mp-error\" id=\"etsmMPEditError\" style=\"display:none;\"><\/div>\n      <div class=\"etsm-mp-success\" id=\"etsmMPEditSuccess\" style=\"display:none;\"><\/div>\n\n      <div class=\"etsm-mp-actions\">\n        <button type=\"submit\" class=\"etsm-btn etsm-btn-orange\" id=\"etsmMPSaveBtn\">Save Changes<\/button>\n        <button type=\"button\" class=\"etsm-btn etsm-btn-danger\" id=\"etsmMPDeleteBtn\">Delete Product<\/button>\n      <\/div>\n    <\/form>\n  <\/div>\n<\/div>\n\n<style>\n#etsmMPApp{ font-family:var(--etsm-font); max-width:720px; margin:60px auto; padding:0 20px; }\n.etsm-mp-card{ background:var(--etsm-white); border:1px solid var(--etsm-gray-el); border-radius:16px; box-shadow:0 20px 48px rgba(10,27,48,0.14); padding:44px 40px; box-sizing:border-box; }\n.etsm-mp-eyebrow{ display:inline-block; color:var(--etsm-orange); font-weight:700; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:10px; }\n.etsm-mp-header h1{ color:var(--etsm-navy-2); font-size:28px; font-weight:700; margin:0 0 8px; }\n.etsm-mp-sub{ color:#6b7683; font-size:14px; margin:0 0 28px; }\n.etsm-mp-field{ margin-bottom:18px; flex:1; }\n.etsm-mp-row{ display:flex; gap:16px; }\n.etsm-mp-field label{ display:block; font-size:13px; font-weight:600; color:var(--etsm-navy-2); margin-bottom:6px; }\n.etsm-mp-field input, .etsm-mp-field select, .etsm-mp-field textarea{ width:100%; border:1.5px solid var(--etsm-gray-el); border-radius:8px; padding:12px 14px; font-size:14px; font-family:var(--etsm-font); background:var(--etsm-white); box-sizing:border-box; }\n.etsm-mp-field input:focus, .etsm-mp-field select:focus, .etsm-mp-field textarea:focus{ outline:none; border-color:var(--etsm-orange); box-shadow:0 0 0 3px rgba(255,102,0,0.12); }\n.etsm-mp-hint{ font-size:12px; color:#9aa3ad; margin-top:6px; }\n.etsm-mp-wrap .etsm-btn{ display:inline-block; text-decoration:none; text-align:center; border:none; border-radius:8px; padding:12px 22px; font-weight:700; font-size:14px; font-family:var(--etsm-font); cursor:pointer; }\n.etsm-mp-wrap #etsmMPLoginBtn{ width:100%; padding:14px 30px; }\n.etsm-mp-wrap .etsm-btn-orange{ background:var(--etsm-orange); color:#fff; }\n.etsm-mp-wrap .etsm-btn-orange:hover{ background:#e65c00; }\n.etsm-mp-wrap .etsm-btn-orange:disabled{ opacity:0.6; cursor:not-allowed; }\n.etsm-mp-wrap .etsm-btn-outline{ background:transparent; color:var(--etsm-navy-2); border:1.5px solid var(--etsm-gray-el); }\n.etsm-mp-wrap .etsm-btn-outline:hover{ border-color:var(--etsm-orange); color:var(--etsm-orange); }\n.etsm-mp-wrap .etsm-btn-danger{ background:#fff; color:#c0392b; border:1.5px solid #f0b8b0; }\n.etsm-mp-wrap .etsm-btn-danger:hover{ background:#fdecea; }\n.etsm-mp-error{ background:#fdecea; border:1px solid #f5b5ad; color:#9a2f24; border-radius:8px; padding:10px 14px; font-size:13px; margin-bottom:16px; }\n.etsm-mp-success{ background:#eaf7ee; border:1px solid #a9dcb8; color:#1e6b33; border-radius:8px; padding:10px 14px; font-size:13px; margin-bottom:16px; }\n.etsm-mp-toolbar{ display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; flex-wrap:wrap; gap:12px; }\n.etsm-mp-welcome{ font-size:13px; color:#6b7683; }\n.etsm-mp-welcome a{ color:var(--etsm-orange); font-weight:600; text-decoration:none; }\n.etsm-mp-loading{ font-size:14px; color:#9aa3ad; padding:20px 0; }\n.etsm-mp-list{ display:flex; flex-direction:column; gap:12px; }\n.etsm-mp-row-item{ display:flex; align-items:center; gap:14px; border:1px solid var(--etsm-gray-el); border-radius:10px; padding:12px 14px; }\n.etsm-mp-row-item img{ width:52px; height:52px; object-fit:contain; border-radius:6px; background:#f5f6f8; flex-shrink:0; }\n.etsm-mp-row-info{ flex:1; min-width:0; }\n.etsm-mp-row-info .name{ font-weight:700; color:var(--etsm-navy-2); font-size:14px; }\n.etsm-mp-row-info .meta{ font-size:12px; color:#9aa3ad; margin-top:2px; }\n.etsm-mp-actions{ display:flex; gap:12px; margin-top:8px; }\n@media (max-width:520px){ .etsm-mp-row{ flex-direction:column; gap:0; } .etsm-mp-card{ padding:32px 24px; } .etsm-mp-actions{ flex-direction:column; } }\n<\/style>\n\n<style>.etsm-mp-searchbar{ display:flex; align-items:center; gap:10px; background:#f7f8fa; border:1.5px solid #e2e4e9; border-radius:10px; padding:12px 16px; margin:16px 0 20px; color:#9aa3ad; }.etsm-mp-searchbar input{ border:none; outline:none; background:transparent; flex:1; font-size:14px; font-family:inherit; color:#1b2a4a; }.etsm-mp-search-status{ font-size:12px; color:#9aa3ad; white-space:nowrap; }<\/style><script>\n(function(){\n  var loginForm = document.getElementById('etsmMPLoginForm');\n  var listView = document.getElementById('etsmMPListView');\n  var editForm = document.getElementById('etsmMPEditForm');\n  var loginErr = document.getElementById('etsmMPLoginError');\n  var editErr = document.getElementById('etsmMPEditError');\n  var editOk = document.getElementById('etsmMPEditSuccess');\n  var listEl = document.getElementById('etsmMPList');\n  var loadingEl = document.getElementById('etsmMPLoading');\n  if (!loginForm) return;\n  var NONCE = null;\n  var PRODUCTS = [];\n  var CURRENT_EDIT_ID = null;\n\n  window.addEventListener('load', function() {\n    if (window.etsmServerNonce) {\n      NONCE = window.etsmServerNonce;\n      document.getElementById('etsmMPWho').textContent = window.etsmServerName || 'pola';\n      loginForm.style.display = 'none';\n      showList();\n      loadProducts();\n    }\n  });\n\n  function findAttr(attrs, name){\n    if (!attrs) return '';\n    var a = attrs.find(function(x){ return x.name === name; });\n    return a && a.options && a.options[0] ? a.options[0] : '';\n  }\n\n  function showList(){\n    editForm.style.display = 'none';\n    listView.style.display = 'block';\n  }\n\n  function renderList(){\n    if (!PRODUCTS.length) {\n      listEl.innerHTML = '<p style=\"color:#9aa3ad;font-size:14px;\">No products yet.<\/p>';\n      return;\n    }\n    listEl.innerHTML = PRODUCTS.map(function(p){\n      var img = (p.images && p.images[0] && p.images[0].src) ? p.images[0].src : '';\n      var material = findAttr(p.attributes, 'Material');\n      var size = findAttr(p.attributes, 'Size');\n      var status = findAttr(p.attributes, 'Status');\n      var meta = [material, size, status].filter(Boolean).join(' \\u00b7 ');\n      return '<div class=\"etsm-mp-row-item\">' +\n        (img ? '<img decoding=\"async\" src=\"' + img + '\" alt=\"\">' : '<div style=\"width:52px;height:52px;background:#f5f6f8;border-radius:6px;flex-shrink:0;\"><\/div>') +\n        '<div class=\"etsm-mp-row-info\"><div class=\"name\">' + p.name + '<\/div><div class=\"meta\">' + meta + '<\/div><\/div>' +\n        '<button type=\"button\" class=\"etsm-btn etsm-btn-outline\" data-edit=\"' + p.id + '\">Edit<\/button>' +\n        '<\/div>';\n    }).join('');\n    Array.prototype.forEach.call(listEl.querySelectorAll('[data-edit]'), function(btn){\n      btn.addEventListener('click', function(){ openEdit(parseInt(btn.getAttribute('data-edit'),10)); });\n    });\n  }\n\n  function loadProducts(){\n    loadingEl.style.display = 'block';\n    listEl.innerHTML = '';\n    fetch('\/wp-json\/wc\/v3\/products?per_page=100&orderby=date&order=desc', {\n      credentials: 'same-origin', headers: { 'X-WP-Nonce': NONCE }\n    }).then(function(r){ return r.json(); }).then(function(data){\n      PRODUCTS = Array.isArray(data) ? data : [];\n      loadingEl.style.display = 'none';\n      renderList();\n    }).catch(function(){\n      loadingEl.textContent = 'Could not load products.';\n    });\n  }\n\n  function openEdit(id){\n    var p = PRODUCTS.find(function(x){ return x.id === id; });\n    if (!p) return;\n    CURRENT_EDIT_ID = id;\n    document.getElementById('etsmMPName').value = p.name || '';\n    document.getElementById('etsmMPMaterial').value = findAttr(p.attributes, 'Material');\n    document.getElementById('etsmMPFamily').value = findAttr(p.attributes, 'Family \/ ISO Shape');\n    document.getElementById('etsmMPSize').value = findAttr(p.attributes, 'Size');\n    var statusVal = findAttr(p.attributes, 'Status') || 'In Stock';\n    var statusSel = document.getElementById('etsmMPStatus');\n    statusSel.value = statusVal;\n    if (statusSel.value !== statusVal) { statusSel.selectedIndex = 0; }\n    document.getElementById('etsmMPDesc').value = (p.short_description || '').replace(\/<[^>]+>\/g, '');\n    document.getElementById('etsmMPImage').value = '';\n    var imgEl = document.getElementById('etsmMPCurrentImage');\n    if (p.images && p.images[0] && p.images[0].src) {\n      imgEl.src = p.images[0].src; imgEl.style.display = 'inline-block';\n    } else {\n      imgEl.style.display = 'none';\n    }\n    editErr.style.display = 'none'; editOk.style.display = 'none';\n    listView.style.display = 'none';\n    editForm.style.display = 'block';\n  }\n\n  loginForm.addEventListener('submit', function(e){\n    e.preventDefault();\n    loginErr.style.display = 'none';\n    var btn = document.getElementById('etsmMPLoginBtn');\n    btn.disabled = true; btn.textContent = 'Signing in...';\n    fetch('\/wp-json\/etsm\/v1\/login', {\n      method:'POST', credentials:'same-origin',\n      headers:{'Content-Type':'application\/json'},\n      body: JSON.stringify({\n        username: document.getElementById('etsmMPUser').value.trim(),\n        password: document.getElementById('etsmMPPass').value\n      })\n    }).then(function(res){ return res.json().then(function(data){ return {res:res, data:data}; }); })\n    .then(function(o){\n      if (!o.res.ok || !o.data.success) { throw new Error(o.data.message || 'Login failed.'); }\n      NONCE = o.data.nonce;\n      document.getElementById('etsmMPWho').textContent = o.data.display_name;\n      document.getElementById('etsmMPPass').value = '';\n      loginForm.style.display = 'none';\n      showList();\n      loadProducts();\n    }).catch(function(err){\n      loginErr.textContent = err.message; loginErr.style.display = 'block';\n    }).finally(function(){\n      btn.disabled = false; btn.textContent = 'Sign In';\n    });\n  });\n\n  document.getElementById('etsmMPLogout').addEventListener('click', function(e){\n    e.preventDefault();\n    fetch('\/wp-json\/etsm\/v1\/logout', {method:'POST', credentials:'same-origin'}).catch(function(){});\n    NONCE = null; PRODUCTS = [];\n    listView.style.display = 'none';\n    editForm.style.display = 'none';\n    loginForm.style.display = 'block';\n    document.getElementById('etsmMPUser').value = '';\n  });\n\n  document.getElementById('etsmMPBack').addEventListener('click', function(){\n    showList();\n  });\n\n  editForm.addEventListener('submit', function(e){\n    e.preventDefault();\n    editErr.style.display = 'none'; editOk.style.display = 'none';\n    var btn = document.getElementById('etsmMPSaveBtn');\n    btn.disabled = true; btn.textContent = 'Saving...';\n\n    var name = document.getElementById('etsmMPName').value.trim();\n    var material = document.getElementById('etsmMPMaterial').value.trim();\n    var family = document.getElementById('etsmMPFamily').value.trim();\n    var size = document.getElementById('etsmMPSize').value.trim();\n    var status = document.getElementById('etsmMPStatus').value;\n    var desc = document.getElementById('etsmMPDesc').value.trim();\n    var fileInput = document.getElementById('etsmMPImage');\n\n    function buildAttrs(){\n      var attrs = [];\n      if (material) attrs.push({name:'Material', options:[material], visible:true});\n      if (family) attrs.push({name:'Family \/ ISO Shape', options:[family], visible:true});\n      if (size) attrs.push({name:'Size', options:[size], visible:true});\n      if (status) attrs.push({name:'Status', options:[status], visible:true});\n      return attrs;\n    }\n\n    function savePayload(imageId){\n      var payload = { name: name, short_description: desc, attributes: buildAttrs() };\n      if (imageId) payload.images = [{id: imageId}];\n      return fetch('\/wp-json\/wc\/v3\/products\/' + CURRENT_EDIT_ID, {\n        method:'POST', credentials:'same-origin',\n        headers: {'Content-Type':'application\/json','X-WP-Nonce': NONCE},\n        body: JSON.stringify(payload)\n      }).then(function(r){ return r.json().then(function(d){ return {r:r, d:d}; }); });\n    }\n\n    var uploadPromise;\n    if (fileInput.files && fileInput.files[0]) {\n      var fd = new FormData();\n      fd.append('file', fileInput.files[0], fileInput.files[0].name);\n      uploadPromise = fetch('\/wp-json\/wp\/v2\/media', {\n        method:'POST', credentials:'same-origin', headers:{'X-WP-Nonce': NONCE}, body: fd\n      }).then(function(r){ return r.json().then(function(d){ if(!r.ok) throw new Error(d.message || 'Image upload failed.'); return d.id; }); });\n    } else {\n      uploadPromise = Promise.resolve(null);\n    }\n\n    uploadPromise.then(function(imageId){\n      return savePayload(imageId);\n    }).then(function(o){\n      if (!o.r.ok) throw new Error(o.d.message || 'Could not save changes.');\n      editOk.textContent = 'Changes saved.';\n      editOk.style.display = 'block';\n      loadProducts();\n    }).catch(function(err){\n      editErr.textContent = err.message; editErr.style.display = 'block';\n    }).finally(function(){\n      btn.disabled = false; btn.textContent = 'Save Changes';\n    });\n  });\n\n  document.getElementById('etsmMPDeleteBtn').addEventListener('click', function(){\n    if (!CURRENT_EDIT_ID) return;\n    if (!window.confirm('Move this product to the trash? You can restore it later from wp-admin if needed.')) return;\n    var btn = document.getElementById('etsmMPDeleteBtn');\n    btn.disabled = true; btn.textContent = 'Deleting...';\n    fetch('\/wp-json\/wc\/v3\/products\/' + CURRENT_EDIT_ID, {\n      method:'DELETE', credentials:'same-origin', headers:{'X-WP-Nonce': NONCE}\n    }).then(function(r){ return r.json().then(function(d){ return {r:r,d:d}; }); })\n    .then(function(o){\n      if (!o.r.ok) throw new Error(o.d.message || 'Could not delete product.');\n      showList();\n      loadProducts();\n    }).catch(function(err){\n      editErr.textContent = err.message; editErr.style.display = 'block';\n    }).finally(function(){\n      btn.disabled = false; btn.textContent = 'Delete Product';\n    });\n  });\n\n  \/* ETS Manage Products search (do not remove) *\/\n  var etsmSearchInput = document.getElementById(\"etsmMPSearch\");\n  var etsmSearchStatus = document.getElementById(\"etsmMPSearchStatus\");\n  var etsmSearchDebounce = null;\n  function etsmSearchProducts(q){\n    if (etsmSearchStatus) etsmSearchStatus.textContent = \"Searching...\";\n    var etsmNonceToUse = window.etsmServerNonce;\n    fetch(\"\/wp-json\/wc\/v3\/products?search=\" + encodeURIComponent(q) + \"&per_page=50\", { headers: { \"X-WP-Nonce\": etsmNonceToUse } })\n      .then(function(r){ return r.json(); })\n      .then(function(data){\n        PRODUCTS = Array.isArray(data) ? data : [];\n        renderList();\n        if (etsmSearchStatus) etsmSearchStatus.textContent = PRODUCTS.length + (PRODUCTS.length === 1 ? \" result\" : \" results\");\n      })\n      .catch(function(err){ if (etsmSearchStatus) etsmSearchStatus.textContent = \"Search failed.\"; });\n  }\n  if (etsmSearchInput) {\n    etsmSearchInput.addEventListener(\"input\", function(){\n      var q = etsmSearchInput.value.trim();\n      clearTimeout(etsmSearchDebounce);\n      etsmSearchDebounce = setTimeout(function(){\n        if (q.length === 0) { if (etsmSearchStatus) etsmSearchStatus.textContent = \"\"; loadProducts(); }\n        else { etsmSearchProducts(q); }\n      }, 350);\n    });\n  }\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Team Tools Manage Products Sign in to view, edit, or remove products in the catalogue. Username Password Sign In Signed in as \u00b7 Sign out + Add New Product Loading products&#8230; \u2190 Back to list Product Name * Material Family \/ ISO Shape Size Status In StockOn OrderDiscontinued Short Description Product Photo Leave empty to [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-528","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ets-moheb.com\/index.php\/wp-json\/wp\/v2\/pages\/528","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ets-moheb.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ets-moheb.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ets-moheb.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ets-moheb.com\/index.php\/wp-json\/wp\/v2\/comments?post=528"}],"version-history":[{"count":24,"href":"https:\/\/ets-moheb.com\/index.php\/wp-json\/wp\/v2\/pages\/528\/revisions"}],"predecessor-version":[{"id":594,"href":"https:\/\/ets-moheb.com\/index.php\/wp-json\/wp\/v2\/pages\/528\/revisions\/594"}],"wp:attachment":[{"href":"https:\/\/ets-moheb.com\/index.php\/wp-json\/wp\/v2\/media?parent=528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}