Время для прочтения: 1 мин. 8 сек.

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

Ссылки

Пошерить
Запинить
Отправить
Вотсап

Смотрите также

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

Комментарии