Obtener información de pedidos desde el objeto $order en Woocommerce

Algunas veces necesitamos obtener información de pedidos desde el objeto $order, y WooCommerce nos da muchos métodos disponibles para este propósito. Aquí explicaremos cada uno de estos métodos y su uso.

 

Cómo instanciar un objeto $order

Primero, necesitas instanciar la clase de pedidos de WooCommerce

<?php
// Sí tienes el ID del pedido
$order = wc_get_order( $order_id );

// Si tienes la llave del pedido
$order = wc_get_order_id_by_order_key( $order_key );

 

Métodos con el objeto $order

Ahora que tienes el objecto $order, puedes llamar muchos métodos. Aquí una descripción de cada método disponible.

<?php

// Obtener el ID y la llave del pedido
$order->get_id();
$order->get_order_key();

// Obtener el estado del pedido
$order->get_status();

// Obtener los impuestos
$order->get_taxes();
$order->get_cart_tax();
$order->get_fees();

// Obtener el código de moneda
$order->get_currency();

// Obtener los descuentos disponibles
$order->get_discount_tax();
$order->get_discount_to_display();
$order->get_discount_total();

// Obtener los impuestos del envío
$order->get_shipping_tax();
$order->get_shipping_total();

// Obtener los totales
$order->get_subtotal();
$order->get_subtotal_to_display();
$order->get_tax_location();
$order->get_tax_totals();
$order->get_formatted_line_subtotal();
$order->get_formatted_order_total();
$order->get_total();
$order->get_total_discount();
$order->get_total_tax();

// Obtener la información de reembolso
$order->get_total_refunded();
$order->get_total_tax_refunded();
$order->get_total_shipping_refunded();
$order->get_item_count_refunded();
$order->get_total_qty_refunded();
$order->get_qty_refunded_for_item();
$order->get_total_refunded_for_item();
$order->get_tax_refunded_for_item();
$order->get_total_tax_refunded_by_rate_id();
$order->get_remaining_refund_amount();

// Obtener los productos del pedido
foreach ( $order->get_items() as $item_id => $item ) {
    
    // Obtener el ID del producto
    $product_id = $item->get_product_id();

    // Obtener el ID de la variación
    $variation_id = $item->get_variation_id();

    // Obtener la clase de productos de WC
    $product = $item->get_product();

    // Obtener el nombre del producto
    $name = $item->get_name();

    // Obtener la cantidad del producto
    $quantity = $item->get_quantity();

    // Obtener el subtotal del producto
    $subtotal = $item->get_subtotal();

    // Obtener el total del producto
    $total = $item->get_total();

    // Obtener los impuestos del producto
    $tax = $item->get_subtotal_tax();
    $taxclass = $item->get_tax_class();
    $taxstat = $item->get_tax_status();

    // Obtener los meta valores del producto
    $allmeta = $item->get_meta_data();
    
    // Obtener el valor de un meta llamado _whatever
    $somemeta = $item->get_meta( '_whatever', true );
    
    // Obtener el tipo de item ( products | shipping | coupon )
    $type = $item->get_type();
}

// Obtener información de los items del producto
$order->get_items_key();
$order->get_items_tax_classes();
$order->get_item_count();
$order->get_item_total();
$order->get_downloadable_items();

// Obtener los totales en línea del pedido
$order->get_line_subtotal();
$order->get_line_tax();
$order->get_line_total();

// Obtener los métodos de envío del pedido
$order->get_shipping_method();
$order->get_shipping_methods();
$order->get_shipping_to_display();

// Obtener las fechas del pedido
$order->get_date_created();
$order->get_date_modified();
$order->get_date_completed();
$order->get_date_paid();

// Obtener la información del comprador
$order->get_customer_id();
$order->get_user_id();
$order->get_user();
$order->get_customer_ip_address();
$order->get_customer_user_agent();
$order->get_created_via();
$order->get_customer_note();
$order->get_address_prop();

// Obtener información de facturación
$order->get_billing_first_name();
$order->get_billing_last_name();
$order->get_billing_company();
$order->get_billing_address_1();
$order->get_billing_address_2();
$order->get_billing_city();
$order->get_billing_state();
$order->get_billing_postcode();
$order->get_billing_country();
$order->get_billing_email();
$order->get_billing_phone();
$order->get_formatted_billing_full_name();
$order->get_formatted_billing_address();

// Obtener información de envío
$order->get_shipping_first_name();
$order->get_shipping_last_name();
$order->get_shipping_company();
$order->get_shipping_address_1();
$order->get_shipping_address_2();
$order->get_shipping_city();
$order->get_shipping_state();
$order->get_shipping_postcode();
$order->get_shipping_country();
$order->get_address();
$order->get_shipping_address_map_url();
$order->get_formatted_shipping_full_name();
$order->get_formatted_shipping_address();

// Obtener pasarela de pago
$order->get_payment_method();
$order->get_payment_method_title();
$order->get_transaction_id();

// Obtener URLs del pedido
$order->get_checkout_payment_url();
$order->get_checkout_order_received_url();
$order->get_cancel_order_url();
$order->get_cancel_order_url_raw();
$order->get_cancel_endpoint();
$order->get_view_order_url();
$order->get_edit_order_url();

 

Cualquier pregunta en los comentarios.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Back to Top