【问题标题】:Add product name to order number in WooCommerce在 WooCommerce 中将产品名称添加到订单号
【发布时间】:2017-11-08 02:12:17
【问题描述】:

我已经寻找一种解决方案,可以在我的订单号前加上订购的产品名称或首字母。

我尝试在functions.php 文件中使用函数在我的订单号前加上woocommerce_order_number 过滤器,但我无法在订单数组中获取产品名称(它是受保护的)。

有没有办法使用循环在我的函数上返回这个?

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    你可以这样做:

    function filter_woocommerce_order_number( $this_get_id, $instance ) { 
        $order = new WC_Order( $this_get_id );
        $items = $order->get_items();
        foreach ( $items as $item ) {
            $product_name = preg_replace('/\s+/', '_', $item['name']);;
            break;
        }
        $new_id = $product_name.'_'.$this_get_id;
    
        return $new_id; 
    }; 
    
    add_filter( 'woocommerce_order_number', 'filter_woocommerce_order_number', 10, 2 ); 
    

    【讨论】:

    • 感谢您的帮助,我已经修改了您的函数以获取我的产品的最后一个属性(颜色),使其显示订单号,如“red_1893”或“black_234”,以便于运输。 foreach ( $items as $item ) { $kua = $item->get_meta_data(); foreach ($kua as $key => $value) { foreach ($value as $key2 => $value2) { $finalvalue = $value2; } } } $new_id = $finalvalue.'_'.$this_get_id;
    猜你喜欢
    • 2017-03-11
    • 2015-08-14
    • 2018-03-03
    • 1970-01-01
    • 2019-03-31
    • 2013-04-20
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    相关资源
    最近更新 更多