Ситуация: У меня есть куча разных продуктов в магазине Wordpress WooCommerce.На веб-интерфейсе есть форма с несколькими выбранными входами, которая позволяет пользователю настроить продукт перед добавлением его в корзину.Цена и другая информация будут меняться в зависимости от возможных вариаций, поэтому мне нужно отслеживать это.
Цель: После того, как форма была изменена пользователем, Woocommerce обновит скрытуюполе input.variation_id
с идентификатором вновь выбранного варианта.Всякий раз, когда это меняется, я хочу знать, что.
Очевидно, что есть что-то, что отслеживает изменения, и это прекрасно работает:
$( ".variations_form" ).on( "woocommerce_variation_select_change", function () {
console.log('form has changed'); // fires correctly
} );
Я также могу прочитать значение этогоскрытое поле, до того как оно было изменено:
var id = $('input.variation_id').val();
console.log( id ); // returns correct value
Проблема: Но когда я пытаюсь вызвать значение внутри этой функции, я не буду работать.
$( ".variations_form" ).on( "woocommerce_variation_select_change", function () {
var id = $('input.variation_id').val();
console.log( id ); // fires, but returns empty
} );
Я перепробовал все, что пришло мне в голову.Если я набираю его прямо в консоль браузера, он работает, но когда я пытаюсь получить его с помощью функции выше, он пуст.Что я могу сделать?
Ранее я работал с $('form.variations_form select').change(...);
, но это приведет к путанице в вариациях, и я хочу убедиться, что Woocommerce обновил всю информацию, прежде чем я выполню свое действие.