{"id":1242,"date":"2025-05-21T20:22:19","date_gmt":"2025-05-21T23:22:19","guid":{"rendered":"https:\/\/codewise.com.ar\/?page_id=1242"},"modified":"2025-05-21T20:39:02","modified_gmt":"2025-05-21T23:39:02","slug":"ecommerces","status":"publish","type":"page","link":"https:\/\/codewise.com.ar\/index.php\/ecommerces\/","title":{"rendered":"Ecommerces"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1242\" class=\"elementor elementor-1242\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dcf0e07 e-flex e-con-boxed e-con e-parent\" data-id=\"dcf0e07\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-c8edd69 e-con-full e-flex e-con e-child\" data-id=\"c8edd69\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0ed2e23 elementor-widget elementor-widget-html\" data-id=\"0ed2e23\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"es\">\r\n<head>\r\n  <meta charset=\"UTF-8\" \/>\r\n  <title>Ecommerce<\/title>\r\n  <style>\r\n    h4{text-align:center;margin-bottom:20px;}\r\n    #filter-container{text-align:center;margin-bottom:30px;}\r\n    select{\r\n      padding:8px 12px;font-size:16px;border-radius:5px;\r\n      border:1px solid #ccc;cursor:pointer;min-width:200px;\r\n    }\r\n    .grid{\r\n      display:grid;\r\n      grid-template-columns:repeat(auto-fit,minmax(300px,1fr));\r\n      gap:10px;\r\n    }\r\n    .card{\r\n      background:#fff;max-width:400px;max-height:400px;\r\n      border-radius:12px;box-shadow:0 4px 15px rgba(0,0,0,.1);\r\n      overflow:hidden;display:flex;flex-direction:column;\r\n      margin:0;transition:all .2s ease-in-out;\r\n    }\r\n    .card:hover{transform:translateY(-5px);box-shadow:0 8px 20px rgba(0,0,0,.2);}\r\n    .card img{width:100%;height:auto;object-fit:contain;}\r\n    .card-content{padding:15px;}\r\n    .card h5{margin:0 0 10px;}\r\n    .card p{color:#555;font-size:.95em;}\r\n    .card a{margin-top:auto;color:#0073aa;text-decoration:none;font-weight:bold;}\r\n    .card a:hover{text-decoration:underline;}\r\n    @media(max-width:600px){\r\n      #filter-container{margin-bottom:20px;}\r\n      select{\r\n        width:100%;max-width:100%;font-size:18px;padding:10px;\r\n        background:#fff;color:#3d3d3d;\r\n      }\r\n      .grid{grid-template-columns:1fr!important;gap:15px;}\r\n      .card img{height:auto;}\r\n      .card-content{padding:10px;}\r\n      .card p{font-size:.9em;}\r\n    }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n\r\n  <h4>Nuestros Ecommerce \ud83d\uded2<\/h4>\r\n\r\n  <div id=\"filter-container\">\r\n    <select id=\"tagFilter\">\r\n      <option value=\"all\">Todos los rubros<\/option>\r\n    <\/select>\r\n  <\/div>\r\n\r\n  <div id=\"websites\" class=\"grid\"><\/div>\r\n\r\n  <script>\r\n    const baseURL = 'https:\/\/codewise.com.ar';\r\n    let allPosts = [];\r\n    const select = document.getElementById('tagFilter');\r\n\r\n    function renderPosts(posts){\r\n      const container = document.getElementById('websites');\r\n      container.innerHTML = '';\r\n      if(!posts.length){\r\n        container.innerHTML = '<p>No hay proyectos para esta etiqueta.<\/p>';\r\n        return;\r\n      }\r\n      posts.forEach(post=>{\r\n        const title   = post.title.rendered;\r\n        const excerpt = post.excerpt.rendered.replace(\/<[^>]+>\/g,'');\r\n        const siteUrl = post.url_sitio || post.link;\r\n        const image   = post._embedded?.['wp:featuredmedia']?.[0]?.source_url\r\n                        || 'https:\/\/via.placeholder.com\/300x180?text=Sin+imagen';\r\n        const card = document.createElement('div');\r\n        card.className = 'card';\r\n        card.innerHTML = `\r\n          <img decoding=\"async\" src=\"${image}\" alt=\"${title}\">\r\n          <div class=\"card-content\">\r\n            <h5>${title}<\/h5>\r\n            <p>${excerpt}<\/p>\r\n            <a href=\"${siteUrl}\" target=\"_blank\" rel=\"noopener\">Ver proyecto<\/a>\r\n          <\/div>`;\r\n        container.appendChild(card);\r\n      });\r\n    }\r\n\r\n    function filterPostsByTag(tagId){\r\n      renderPosts(tagId === 'all'\r\n        ? allPosts\r\n        : allPosts.filter(p=>p.tags.includes(+tagId)));\r\n    }\r\n\r\n    select.addEventListener('change',()=>filterPostsByTag(select.value));\r\n\r\n    \/\/ Obtener categor\u00eda \"ecommerce\"\r\n    fetch(`${baseURL}\/wp-json\/wp\/v2\/categories?slug=ecommerce`)\r\n      .then(r=>r.json())\r\n      .then(cat=>{\r\n        if(!cat.length){\r\n          document.getElementById('websites').innerHTML =\r\n            '<p>No se encontr\u00f3 la categor\u00eda \"Ecommerce\".<\/p>';\r\n          return;\r\n        }\r\n        const categoryId = cat[0].id;\r\n\r\n        \/\/ Traer posts\r\n        fetch(`${baseURL}\/wp-json\/wp\/v2\/posts?categories=${categoryId}&_embed&per_page=100`)\r\n          .then(r=>r.json())\r\n          .then(posts=>{\r\n            \/\/ M\u00e1s recientes primero\r\n            allPosts = posts.sort((a,b)=>new Date(b.date)-new Date(a.date));\r\n\r\n            const tagIds = [...new Set(posts.flatMap(p=>p.tags))].filter(Boolean);\r\n            if(!tagIds.length){ renderPosts(allPosts); return; }\r\n\r\n            \/\/ Traer etiquetas\r\n            fetch(`${baseURL}\/wp-json\/wp\/v2\/tags?include=${tagIds.join(',')}`)\r\n              .then(r=>r.json())\r\n              .then(tags=>{\r\n                tags.forEach(tag=>{\r\n                  const opt = document.createElement('option');\r\n                  opt.value = tag.id;\r\n                  opt.textContent = tag.name;\r\n                  select.appendChild(opt);\r\n                });\r\n                renderPosts(allPosts);\r\n              });\r\n          });\r\n      });\r\n  <\/script>\r\n\r\n<\/body>\r\n<\/html>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\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>Ecommerce Nuestros Ecommerce \ud83d\uded2 Todos los rubros<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-1242","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/codewise.com.ar\/index.php\/wp-json\/wp\/v2\/pages\/1242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codewise.com.ar\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/codewise.com.ar\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/codewise.com.ar\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codewise.com.ar\/index.php\/wp-json\/wp\/v2\/comments?post=1242"}],"version-history":[{"count":10,"href":"https:\/\/codewise.com.ar\/index.php\/wp-json\/wp\/v2\/pages\/1242\/revisions"}],"predecessor-version":[{"id":1261,"href":"https:\/\/codewise.com.ar\/index.php\/wp-json\/wp\/v2\/pages\/1242\/revisions\/1261"}],"wp:attachment":[{"href":"https:\/\/codewise.com.ar\/index.php\/wp-json\/wp\/v2\/media?parent=1242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}