fix(analytics): put the Buy class on the <form> so the goal actually fires

Plausible's click handler walks up from the clicked element and bails out the
moment it meets a <form>, so a plausible-event-name=Buy class on a
<button type="submit"> inside a plain form never fires Buy — the tracker sends
its automatic "Form: Submission" event instead and the goal records nothing.
Measured live on /odoo-erp-automation-bootcamp/ before this change:
{"n":"Form: Submission"}.

- odoo-erp-automation-bootcamp/index.html (3 CTAs): class moved from the
  <button type="submit"> to the enclosing <form>.
- australia.html (2 CTAs): same move.
- de|es/odoo-erp-automation-bootcamp/index.html (3 forms each): the buy forms
  carried no Buy marking at all, so the DE and ES bootcamp sales were invisible
  to the goal. Class added to the <form>.
- odoo/upsell.html: the three .plan-btn buttons drive the same JS buy path and
  were unmarked. A class on a plain <button> (not a form submit) does fire, so
  it was added there and browser-verified. The disabled Trial button is left
  unmarked.

Class attribute only: every button label, every form action and every basket
payload is byte-identical. No CSS or JS rule references the class.

Verified in a real browser (fetch shimmed, tracker's localhost/automation gates
bypassed): EN bootcamp 3/3, australia 2/2, DE 3/3, ES 3/3, upsell 1/1 clicks
each send exactly one {"n":"Buy"} to /api/event and never "Form: Submission".
This commit is contained in:
oliver committed 2026-10-28 22:37:32 +00:00
1 parent 91ce3d9a4f
commit 5f647c055a
5 files changed
+19 -19

No files matched your search

+3 -3
View File
@@ -589,7 +589,7 @@
<span class="hero-stat"><i aria-hidden="true">&#10003;</i> Un año de Odoo Community Edition incluido</span>
</div>
<div class="hero-actions">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' />
<input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg">Comprar por 465.00 USD</button>
@@ -610,7 +610,7 @@
</p>
<p class="bc-subline">Tres meses. Diez horas de clases. Un sistema que dirige su empresa.</p>
<div class="bc-action">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' />
<input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg">Comprar por 465.00 USD</button>
@@ -771,7 +771,7 @@
Cubre el programa completo: diez sesiones en directo, un año de Odoo Community Edition alojado, la comunidad de antiguos alumnos y la revisión experta.
</p>
<div class="bc-action">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank">
<form method="post" action="https://20.odoo4projects.com/shop/post_basket" target="_blank" class="plausible-event-name=Buy">
<input type="hidden" name="basket" value='[{"product_id":12,"qty":1}]' />
<input type="hidden" name="clear" value="1" />
<button type="submit" class="btn btn-brass btn-lg">Comprar por 465.00 USD</button>