我正在尝试在Woocommerce生成的customer_processing_order电子邮件中的产品下方显示购买说明。
我已经在我的functions.php文件中添加了以下内容:
function sww_add_images_woocommerce_emails( $output, $order ) {
// set a flag so we don't recursively call this filter
static $run = 0;
// if we've already run this filter, bail out
if ( $run ) {
return $output;
}
$args = array(
'show_purchase_note' => true,
);
// increment our flag so we don't run again
$run++;
// if first run, give WooComm our updated table
return $order->email_order_items_table( $args );
}
add_filter( 'woocommerce_email_order_items_table', 'sww_add_images_woocommerce_emails', 10, 2 );
这可行,但是它在电子邮件中显示一条错误消息,说明以下内容:
“注意:自版本以来,不推荐使用WC_Order :: email_order_items_table 3.0!
请改用wc_get_email_order_items。在/nas/content/staging/ishgamultisite/wp-includes/functions.php中在线 3853“
如果我将woocommerce_email_order_items_table更改为wc_get_email_order_items,则此功能无效。
我希望有人能告诉我我不确定该如何修改代码?
答案 0 :(得分:0)
替换return $order->email_order_items_table( $args );
与
return wc_get_email_order_items( $order, $args );
答案 1 :(得分:0)
有点晚了,但是如果有人仍然需要出示购买记录,那么有一个更简单的钩子:
/**
* PURCHASE NOTE
* Edits the email order items args to show purchase notes
*/
function ag_add_wc_order_email_purchase_notes( $args ) {
$args['show_purchase_note'] = true;
return $args;
}
add_filter( 'woocommerce_email_order_items_args', 'ag_add_wc_order_email_purchase_notes', 10, 1 );
过滤器woocommerce_email_order_items_args
包含要在订单电子邮件中显示的内容的参数。
$array — Optional. (callback) => array( 'order' => $order, 'items' => $order->get_items(), 'show_download_links' => $order->is_download_permitted() && ! $args['sent_to_admin'], 'show_sku' => $args['show_sku'], 'show_purchase_note' => $order->is_paid() && ! $args['sent_to_admin'], 'show_image' => $args['show_image'], 'image_size' => $args['image_size'], 'plain_text' => $args['plain_text'], 'sent_to_admin' => $args['sent_to_admin'], )
来源:http://hookr.io/filters/woocommerce_email_order_items_args/
已通过WooCommerce 3.6.2测试并正常工作。