WooCommerce добавлено делегированное событие на отдельных страницах продукта - PullRequest
1 голос
/ 13 марта 2019

В Woocommerce, когда я нажимаю кнопку «Добавить в корзину» на отдельных страницах продукта, продукт успешно добавляется в корзину.Теперь, когда товар добавлен в корзину (после перезагрузки страницы), я бы хотел включить отображение кнопок CHECKOUT и SEE CART в окне.

Следующий код прекрасно работает на AJAX ADD TO CART , но не на SINGLE ADD TO CART , так как он не включен AJAX:

$( document.body ).on( 'added_to_cart', function(){
    console.log('added_to_cart');
}); 

Как я могу заставить его работатьдля не ЕДИНСТВЕННО ДОБАВИТЬ В КОРЗИНУ ?

Ajax добавить в корзину (работа) : https://test.sushi2500.dk/takeaway/nigiri-laks/
Одиночное добавлениев корзину (не работает) : https://test.sushi2500.dk/takeaway/maanedstilbud/

Ответы [ 2 ]

2 голосов
/ 13 марта 2019

На странице одного продукта, поскольку данные отправляются в форме с использованием метода «post» (без участия JS / AJAX) , поэтому вы можете обнаружить «добавлено в корзину» событие с использованием переменных PHP $_POST, таким образом:

add_action('wp_footer', 'single_added_to_cart_event');
function single_added_to_cart_event()
{
    if( isset($_POST['add-to-cart']) && isset($_POST['quantity']) ) {
        // Get added to cart product ID (or variation ID) and quantity (if needed)
        $quantity   = $_POST['quantity'];
        $product_id = isset($_POST['variation_id']) ? $_POST['variation_id'] : $_POST['add-to-cart'];

        // JS code goes here below
        ?>
        <script>
        jQuery(function($){
            console.log('added_to_cart');
            alert('added_to_cart');
        });
        </script>
        <?php
    }
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы).

Протестировано и работает для отдельных страниц продукта (или если используется [product_page id="99"] подобный шорткоду) .

enter image description here

Вы можете использовать код в шаблоне, в пользовательской функции (или в пользовательском шорткоде) .

0 голосов
/ 13 марта 2019
$( document.body ).on( '.wc-variation-selection-needed', function(){

      console.log('added_to_cart');

}); 

Попробуйте это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...