Верх страницы
Обложка к записи Как получить покупателя в WooCommerce по номеру телефона
Время для прочтения: 0 мин. 3 сек.

Как получить покупателя в 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 и выше. В более низких версиях функция продолжит возвращать объект покупателя, но без дополнительных методов.

Ссылки

Автор: Кобзарёв Михаил

Русский разработчик с 20-ти летним стажем. Работаю с PHP, ООП, JavaScript, Git, WordPress, Битрикс, Joomla, Drupal, OpenCart, DLE, Laravel, Moonshine, Symfony, SuiteCRM.

Оптимизирую сайты под Google Page Speed, настраиваю импорты для больших магазинов на WooCommerce + WP All Import. Пишу плагины на заказ. Все мои услуги.

Веду блог о разработке, дайджест в телеграмме и в ВК.

Вы всегда можете нанять меня.

Комментарии
Подписаться
Уведомить о
guest

2 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
Вопрос
Вопрос
7 месяцев назад

Здравствуйте, это можно как-то использовать чтобы в штатном Woocommerce когда создаёшь новый заказ искать клиентов по номеру, сейчас ищет либо по id либо по email

Предыдущая запись

Давайте дружить
в Telegram

Авторский блог вашего покорного слуги в Telegram про web, программирование, алгоритмы, инструменты разработчика, WordPress, Joomla, Opencart, Laravel, Moonshine, фильмы и сериалы