Aggiunge la garanzia Soddisfatti o rimborsati di 30 giorni su prezzi, homepage e Termini.

Riduce il rischio percepito all'acquisto (Light e Full) e chiama l'archivio replay in modo orientato all'utente, senza cambiare prezzi o logica dei piani.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-31 19:27:28 +02:00
co-authored by Cursor
parent 1185d0ce61
commit 356aa28fad
30 changed files with 441 additions and 17 deletions
+2 -2
View File
@@ -10,7 +10,7 @@
<%= render "shared/analytics_suppress" %>
<%= yield :head %>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" integrity="sha512-SnH5WK+bZxgPHs44uWIX+LLJAJ9/2PkPKZ5QiAj6Ta86w+fsb2TkcmfRyVX3pBnMFcV7oQPJkl9QevSCWr3W6A==" crossorigin="anonymous" referrerpolicy="no-referrer">
<link rel="stylesheet" href="/marketing.css?v=77">
<link rel="stylesheet" href="/marketing.css?v=79">
</head>
<body data-confirm-i18n='<%= raw confirm_dialog_i18n_json %>'<% if MatchLiveTv.google_analytics_configured? %> data-ga-id="<%= MatchLiveTv.google_analytics_measurement_id %>"<% end %>>
<%= render "shared/cookie_banner" %>
@@ -27,7 +27,7 @@
<script src="/password-toggle.js?v=2" defer></script>
<link rel="stylesheet" href="/confirm-forms.css?v=4">
<script src="/confirm-forms.js?v=7" defer></script>
<script src="/site-analytics.js?v=5" defer></script>
<script src="/site-analytics.js?v=6" defer></script>
<script src="/cookie-consent.js?v=3" defer></script>
</body>
</html>
@@ -8,7 +8,7 @@
<%= render "shared/meta_tags" %>
<%= render "shared/analytics_suppress" %>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" integrity="sha512-SnH5WK+bZxgPHs44uWIX+LLJAJ9/2PkPKZ5QiAj6Ta86w+fsb2TkcmfRyVX3pBnMFcV7oQPJkl9QevSCWr3W6A==" crossorigin="anonymous" referrerpolicy="no-referrer">
<link rel="stylesheet" href="/marketing.css?v=77">
<link rel="stylesheet" href="/marketing.css?v=79">
<link rel="stylesheet" href="/live.css?v=26">
<%= yield :head %>
</head>
@@ -22,7 +22,7 @@
<%= render "shared/marketing_footer" %>
<link rel="stylesheet" href="/confirm-forms.css?v=4">
<script src="/confirm-forms.js?v=7" defer></script>
<script src="/site-analytics.js?v=5" defer></script>
<script src="/site-analytics.js?v=6" defer></script>
<script src="/cookie-consent.js?v=3" defer></script>
</body>
</html>
@@ -21,6 +21,9 @@
<%= hidden_field_tag :plan, plan_return if plan_return %>
<%= hidden_field_tag :interval, params[:interval] if params[:interval].present? %>
<%= render "shared/billing_profile_fields", record: @club %>
<% if plan_return %>
<%= render "shared/refund_guarantee", variant: "checkout" %>
<% end %>
<%= submit_tag t("billing.profile.submit"), class: "btn btn-primary" %>
<% end %>
</div>
@@ -21,6 +21,9 @@
<%= render "shared/quoted_price_banner", quote: @quote, subscription: @subscription %>
<% elsif MatchLiveTv.stripe_enabled? %>
<%= render "shared/stripe_secure_payment" %>
<% if @subscription.blank? || @subscription.plan&.slug == "free" || !@subscription.active? %>
<%= render "shared/refund_guarantee", variant: "checkout" %>
<% end %>
<% end %>
<%= render "shared/pending_bank_transfer", order: @pending_transfer %>
<% if MatchLiveTv.stripe_enabled? && @quote.blank? %>
@@ -26,6 +26,9 @@
[t("club.new.plan_full"), "premium_full"]
], params[:plan] || "free") %>
<p class="muted" style="margin:8px 0 16px"><%= t("club.new.plan_hint") %></p>
<% if params[:plan].presence_in(%w[premium_light premium_full]) %>
<%= render "shared/refund_guarantee", variant: "checkout" %>
<% end %>
<%= submit_tag t("club.new.submit"), class: "btn btn-primary" %>
<% end %>
</div>
@@ -70,7 +70,24 @@
<%= t("pages.faq.q8_answer") %>
</p>
</details>
<details class="faq-item" id="faq-garanzia" data-mltv-event="guarantee_faq_open">
<summary><%= t("pages.faq.q9_question") %></summary>
<p>
<%= raw t(
"pages.faq.q9_answer_html",
terms_link: link_to(t("pages.faq.q9_terms_link"), public_termini_path(anchor: "garanzia-rimborso"))
) %>
</p>
</details>
</div>
<script>
(function () {
if (location.hash !== "#faq-garanzia") return;
var item = document.getElementById("faq-garanzia");
if (item) item.open = true;
})();
</script>
<p style="text-align:center;margin:40px 0">
<%= link_to t("pages.faq.cta_signup"), public_signup_path, class: "btn btn-primary" %>
@@ -101,6 +101,7 @@
<%= image_tag "/home-piani-ecosistema.png?v=1", alt: t("home.plans_alt"), class: "plans-teaser-img", loading: "lazy" %>
</div>
<%= link_to t("home.plans_cta"), public_prezzi_path, class: "btn btn-primary" %>
<%= render "shared/refund_guarantee", variant: "cta" %>
</section>
<section class="section wrap seo-prose">
+16 -1
View File
@@ -4,7 +4,7 @@
<div class="wrap legal-doc">
<h1><%= t("legal.terms.h1") %></h1>
<p class="legal-meta"><%= t("legal.terms.meta", date: legal_last_updated) %></p>
<p class="legal-meta"><%= t("legal.terms.meta", date: terms_last_updated) %></p>
<section>
<h2><%= t("legal.terms.s1_title") %></h2>
@@ -43,6 +43,21 @@
<p><%= t("legal.terms.s3_p3") %></p>
</section>
<section id="garanzia-rimborso">
<h2><%= t("legal.terms.s3b_title") %></h2>
<p><%= t("legal.terms.s3b_p1") %></p>
<p><%= t("legal.terms.s3b_p2") %></p>
<p>
<%= raw t(
"legal.terms.s3b_p3_html",
email_link: link_to(MatchLiveTv.support_email, "mailto:#{MatchLiveTv.support_email}")
) %>
</p>
<p><%= t("legal.terms.s3b_p4") %></p>
<p><%= t("legal.terms.s3b_p5") %></p>
<p><%= t("legal.terms.s3b_p6") %></p>
</section>
<section>
<h2><%= t("legal.terms.s4_title") %></h2>
<p><strong><%= t("legal.terms.s4_lead1") %></strong></p>
+12 -1
View File
@@ -1,4 +1,4 @@
<%# locals: (club: nil, entitlements: nil, subscription: nil, current_plan_slug: nil, show_stripe_portal: false) %>
<%# locals: (club: nil, entitlements: nil, subscription: nil, current_plan_slug: nil, show_stripe_portal: false, show_guarantee_banner: nil) %>
<% club ||= @club %>
<% entitlements ||= @entitlements %>
<% subscription ||= @subscription %>
@@ -69,6 +69,9 @@
<% if plan.slug == "premium_full" %>
<p class="plan-staff-note"><%= t("pages.plans.staff_note_full") %></p>
<% end %>
<% first_purchase = !billing_mode || action&.fetch(:kind, nil).in?(%i[checkout_options bank_only quoted]) %>
<% show_cta_guarantee = plan.slug.in?(%w[premium_light premium_full]) && first_purchase %>
<div class="plan-card__cta">
<% if billing_mode %>
<% action_kind = action[:kind] %>
<% quote = club&.active_billing_quote %>
@@ -131,6 +134,14 @@
<% end %>
</div>
<% end %>
<% if show_cta_guarantee %>
<%= render "shared/refund_guarantee", variant: "compact" %>
<% end %>
</div>
</div>
<% end %>
</div>
<% if local_assigns.fetch(:show_guarantee_banner) { !billing_mode || current_slug.to_s == "free" } %>
<%= render "shared/refund_guarantee", variant: "pricing" %>
<% end %>
@@ -0,0 +1,35 @@
<%# locals: (variant: "pricing") %>
<% variant = local_assigns.fetch(:variant, "pricing").to_s %>
<% if variant == "pricing" %>
<aside class="refund-guarantee refund-guarantee--pricing" aria-label="<%= t("guarantee.aria_pricing") %>">
<span class="refund-guarantee__icon" aria-hidden="true">
<i class="fa-solid fa-shield-halved"></i>
</span>
<div class="refund-guarantee__copy">
<p class="refund-guarantee__title">
<%= t("guarantee.title") %><span class="refund-guarantee__kicker"> · <%= t("guarantee.kicker_days") %></span>
</p>
<p class="refund-guarantee__subtitle"><%= t("guarantee.subtitle") %></p>
<p class="refund-guarantee__body"><%= t("guarantee.body") %></p>
<p class="refund-guarantee__more">
<%= link_to t("guarantee.learn_more"), public_faq_path(anchor: "faq-garanzia"), data: { mltv_event_click: "guarantee_learn_more" } %>
</p>
</div>
</aside>
<% elsif variant == "compact" %>
<p class="refund-guarantee refund-guarantee--compact">
<i class="fa-solid fa-shield-halved" aria-hidden="true"></i>
<span><%= t("guarantee.compact") %></span>
</p>
<% elsif variant == "cta" %>
<p class="refund-guarantee refund-guarantee--cta">
<i class="fa-solid fa-shield-halved" aria-hidden="true"></i>
<span><%= t("guarantee.home_note") %></span>
</p>
<% elsif variant == "checkout" %>
<div class="refund-guarantee refund-guarantee--checkout">
<i class="fa-solid fa-shield-halved" aria-hidden="true"></i>
<p><%= t("guarantee.checkout") %></p>
</div>
<% end %>