Получить название продукта, используя выражение в WooCommerce - PullRequest
0 голосов
/ 11 марта 2020

Я могу получить идентификатор заказа, используя выражение {order_id}, как на скриншоте ниже.

Есть ли какое-нибудь выражение, с помощью которого я могу получить название продукта точно так же, как и идентификатор заказа. Это плагин платежного шлюза, поэтому редактирование файлов плагина будет последним, что я хочу сделать. Спасибо.

enter image description here

1 Ответ

0 голосов
/ 19 марта 2020

Некоторые интеллектуалы проголосовали за мой вопрос, даже не видя своей базы знаний. Но для некоторых людей, таких как я, вот что я нашел:

file: plugins / telr / class-w c -gateway-telr-checkout-handler. php

метод: закрытая функция generate_request ($ order)

find:

$cart_desc = trim(wc_gateway_telr()->settings->__get('cart_desc'));
if (empty($cart_desc)) {
    $cart_desc ='Order {order_id}';
}
$cart_desc  = preg_replace('/{order_id}/i', $order_id, $cart_desc);
add_post_meta($order_id, '_telr_cartdesc', $cart_desc);

заменить на:

$cart_desc = trim(wc_gateway_telr()->settings->__get('cart_desc'));
if (empty($cart_desc)) {
    $cart_desc ='Order {order_id}';
}

$order_items = $order->get_items();
$productNames = array();
foreach ($order_items as $product_data) {
    $productInfo = $product_data->get_data();
    $productNames[] = $productInfo['name'];
}
$cartProducts = implode(", ", $productNames);
$cart_desc  = preg_replace('/{order_id}/i', $order_id, $cart_desc);
$cart_desc  = preg_replace('/{product_names}/i', $cartProducts, $cart_desc);
$cart_desc = substr($cart_desc, 0, 63);
add_post_meta($order_id, '_telr_cartdesc', $cart_desc);

, после этого {product_names} будет заменен на ',' разделенный названия продуктов и строка окончательного описания будут обрезаны до 63 символов (такова длина, которую может иметь описание)

...