Tengo este código de trabajo que oculta el botón "siguiente" en mi pago si los clientes tienen 'sesión 1 de 5', '2 de 5', '3 de 5' o '4 de 5' en su cesta. Porque necesito que agreguen las 5 sesiones a su cesta antes de que puedan hacer clic en "siguiente"
¿Cómo modifico el código para que también verifique si la página contiene 'sesión 5 de 5' y, por lo tanto, no agregue la clase "hideElement"?
¿También es posible hacer que este código se ejecute cada dos segundos de forma continua mientras navegan por un sistema de pago?
var itemCode = ["session 1 of 5", "session 2 of 5", "session 3 of 5", "session 4 of 5"]; var contains = itemCode.some(function(code) { return $(".bookly-cart-step").text().indexOf(code) >= 0; }); if (contains) { $(".bookly-next-step").addClass("hideElement"); }Por lo general, esto es algo que integraría directamente con la lógica de la cesta, pero parece que está usando un complemento, por lo que supongo que esto no es posible en su caso específico, de ahí su pregunta.
El siguiente fragmento le dará una idea de cómo puede verificar que todas las sesiones estén presentes utilizando el método de every matriz y deshabilitar/habilitar el botón de envío en consecuencia (comparando con el contenido de texto de manera similar a su secuencia de comandos original).
Aunque no recomendaría verificar con el contenido del texto si puede verificar directamente con la cesta.
const sessions = ['session 1', 'session 2', 'session 3'] const searchTarget = document.querySelector('.target'); const submitButton = document.querySelector('.submit') if (searchTarget.textContent.includes('session')) { if (!sessions.every((session) => searchTarget.textContent.includes(session))) { submitButton.setAttribute("disabled", "") } else { submitButton.removeAttribute('disabled') } } <div class="target">session 1</div> <button class="submit">test</button>En términos de agregar una nueva verificación, sería mejor simplemente llamar a la función de verificación cuando un usuario completa una acción relacionada con el carrito, podría usar un detector de eventos para esto.
Si esto no es posible, puede usar el observador de mutaciones para verificar los cambios de texto o usar setInterval como último recurso, ya que esto podría comenzar a afectar el rendimiento.