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

Ссылки

Источник: https://www.kobzarev.com/wordpress/get-woocommerce-customer-billing-phone/

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

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

Добавить комментарий

%d такие блоггеры, как: