Ir al contenido principal

Widget: mostrar bonos y suscripciones juntos en un widget

Puedes mostrar bonos y suscripciones en un solo widget colocando ambos widgets en la misma página y añadiendo un breve script después de ell

Paso 1: genera ambos códigos de widget

Genera el código de cada widget en tu back office, uno después del otro.

  1. Ve a Ajustes > Widgets.

  2. En "Elige un componente", selecciona Bonos, configura tus opciones (por ejemplo, qué categorías de bonos mostrar) y copia el código.

  3. Vuelve atrás, selecciona Suscripción, configura tus opciones y copia el código.

Guarda ambos códigos a mano. Los pegarás juntos en el siguiente paso.

Paso 2: pega ambos widgets juntos

Pega el código de Suscripción y luego el código de Bonos, uno después del otro, en el mismo bloque HTML o de código de tu página. No edites ninguno de los dos códigos.

El ejemplo a continuación muestra ambos widgets juntos. El companyId es un marcador de posición: tus propios códigos contienen tu ID de empresa real y los ids de tus widgets.

<!-- Subscription widget -->
<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-337136",
"companyId": yourcompanyId,
"franchiseId": null,
"dialogMode": 1,
"widgetType": "subscription",
"showFab": false,
"fullScreenPopup": false,
"styles": undefined,
"config": {
"subscription": {}
}
})
</script>
<div id="bsport-widget-337136"></div>

<!-- Passes widget -->
<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-421437",
"companyId": yourcompanyId,
"franchiseId": null,
"dialogMode": 1,
"widgetType": "pass",
"showFab": false,
"fullScreenPopup": false,
"styles": undefined,
"config": {
"pass": {
"paymentPackCategories": [],
"privatePassCategories": []
}
}
})
</script>
<div id="bsport-widget-421437"></div>

Paso 3: añade el script después de ambos widgets

Pega este script justo después del código del widget de Bonos, en el mismo bloque de código.

Espera hasta que ambos widgets se hayan cargado y luego mueve las suscripciones al contenedor de bonos. Comprueba cada 0,3 segundos.
​

<script>
function appendSubs() {

const subs = document.querySelector(".bs-contract-page");
if (!subs) {
setTimeout(appendSubs, 300);
return;
}

const passes = document.querySelector(".bs-pass-page__list");
if (!passes) {
setTimeout(appendSubs, 300);
return;
}

passes.appendChild(subs);
}

document.addEventListener("DOMContentLoaded", () => {
appendSubs();
})
</script>


Publica la página. Tus miembros ahora verán las suscripciones dentro de la lista de bonos.

¿Ha quedado contestada tu pregunta?