将 SKU 放入 WCMp 供应商电子邮件中



您好,提前感谢您。 我在这里的第一个问题,所以如果不是 100%,请道歉。 也提前为这个大问题道歉 - 我想包括我发现和尝试过的所有内容。

我正在使用WooCommerce Marketplace(WCMp(插件进行供应商管理。

当客户下订单时,WMCp会向产品供应商发送一封新订单电子邮件,而WooCommerce会向网站管理员(我自己(发送一封电子邮件。 就目前而言,我收到的电子邮件包含产品SKU,但是供应商收到的电子邮件不包含。

据我所知,在WooCommerce电子邮件模板中,SKU通过以下方式显示:

if ( $show_sku && $sku ) {
echo wp_kses_post( ' (#' . $sku . ')' );
}

$sku进一步定义如下:

foreach ( $items as $item_id => $item ) :
$product       = $item->get_product();
$sku           = '';
$purchase_note = '';
$image         = '';
if ( ! apply_filters( 'woocommerce_order_item_visible', true, $item ) ) {
continue;
}
if ( is_object( $product ) ) {
$sku           = $product->get_sku();
$purchase_note = $product->get_purchase_note();
$image         = $product->get_image( $image_size );
}

在 WCMp 新订单电子邮件模板中,电子邮件内容通过此处定义的vendor_order_item_table函数调用。 以下是我尝试添加的代码(在第 517 行和 518 行之间(:

foreach ( $items as $item_id => $item ) :
$product       = $item->get_product();
$sku           = '';
}
if ( is_object( $product ) ) {
$sku           = $product->get_sku();
}
if ( $show_sku && $sku ) {
echo wp_kses_post( ' (#' . $sku . ')' );

我知道我最后缺少一个大括号 - 如果我添加它,我会收到 HTTP 500 错误。 我尝试注释掉if ( $show_sku && $sku ) {以绕过显示回声的条件,但这也会生成 HTTP 500 错误。

我尝试联系插件作者,并且花了几天多的时间在谷歌上搜索,但没有太多运气。

再次感谢您的任何帮助。

编辑我从 SellWithWP.com 中找到了以下代码片段:

function sww_add_sku_to_wc_emails( $args ) {
$args['show_sku'] = true;
return $args;
}
add_filter( 'woocommerce_email_order_items_args', 'sww_add_sku_to_wc_emails' );

不幸的是,这只会将SKU添加到WooCommerce生成的电子邮件(即面向客户的电子邮件(,而不是供应商新订单电子邮件。

如果有人正在寻找答案,以下是我如何让它工作:

add_action('wcmp_after_vendor_order_item_table', 'add_sku_to_vendor_email', 10, 4);
function add_sku_to_vendor_email($item, $order, $vendor_id, $is_ship) {
$product = wc_get_product( $item['product_id'] );
$wcmp_product_sku = $product->get_sku();
echo wp_kses_post( ' (#' . $wcmp_product_sku . ')' );
}

。添加到函数.php或作为代码段。

这使 SKU 低于每行的成本价格 - 不完全是我想要的,但足够好(考虑到我投入了多少时间(。

最新更新