1. Проблема:
Я хочу продавать скоропортящиеся товары, которые взвешиваются (и, следовательно, никогда не совпадают по весу с фактически заказанным покупателем), и иногда, если определенного продукта больше нет в наличии, будет отправлен аналогичный продукт.
например:
ordered: 1.000 kg apple (variety A) shipped: 0.975 kg apple (variety B)
Я хочу, чтобы клиенты могли видеть это в своем счете:
Product | kg ordered | kg shipped __________________|____________|___________ apple (variety A) | 1.000 kg | 0.000 kg apple (variety B) | 0.000 kg | 0.975 kg
- Это означает, что WooCommerce следует убедить обрабатывать количества в обоих столбцах/переменных Qty (старом и пользовательском) как
float
вместоinteger
. - Поэтому мне также нужно, чтобы WooCommerce перестала удалять товары с нулевым количеством (
product_qty
) (при обновлении заказа в бэк-офисе).
Частичное временное решение:
\woocommerce\includes\admin\wc-admin-functions.php
Строка 284:
$item->delete();
// $item->delete();
- Я также хочу, чтобы новый пользовательский столбец
product_quantity_ordered
в таблице{prefix}wc_order_product_lookup
(которую я уже создал) (если это не "хорошая практика" - где и как мне добавить этот столбец?), чтобы получить значения из столбцаproduct_qty
(в тот же стол{prefix}wc_order_product_lookup
) в момент, когда клиент делает свой заказ.
Частичное временное решение:
запрос SQL в phpMyAdmin:UPDATE
L16_wc_order_product_lookup
SET product_qty_ordered
= product_qty
ГДЕ date_created
МЕЖДУ '2020-06-24' И '2020/07/14';< /код>
- Плюсом было бы отображение обоих столбцов количества рядом друг с другом (сначала заказанное количество, а затем количество отгруженных) как на странице редактирования заказа администратором, так и в счете-фактуре.
2. Что я пробовал:
- Я добавил новый пользовательский столбец
product_quantity_ordered
в таблицу{prefix}wc_order_product_lookup
(опять же, если это не лучшая практика... куда мне добавить этот новый столбец?)
см. изображение: - Я использовал фрагмент кода из Показать продукт meta в таблице элементов заказа в сведениях о заказе (которая отображает новый столбец столбца и заполняет его значениями из
product_qty
). Однако, как только я редактирую количество товара на странице редактирования заказа, конечно же, WooCommerce обновляет оба столбца количества.
см. изображение:
3. Мой код:
Только этот фрагмент (из Показать метаданные продукта в таблице элементов заказа в разделе «Сведения о заказе» ) на данный момент:
add_action('woocommerce_admin_order_item_headers', 'my_woocommerce_admin_order_item_headers');
function my_woocommerce_admin_order_item_headers() {
// set the column name
$column_name = 'Qty ordered';
echo '<th>' . $column_name . '</th>';
}
add_action('woocommerce_admin_order_item_values', 'my_woocommerce_admin_order_item_values', 10, 3);
function my_woocommerce_admin_order_item_values($_product, $item, $item_id = null) {
$value = $item->get_quantity( 'edit' ); // this line of code stems from Line28 of \woocommerce\packages\woocommerce-admin\src\Overrides\OrderTraits.php
echo '<td>' . $value . '</td>';
}
L16_wc_order_product_lookup
SETproduct_qty_ordered
=product_qty
WHEREdate_created
МЕЖДУ «2020-06-24» И «2020/07/14»; - person Yoda - user264474   schedule 19.07.2020