Как получить покупателя в WooCommerce по номеру телефона
Если у вас из информации о покупателе есть только его телефоный номер, то этого достаточно, чтобы получить полную информацию о пользователе.
Так как из коробки данного функционала у 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 и выше. В более низких версиях функция продолжит возвращать объект покупателя, но без дополнительных методов.
Здравствуйте, это можно как-то использовать чтобы в штатном Woocommerce когда создаёшь новый заказ искать клиентов по номеру, сейчас ищет либо по id либо по email
Конечно можно