在 WooCommerce 订单电子邮件的项目名称前添加增量编号
Add incremental number before item name on WooCommerce order emails
我有一个 WooCommerce 商店,一切正常。但我想在下订单时在每个商品名称前添加一个数字,这样我就可以在盒子上写上数字,这样顾客就知道哪个盒子里装的是什么产品。
(我只有 1 种产品,但客户可以使用多种产品选项定制该产品)
示例:在订单邮件中,产品名称保持不变,但名称前面增加了一个数字。
- 产品
- 产品
- 产品
我使用此代码编辑产品名称:
add_filter( 'woocommerce_order_item_name', 'change_orders_items_names', 10, 1 );
function change_orders_items_names( $item_name ) {
$item_name = 'mydesiredproductname';
return $item_name;
}
但我不知道如何在产品名称中添加递增数字。
有人知道怎么做吗?或者可以指出正确的方向吗?
多次调用woocommerce_order_item_name
过滤器钩子,
因此很难在函数本身中添加数字。
通过woocommerce_checkout_create_order
,我们首先为每个$item
添加数字meta_data
。然后通过get_meta
,我们在产品名称前面加上数字。
所以你得到:
function action_woocommerce_checkout_create_order( $order, $data ) {
// Start number
$number = 1;
// Loop through order items
foreach ( $order->get_items() as $item_key => $item ) {
// Update meta data for each item
$item->update_meta_data( '_product_number', $number );
// Number +1
$number = $number + 1;
}
}
add_action( 'woocommerce_checkout_create_order', 'action_woocommerce_checkout_create_order', 10, 2 );
function filter_woocommerce_order_item_name( $item_name, $item ) {
// Get meta
$product_number = $item->get_meta( '_product_number' );
// NOT empty
if ( ! empty ( $product_number ) ) {
$item_name = $product_number . '. ' . $item_name;
}
return $item_name;
}
add_filter( 'woocommerce_order_item_name', 'filter_woocommerce_order_item_name', 10, 2 );
注意: 添加 is_wc_endpoint_url
,仅将其应用于电子邮件通知。
function filter_woocommerce_order_item_name( $item_name, $item ) {
// Only for email notifications
if ( is_wc_endpoint_url() )
return $item_name;
// Get meta
$product_number = $item->get_meta( '_product_number' );
// NOT empty
if ( ! empty ( $product_number ) ) {
$item_name = $product_number . '. ' . $item_name;
}
return $item_name;
}
add_filter( 'woocommerce_order_item_name', 'filter_woocommerce_order_item_name', 10, 2 );
我有一个 WooCommerce 商店,一切正常。但我想在下订单时在每个商品名称前添加一个数字,这样我就可以在盒子上写上数字,这样顾客就知道哪个盒子里装的是什么产品。
(我只有 1 种产品,但客户可以使用多种产品选项定制该产品)
示例:在订单邮件中,产品名称保持不变,但名称前面增加了一个数字。
- 产品
- 产品
- 产品
我使用此代码编辑产品名称:
add_filter( 'woocommerce_order_item_name', 'change_orders_items_names', 10, 1 );
function change_orders_items_names( $item_name ) {
$item_name = 'mydesiredproductname';
return $item_name;
}
但我不知道如何在产品名称中添加递增数字。
有人知道怎么做吗?或者可以指出正确的方向吗?
多次调用woocommerce_order_item_name
过滤器钩子,
因此很难在函数本身中添加数字。
通过woocommerce_checkout_create_order
,我们首先为每个$item
添加数字meta_data
。然后通过get_meta
,我们在产品名称前面加上数字。
所以你得到:
function action_woocommerce_checkout_create_order( $order, $data ) {
// Start number
$number = 1;
// Loop through order items
foreach ( $order->get_items() as $item_key => $item ) {
// Update meta data for each item
$item->update_meta_data( '_product_number', $number );
// Number +1
$number = $number + 1;
}
}
add_action( 'woocommerce_checkout_create_order', 'action_woocommerce_checkout_create_order', 10, 2 );
function filter_woocommerce_order_item_name( $item_name, $item ) {
// Get meta
$product_number = $item->get_meta( '_product_number' );
// NOT empty
if ( ! empty ( $product_number ) ) {
$item_name = $product_number . '. ' . $item_name;
}
return $item_name;
}
add_filter( 'woocommerce_order_item_name', 'filter_woocommerce_order_item_name', 10, 2 );
注意: 添加 is_wc_endpoint_url
,仅将其应用于电子邮件通知。
function filter_woocommerce_order_item_name( $item_name, $item ) {
// Only for email notifications
if ( is_wc_endpoint_url() )
return $item_name;
// Get meta
$product_number = $item->get_meta( '_product_number' );
// NOT empty
if ( ! empty ( $product_number ) ) {
$item_name = $product_number . '. ' . $item_name;
}
return $item_name;
}
add_filter( 'woocommerce_order_item_name', 'filter_woocommerce_order_item_name', 10, 2 );