Aggiorna marketing: prezzi lancio, Funzionalità narrativa e link store.
Allinea i piani Light/Full ai prezzi di lancio, ripensa /funzionalita per vendere il prodotto e aggiunge i badge App Store/Play nella home. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
<div class="wrap">
|
||||
<div>
|
||||
<strong style="color:#fff">Match Live TV</strong> — <%= t("footer.tagline") %>
|
||||
<%= render "shared/store_badges", variant: "footer" %>
|
||||
</div>
|
||||
<div>
|
||||
<%= link_to t("common.support"), public_support_path %> ·
|
||||
|
||||
@@ -15,23 +15,33 @@
|
||||
current_interval: current_interval,
|
||||
subscription: subscription
|
||||
) : nil %>
|
||||
<div class="plan-card">
|
||||
<% featured = plan.slug == "premium_full" %>
|
||||
<div class="plan-card<%= " plan-card--featured" if featured %>">
|
||||
<% if featured %>
|
||||
<p class="plan-card__recommend"><%= t("pages.plans.recommended_badge") %></p>
|
||||
<% end %>
|
||||
<%= render "shared/plan_title", plan: plan %>
|
||||
<% if plan.slug == "free" %>
|
||||
<div class="plan-price">€0</div>
|
||||
<% elsif plan.slug == "premium_light" %>
|
||||
<% light_yearly = Billing::Stripe::PriceCatalog.label(plan_slug: plan.slug, interval: "yearly") %>
|
||||
<% light_monthly = Billing::Stripe::PriceCatalog.label(plan_slug: plan.slug, interval: "monthly") %>
|
||||
<div class="plan-price" style="color:#e53935"><%= light_yearly %></div>
|
||||
<p class="plan-price-alt"><%= raw t("pages.plans.price_alt_html", price: light_monthly) %></p>
|
||||
<% else %>
|
||||
<% full_yearly = Billing::Stripe::PriceCatalog.label(plan_slug: plan.slug, interval: "yearly") %>
|
||||
<% full_monthly = Billing::Stripe::PriceCatalog.label(plan_slug: plan.slug, interval: "monthly") %>
|
||||
<div class="plan-price"><%= full_yearly %></div>
|
||||
<p class="plan-price-alt"><%= raw t("pages.plans.price_alt_html", price: full_monthly) %></p>
|
||||
<% yearly = Billing::Stripe::PriceCatalog.label(plan_slug: plan.slug, interval: "yearly") %>
|
||||
<% monthly = Billing::Stripe::PriceCatalog.label(plan_slug: plan.slug, interval: "monthly") %>
|
||||
<% list = Billing::Stripe::PriceCatalog.list_label(plan_slug: plan.slug, interval: "yearly") %>
|
||||
<% equiv = Billing::Stripe::PriceCatalog.equivalent_monthly_label(plan_slug: plan.slug) %>
|
||||
<div class="plan-price-block">
|
||||
<% if list.present? %>
|
||||
<div class="plan-price-list"><s><%= list %></s></div>
|
||||
<% end %>
|
||||
<div class="plan-price<%= " plan-price--featured" if featured %>"><%= yearly %></div>
|
||||
<span class="plan-price-badge"><%= t("pages.plans.launch_price") %></span>
|
||||
<% if equiv.present? %>
|
||||
<p class="plan-price-equiv"><%= t("pages.plans.price_equiv", price: equiv) %></p>
|
||||
<% end %>
|
||||
</div>
|
||||
<p class="plan-price-alt"><%= raw t("pages.plans.price_alt_html", price: monthly) %></p>
|
||||
<% end %>
|
||||
<ul>
|
||||
<li><%= raw t("pages.plans.staff_html", count: plan.max_staff_transmission || t("pages.plans.staff_unlimited")) %></li>
|
||||
<li><%= raw(plan.max_staff_transmission ? t("pages.plans.staff_html", count: plan.max_staff_transmission) : t("pages.plans.staff_unlimited_html")) %></li>
|
||||
<li><%= raw t("pages.plans.matches_html", count: plan.concurrent_streams_limit || t("pages.plans.matches_unlimited")) %></li>
|
||||
<li><%= raw t(
|
||||
"pages.plans.replay_html",
|
||||
@@ -48,6 +58,9 @@
|
||||
end
|
||||
) %></li>
|
||||
</ul>
|
||||
<% if plan.slug == "premium_full" %>
|
||||
<p class="plan-staff-note"><%= t("pages.plans.staff_note_full") %></p>
|
||||
<% end %>
|
||||
<% if billing_mode %>
|
||||
<% action_kind = action[:kind] %>
|
||||
<% if action_kind == :current %>
|
||||
@@ -78,8 +91,12 @@
|
||||
<%= link_to t("pages.plans.start_free"), public_signup_path, class: "btn btn-secondary" %>
|
||||
<% else %>
|
||||
<div class="plan-interval-actions">
|
||||
<% plan_intervals_for_display(Billing::Stripe::PriceCatalog.available_intervals(plan_slug: plan.slug)).each do |interval| %>
|
||||
<%= link_to t("pages.plans.register_with_price", price: Billing::Stripe::PriceCatalog.label(plan_slug: plan.slug, interval: interval)),
|
||||
<% %w[yearly monthly].each do |interval| %>
|
||||
<%= link_to t(
|
||||
"billing.messages.activate_button",
|
||||
plan: plan_cta_name(plan),
|
||||
price: Billing::Stripe::PriceCatalog.label(plan_slug: plan.slug, interval: interval)
|
||||
),
|
||||
public_signup_path(plan: plan.slug, interval: interval),
|
||||
class: plan_interval_button_class(interval) %>
|
||||
<% end %>
|
||||
@@ -88,4 +105,3 @@
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
<% variant = local_assigns.fetch(:variant, "hero") %>
|
||||
<div class="store-badges store-badges--<%= variant %>">
|
||||
<%= link_to MatchLiveTv.app_store_url,
|
||||
class: "store-badge",
|
||||
target: "_blank",
|
||||
rel: "noopener noreferrer",
|
||||
aria: { label: t("home.store_app_store_aria") } do %>
|
||||
<%= image_tag "/images/store/apple.svg",
|
||||
alt: "",
|
||||
class: "store-badge__logo store-badge__logo--apple",
|
||||
aria: { hidden: true } %>
|
||||
<span>
|
||||
<span class="store-badge__kicker"><%= t("home.store_app_store_kicker") %></span>
|
||||
<span class="store-badge__name"><%= t("home.store_app_store_name") %></span>
|
||||
</span>
|
||||
<% end %>
|
||||
<%= link_to MatchLiveTv.play_store_url,
|
||||
class: "store-badge",
|
||||
target: "_blank",
|
||||
rel: "noopener noreferrer",
|
||||
aria: { label: t("home.store_play_aria") } do %>
|
||||
<%= image_tag "/images/store/google-play.svg",
|
||||
alt: "",
|
||||
class: "store-badge__logo store-badge__logo--play",
|
||||
aria: { hidden: true } %>
|
||||
<span>
|
||||
<span class="store-badge__kicker"><%= t("home.store_play_kicker") %></span>
|
||||
<span class="store-badge__name"><%= t("home.store_play_name") %></span>
|
||||
</span>
|
||||
<% end %>
|
||||
</div>
|
||||
Reference in New Issue
Block a user