Stylesheet conf/userstyle.css not found, please contact the developer of "dokuwiki_2024" template.
web:wordpress:woocommerce
Различия
Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
web:wordpress:woocommerce [2024/05/02 19:51] – создано dx | web:wordpress:woocommerce [2024/05/24 20:34] (текущий) – dx | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Woocommerce разное ====== | ||
+ | ==== Удалить Woocommerce ==== | ||
+ | |||
+ | Добавить в файл '' | ||
+ | |||
+ | <code php> | ||
+ | define( ' | ||
+ | </ | ||
+ | |||
+ | Деактивировать плагин, | ||
+ | |||
+ | Источник: | ||
+ | |||
+ | ==== Получить значения полей на странице checkout ==== | ||
+ | |||
+ | Дополнительные поля созданы через [[https:// | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | В Woocommerce заказ это пост. Получить метаданные можно с помощью get_post_meta(). Данные хранятся в таблице **wp_postmeta** | ||
+ | |||
+ | <code php> | ||
+ | |||
+ | Чтобы получить метаданные пользователя/ | ||
+ | |||
+ | <code php> | ||
+ | |||
+ | Например чтобы получить поле ИНН (поле работает через [[https:// | ||
+ | |||
+ | <code php> | ||
+ | $order = wc_get_order($order_id); | ||
+ | $user_id = $order-> | ||
+ | $billing_inn = get_user_meta($user_id, | ||
+ | </ | ||
+ | |||
+ | ==== Product Addons for Woocommerce ==== | ||
+ | |||
+ | Плагин | ||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | Задача - получить значение поля из заказа. | ||
+ | |||
+ | Данные из product addon можно получить через **field label**, **field id** и **field name**. | ||
+ | |||
+ | Через **field label** | ||
+ | |||
+ | <code php> | ||
+ | $item-> | ||
+ | </ | ||
+ | |||
+ | Пример | ||
+ | |||
+ | < | ||
+ | foreach ($order-> | ||
+ | $field_cpu = wc_get_order_item_meta( $item_id, ' | ||
+ | $field_ram = wc_get_order_item_meta( $item_id, ' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Через **field id** или **field name** (_WCPA_order_meta_data) | ||
+ | |||
+ | Пример [[https:// | ||
+ | |||
+ | <hidden Пример 1> | ||
+ | <code php> | ||
+ | add_action(' | ||
+ | function get_wcpa_data($order_id) | ||
+ | { | ||
+ | $order = wc_get_order($order_id); | ||
+ | foreach ($order-> | ||
+ | $orderData = $item-> | ||
+ | if (is_array($orderData)) { | ||
+ | foreach ($orderData as $sectionKey => $section) { | ||
+ | if (isset($section[' | ||
+ | foreach ($section[' | ||
+ | foreach ($row as $field) { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <hidden Пример 2> | ||
+ | <code php> | ||
+ | $orderData = $item-> | ||
+ | if (is_array($orderData)) { | ||
+ | foreach ($orderData as $sectionKey => $section) { | ||
+ | if (isset($section[' | ||
+ | foreach ($section[' | ||
+ | foreach ($row as $field) { | ||
+ | if ($field[' | ||
+ | $requiredText = $field[' | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | См. также | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | ==== Записать данные заказа в локальный текстовый файл ==== | ||
+ | |||
+ | <code php> | ||
+ | $order = wc_get_order($order_id); | ||
+ | $user_id = $order-> | ||
+ | |||
+ | foreach ( $order-> | ||
+ | $quantity = $item-> | ||
+ | // что-то ещё | ||
+ | } | ||
+ | |||
+ | $postDataArray = [ | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ]; | ||
+ | |||
+ | $file_path = ' | ||
+ | $file_handle = fopen($file_path, | ||
+ | if ($file_handle) { | ||
+ | fwrite($file_handle, | ||
+ | fclose($file_handle); | ||
+ | </ | ||
+ | |||
+ | ==== Выполнить POST запрос при успешном платеже ==== | ||
+ | |||
+ | <code php> | ||
+ | add_action( ' | ||
+ | function make_curl_post_request_after_payment($order_id) { | ||
+ | |||
+ | $order = wc_get_order($order_id); | ||
+ | $user_id = $order-> | ||
+ | |||
+ | $postDataArray = [ | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | ]; | ||
+ | |||
+ | $data = http_build_query($postDataArray); | ||
+ | $url = ' | ||
+ | |||
+ | $cURL = curl_init(); | ||
+ | curl_setopt($cURL, | ||
+ | curl_setopt($cURL, | ||
+ | curl_setopt($cURL, | ||
+ | curl_setopt($cURL, | ||
+ | curl_setopt($cURL, | ||
+ | curl_setopt($cURL, | ||
+ | curl_setopt($cURL, | ||
+ | |||
+ | $response = curl_exec($cURL); | ||
+ | curl_close($cURL); | ||
+ | echo $response; | ||
+ | |||
+ | $order-> | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Ширина кнопки купить/ | ||
+ | |||
+ | Если у товара нет выбора количества, | ||
+ | |||
+ | Чтобы установить ширину кнопку на всю ширину для form.cart | ||
+ | |||
+ | <code css> | ||
+ | .single_add_to_cart_button{ | ||
+ | width: 100%; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | или | ||
+ | |||
+ | <code css> | ||
+ | .single_add_to_cart_button.button.alt { | ||
+ | display: block; | ||
+ | width: 100%; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | {{tag> |