基于多个类别向 WooCommerce 订单号添加前缀
Adding prefix to WooCommerce order number based on multiple categories
根据我之前的问题,我正在使用 anwser 代码。
现在我想把这个功能扩展到更多的类别,但是我好像找不到。
现在我想为其他类别添加更多 if 语句。我在想这样的事情:
if ('category of first product in appearing in cart' === 'category id / category name') {
$prefix = 'AB-';
$new_order_id = $prefix . $order_id;
return $new_order_id;
}
elseif ('category of first product in appearing in cart' === 'category id / category name') {
$prefix = 'CD-';
$new_order_id = $prefix . $order_id;
return $new_order_id;
}
elseif ('category of first product in appearing in cart' === 'category id / category name') {
$prefix = 'EF-';
$new_order_id = $prefix . $order_id;
return $new_order_id;
}
有人能帮忙吗?
要将 答案代码扩展为多个类别,您可以使用:
function filter_woocommerce_order_number( $order_number, $order ) {
// Loop through order items
foreach ( $order->get_items() as $item ) {
// Product ID
$product_id = $item->get_variation_id() > 0 ? $item->get_variation_id() : $item->get_product_id();
// Has term (product category)
if ( has_term( array( 'categorie-1', 'categorie-2', 15, 16 ), 'product_cat', $product_id ) ) {
return 'AB-' . $order_number;
} elseif ( has_term( array( 'categorie-3', 'categorie-4' ), 'product_cat', $product_id ) ) {
return 'CD-' . $order_number;
} elseif ( has_term( array( 'categorie-5', 'categorie-6' ), 'product_cat', $product_id ) ) {
return 'EF-' . $order_number;
}
}
return $order_number;
}
add_filter( 'woocommerce_order_number', 'filter_woocommerce_order_number', 10, 2 );
使用 if/elseif/else
您可以根据需要添加任意数量的条件
根据我之前的问题,我正在使用
现在我想把这个功能扩展到更多的类别,但是我好像找不到。
现在我想为其他类别添加更多 if 语句。我在想这样的事情:
if ('category of first product in appearing in cart' === 'category id / category name') {
$prefix = 'AB-';
$new_order_id = $prefix . $order_id;
return $new_order_id;
}
elseif ('category of first product in appearing in cart' === 'category id / category name') {
$prefix = 'CD-';
$new_order_id = $prefix . $order_id;
return $new_order_id;
}
elseif ('category of first product in appearing in cart' === 'category id / category name') {
$prefix = 'EF-';
$new_order_id = $prefix . $order_id;
return $new_order_id;
}
有人能帮忙吗?
要将
function filter_woocommerce_order_number( $order_number, $order ) {
// Loop through order items
foreach ( $order->get_items() as $item ) {
// Product ID
$product_id = $item->get_variation_id() > 0 ? $item->get_variation_id() : $item->get_product_id();
// Has term (product category)
if ( has_term( array( 'categorie-1', 'categorie-2', 15, 16 ), 'product_cat', $product_id ) ) {
return 'AB-' . $order_number;
} elseif ( has_term( array( 'categorie-3', 'categorie-4' ), 'product_cat', $product_id ) ) {
return 'CD-' . $order_number;
} elseif ( has_term( array( 'categorie-5', 'categorie-6' ), 'product_cat', $product_id ) ) {
return 'EF-' . $order_number;
}
}
return $order_number;
}
add_filter( 'woocommerce_order_number', 'filter_woocommerce_order_number', 10, 2 );
使用 if/elseif/else
您可以根据需要添加任意数量的条件