В этом уроке я хочу показать вам магию встроенного в WooCommerce класса WC_Geolocation
, ведь по сути он не только определяет IP-адрес пользователя, но даже и страну, где этот пользователь находится.
Именно благодаря ему, а ещё фильтр-хуку woocommerce_product_is_visible
мы и попробуем создать парочку геозависимых товаров.
Например вот так:
add_filter( 'woocommerce_product_is_visible', 'true_product_if_country', 25, 2 ); function true_product_if_country( $visible, $product_id ){ $location = WC_Geolocation::geolocate_ip(); if ( 'IT' === $location[ 'country' ] && 1234 === $product_id ) { $visible = false; } return $visible; }
В коде выше мы:
woocommerce_is_purchasable
, он более хардкорный, чем woocommerce_product_is_visible
. Но, второй параметр у него не ID товара, а объект – тогда получаем ID при помощи $product->get_id()
.Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
Спасибо! Мне как раз что-то такое надо будет реализовать в будущем!
Замечательно. "Как сделать woocommerce еще тормознее? Использовать новый класс геолокации!
Ахаха, "сказал человек, создающий блоки на acf"
Ну а вообще PHP-сессии никто не отменял.