ВОПРОС
Привет всем разработчикам. Сейчас я очень плотно работаю с расширением WooCommerce. Мне очень сильно нужна ваша помощь. У меня есть одна функция, которая должна выдать всю информацию о пользователе, который сделал заказ:
$order = new WC_Order($order_id);
$customer = new WC_Customer($order_id);
В общем, сам вопрос – как можно из всего этого получить необходимые сведения о клиенте?
Я много раз перечитывал документации, смотрел информацию в интернете и пытался сделать это самыми разными способами. Вроде бы получалось что-то вывести, но присутствовали только некоторые детали. Например, выводился только город, а остальные значения были пустыми. К слову, с базой данных все в порядке – данные клиента туда спокойно попадают.
ОТВЕТ
До этого я тоже сталкивался с такой проблемой. Я также перепробовал огромное количество различных способов, но все еще не получал необходимых данных. В целом, я смог найти одно достаточно интересное решение:
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;
}
Главная особенность такого метода заключается в том, что он работает всегда. Независимо от того, вошел ты в систему как администратор или нет, этот код все равно сработает.