Trouvez un transporteur en quelques secondes. Seuls les champs essentiels sont requis.
Renseignez au moins le poids ou le volume.
function fcSendAjax(fields, btn, msgId, btnText) { btn.disabled = true; btn.textContent = 'Publication en cours...'; var msg = document.getElementById(msgId); msg.className = 'fc-msg'; msg.style.display = 'none'; var nonce = (typeof fcForms !== 'undefined') ? fcForms.nonce : ''; var ajaxurl = (typeof fcForms !== 'undefined') ? fcForms.ajaxurl : '/wp-admin/admin-ajax.php'; var fd = new FormData(); fd.append('action', 'fretcom_create_listing'); fd.append('nonce', nonce); for (var k in fields) { if (fields[k]) fd.append(k, fields[k]); } fetch(ajaxurl, { method: 'POST', credentials: 'include', body: fd }) .then(function(r) { return r.json(); }) .then(function(d) { btn.disabled = false; btn.textContent = btnText; if (d && d.success) { msg.className = 'fc-msg success'; msg.innerHTML = '✅ Annonce publiée ! Voir l'annonce →'; } else { msg.className = 'fc-msg error'; msg.textContent = '❌ ' + (d.data ? d.data.message : 'Erreur lors de la publication.'); } msg.style.display = 'block'; msg.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }).catch(function() { btn.disabled = false; btn.textContent = btnText; msg.className = 'fc-msg error'; msg.textContent = '❌ Erreur réseau.'; msg.style.display = 'block'; }); }
(function(){ document.querySelectorAll('#fc-mission .fc-btn-group').forEach(function(grp){ grp.addEventListener('click',function(e){ var btn=e.target.closest('button');if(!btn)return; grp.querySelectorAll('button').forEach(function(b){b.classList.remove('selected');}); btn.classList.add('selected'); var h=document.getElementById(grp.id+'-val');if(h)h.value=btn.getAttribute('data-val'); }); }); })(); function fcValM(id){var el=document.getElementById(id);return el?el.value.trim():'';} function fcSubmitMission(){ var ok=true; function req(id,errId){var el=document.getElementById(id);var err=document.getElementById(errId);if(!el||!el.value.trim()){if(err)err.style.display='block';ok=false;}else{if(err)err.style.display='none';}} req('fc-city-dep','err-city-dep');req('fc-city-arr','err-city-arr');req('fc-pickup-date','err-pickup-date'); var cargo=fcValM('fc-cargo-type-val'); var errC=document.getElementById('err-cargo-type'); if(!cargo){errC.style.display='block';ok=false;}else{errC.style.display='none';} if(!fcValM('fc-weight')&&!fcValM('fc-volume')){alert('Renseignez au moins le poids ou le volume.');ok=false;} if(!ok)return; var fields={ title:'Transport '+fcValM('fc-city-dep')+' \u2192 '+fcValM('fc-city-arr'), content:fcValM('fc-desc'), listing_type:'mission', listivo_9163:fcValM('fc-city-dep'), listivo_9166:fcValM('fc-city-arr'), listivo_9168:fcValM('fc-pickup-date'), listivo_9173:fcValM('fc-weight'), listivo_9174:fcValM('fc-volume'), listivo_9162:fcValM('fc-country-dep'), listivo_9164:fcValM('fc-postal-dep'), listivo_9165:fcValM('fc-country-arr'), listivo_9167:fcValM('fc-postal-arr'), listivo_9169:fcValM('fc-delivery-date'), listivo_9170:fcValM('fc-ref'), listivo_9176:fcValM('fc-pallets'), listivo_9175:fcValM('fc-load-length'), listivo_9186:fcValM('fc-budget'), listivo_9171:fcValM('fc-hs'), listivo_9145:cargo, listivo_9144:'mission', listivo_9147:fcValM('fc-temp-mode-val'), listivo_9146:fcValM('fc-adr'), listivo_9148:fcValM('fc-incoterm'), listivo_9149:fcValM('fc-customs'), listivo_9150:fcValM('fc-urgency'), listivo_9151:fcValM('fc-packaging'), listivo_9152:fcValM('fc-return-load-val'), }; fcSendAjax(fields, document.getElementById('fc-sub-m'), 'fc-msg-m', 'Publier ma demande de transport \u2192'); }