当我的商店收到新订单时,我想向我的群组发送电报通知。 我使用在另一个线程中找到的以下代码:
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 的通知
提前感谢您抽出时间。
尝试了各种方法,但似乎都没有打印产品和产品信息。
您只需要循环遍历订单项目,添加产品名称和 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);
}
应该可以。
相关: