Добавление товара в корзину WooCommerce может быть реализовано несколькими способами: через стандартные возможности WooCommerce, через программное добавление с помощью PHP, а также через AJAX для добавления товаров без перезагрузки страницы. 1. Стандартное добавление через интерфейс WooCommerce В стандартной установке WooCommerce, чтобы добавить товар в корзину, пользователю достаточно нажать кнопку «Добавить в корзину» на странице продукта или каталога. Эта кнопка автоматически добавляет товар в корзину. Как настроить: Убедитесь, что на страницах ваших продуктов и каталога есть кнопка «Добавить в корзину». WooCommerce по умолчанию управляет всем процессом добавления товара в корзину, включая обработку данных о количестве и вариантах товара (если они есть). 2. Программное добавление товара в корзину через PHP Вы можете программно добавить товар в корзину, используя функцию WooCommerce WC()->cart->add_to_cart(). Пример кода для добавления товара в корзину: Этот код можно добавить в файл functions.php вашей темы или плагина: $product_id = 123; // Замените на ID вашего товара $quantity = 1; // Количество товара WC()->cart->add_to_cart( $product_id, $quantity ); Пример для добавления товара с конкретными вариантами: Если вы добавляете вариативный товар, нужно указать ID варианта (а не ID родительского товара) и передать параметры вариантов: $product_id = 123; // ID родительского товара $variation_id = 456; // ID конкретного варианта $quantity = 1; $variation = array( 'attribute_pa_color' => 'red', // Замените на ваши атрибуты варианта 'attribute_pa_size' => 'large' ); WC()->cart->add_to_cart( $product_id, $quantity, $variation_id, $variation ); 3. Добавление товара в корзину через 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-запроса: Добавьте следующий код в ваш JavaScript файл или в секцию скриптов на вашей странице: 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); } } }); }); }); 4. Принудительное добавление товара в корзину Если вы хотите добавить товар в корзину автоматически, когда пользователь заходит на сайт или определенную страницу, можно использовать следующий код: add_action( 'template_redirect', 'auto_add_to_cart' ); function auto_add_to_cart() { if ( is_page( 'specific-page-slug' ) ) { // Замените на ваш slug страницы $product_id = 123; // ID товара $quantity = 1; $found = false; // Проверяем, находится ли товар уже в корзине foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) { if ( $values['product_id'] == $product_id ) { $found = true; } } // Если товара нет в корзине, добавляем его if ( ! $found ) { WC()->cart->add_to_cart( $product_id, $quantity ); } } } 5. Переадресация после добавления товара в корзину Если вы хотите перенаправить пользователя на страницу корзины после того, как товар был добавлен в корзину, можно использовать фильтр: add_filter( 'woocommerce_add_to_cart_redirect', 'redirect_to_cart_after_add' ); function redirect_to_cart_after_add() { return wc_get_cart_url(); // Переадресация на страницу корзины } В WooCommerce существует множество способов добавить товар в корзину: через стандартную функциональность, программное добавление с помощью PHP, AJAX для динамического добавления без перезагрузки страницы, и даже автоматическое добавление товаров в корзину. Вы можете выбрать подходящий метод в зависимости от ваших потребностей и целей.