How can I get customer details from an order in WooCommerce?

前端 未结 15 1548
北海茫月
北海茫月 2020-12-01 00:10

I have a function that does this:

$order = new WC_Order($order_id);
$customer = new WC_Customer($order_id);

How can I get customer details fr

15条回答
  •  醉酒成梦
    2020-12-01 00:53

    Having tried $customer = new WC_Customer(); and global $woocommerce; $customer = $woocommerce->customer; I was still getting empty address data even when I logged in as a non-admin user.

    My solution was as follows:

    function mwe_get_formatted_shipping_name_and_address($user_id) {
    
        $address = '';
        $address .= get_user_meta( $user_id, 'shipping_first_name', true );
        $address .= ' ';
        $address .= get_user_meta( $user_id, 'shipping_last_name', true );
        $address .= "\n";
        $address .= get_user_meta( $user_id, 'shipping_company', true );
        $address .= "\n";
        $address .= get_user_meta( $user_id, 'shipping_address_1', true );
        $address .= "\n";
        $address .= get_user_meta( $user_id, 'shipping_address_2', true );
        $address .= "\n";
        $address .= get_user_meta( $user_id, 'shipping_city', true );
        $address .= "\n";
        $address .= get_user_meta( $user_id, 'shipping_state', true );
        $address .= "\n";
        $address .= get_user_meta( $user_id, 'shipping_postcode', true );
        $address .= "\n";
        $address .= get_user_meta( $user_id, 'shipping_country', true );
    
        return $address;
    }
    

    ...and this code works regardless of whether you are logged in as admin or not.

提交回复
热议问题