Добавление товара в корзину в WooCommerce — это стандартная функция, которая активируется через кнопку "Добавить в корзину" на страницах продукта и каталога. WooCommerce автоматически управляет этим процессом, но если вам нужно программно добавить товар в корзину или изменить стандартное поведение, вы можете использовать несколько подходов. 1. Программное добавление товара в корзину Для добавления товара в корзину программно, можно использовать следующую функцию: WC()->cart->add_to_cart( $product_id, $quantity ); Пример кода: Если вы хотите добавить товар в корзину с помощью кода, например, на странице или через AJAX: $product_id = 123; // ID товара, который нужно добавить $quantity = 1; // Количество WC()->cart->add_to_cart( $product_id, $quantity ); 2. Добавление товара через AJAX Если вам нужно добавить товар в корзину без перезагрузки страницы, это можно сделать через AJAX. Вот пример, как это можно реализовать: 1. Добавьте обработчик AJAX в functions.php: add_action( 'wp_ajax_add_to_cart', 'custom_ajax_add_to_cart' ); add_action( 'wp_ajax_nopriv_add_to_cart', 'custom_ajax_add_to_cart' ); function custom_ajax_add_to_cart() { $product_id = intval( $_POST['product_id'] ); $quantity = intval( $_POST['quantity'] ); $added = WC()->cart->add_to_cart( $product_id, $quantity ); if ( $added ) { echo json_encode( array( 'success' => true, 'message' => 'Товар добавлен в корзину!' ) ); } else { echo json_encode( array( 'success' => false, 'message' => 'Ошибка при добавлении товара в корзину.' ) ); } wp_die(); } 2. Добавьте JavaScript для вызова AJAX: jQuery(document).ready(function($) { $('.add-to-cart-button').on('click', function(e) { e.preventDefault(); var product_id = $(this).data('product-id'); var quantity = 1; $.ajax({ type: 'POST', url: '/wp-admin/admin-ajax.php', data: { action: 'add_to_cart', product_id: product_id, quantity: quantity }, success: function(response) { var result = JSON.parse(response); if (result.success) { alert(result.message); } else { alert(result.message); } } }); }); }); Этот метод позволяет добавлять товары в корзину без перезагрузки страницы, что улучшает пользовательский опыт. 3. Переадресация после добавления в корзину Если после добавления товара в корзину вы хотите перенаправлять пользователя на определенную страницу, например, на страницу корзины, можно использовать фильтр: add_filter( 'woocommerce_add_to_cart_redirect', 'custom_add_to_cart_redirect' ); function custom_add_to_cart_redirect() { return wc_get_cart_url(); } 4. Автоматическое добавление товара в корзину при загрузке страницы Если вам нужно, чтобы определенный товар автоматически добавлялся в корзину при посещении сайта или определенной страницы, можно использовать следующий код: add_action( 'template_redirect', 'add_product_to_cart_on_visit' ); function add_product_to_cart_on_visit() { if ( is_page( 'specific-page-slug' ) ) { // Замените 'specific-page-slug' на URL вашей страницы $product_id = 123; // ID товара $found = false; // Проверка, если товар уже в корзине foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) { $product_in_cart = $values['product_id']; if ( $product_id == $product_in_cart ) { $found = true; } } // Если товара нет в корзине, добавляем его if ( ! $found ) { WC()->cart->add_to_cart( $product_id ); } } } Будьте осторожны с автоматическим добавлением товаров в корзину, так как это может негативно сказаться на пользовательском опыте. 5. Удаление товара из корзины программно Если вам нужно удалить товар из корзины программно, вы можете использовать следующую функцию: WC()->cart->remove_cart_item( $cart_item_key ); Где $cart_item_key — это ключ товара в корзине, который можно получить через: $cart_item_key = WC()->cart->get_cart_item_key( $product_id ); 6. Обновление количества товаров в корзине Чтобы программно обновить количество товаров в корзине, используйте функцию: WC()->cart->set_quantity( $cart_item_key, $quantity ); Эти методы позволяют гибко управлять процессом добавления товаров в корзину в WooCommerce в зависимости от ваших задач.