Как сделать оформление заказа WooCommerce и wp через Contact Form 7?
Говоря другими словами мне нужно чтобы форма понимала, что у меня сейчас в корзине есть и отправляла это вместе с ФИО тд в вукомерс. Все сейчас реализовано на Contact Form 7 и купить в один клик, форма знает какой товар я хочу купить, но когда доходите в корзину она отправляет ток ФИО в укомерс, без товара и количества и тд, а ответьте как это реализовать, целый день голову ломаю
Дополнительно:
Никто не знает как у тебя "Все сейчас реализовано на Contact Form 7 и купить в один клик". CF7 вообще не имеет отношения к WC
Суть в том что мне надо чтобы форма сама знала какие товары у меня сейчас в корзине, и чтобы это было без кода, все на элементоре
Вот сила примера реализации по кнопке в товаре и в корзине одинаковые формы:
https://ukr-trends.site/
установите плагины
WooCommerce , Contact Form 7, Contact Form 7 Dynamic Text Extension
в WooCommerce измените код
add_action('wpcf7_before_send_mail', 'custom_wpcf7_add_to_cart'); function custom_wpcf7_add_to_cart($form) { // Получите данные из формы $product_id = intval($_POST['your-product-id']); // Замените на имя поля для ID товара $quantity = intval($_POST['your-product-quantity']); // Замените на имя поля для количества товара // Проверьте, что товар существует в WooCommerce if (wc_get_product($product_id)) { // Добавьте товар в корзину WC()->cart->add_to_cart($product_id, $quantity); } } |
add_action('wpcf7_before_send_mail', 'custom_wpcf7_add_to_cart'); function custom_wpcf7_add_to_cart($form) { // Получите данные из формы $product_id = intval($_POST['your-product-id']); // Замените на имя поля для ID товара $quantity = intval($_POST['your-product-quantity']); // Замените на имя поля для количества товара // Проверьте, что товар существует в WooCommerce if (wc_get_product($product_id)) { // Добавьте товар в корзину WC()->cart->add_to_cart($product_id, $quantity); } }
- Суть в том что мне надо чтобы форма сама знала какие товары у меня сейчас в корзине, и чтобы это было без кода, все на элементоре
Вот сила примера реализации по кнопке в товаре и в корзине одинаковые формы:
https://ukr-trends.site/ - Bogdan Bukievskiy, тогда с помощью JS подтяните ID продуктов в форму. А перед отправкой создайте заказ с его ФИО.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Contact Form 7 сам по себе не оформляет заказ WooCommerce. Он может отправить письмо или принять данные формы, но не знает, что лежит в корзине, какие товары выбраны, какие вариации, цены, доставка и налоги. Если нужно создать именно заказ WooCommerce, нужно либо пользоваться стандартным checkout, либо программно создать заказ через API WooCommerce.
Если цель простая: форма “купить в один клик” должна отправлять товар, ФИО и телефон менеджеру, то можно не создавать заказ, а просто подставить данные товара в письмо CF7. Но если заказ должен появиться в WooCommerce, списываться остатки, работать статусы и письма, нужен код или готовый плагин one click checkout.
Пример общей логики через хук CF7:
add_action('wpcf7_mail_sent', function ($contact_form) { $submission = WPCF7_Submission::get_instance(); if (!$submission) { return; } $data = $submission->get_posted_data(); $product_id = absint($data['product_id'] ?? 0); if (!$product_id || !function_exists('wc_create_order')) { return; } $order = wc_create_order(); $order->add_product(wc_get_product($product_id), 1); $order->set_billing_first_name(sanitize_text_field($data['your-name'] ?? '')); $order->set_billing_phone(sanitize_text_field($data['your-phone'] ?? '')); $order->calculate_totals(); $order->update_status('pending'); });
Но это только каркас. В реальном магазине нужно учесть количество, вариации, цену, доставку, согласия, защиту от спама и ошибки. В Elementor без кода это обычно решается плагинами “buy one click” для WooCommerce, а не чистым CF7. CF7 можно оставить как форму заявки, но полноценную корзину и заказ лучше отдавать WooCommerce.