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.