Saltar al contenido

¿Cómo puedo obtener los detalles del cliente de un pedido en WooCommerce?

Luego de observar en varios repositorios y sitios webs al terminar hallamos la respuesta que te mostramos más adelante.

Solución:

Si desea los detalles del cliente que el cliente ingresó al realizar el pedido, puede usar el siguiente código:

$order = new WC_Order($order_id);
$billing_address = $order->get_billing_address();
$billing_address_html = $order->get_formatted_billing_address();

// For printing or displaying on the web page
$shipping_address = $order->get_shipping_address();
$shipping_address_html = $order->get_formatted_shipping_address(); // For printing or displaying on web page

Aparte de esto, $customer = new WC_Customer( $order_id ); no puedo obtener los detalles de su cliente.

Ante todo, new WC_Customer() no acepta argumentos.

En segundo lugar, WC_Customer obtendrá los detalles del cliente solo cuando el usuario haya iniciado sesión y no esté en el lado del administrador. En su lugar, debe estar en el front-end del sitio web, como la página ‘Mi cuenta’, ‘Comprar’, ‘Carrito’ o ‘Pagar’.

Habiendo intentado $customer = new WC_Customer(); y global $woocommerce; $customer = $woocommerce->customer; Seguía recibiendo datos de dirección vacíos incluso cuando inicié sesión como usuario no administrador.

Mi solución fue la siguiente:

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;

…y este código funciona independientemente de si ha iniciado sesión como administrador o no.

¿Quizás mire la clase de orden de WooCommerce? Por ejemplo, para obtener la dirección de correo electrónico del cliente:

$order = new WC_Order($order_id);
echo $order->get_billing_email();

Solo un pensamiento…

Reseñas y calificaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *