根据多个类别为 WooCommerce 订单号添加前缀

Posted

技术标签:

【中文标题】根据多个类别为 WooCommerce 订单号添加前缀【英文标题】:Adding prefix to WooCommerce order number based on multiple categories 【发布时间】:2021-04-14 09:07:54 【问题描述】:

根据我之前的问题,我正在使用Adding prefix to WooCommerce order number if order has items from a specific product category 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;


谁能帮忙?

【问题讨论】:

好的,感谢您的反馈。题目的概述我这里把代码展示一下,让大家更容易理解 【参考方案1】:

要将代码从Adding prefix to WooCommerce order number if order has items from a specific product category 扩展为多个类别的答案代码,您可以使用:

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,您可以添加任意数量的条件

【讨论】:

以上是关于根据多个类别为 WooCommerce 订单号添加前缀的主要内容,如果未能解决你的问题,请参考以下文章

根据运输类别和商品数量添加 Woocommerce 费用

在 WooCommerce 订单页面上列出单独购买的产品的类别和子类别

如何根据产品类别在 WooCommerce 下添加文本添加到购物车按钮

根据 WooCommerce 中的自定义字段值将文本添加到订单摘要

在Woocommerce中根据产品类别添加自定义结帐字段

WooCommerce 父订单前缀