Надеюсь, я правильно понял - т.е. у вас есть флажок, и на каждом входе значение сохраняется в файле cookie.При загрузке страницы вы извлекаете значение cookie и устанавливаете его на флажок.Все работает хорошо, за исключением случаев, когда вы делаете запрос AJAX и загружаете все это.
Похоже, что это скорее проблема JavaScript (а не PHP).
При загрузке страницы вы уже отмечаете флажок как выбранный на основе значения cookie.Однако, когда вы делаете запрос AJAX, вы устанавливаете флажок, и код javascript, который отвечает за установку значения флажка, больше не вызывается (т.е. checkbox.prop ('флажок', + $. Cookie (checkboxCookieName)))).
Вам нужно позвонить:
checkbox.prop('checked', +$.cookie(checkboxCookieName));
по завершении запроса ajax и ПОСЛЕ внедрения HTML
В Woocommerce есть три события:
updated_wc_div updated_cart_totals updated_shipping_method
Я не совсем понимаю, что вы пытаетесь сделать, но вы должны привязать свой код к одному из них в зависимости от ваших потребностей.Способ сделать это (например, используя updated_cart_totals):
$(document).on('updated_cart_totals', function(){
checkbox.prop('checked', +$.cookie(checkboxCookieName));
});
Надеюсь, это полезно.