Содержание
Woocommerce разное
Удалить Woocommerce
Добавить в файл wp-config.php
define( 'WC_REMOVE_ALL_DATA', true );
Деактивировать плагин, удалить плагин, все таблицы WC будут удалены.
Источник: Installing and Uninstalling WooCommerce
Получить значения полей на странице checkout
Дополнительные поля созданы через Checkout Field Editor for WooCommerce
В Woocommerce заказ это пост. Получить метаданные можно с помощью get_post_meta(). Данные хранятся в таблице wp_postmeta
$order_meta = get_post_meta( $order_id, $field_name, true );
Чтобы получить метаданные пользователя/клиента используем get_user_meta. Данные хранятся в таблице wp_usermeta.
$user_meta = get_user_meta( $user_id, $field_name, true );
Например чтобы получить поле ИНН (поле работает через сервис DaData)
$order = wc_get_order($order_id); $user_id = $order->get_user_id(); $billing_inn = get_user_meta($user_id, 'billing_inn', true);
Product Addons for Woocommerce
Плагин
Задача - получить значение поля из заказа.
Данные из product addon можно получить через field label, field id и field name.
Через field label
$item->get_meta('Field Label');
Пример
foreach ($order->get_items() as $item_id => $item ) { $field_cpu = wc_get_order_item_meta( $item_id, 'Процессор', true); $field_ram = wc_get_order_item_meta( $item_id, 'Память', true); }
Через field id или field name (_WCPA_order_meta_data)
См. также
Записать данные заказа в локальный текстовый файл
$order = wc_get_order($order_id); $user_id = $order->get_user_id(); foreach ( $order->get_items() as $item ) { $quantity = $item->get_quantity(); // что-то ещё } $postDataArray = [ "billing_first_name" => $order->get_billing_first_name(), "billing_last_name" => $order->get_billing_last_name(), "billing_postcode" => $order->get_billing_postcode(), "quantity" => "$quantity" ]; $file_path = 'textfile.txt'; $file_handle = fopen($file_path, 'a+'); if ($file_handle) { fwrite($file_handle, print_r($postDataArray, true) . "\n"); fclose($file_handle);
Выполнить POST запрос при успешном платеже
add_action( 'woocommerce_payment_complete', 'make_curl_post_request_after_payment' ); function make_curl_post_request_after_payment($order_id) { $order = wc_get_order($order_id); $user_id = $order->get_user_id(); $postDataArray = [ "billing_first_name" => $order->get_billing_first_name(), "billing_last_name" => $order->get_billing_last_name(), "billing_postcode" => $order->get_billing_postcode(), "quantity" => "$quantity" ]; $data = http_build_query($postDataArray); $url = 'http://API_URL'; $cURL = curl_init(); curl_setopt($cURL, CURLOPT_URL,$url); curl_setopt($cURL, CURLOPT_POSTFIELDS, $data); curl_setopt($cURL, CURLOPT_HEADER,false); curl_setopt($cURL, CURLOPT_RETURNTRANSFER,true); curl_setopt($cURL, CURLOPT_POST, true); curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($cURL, CURLOPT_CONNECTTIMEOUT,10); $response = curl_exec($cURL); curl_close($cURL); echo $response; $order->update_status('completed'); }
Ширина кнопки купить/в корзину
Если у товара нет выбора количества, то кнопка "купить" ("в корзину") меняет своё расположение.
Чтобы установить ширину кнопку на всю ширину для form.cart
.single_add_to_cart_button{ width: 100%; }
или
.single_add_to_cart_button.button.alt { display: block; width: 100%; }
Обсуждение