Estoy tratando de enviar una notificación sobre el nuevo pedido de WooCommerce con Telegram. Obtengo casi todos los detalles que quiero excepto la lista de productos del pedido. Si uso un código abreviado para exponer los detalles del pedido en WordPress, mi código funciona. Cuando trato de hacer esto en Telegram, los detalles del producto ya no se muestran.
Aquí está mi código:
add_action( 'woocommerce_new_order', 'telegram_notification', 1, 1 );
function telegram_notification( $order_id ) {
$order = wc_get_order( $order_id );
$text = "*" . __( 'New Order') . "*nn";
$text .= __( 'Order number') . ': ' . $order_id . "n";
$text .= __( 'Status') . ': ' . wc_get_order_status_name( $order->get_status() ) . "n";
$text .= __( 'Date') . ': ' . $order->get_date_modified() . "n";
$text .= __( 'Email') . ': ' . $order->get_billing_email() . "n";
$text .= __( 'Total price') . ': ' . $order->get_total() . "n";
$text .= __( 'Payment method') . ': ' . $order->get_payment_method_title() . "n";
$text .= "n" . __( 'Items') . ':' . "n";
foreach ( $order->get_items() as $item_id => $item_data ) {
$product = $item_data->get_product();
$product_name = $product->get_name();
$item_quantity = $item_data->get_quantity();
$item_total = $this->wc_price( $item_data->get_total() );
$text .= $product_name . ' × ' . $item_quantity . ' = ' . $item_total . "n";
}
$xsl = file_get_contents("https://api.telegram.org/bot12345:xxxxx-zzzzz/sendMessage?parse_mode=html&chat_id=-1234567890&text=" . $text);
}
Y aquí está el resultado en Telegram:
Nuevo orden__Número de pedido: 981_Stare: Plată în așteptare_Dată: 2020-12-12T12:12:12 00:00_Email: email@yahoo.com_Precio total: 10.00_Forma de pago: Numerar la livrare__Items:_
Y no se muestra nada en los artículos…
Mi versión de WooCommerce es 4.1.0 y WordPress versión 5.4.1
Gracias de antemano por su tiempo
.