Если у вас из информации о покупателе есть только его телефоный номер, то этого достаточно, чтобы получить полную информацию о пользователе.
Так как из коробки данного функционала у WooCommerce нет — напишем простую функцию-хелпер.
/**
* Получение объекта покупателя
* по телефону
*
* @param string $phone телефон
*
* @return WC_Customer|bool
*/
function mihdan_get_customer_by_billing_phone( $phone ) {
global $wpdb;
$phone = trim( $phone );
$customer_id = $wpdb->get_var( $wpdb->prepare( "
SELECT user_id
FROM $wpdb->usermeta
WHERE meta_key = 'billing_phone'
AND meta_value = '%s'
", $email ) );
if ( ! $customer_id ) {
return false;
}
$customer = new WC_Customer( $customer_id );
if ( ! $customer ) {
return false;
}
return $customer;
}
Использовать эту функцию достаточно просто:
$customer = mihdan_get_customer_by_billing_phone( '89101510855' );
Функция вернёт либо false, если покупатель не найден, либо объект WC_Customer object.
Получив однажды объект WC_Customer, можно использовать его внутренние методы:
$billing_email = $customer->get_billing_email(); $billing_first_name = $customer->get_billing_first_name(); $id = $customer->get_id();
Данные методы работают в WooCommerce 3.0.0 и выше. В более низких версиях функция продолжит возвращать объект покупателя, но без дополнительных методов.
Ссылки
Источник: https://www.kobzarev.com/wordpress/get-woocommerce-customer-billing-phone/