Заказ клиента Woocommerce и детали оплаты заказа

у меня есть $order = new WCOrder( $orderid ); в woocommerce_payment_complete_order_status Фильтр. Я могу получить кучу вещей о заказе оттуда, но я хотел бы получить от $order к Телефон клиента и адрес электронной почты как показано на странице «Изменить порядок» интерфейса администратора. Я также хотел бы получить комиссия на перевод (например, сколько Stripe или PayPal взяли с меня за транзакцию), если она доступна. Как вы доберетесь от $ order до этих значений — я быстро теряю след Woocommerce документы. ? Вот мой код до сих пор:

  public function my_hook_function( $order_status, $order_id ) {
$order = new WC_Order( $order_id );
$num_items = count( $order->get_items() );

$ret = array();
$ret["billing_address"] = $order->get_formatted_billing_address();
$ret["shipping_address"] = $order->get_formatted_shipping_address();
$ret["cart_discount"] = $order->get_cart_discount();
$ret["cart_tax"] = $order->get_cart_tax();
$ret["order_notes"] = $order->get_customer_order_notes();

$ret["items"] = array();
if ( $num_items > 0 ) {
foreach( $order->get_items() as $item ) {
if ( 'line_item' == $item['type'] ) {
$item_data = array();
$item_data['name'] = $item['name'];
$item_data['quantity'] = $item['item_meta']['_qty'][0];
$item_data['product_id'] = $item['item_meta']['_product_id'][0];
$item_data['subtotal'] = $item['item_meta']['_line_subtotal'][0];
$ret["items"][] = $item_data;
}
}
}

// do stuff with $ret

return $order_status;
}

1

Решение

Следующий фрагмент кода появляется в шаблоне деталей заказа:

if ( $order->billing_email ) echo '<dt>' . __( 'Email:', 'woocommerce' ) . '</dt><dd>' . $order->billing_email . '</dd>';
if ( $order->billing_phone ) echo '<dt>' . __( 'Telephone:', 'woocommerce' ) . '</dt><dd>' . $order->billing_phone . '</dd>';

Эти свойства класса WC_Abstract_Order не очевидны, поскольку они скрыты за магическими методами __set и __get.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]