دریافت اطلاعات موقعیت مکانی کاربران سایت با Geolocation IP Detection
هر کاربری که از سایت شما بازدید میکند، برای خودش دارای یک IP است. IP یک نشانی اینترنتی برای هر رایانهای است که به شبکه متصل شده است و بدون آن نشانی قادر به استفاده از خدمات شبکه نیست. از روی IP ها اطلاعات زیادی از قبیل موقعیت مکانی هر رایانه را میتوان مشخص کرد. از طریق همین IP خیلی راحت میتوان هویت هر شخصی روی شبکه یا اینترنت را هم فهمید. بر همین اساس، مدیران سایتها از روی همین IP بازدید کنندگان سایت است، که میتوانند اطلاعات زیادی راجع به آنها کسب کنند. مثلاً اینکه از کدام کشور هستند، برای بار چندم هست که وارد سایت میشوند و چطور بین صفحات مختلف جابجا میشوند. خلاصه اینکه این شناسهٔ واحد که ما به آن IP میگوییم برای جمعآوری آمار و اطلاعات بازدید کنندگان سایت خیلی به درد ما میخورد.
به عنوان مدیر سایت، ولی که یک افزونهٔ آمارگیر روی سایت خود نصب میکنید، این افزونه از روی همین IP کاربران شروع به ردگیری آنها میکند. از روی IP حتی میتواند موقعیت مکانی یا جغرافیایی کاربر را هم میتوان پیدا کرد. اگر به طور خاص دنبال افزونهای بگردید که کارش فقط تمرکز کردن روی IP و اطلاعات جغرافیایی آنها است، بهترین گزینه افزونهٔ Geolocation IP Detection است.
چطور باید با افزونه Geolocation IP Detection کار کرد؟
این افزونه به این صورت کار میکند که، به تنهایی نمیتوان از آن استفاده کرد. با نصب و فعال سازی آن، به واسطهٔ توابعی که Geolocation IP Detection در اختیار ما به عنوان برنامه نویس قرار میدهد، اجازه میدهد تا بتوانیم از روی آی پی کاربران موقعیت مکانی آنها را پیدا کنیم. یافتن موقعیت مکانی از روی IP هم توسط یکی از پایگاههای داده یا data sources هایی که به صورت آنلاین وجود دارد صورت میگیرند. برخی از آنها رایگان است و برخی دیگر که کیفیت بهتری دارند پولی. این مورد را هم از طریق صفحهٔ تنظیمات افزونه میتوان پی گرفت که در ادامهٔ این آموزش خدمت شما عرض خواهم کرد.
اما حالا با فرض اینکه افزونه را نصب و فعال کردیم، همانطور که گفتم توابعی از پیش تعریف شده وجود دارند که مخصوص همین افزونه است و در صفحهٔ افزونه در سایت وردپرس به طور کامل تشریح شده.
geoip_detect2_get_info_from_ip($ip, $locales = array('en'), $options = array())
: Lookup Geo-Information of the specified IPgeoip_detect2_get_info_from_current_ip($locales = array('en'), $options = array())
: Lookup Geo-Information of the current website usergeoip_detect2_get_current_source_description(...)
: Return a human-readable label of the currently chosen source.geoip_detect2_get_external_ip_adress()
: Fetch the internet adress of the webservergeoip_detect2_get_client_ip()
: Get client IP (even if it is behind a reverse proxy)
حالا ما با هم چند تا از این توابع را با دقت بیشتری بررسی میکنیم. تابع زیر را ببینید:
geoip_detect2_get_info_from_ip($ip, $locales = array('en'), $options = array())
این یکی از مهمترین تابعهای این افزونه است که نامش geoip_detect2_get_info_from_ip است و سه تا پارامتر میگیرد. اولین پارامتر که ip است و باید آی پی کسی که قصد دریافت مشخصات جغرافیایی آن را دارید را وارد کنید و به صورت رشته است. دومین پارامتر locales هست که نوعش آرایه است و لیست زبانهای محلی را برای برگشت نتیجه دریافت میکند. سومین پارامتر هم options هم که به صورت آرایه، تنظیمات دیگری از قبیل skipCache و source و timeout و connectTimeout را دریافت میکند. در صفحهٔ مستندات این افزونه در سایت Github به طور کامل راجع به هر تابع و پارامترهای آن و آن چیزی که بر میگرداند توضیح داده شده است.
تابع بعدی geoip_detect2_get_info_from_current_ip است که بدون اینکه آی پی ای به آن داده شود، خود آی پی بازدید کننده یا فرد را میگیرند و موقعیت جغرافیایی را بر میگرداند. نحوهٔ استفاده و پارامترهای آن بدین صورت است:
geoip_detect2_get_info_from_current_ip($locales = array('en'), $options = array())
همانطور که متوجه شدید، برای استفاده از یک چنین افزونهای، حتماً باید برنامه نویسی PHP و وردپرس را یاد داشته باشید. پس این افزونه به درد کسانی میخورد که میخواهند از قابلیتهایی که در ادامه میآید روی سایت خودشان استفاده کند.
- انتخاب خودکار واحد پولی، بر اساس موقعیت مکانی
- انتخاب خودکار کشور مقصد، بر اساس موقعیت مکانی خریدار روی فروشگاه وردپرس
- نمایش نزدیکترین فروشگاهها یا شعبهها به بازدید کنندگان سایت
- نمایش یا عدم نمایش محتوای خاص از روی سایت بر اساس موقعیت مکانی بازدید کنندگان
شما حتماً نیاز است حداقل PHP 7.2.5 را روی سرور خود فعال داشته باشید. اگر هم از ووکامرس استفاده میکنید، WooCommerce 3.9.0 حداقل نسخهای است که از این افزونه پشتیبانی میشود.
حالا برویم به پیشخوان وردپرس و ببینیم که این افزونه چه صفحاتی را اضافه میکند.
تنظیمات افزونه Geolocation IP Detection
پس از فعال سازی افزونه، به گروه صفحات تنظیمات، صفحهٔ Geolocation IP Detection افزوده خواهد شد که در اصل تنظیمات اصلی اینجاست. علاوه بر آن یک صفحه هم در گروه صفحات ابزارها با عنوان Geolocation Lookup افزوده خواهد شد که برای جستجوی IP به صورت دستی و تست افزونه مورد استفاده قرار میگیرند.
اما قبل از اینکه وارد ریز تنظیمات افزونه شویم، زمانی که افزونه را فعال میکنید، یک جعبه در بالای صفحهٔ پیشخوان به صورت تصویر زیر برای شما نمایان خواهد شد. این جعبه به شما هشدار میدهد که همین الان افزونه در حال استفاده از چه منبعی برای دریافت موقعیت مکانی است. الان در حال استفاده از hostip.info است که سرویسی رایگان است. اگر نیازی به تغییر آن نمیبینید، میتوانید روی Keep using hostip.info کلیک کنید. یا روی Options کلیک کنید تا به صفحهٔ تنظیمات آن بروید.
حال به صفحهٔ Geolocation IP Detection از گروه صفحات تنظیمات میرویم. اولین گزینه Choose data source است که باید مشخص کنید از کدام منبع برای دریافت اطلاعات IP ها استفاده شود. برخی از گزینهها رایگان هستند و برخی دیگر باید ثبت نام کنید و برخی دیگر هم پولی. در رابطه با هر مورد یک لینک توضیحات وجود دارد که میبایستی روی آن کلیک کنید تا بتوانید اطلاعات بیشتری کسب کنید.
در قسمت بعدی این صفحه یعنی General Options، تنظیمات کلی افزونه را خواهید دید. مثلاً گزینه اول Add a country-specific CSS class to the <body>-Tag on every page را اگر فعال کنید، به صورت خودکار یک کلاس CSS به صورت خودکار مرتبط با کشور فرد بازدید کننده به برچسب body اضافه خواهد شد که شما با کدهای CSS ای که از قبل نوشتید، خیلی راحت میتوانید صفحات سایت را برای هر کاربر از موقعیتهای مکانی مختلف سفارشی سازی کنید. در نهایت هم فراموش نکنید که روی دکمهٔ Save در پایین صفحه کلیک کنید.
پس در معرفی و آموزش افزونه Geolocation IP Detection متوجه شدیم که به عنوان توسعه دهندهٔ افزونه یا قالب، میتوانیم از افزونهٔ Geolocation IP Detection برای دریافت اطلاعات موقعیت مکانی بازدید کنندگان سایت مان، بر اساس IP آنها استفاده کنیم. خیلی از خدمات هستند که به تناسب موقعیت مکانی بازدید کنندگان سایت میتوانند تغییر کنند که این خود سبب میگردد تا بتوانیم تجربهٔ کاربری خوبی را برای بازدید کنندگان سایتمان فراهم کنیم.