从 WooCommerce 订单中获取 Dokan 卖家地址

问题描述 投票:0回答:1

如何从 WooCommerce 订单获取 Dokan 供应商的仓库地址?

长版:

我正在开发一个用于自动发货预订的 WordPress/WooCommerce 插件,我需要提货地址,问题是,这是一个使用 Dokan 插件的多供应商 WooCommerce 设置,所以我只是想了解获取提货地址的方法WooCommerce 订单中的供应商仓库地址。

我尝试了 WooCommerce 文档,看看他们是否有任何

seller
相关的帮助程序,我检查了 WooCommerce 提供的各种内置类,看看是否有任何方法可以获取卖家详细信息。

我尝试搜索 Dokan 文档,但他们没有任何具体文档可以帮助我。

php wordpress woocommerce orders dokan
1个回答
0
投票

使用 Dokan 插件,实际上没有供应商仓库地址。

您可以通过订单项从定义的 WC_Order 对象

$order
获取供应商详细信息:

// Loop through order "line items"
foreach ( $order->get_items() as $item ) {
    $author_id  = get_post_field( 'post_author', $item->get_product_id() );
    $vendor     = dokan()->vendor->get($author_id);

    $shop_name  = $vendor->get_shop_name();  // <== Shop name
    $first_name = $vendor->get_first_name(); // <== First name
    $last_name  = $vendor->get_first_name(); // <== Last name
    $address    = $vendor->get_address();    // <== Address
    $location   = $vendor->get_location();   // <== Location
    $phone      = $vendor->get_phone();      // <== Phone 
    $email      = $vendor->get_email();      // <== Email 
}

供应商可以定义仓库地址的唯一情况是启用货到付款运输选项时,可以选择在“描述”字段中定义仓库地址。请参阅此处的文档

此仓库地址应存储在 Dokan 专有表的数据库中。

但是在 WooCommerce 中,货到付款运输选项中没有描述字段。

此仓库地址可以在订单“运送”商品中从定义的 WC_Order 对象中获得(没有任何保证)

$order
:

// Loop through order "line items"
foreach ( $order->get_items('shipping') as $item ) {
    // raw output shipping data
    print_r($item->get_data());

    // raw output shipping meta data
    print_r($item->get_meta_data());
}

希望对你有帮助。

相关:

© www.soinside.com 2019 - 2024. All rights reserved.