Ir para conteúdo principal

Como abrir um widget com um botão

Este guia mostra como abrir um widget com um botão

⚠️ Isto só está disponível para:

  • Passes privados

  • Pacotes

  • Marcações

  • Assinaturas

Passo 1. Criar um botão personalizado

Cria o teu botão personalizado e atribui-lhe um id específico. Exemplo:

<button id="bsport-passes-widget">

Passo 2. Ligar o teu botão ao widget

Vai a Settings > Widgets e copia e cola o código do widget no teu website.

Tipo de widget:

Cada tipo de widget liga-se de forma diferente:

Widget de botão de login:

Adiciona este código depois do código do widget e imediatamente antes da tag </script>:

document.addEventListener("DOMContentLoaded", function () {
var button = document.getElementById("button-id");
button.addEventListener("click", function () {
const message = { type: 'bsport:login-button:request-login', data: {
"uniqueWidgetId": "unique-widget-id" }
}
window.postMessage(message, '*')
});
});

🚨 Importante

  • Substitui o button-id pelo id do botão que criaste

  • Substitui o unique-widget-id pelo id único do widget, dentro da função MountBsportWidget e no excerto de código

  • A div do bsport deve estar oculta assim: <div id="bsport-widget-id" style="display:none"></div>

Deve ficar assim:

 <script id="insert-bsport-widget-cdn">
!(function (b, s, p, o, r, t) {
!typeof window.BsportWidget !== "undefined" &&
!document.getElementById("bsport-widget-cdn") &&
!(function () {
(m = b.createElement(s)),
(m.id = "bsport-widget-cdn"),
(m.src = p),
b.getElementsByTagName("head")[0].appendChild(m);
})();
})(document, "script", "https://cdn.bsport.io/scripts/widget.js");
</script>
<script id="bsport-widget-mount">
function MountBsportWidget(config, repeat = 1) {
if (repeat > 50) {
return;
}
if (!window.BsportWidget) {
return setTimeout(() => {
MountBsportWidget(config, repeat + 1);
}, 100 * repeat || 1);
}
BsportWidget.mount(config);
}
</script>
<script>
MountBsportWidget({
parentElement: "bsport-widget-id",
uniqueWidgetId: "unique-widget-id",
companyId: "company-id",
franchiseId: null,
dialogMode: 1,
widgetType: "loginButton",
showFab: false,
fullScreenPopup: false,
styles: undefined,
config: {
loginButton: {}
},
});
/* Aqui a ligação com o botão e a função ativada ao clicar */
document.addEventListener("DOMContentLoaded", function () {
var button = document.getElementById("button-id");
button.addEventListener("click", function () {
const message = {
type: 'bsport:login-button:request-login',
data: { "uniqueWidgetId": "your-unique-id" } }
window.postMessage(message, '*')
});
});
</script>

/* O resultado deve ficar assim; é importante ocultar a div com o estilo inline, caso contrário outro botão de login será exibido */
<div id="bsport-widget-id" style="display:none"></div>

Pacote de pagamento (passes)

Adiciona este código depois do código do widget e imediatamente antes da tag </script>:

document.addEventListener("DOMContentLoaded", function () {
var button = document.getElementById("button-id"); //ex. pass-3213
button.addEventListener("click", function () {
var eventType = "bsport:pass:add-to-cart:payment-pack";
var eventData = { payment_pack_id: "payment_pack_id",
uniqueWidgetId: "unique-widget-id" };
window.parent.postMessage({ type: eventType, data: eventData }, "*");
});
});

🚨 Importante

  • Substitui o button-id pelo id do botão que criaste

  • Substitui o payment_pack-id pelo id do pacote de pagamento

  • Substitui o unique-widget-id pelo id único do widget, dentro da função MountBsportWidget e no excerto de código

  • A div do bsport deve estar oculta assim: <div id="bsport-widget-id" style="display:none"></div>


Passe privado (marcações)

Adiciona este código depois do código do widget e imediatamente antes da tag </script>:

