猿问

如何将产品 SKU 添加到 WooCommerce 新订单电子邮件主题

基于Woocommerce - 将用户名添加到新订单电子邮件主题行。我正在尝试更改 WooCommerce 电子邮件主题行。订购时我作为网站管理员在我的邮件中收到的电子邮件。

我正在尝试创建以下结构

[在线商店]订单(#....)名称,第二名,总计-...,SKU1, SKU2, SKU3...

我使用此代码,但我不知道如何获取订单中每个产品的 SKU?

add_filter('woocommerce_email_subject_new_order', 'change_admin_email_subject', 1, 2);

function change_admin_email_subject( $subject, $order ) {

global $woocommerce;

$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);


$subject = sprintf( '[%s] Order (# %s) от %s %s Total-%u EU. %s ', $blogname, $order->id, 

$order->billing_first_name, $order->billing_last_name, $order->order_total, $order->...);


return $subject;

}


慕沐林林
浏览 128回答 1
1回答

浮云间

为此,您可以使用以下方法,通过 foreach 循环从订单对象获取产品 SKU。在代码中添加了带有解释的注释function filter_woocommerce_email_subject_new_order( $subject, $order ) {       // Blogname    $blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );        // Get order ID    $order_id = $order->get_id();        // Get billing first name    $first_name = $order->get_billing_first_name();        // Get billing last name    $last_name = $order->get_billing_last_name();        // Get order total    $order_total = $order->get_total();        // Empty array    $product_skus = array();    // Loop through order items    foreach( $order->get_items() as $item ) {        // Get an instance of corresponding the WC_Product object        $product = $item->get_product();                // Push to array        $product_skus[] = $product->get_sku();    }        // Array to string    $product_skus_str = implode( ", ", $product_skus );        // Subject    $subject = sprintf( '[%s] Order (# %s) From %s %s Total %s SKU %s', $blogname, $order_id, $first_name, $last_name, $order_total, $product_skus_str );    return $subject;}add_filter( 'woocommerce_email_subject_new_order', 'filter_woocommerce_email_subject_new_order', 1, 2 );
随时随地看视频慕课网APP
我要回答