feat: Restringir cancelamento em Billing apenas ao período de garantia
🔒 RESTRIÇÃO DE CANCELAMENTO 📍 Página /billing: - Botão "Cancelar Assinatura" SOMENTE aparece nos primeiros 7 dias - Após período de garantia: botão removido - Mensagem informativa: "Para cancelar após o período de garantia, vá em Perfil" ⚖️ LÓGICA: - withinGuaranteePeriod === true → Botão visível - withinGuaranteePeriod === false → Botão oculto + alerta info 📄 Página /profile: - Cancelamento sempre disponível (sem restrição) - Wizard completo de 5 etapas - Sistema de retenção com oferta 🌍 i18n (3 idiomas): - pt-BR: "Para cancelar após o período de garantia, vá em Perfil" - ES: "Para cancelar después del período de garantía, ve a Perfil" - EN: "To cancel after the guarantee period, go to Profile" ✅ RESULTADO: - Garantia (0-7 dias): Cancelamento fácil em Billing - Após garantia: Cancelamento via Profile (wizard)
This commit is contained in:
parent
806bfc1a89
commit
b14ff0ab89
@ -2254,6 +2254,7 @@
|
|||||||
"upgradePlan": "Upgrade Plan",
|
"upgradePlan": "Upgrade Plan",
|
||||||
"changePlan": "Change Plan",
|
"changePlan": "Change Plan",
|
||||||
"cancelSubscription": "Cancel Subscription",
|
"cancelSubscription": "Cancel Subscription",
|
||||||
|
"cancelAfterGuarantee": "To cancel after the guarantee period, go to Profile",
|
||||||
"planFeatures": "Plan Features",
|
"planFeatures": "Plan Features",
|
||||||
"limits": "Limits",
|
"limits": "Limits",
|
||||||
"accounts": "Accounts",
|
"accounts": "Accounts",
|
||||||
|
|||||||
@ -2256,6 +2256,7 @@
|
|||||||
"upgradePlan": "Mejorar Plan",
|
"upgradePlan": "Mejorar Plan",
|
||||||
"changePlan": "Cambiar Plan",
|
"changePlan": "Cambiar Plan",
|
||||||
"cancelSubscription": "Cancelar Suscripción",
|
"cancelSubscription": "Cancelar Suscripción",
|
||||||
|
"cancelAfterGuarantee": "Para cancelar después del período de garantía, ve a Perfil",
|
||||||
"planFeatures": "Características del Plan",
|
"planFeatures": "Características del Plan",
|
||||||
"limits": "Límites",
|
"limits": "Límites",
|
||||||
"accounts": "Cuentas",
|
"accounts": "Cuentas",
|
||||||
|
|||||||
@ -2274,6 +2274,7 @@
|
|||||||
"upgradePlan": "Fazer Upgrade",
|
"upgradePlan": "Fazer Upgrade",
|
||||||
"changePlan": "Trocar Plano",
|
"changePlan": "Trocar Plano",
|
||||||
"cancelSubscription": "Cancelar Assinatura",
|
"cancelSubscription": "Cancelar Assinatura",
|
||||||
|
"cancelAfterGuarantee": "Para cancelar após o período de garantia, vá em Perfil",
|
||||||
"planFeatures": "Recursos do Plano",
|
"planFeatures": "Recursos do Plano",
|
||||||
"limits": "Limites",
|
"limits": "Limites",
|
||||||
"accounts": "Contas",
|
"accounts": "Contas",
|
||||||
|
|||||||
@ -234,12 +234,20 @@ export default function Billing() {
|
|||||||
>
|
>
|
||||||
{t('billing.changePlan')}
|
{t('billing.changePlan')}
|
||||||
</button>
|
</button>
|
||||||
|
{withinGuaranteePeriod && (
|
||||||
<button
|
<button
|
||||||
className="btn btn-outline-danger"
|
className="btn btn-outline-danger"
|
||||||
onClick={() => setShowCancelModal(true)}
|
onClick={() => setShowCancelModal(true)}
|
||||||
>
|
>
|
||||||
{t('billing.cancelSubscription')}
|
{t('billing.cancelSubscription')}
|
||||||
</button>
|
</button>
|
||||||
|
)}
|
||||||
|
{!withinGuaranteePeriod && (
|
||||||
|
<div className="alert alert-info mb-0 mt-2" style={{ fontSize: '13px' }}>
|
||||||
|
<i className="bi bi-info-circle me-2"></i>
|
||||||
|
{t('billing.cancelAfterGuarantee')}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user