Вывод мета данных товара в связке Woocommerce и сторонних модулей
Цена договорная
Ключевые модули:
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;
}
}
}
}
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;
}
}
}
}
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.