Я добавил дополнительные сборы к заказам, один из которых необязательно (клиент может выбрать его на странице оформления заказа с помощью радиокнопки AJAX).
Моя цель - отобразить пользовательское сообщение в учетной записи клиента, указав в только те заказы, в которые была добавлена дополнительная плата.
Итак, скажем, у меня есть 3 комиссии за размещенный заказ (которые хранятся в таблице wp_woocommerce_order_items
как fee
в столбце order_item_type
).
Один из этих трех сборов называется Optional Fee
( тот, который необходим для моей цели ).
Как проверить, существует ли это Optional Fee
в товарах заказа?
Я начал со следующего кода, но он получает только название платы, которая была сохранена в последний раз, и поэтому не будет совпадать с Optional Fee
.
$order = wc_get_order( $order_id );
foreach ( $order->get_items('fee') as $item_id => $item ) {
$fee_name = $item->get_name(); // This only gets me the name of the last fee stored in order items table.
if ( $fee_name == 'Optional Fee' ) {
echo 'Custom message';
}
}
Я думаю, что мне нужно как-то получить список сборов (это массив?) И проверить, существует ли Optional Fee
в этом списке, но я не могу понять, как это сделать, и не смог найти работающее решение. пока что.