Autor Zpráva
Musilda
Profil
Existuje nějaký způsob, jak zachytit změnu obsahu spanu?
Ve WooCommerce je pomocí ajaxu přepočítávána pokladna. Když se změní doprava, platební metoda, zruší se použití kupónu.

Potřeboval bych nějakým způsobem zachytit změnu konečné ceny, která je vypsána ve spanu. Případně zjistit, že se určitá část kódu mění a po dokončení změny, získat obsah spanu. WooCommerce používá jQuery a na aktualizaci příslušné části pokladny, je používán trigger update_checkout.

Otázka tedy je, zda je možné odchytit změnu obsahu elementu na stránce, nebo dokončení update_checkout.

Snad jsem to napsal nějak srozumitelně.
KryVosa
Profil
Jeden ze způsobů je testovat to nekonečnou rekurzivní funkci volanou setTimeutem:
var cilovySpan=document.getElementById('nejakyspan');
var puvodniHodnota=cilovySpan.innerHTML;
function testSpanu()
{
  if(cilovySpan.innerHTML!=puvodniHodnota)
    funkcePriOdchycení(); 
  puvodniHodnota=cilovySpan.innerHTML;
  setTimeout(testSpanu,500);
}
smitka
Profil
Tak když už se jedná o jQuery ajax, tak lze využít handler ajaxComplete, který jQuery po vykonání ajax požadavku spouští:

jQuery( document ).ajaxComplete(function( event, xhr, settings ) {

...zpracování...  

});

můžeš si otestovat, že v settings.url je "/checkout/?wc-ajax=update_order_review" (nebo jiná URL, na kterou to dotaz posílá) a pak z xhr.responseText vytáhnout cenu v tom konkrétním spanu co to vrátí + nějaké další kontroly, že to vrátilo 200 a podobně.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: