<!-- ============================================================
CreditoFacile.biz — Simulateur de Crédit / Simulatore di Credito
Widget Elementor — copier dans "HTML" widget
Multilingue : IT / FR (auto-détection Polylang)
============================================================ -->
<style>
#cf-sim-wrap *{box-sizing:border-box;margin:0;padding:0}
#cf-sim-wrap{
font-family:'Segoe UI',Arial,sans-serif;
max-width:720px;margin:0 auto;
background:#fff;border-radius:16px;
box-shadow:0 4px 32px rgba(0,60,140,.12);
overflow:hidden;
}
.cf-sim-header{
background:linear-gradient(135deg,#0a3d8f 0%,#1565c0 60%,#1976d2 100%);
padding:28px 32px;color:#fff;text-align:center;
}
.cf-sim-header h2{font-size:1.5rem;font-weight:700;margin-bottom:6px}
.cf-sim-header p{font-size:.95rem;opacity:.88}
.cf-sim-tabs{display:flex;background:#f0f4fa;border-bottom:1px solid #dde3ef}
.cf-sim-tab{
flex:1;padding:13px 8px;text-align:center;font-size:.88rem;font-weight:600;
cursor:pointer;color:#556;transition:all .2s;letter-spacing:.3px;
}
.cf-sim-tab.active{
background:#fff;color:#0a3d8f;border-bottom:3px solid #0a3d8f;
}
.cf-sim-tab:hover:not(.active){background:#e4ecf8;color:#1565c0}
.cf-sim-body{padding:28px 32px}
.cf-form-row{display:flex;gap:20px;margin-bottom:18px;flex-wrap:wrap}
.cf-form-col{flex:1;min-width:200px}
.cf-form-col label{
display:block;font-size:.82rem;font-weight:600;color:#445;
margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px;
}
.cf-form-col input,.cf-form-col select{
width:100%;padding:11px 14px;border:1.5px solid #d0d8e8;
border-radius:8px;font-size:.97rem;color:#222;
background:#fafcff;transition:border .2s;
}
.cf-form-col input:focus,.cf-form-col select:focus{
outline:none;border-color:#1565c0;background:#fff;
}
.cf-slider-wrap{margin-top:4px}
.cf-slider{
width:100%;-webkit-appearance:none;height:6px;
border-radius:3px;background:#d0d8e8;outline:none;cursor:pointer;
}
.cf-slider::-webkit-slider-thumb{
-webkit-appearance:none;width:22px;height:22px;border-radius:50%;
background:#1565c0;cursor:pointer;border:3px solid #fff;
box-shadow:0 2px 6px rgba(21,101,192,.3);
}
.cf-slider-labels{display:flex;justify-content:space-between;font-size:.75rem;color:#889;margin-top:4px}
.cf-result-box{
background:linear-gradient(135deg,#e8f0fe,#f3f8ff);
border:1.5px solid #b0c4ef;border-radius:12px;
padding:20px 24px;margin-top:8px;
}
.cf-result-main{
display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;
}
.cf-mensualite{
text-align:center;
}
.cf-mensualite .label{font-size:.82rem;color:#556;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.cf-mensualite .montant{font-size:2.2rem;font-weight:800;color:#0a3d8f;line-height:1.1}
.cf-mensualite .mois{font-size:.88rem;color:#778}
.cf-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;flex:1;min-width:220px}
.cf-detail-item{background:#fff;border-radius:8px;padding:10px 14px;border:1px solid #d8e4f4}
.cf-detail-item .lbl{font-size:.75rem;color:#778;font-weight:600;text-transform:uppercase}
.cf-detail-item .val{font-size:1.05rem;font-weight:700;color:#223;margin-top:2px}
.cf-cta-section{margin-top:20px;border-top:1px solid #d8e4f4;padding-top:20px}
.cf-cta-title{font-size:.95rem;font-weight:700;color:#0a3d8f;margin-bottom:14px}
.cf-lead-form .cf-form-row{margin-bottom:12px}
.cf-btn-submit{
width:100%;padding:14px;background:linear-gradient(135deg,#e65100,#f57c00);
color:#fff;border:none;border-radius:10px;font-size:1.05rem;font-weight:700;
cursor:pointer;transition:all .2s;letter-spacing:.5px;
box-shadow:0 4px 16px rgba(230,81,0,.25);
}
.cf-btn-submit:hover{background:linear-gradient(135deg,#bf360c,#e65100);transform:translateY(-1px)}
.cf-btn-submit:active{transform:translateY(0)}
.cf-legal{font-size:.72rem;color:#aaa;margin-top:10px;line-height:1.5}
.cf-success{
display:none;background:#e8f5e9;border:1.5px solid #a5d6a7;border-radius:10px;
padding:16px 20px;text-align:center;margin-top:16px;
}
.cf-success .icon{font-size:2rem}
.cf-success p{font-size:.95rem;color:#2e7d32;font-weight:600;margin-top:6px}
@media(max-width:520px){
.cf-sim-body{padding:20px 16px}
.cf-form-row{flex-direction:column;gap:12px}
.cf-mensualite .montant{font-size:1.8rem}
.cf-result-main{flex-direction:column}
}
</style>
<div id="cf-sim-wrap">
<div class="cf-sim-header">
<h2 id="cf-titre">Simulatore di Credito</h2>
<p id="cf-sous-titre">Calcola la tua rata mensile in 30 secondi</p>
</div>
<div class="cf-sim-tabs">
<div class="cf-sim-tab active" onclick="cfSetType('mutuo')" id="tab-mutuo">Mutuo</div>
<div class="cf-sim-tab" onclick="cfSetType('prestito')" id="tab-prestito">Prestito Personale</div>
<div class="cf-sim-tab" onclick="cfSetType('auto')" id="tab-auto">Prestito Auto</div>
<div class="cf-sim-tab" onclick="cfSetType('cessione')" id="tab-cessione">Cessione V°</div>
</div>
<div class="cf-sim-body">
<!-- Montant -->
<div class="cf-form-row">
<div class="cf-form-col">
<label id="lbl-montant">Importo richiesto</label>
<input type="number" id="cf-montant" value="100000" min="1000" max="1000000" step="1000" oninput="cfSync('montant');cfCalc()">
<div class="cf-slider-wrap">
<input type="range" class="cf-slider" id="cf-montant-slider" min="5000" max="500000" step="1000" value="100000" oninput="cfSync('slider-montant');cfCalc()">
<div class="cf-slider-labels"><span id="sl-min">5.000€</span><span id="sl-max">500.000€</span></div>
</div>
</div>
<div class="cf-form-col">
<label id="lbl-duree">Durata (anni)</label>
<input type="number" id="cf-duree" value="20" min="1" max="30" oninput="cfCalc()">
<div class="cf-slider-wrap">
<input type="range" class="cf-slider" id="cf-duree-slider" min="1" max="30" value="20" oninput="document.getElementById('cf-duree').value=this.value;cfCalc()">
<div class="cf-slider-labels"><span>1 an</span><span id="sl-duree-max">30 ans</span></div>
</div>
</div>
</div>
<div class="cf-form-row">
<div class="cf-form-col">
<label id="lbl-taux">Taux (TAEG %)</label>
<input type="number" id="cf-taux" value="4.5" min="0.1" max="25" step="0.1" oninput="cfCalc()">
</div>
<div class="cf-form-col" id="col-apport" style="display:none">
<label id="lbl-apport">Apport personnel</label>
<input type="number" id="cf-apport" value="20000" min="0" step="1000" oninput="cfCalc()">
</div>
<div class="cf-form-col" id="col-pays">
<label id="lbl-pays">Pays / Paese</label>
<select id="cf-pays" onchange="cfChangePays()">
<option value="IT">🇮🇹 Italia</option>
<option value="FR">🇫🇷 France</option>
<option value="ES">🇪🇸 España</option>
<option value="DE">🇩🇪 Deutschland</option>
</select>
</div>
</div>
<!-- Résultat -->
<div class="cf-result-box">
<div class="cf-result-main">
<div class="cf-mensualite">
<div class="label" id="lbl-mensualite">Rata mensile</div>
<div class="montant" id="cf-mensualite-val">537€</div>
<div class="mois" id="lbl-mois-sur">su 240 mesi</div>
</div>
<div class="cf-detail-grid">
<div class="cf-detail-item">
<div class="lbl" id="lbl-total">Totale rimborso</div>
<div class="val" id="cf-total-val">128.880€</div>
</div>
<div class="cf-detail-item">
<div class="lbl" id="lbl-interets">Interessi totali</div>
<div class="val" id="cf-interets-val">28.880€</div>
</div>
<div class="cf-detail-item">
<div class="lbl" id="lbl-taux-label">TAEG</div>
<div class="val" id="cf-taux-label-val">4.5%</div>
</div>
<div class="cf-detail-item">
<div class="lbl" id="lbl-duree-label">Durata</div>
<div class="val" id="cf-duree-label-val">20 anni</div>
</div>
</div>
</div>
</div>
<!-- Formulaire lead -->
<div class="cf-cta-section">
<div class="cf-cta-title" id="cf-cta-title">Ricevi le migliori offerte per il tuo profilo</div>
<div class="cf-lead-form" id="cf-lead-form">
<div class="cf-form-row">
<div class="cf-form-col">
<label id="lbl-nome">Nome e Cognome</label>
<input type="text" id="cf-nome" placeholder="Mario Rossi">
</div>
<div class="cf-form-col">
<label id="lbl-email">Email</label>
<input type="email" id="cf-email" placeholder="mario@email.com">
</div>
</div>
<div class="cf-form-row">
<div class="cf-form-col">
<label id="lbl-tel">Telefono</label>
<input type="tel" id="cf-tel" placeholder="+39 333 000 0000">
</div>
<div class="cf-form-col">
<label id="lbl-reddito">Reddito mensile netto</label>
<select id="cf-reddito">
<option value="">-- Seleziona --</option>
<option value="<1000">< 1.000€</option>
<option value="1000-1500">1.000 - 1.500€</option>
<option value="1500-2500">1.500 - 2.500€</option>
<option value="2500-4000">2.500 - 4.000€</option>
<option value=">4000">> 4.000€</option>
</select>
</div>
</div>
<button class="cf-btn-submit" onclick="cfSubmitLead()" id="cf-btn-submit">
Richiedi Consulenza Gratuita →
</button>
<div class="cf-legal" id="cf-legal-txt">
Inviando il modulo, accetti la nostra <a href="/note-legali/" style="color:#888">Privacy Policy</a>.
I tuoi dati sono trattati in modo sicuro e non vengono ceduti a terzi senza consenso.
</div>
</div>
<div class="cf-success" id="cf-success">
<div class="icon">✅</div>
<p id="cf-success-msg">Richiesta ricevuta! Ti contatteremo entro 24h con le migliori offerte.</p>
</div>
</div>
</div>
</div>
<script>
(function(){
// ── TRADUCTIONS ────────────────────────────────────────────
var T = {
IT: {
titre:"Simulatore di Credito", sous:"Calcola la tua rata mensile in 30 secondi",
lbl_montant:"Importo richiesto", lbl_duree:"Durata (anni)", lbl_taux:"Tasso (TAEG %)",
lbl_apport:"Anticipo", lbl_pays:"Paese",
lbl_mensualite:"Rata mensile", lbl_total:"Totale rimborso",
lbl_interets:"Interessi totali", lbl_taux_l:"TAEG", lbl_duree_l:"Durata",
tab_mutuo:"Mutuo", tab_prestito:"Prestito Personale", tab_auto:"Prestito Auto", tab_cessione:"Cessione V°",
mesi_sur:"mesi", anni:"anni",
cta_title:"Ricevi le migliori offerte per il tuo profilo",
lbl_nome:"Nome e Cognome", lbl_email:"Email", lbl_tel:"Telefono", lbl_reddito:"Reddito mensile netto",
reddito_opts:["-- Seleziona --","< 1.000€","1.000 - 1.500€","1.500 - 2.500€","2.500 - 4.000€","> 4.000€"],
btn_submit:"Richiedi Consulenza Gratuita →",
legal:'Inviando il modulo, accetti la nostra <a href="/note-legali/" style="color:#888">Privacy Policy</a>. I tuoi dati sono trattati in modo sicuro.',
success:"Richiesta ricevuta! Ti contatteremo entro 24h con le migliori offerte.",
sl_min_mutuo:"50.000€", sl_max_mutuo:"500.000€",
sl_min_prest:"1.000€", sl_max_prest:"75.000€",
taux_defaults:{mutuo:4.5,prestito:8.5,auto:6.5,cessione:10.5},
duree_defaults:{mutuo:20,prestito:5,auto:5,cessione:10},
montant_defaults:{mutuo:100000,prestito:15000,auto:18000,cessione:25000},
},
FR: {
titre:"Simulateur de Crédit", sous:"Calculez votre mensualité en 30 secondes",
lbl_montant:"Montant souhaité", lbl_duree:"Durée (années)", lbl_taux:"Taux (TAEG %)",
lbl_apport:"Apport personnel", lbl_pays:"Pays",
lbl_mensualite:"Mensualité", lbl_total:"Coût total",
lbl_interets:"Intérêts totaux", lbl_taux_l:"TAEG", lbl_duree_l:"Durée",
tab_mutuo:"Crédit Immobilier", tab_prestito:"Prêt Personnel", tab_auto:"Prêt Auto", tab_cessione:"Rachat de Crédit",
mesi_sur:"mois", anni:"ans",
cta_title:"Recevez les meilleures offres pour votre profil",
lbl_nome:"Nom et Prénom", lbl_email:"Email", lbl_tel:"Téléphone", lbl_reddito:"Revenus nets mensuels",
reddito_opts:["-- Sélectionner --","< 1.000€","1.000 - 1.500€","1.500 - 2.500€","2.500 - 4.000€","> 4.000€"],
btn_submit:"Demander un Conseil Gratuit →",
legal:'En soumettant ce formulaire, vous acceptez notre <a href="/note-legali/" style="color:#888">Politique de Confidentialité</a>. Vos données sont sécurisées.',
success:"Demande reçue ! Nous vous contacterons sous 24h avec les meilleures offres.",
sl_min_mutuo:"50.000€", sl_max_mutuo:"500.000€",
sl_min_prest:"1.000€", sl_max_prest:"75.000€",
taux_defaults:{mutuo:3.9,prestito:6.5,auto:5.5,cessione:8.5},
duree_defaults:{mutuo:20,prestito:5,auto:5,cessione:10},
montant_defaults:{mutuo:200000,prestito:15000,auto:18000,cessione:30000},
}
};
T.ES = T.IT; T.DE = T.IT; // fallback to Italian for now
// ── LANGUE ────────────────────────────────────────────────
var lang = 'IT';
var htmlLang = (document.documentElement.lang||'').toUpperCase().slice(0,2);
if(T[htmlLang]) lang = htmlLang;
var cfPays = document.getElementById('cf-pays');
if(cfPays) cfPays.value = (lang === 'FR' ? 'FR' : 'IT');
var currentType = 'mutuo';
function t(key){ return (T[lang]||T.IT)[key]||key; }
function applyLang(){
var tr = T[lang]||T.IT;
set('cf-titre',tr.titre); set('cf-sous-titre',tr.sous);
set('lbl-montant',tr.lbl_montant); set('lbl-duree',tr.lbl_duree);
set('lbl-taux',tr.lbl_taux); set('lbl-apport',tr.lbl_apport);
set('lbl-pays',tr.lbl_pays);
set('lbl-mensualite',tr.lbl_mensualite); set('lbl-total',tr.lbl_total);
set('lbl-interets',tr.lbl_interets); set('lbl-taux-label',tr.lbl_taux_l);
set('lbl-duree-label',tr.lbl_duree_l);
set('tab-mutuo',tr.tab_mutuo); set('tab-prestito',tr.tab_prestito);
set('tab-auto',tr.tab_auto); set('tab-cessione',tr.tab_cessione);
set('cf-cta-title',tr.cta_title);
set('lbl-nome',tr.lbl_nome); set('lbl-email',tr.lbl_email);
set('lbl-tel',tr.lbl_tel); set('lbl-reddito',tr.lbl_reddito);
set('cf-btn-submit',tr.btn_submit);
var legal = document.getElementById('cf-legal-txt');
if(legal) legal.innerHTML = tr.legal;
// update reddito options
var sel = document.getElementById('cf-reddito');
if(sel && tr.reddito_opts){
sel.innerHTML = tr.reddito_opts.map(function(o,i){
var v=['','<1000','1000-1500','1500-2500','2500-4000','>4000'][i]||'';
return '<option value="'+v+'">'+o+'</option>';
}).join('');
}
}
function set(id, txt){
var el = document.getElementById(id);
if(el) el.textContent = txt;
}
// ── TYPE DE CRÉDIT ─────────────────────────────────────────
window.cfSetType = function(type){
currentType = type;
var tr = T[lang]||T.IT;
['mutuo','prestito','auto','cessione'].forEach(function(t){
var tab = document.getElementById('tab-'+t);
if(tab) tab.classList.toggle('active', t===type);
});
// Apport visible seulement pour mutuo
var colApport = document.getElementById('col-apport');
if(colApport) colApport.style.display = (type==='mutuo'?'block':'none');
// Mettre à jour sliders selon type
var isLong = (type==='mutuo');
var slider = document.getElementById('cf-montant-slider');
var slMin = document.getElementById('sl-min');
var slMax = document.getElementById('sl-max');
if(slider){
if(isLong){
slider.min=50000; slider.max=500000; slider.step=5000;
if(slMin) slMin.textContent = tr.sl_min_mutuo||'50.000€';
if(slMax) slMax.textContent = tr.sl_max_mutuo||'500.000€';
} else {
slider.min=1000; slider.max=75000; slider.step=500;
if(slMin) slMin.textContent = tr.sl_min_prest||'1.000€';
if(slMax) slMax.textContent = tr.sl_max_prest||'75.000€';
}
}
// Durée max
var dSlider = document.getElementById('cf-duree-slider');
var dMax = document.getElementById('sl-duree-max');
if(dSlider){
var maxD = (type==='mutuo'?30:(type==='cessione'?10:7));
dSlider.max = maxD;
if(dMax) dMax.textContent = maxD + ' ' + (T[lang]||T.IT).anni;
}
// Valeurs par défaut
var taux = tr.taux_defaults;
var duree = tr.duree_defaults;
var montant = tr.montant_defaults;
if(taux && taux[type]) setVal('cf-taux', taux[type]);
if(duree && duree[type]){ setVal('cf-duree', duree[type]); setVal2('cf-duree-slider', duree[type]); }
if(montant && montant[type]){ setVal('cf-montant', montant[type]); setVal2('cf-montant-slider', montant[type]); }
cfCalc();
};
function setVal(id,v){ var e=document.getElementById(id); if(e) e.value=v; }
function setVal2(id,v){ var e=document.getElementById(id); if(e) e.value=v; }
// ── SYNCHRO SLIDER ────────────────────────────────────────
window.cfSync = function(type){
if(type==='montant'){
var s=document.getElementById('cf-montant-slider');
var v=document.getElementById('cf-montant');
if(s&&v) s.value=v.value;
} else {
var s2=document.getElementById('cf-montant-slider');
var v2=document.getElementById('cf-montant');
if(s2&&v2) v2.value=s2.value;
}
};
// ── CALCUL ────────────────────────────────────────────────
window.cfCalc = function(){
var montant = parseFloat(document.getElementById('cf-montant').value)||0;
var apport = parseFloat((document.getElementById('cf-apport')||{value:0}).value)||0;
var duree = parseFloat(document.getElementById('cf-duree').value)||1;
var taux = parseFloat(document.getElementById('cf-taux').value)||0;
var tr = T[lang]||T.IT;
var capital = montant - apport;
if(capital <= 0){ capital = montant; }
var n = duree * 12;
var r = taux / 100 / 12;
var mensualite;
if(r === 0){
mensualite = capital / n;
} else {
mensualite = capital * r * Math.pow(1+r,n) / (Math.pow(1+r,n)-1);
}
var total = mensualite * n;
var interets = total - capital;
var fmt = function(v){ return Math.round(v).toLocaleString('fr-FR')+'€'; };
document.getElementById('cf-mensualite-val').textContent = fmt(mensualite);
document.getElementById('cf-total-val').textContent = fmt(total);
document.getElementById('cf-interets-val').textContent = fmt(interets);
document.getElementById('cf-taux-label-val').textContent = taux.toFixed(1)+'%';
document.getElementById('cf-duree-label-val').textContent = duree + ' ' + tr.anni;
var surEl = document.getElementById('lbl-mois-sur');
if(surEl) surEl.textContent = tr.mesi_sur ? 'su '+n+' '+tr.mesi_sur : 'su '+n+' mesi';
};
// ── CHANGEMENT PAYS ───────────────────────────────────────
window.cfChangePays = function(){
var pays = document.getElementById('cf-pays').value;
if(T[pays]) { lang = pays; applyLang(); cfSetType(currentType); }
};
// ── SOUMISSION LEAD ───────────────────────────────────────
window.cfSubmitLead = function(){
var nome = (document.getElementById('cf-nome').value||'').trim();
var email = (document.getElementById('cf-email').value||'').trim();
var tel = (document.getElementById('cf-tel').value||'').trim();
var pays = document.getElementById('cf-pays').value;
var reddito = document.getElementById('cf-reddito').value;
var montant = document.getElementById('cf-montant').value;
var duree = document.getElementById('cf-duree').value;
var taux = document.getElementById('cf-taux').value;
var mensualite = document.getElementById('cf-mensualite-val').textContent;
if(!email || !email.includes('@')){
alert(lang==='FR' ? 'Veuillez saisir une adresse email valide.' : 'Inserisci un indirizzo email valido.');
return;
}
var btn = document.getElementById('cf-btn-submit');
if(btn){ btn.disabled=true; btn.textContent='...'; }
var data = {
action: 'cf_submit_lead',
nome: nome, email: email, tel: tel,
pays: pays, reddito: reddito,
type_credit: currentType,
montant: montant, duree: duree, taux: taux,
mensualite: mensualite,
nonce: (typeof cf_ajax !== 'undefined' ? cf_ajax.nonce : '')
};
fetch((typeof cf_ajax !== 'undefined' ? cf_ajax.url : '/wp-admin/admin-ajax.php'), {
method:'POST',
headers:{'Content-Type':'application/x-www-form-urlencoded'},
body: Object.keys(data).map(function(k){
return encodeURIComponent(k)+'='+encodeURIComponent(data[k]);
}).join('&')
})
.then(function(r){ return r.json(); })
.then(function(res){
document.getElementById('cf-lead-form').style.display = 'none';
var succ = document.getElementById('cf-success');
var msg = document.getElementById('cf-success-msg');
if(succ) succ.style.display = 'block';
if(msg) msg.textContent = T[lang].success||'Grazie! Ti contatteremo entro 24h.';
})
.catch(function(){
document.getElementById('cf-lead-form').style.display = 'none';
var succ = document.getElementById('cf-success');
if(succ) succ.style.display = 'block';
});
};
// ── INIT ──────────────────────────────────────────────────
applyLang();
cfSetType('mutuo');
})();
</script>