【问题标题】:How to get vendor details from order inside woocommerce hooks - Dokan如何从 woocommerce 挂钩中的订单中获取供应商详细信息 - Dokan
【发布时间】:2020-08-25 12:34:11
【问题描述】:

如何从 woocommerce 挂钩中的订单中获取供应商信息/详细信息。到目前为止,我已经能够从订单中获得标准的 woocommerce 字段,如下所示:

add_action('woocommerce_order_status_completed', 'wc_send_complete_notif');
function wc_send_complete_notif( $order_id ) {
    $order = wc_get_order( $order_id );
    $phone = $order->billing_phone;
}

现在我想做的是从该订单中获取Vendor NameVendor Phone Number 并进行一些后期处理。

【问题讨论】:

  • 我也有同样的疑问,你能做到吗?
  • 你在用Dokan吗?
  • 是的,我找到了这个问题的解决方案我已经添加了答案!

标签: woocommerce hook-woocommerce dokan


【解决方案1】:

Dokan 有一个辅助函数可以通过订单获取卖家 ID。以下是从订单中获取供应商用户 ID 的方法:

$seller = dokan_get_seller_id_by_order( $order_id );

现在,如果您正在处理子订单:

        $sellers = dokan_get_seller_id_by_order( $order_id );

        // check has sub order 
        if ( $order->get_meta('has_sub_order') ) {
            foreach ($sellers as $seller) {
                $seller_info      = get_userdata( $seller );
                $seller_email     = $seller_info->user_email;
            }
        } else {
            $seller_info      = get_userdata( $sellers );
            $seller_email     = $seller_info->user_email;
        }

它已经过测试并与最新的 Dokan 版本 3.x 一起使用

【讨论】:

  • 如果Order有子订单,这个方法(dokan_get_seller_id_by_order)会返回0
【解决方案2】:
//If there is a suborder, the relevant method returns 0
if(!dokan_get_seller_id_by_order( $order_id )):
    //get seller id with sub_orders
    $sub_orders = get_children( array( 'post_parent' => $order_id, 'post_type' => 'shop_order' ) );
    foreach($sub_orders as $sub_order):
        $seller_id[] = dokan_get_seller_id_by_order( $sub_order->ID );
    endforeach;
else:
    $seller_id =  dokan_get_seller_id_by_order( $order_id );
endif;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-03
    • 2017-01-17
    • 2014-05-15
    • 1970-01-01
    • 2017-09-17
    • 2019-02-28
    • 1970-01-01
    • 2019-08-20
    相关资源
    最近更新 更多