Вывод мета данных товара в связке Woocommerce и сторонних модулей

Цена договорная
06 марта 2024, 05:22 • 1 отклик • 19 просмотров
Ключевые модули:
1. Woocommerce
2. YITH Product Options для добавления аттрибутов/опций к товару (например, Творог: 0% или 10%)
3. Telegram Order для передачи заказа в телеграм

После оформления заказа необходимо передать данные товара (опции) в телеграм. По умолчанию плагин телеграм поддерживает только базовые/ключевые данные, поэтому, необходимо написать функцию.

Известно в общих чертах и известны источники, откуда можно получить логику. Для телеграма – известно, где эта функция должна быть исполнена. Простыми словами, все вводные есть, вопрос синтаксиса и адаптации.

Демо: http://qr.johvi.oceansushi.ee (просьба смотреть на телефоне или в адаптированном для телефона размере (ширина) — специфика проекта.

Немного деталей:
Опции выводятся так, +-

$meta_data = wc_get_order_item_meta( $item_id, '_ywapo_meta_data', true );

if ( $meta_data && is_array( $meta_data ) ) {
foreach ($meta_data as $index => $option) {
foreach ($option as $key => $value) {
if ($key && '' !== $value) {
$values = YITH_WAPO::get_instance()->split_addon_and_option_ids($key, $value);

$addon_id = $values['addon_id'];
$option_id = $values['option_id'];

$info = yith_wapo_get_option_info($addon_id, $option_id);
}
}
}
}


Телеграм-плагин формирует сообщение так:

public function getProducts() {
$items = $this->order->get_items();
$product = chr(10);
if (!empty($items)) {
foreach ($items as $item_id => $item) {
$product_item = $item->get_product();
if ($product_item) {
$product .= $item['quantity'] . 'x ' . $item['name'] . ' ' . wc_price($item['total'] ) . PHP_EOL;

$additives_array_est = $this->getItemCustomField($item_id, 'Lisad');
$additives_array_rus = $this->getItemCustomField($item_id, 'Добавки');

if (count($additives_array_est) + count($additives_array_rus) > 0) {
$product .= 'Lisad: ' . implode(", ", array_merge($additives_array_est, $additives_array_rus)) . PHP_EOL;
}
}
}
}

Отзывы
R50 a84016b627773c59be7b00cf02a01c7a
Заказчик
Тот самый редкий момент, когда результат и процесс превзошли ожидания. Более того, мы толком не оговорили сроки, а задача уже была решена. 10/10
~ 2 месяца назад
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Фрилансер
 
~ 2 месяца назад