document.addEventListener("DOMContentLoaded", function () {
var button = document.getElementById("button-id"); //ex. pass-3213
button.addEventListener("click", function () {
var eventType = "bsport:pass:add-to-cart:private-pass";
var eventData = {
private_pass_id: "private_pass_id",
uniqueWidgetId: "unique-widget-id" };
window.parent.postMessage({ type: eventType, data: eventData }, "*");
});
});

🚨 Importante

  • Substitui o button-id pelo id do botão que criaste

  • Substitui o private_pass_id pelo passe privado que queres mostrar

  • Substitui o unique-widget-id pelo id único do widget, dentro da função MountBsportWidget e no excerto de código

  • A div do bsport deve estar oculta assim: <div id="bsport-widget-id" style="display:none"></div>


Combo de pagamento (pacotes)

Adiciona este código depois do código do widget e imediatamente antes da tag </script>:

document.addEventListener("DOMContentLoaded", function () {
var button = document.getElementById("button-id"); //ex. pass-3213
button.addEventListener("click", function () {
var eventType = "bsport:pass:add-to-cart:payment-combo";
var eventData = { payment_combo_id: "payment_combo_id", uniqueWidgetId: "unique-widget-id" }; //
window.parent.postMessage({ type: eventType, data: eventData }, "*");
});
});

🚨 Importante

  • Substitui o button-id pelo id do botão que criaste

  • Substitui o payment_combo_id pelo combo de pagamento que queres mostrar

  • Substitui o unique-widget-id pelo id único do widget, dentro da função MountBsportWidget e no excerto de código

  • A div do bsport deve estar oculta assim: <div id="bsport-widget-id" style="display:none"></div>


Assinaturas

Adiciona este código depois do código do widget e imediatamente antes da tag </script>:

document.addEventListener("DOMContentLoaded", function () {
var button = document.getElementById("button-id"); //ex. contract-3213
button.addEventListener("click", function () {
var eventType = "bsport:subscription:add-to-cart:contract";
var eventData = { contract_id: "contract_id", uniqueWidgetId: "unique-widget-id" };
window.parent.postMessage({ type: eventType, data: eventData }, "*");
});
});

🚨 Importante

  • Substitui o button-id pelo id do botão que criaste

  • Substitui o unique-widget-id pelo id único do widget, dentro da função MountBsportWidget e no excerto de código

  • A div do bsport deve estar oculta assim: <div id="bsport-widget-id" style="display:none"></div>

⚠️ Se o botão for clicado antes de o widget estar totalmente carregado, o pop-up abre e fecha logo de seguida.


Passo 3. Ocultar o widget bsport

Atualiza a div do widget:

 <div id="bsport-widget-998312"></div>

E adiciona display=”none” para ocultar o widget bsport:

 <div id="bsport-widget-998312" display="none"></div>

Onde encontrar o id do passe/assinatura/marcação:

  • Passe privado:

    Vai a Produtos > Passes de marcação


    Seleciona o passe privado > Vais encontrar o id do passe privado no URL

    Exemplo:

    var eventData = { 	private_pass_id: "41706", 	uniqueWidgetId: "unique-widget-id" };
  • Pacote de pagamento:

    Vai a Produtos > Passes

    Seleciona o pacote de pagamento > Vais encontrar o id do pacote de pagamento no URL

    Exemplo:

    var eventData = { 	payment_pack_id: "677009", 	uniqueWidgetId: "unique-widget-id" };
  • Widget de pacotes:

    Vai a Produtos > Pacotes

    Seleciona o pacote > Vais encontrar o id do pacote no URL


    Exemplo:

    var eventData = { 	payment_combo_id: "9716", 	uniqueWidgetId: "unique-widget-id" };
  • Widget de assinatura:


    Vai a Produtos > Assinaturas

    Seleciona a assinatura > Vais encontrar o id da assinatura no URL

    Exemplo:

    var eventData = { 	contract_id: "40003", 	uniqueWidgetId: "unique-widget-id" };
Isto respondeu à sua pergunta?