发送有关新订单的电报通知,其中包含订单和订单项目详细信息

问题描述 投票:0回答:1

当我的商店收到新订单时,我想向我的群组发送电报通知。 我使用在另一个线程中找到的以下代码:

add_action( 'woocommerce_new_order', 'telegram_notification',  1, 1  );
function telegram_notification( $order_id ) {

            $order     = wc_get_order( $order_id );


            $text = "*" . __( 'New Order') . "*\n\n";
            $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";
            $xsl = file_get_contents("https://api.telegram.org/bot12345:xxxxx-zzzzz/sendMessage?parse_mode=html&chat_id=-1234567890&text=" . $text);
}

我还想发送产品名称和 SKU,但我似乎无法弄清楚。原贴也有这个问题。 这是问题线索:WooCommerce 与 Telegram 的通知

提前感谢您抽出时间。

尝试了各种方法,但似乎都没有打印产品和产品信息。

php wordpress woocommerce telegram orders
1个回答
0
投票

您只需要循环遍历订单项目,添加产品名称和 SKU,例如:

add_action( 'woocommerce_new_order', 'send_order_to_api', 10, 2 );
function send_order_to_api( $order_id, $order ){
    if ( ! is_a('WC_Order', $order) ) {
        $order = wc_get_order($order_id);
    }

    $text  = "*" . __( 'New Order') . "*\n\n";
    $text .= __( 'Order number') . ': ' . $order->get_order_number() . "\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";

    // Loop through order line items
    foreach( $order->get_items() as $item ) {
        $product = $item->get_product();
        $text   .= $product->get_name() . ' (' . $product->get_sku() . ')'. "\n";
    }

    $xsl = file_get_contents("https://api.telegram.org/bot12345:xxxxx-zzzzz/sendMessage?parse_mode=html&chat_id=-1234567890&text=" . $text);
}

应该可以。


相关:

© www.soinside.com 2019 - 2024. All rights reserved.