【问题标题】:How to change the WooCommerce order id by adding the vendor name as a suffix (Dokan plugin)如何通过添加供应商名称作为后缀来更改 WooCommerce 订单 ID(Dokan 插件)
【发布时间】:2022-01-27 15:16:20
【问题描述】:

我想在订单号中添加店铺名称。

例如,我的市场上有两个供应商:

  • Sepatu 店
  • 八竹店

如果客户同时从 Sepatu ShopBaju Shop 供应商处订购产品,则各自的订单号必须如下所示:

  • VK/4571-Sepatu 店
  • VK/4572-八州店

结构必须是:{prefix}/{order_id}-{vendor_name}

到目前为止我尝试过的代码是这样的,但它不起作用:

add_filter( 'woocommerce_order_number', 'change_woocommerce_order_number' );
function change_woocommerce_order_number( $order_id ) {
    $shop_name = dokan()->vendor->get( $author_id )->get_shop_name();
    $prefix = 'VK/';
    $suffix = $shop_name;
    $new_order_id = $prefix . $order_id . $suffix;
    return $new_order_id;
}

【问题讨论】:

    标签: php wordpress woocommerce dokan


    【解决方案1】:

    Dokan 插件以用户身份管理供应商,具有seller(供应商)用户角色。

    当客户下订单时,会创建一个“管理员” 订单,其中包括所有供应商的产品(包括运费等)以及与供应商一样多的其他子订单客户购买的产品。

    对于每个子订单,post meta_dokan_vendor_id也被存储,其值为vendor的用户id。

    此外,如果市场的前端还显示不属于任何供应商的产品,您可以添加额外的检查以验证该用户是否确实拥有 "seller"(供应商)用户角色。

    由于该插件将帖子元_dokan_vendor_id 与产品作者ID 一起存储,因此它不会检查seller 用户角色。

    然后,您可以像这样更改订单 ID:

    add_filter( 'woocommerce_order_number', 'change_woocommerce_order_number', 99, 2 );
    function change_woocommerce_order_number( $order_id ) {
    
        // Gets the vendor id from the order.
        $vendor_id = get_post_meta( $order_id, '_dokan_vendor_id', true );
        
        // For vendor orders only
        if ( $vendor_id && user_can( $vendor_id, 'seller' ) ) {
            $vendor      = get_user_by( 'id', $vendor_id );
            $vendor_name = $vendor->display_name;
            return "VK/$order_id-$vendor_name";
        }
    
        return $order_id;
    
    }
    

    代码已经过测试并且可以运行。将其添加到活动主题的 functions.php 中。

    注意

    显然,通过woocommerce_order_number 钩子修改的订单号仅在显示中。数据库上的订单 ID 始终是数字。所以如果你想得到这种结构的订单号(例如在导出订单时)你需要创建一个自定义函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 2020-10-28
      相关资源
      最近更新 更多