Naar de hoofdinhoud

Een widget openen met een knop

Deze handleiding laat je stap voor stap zien hoe je een widget opent met een knop

⚠️ Dit is alleen beschikbaar voor:

  • Privépassen

  • Packs

  • Afspraken

  • Abonnementen

Stap 1. Maak een aangepaste knop

Maak je aangepaste knop en geef deze een specifieke id. Voorbeeld:

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

Stap 2. Koppel je knop aan de widget

Ga naar Settings > Widgets en plak de widgetcode op je website.

Widgettype:

Elk widgettype wordt op een andere manier gekoppeld:

Inlogknop-widget:

Voeg deze code toe na de widgetcode en net vóór de </script> tag:

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, '*')
});
});

🚨 Belangrijk

  • Vervang button-id door de knop-id die je hebt gemaakt

  • Vervang unique-widget-id door de unieke widget-id binnen de MountBsportWidget-functie en in het codefragment

  • De bsport div moet als volgt worden verborgen: <div id="bsport-widget-id" style="display:none"></div>

Het zou er zo uit moeten zien:

 <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: {}
},
});
/* Hier de koppeling met de knop en de functie die wordt geactiveerd bij het klikken */
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>

/* Het resultaat zou er zo uit moeten zien. Het is belangrijk om de div te verbergen met de inline style, anders wordt er nog een inlogknop weergegeven */
<div id="bsport-widget-id" style="display:none"></div>

Betaalpack (passen)

Voeg deze code toe na de widgetcode en net vóór de </script> tag:

document.addEventListener("DOMContentLoaded", function () {
var button = document.getElementById("button-id"); //bijv. 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 }, "*");
});
});

🚨 Belangrijk

  • Vervang button-id door de knop-id die je hebt gemaakt

  • Vervang payment_pack-id door de id van het betaalpack

  • Vervang unique-widget-id door de unieke widget-id binnen de MountBsportWidget-functie en in het codefragment

  • De bsport div moet als volgt worden verborgen: <div id="bsport-widget-id" style="display:none"></div>


Privépas (afspraken)

Voeg deze code toe na de widgetcode en net vóór de </script> tag:

document.addEventListener("DOMContentLoaded", function () {
var button = document.getElementById("button-id"); //bijv. 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 }, "*");
});
});

🚨 Belangrijk

  • Vervang button-id door de knop-id die je hebt gemaakt

  • Vervang private_pass_id door de privépas die je wilt tonen

  • Vervang unique-widget-id door de unieke widget-id binnen de MountBsportWidget-functie en in het codefragment

  • De bsport div moet als volgt worden verborgen: <div id="bsport-widget-id" style="display:none"></div>


Betaalcombo (packs)

Voeg deze code toe na de widgetcode en net vóór de </script> tag:

document.addEventListener("DOMContentLoaded", function () {
var button = document.getElementById("button-id"); //bijv. 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 }, "*");
});
});

🚨 Belangrijk

  • Vervang button-id door de knop-id die je hebt gemaakt

  • Vervang payment_combo_id door de betaalcombo die je wilt tonen

  • Vervang unique-widget-id door de unieke widget-id binnen de MountBsportWidget-functie en in het codefragment

  • De bsport div moet als volgt worden verborgen: <div id="bsport-widget-id" style="display:none"></div>


Abonnementen

Voeg deze code toe na de widgetcode en net vóór de </script> tag:

document.addEventListener("DOMContentLoaded", function () {
var button = document.getElementById("button-id"); //bijv. 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 }, "*");
});
});

🚨 Belangrijk

  • Vervang button-id door de knop-id die je hebt gemaakt

  • Vervang unique-widget-id door de unieke widget-id binnen de MountBsportWidget-functie en in het codefragment

  • De bsport div moet als volgt worden verborgen: <div id="bsport-widget-id" style="display:none"></div>

⚠️ Als er op de knop wordt geklikt voordat de widget volledig is geladen, opent de pop-up en sluit deze direct weer.


Stap 3. Verberg de bsport-widget

Werk de widget-div bij:

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

En voeg display=”none” toe om de bsport-widget te verbergen:

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

Waar vind je de pas-/abonnement-/afspraak-id:

  • Privépas:

    Ga naar Products > Appointment passes


    Selecteer de privépas > De privépas-id vind je in de URL

    Voorbeeld:

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

    Ga naar Products > Passes

    Selecteer het betaalpack > De betaalpack-id vind je in de URL

    Voorbeeld:

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

    Ga naar Products > Packs

    Selecteer het pack > De pack-id vind je in de URL


    Voorbeeld:

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


    Ga naar Products > Subscriptions

    Selecteer het abonnement > De abonnement-id vind je in de URL

    Voorbeeld:

    var eventData = { 	contract_id: "40003", 	uniqueWidgetId: "unique-widget-id" };
Was dit een antwoord op uw vraag?