Ortsbasierter Inhalt

Ich baue eine Website mit Seiten, die einen Kontakt-Pod haben, der 11 verschiedene Dropdown-Felder in wp-admin enthält, über erweiterte benutzerdefinierte Felder.

Basierend auf der IP des Benutzers möchte ich einen dieser 10 Kontakte anzeigen (der elfte ist ein Standard, wenn der Standort nicht angegeben ist oder er nicht mit einer der “Regionen” des Kunden übereinstimmt).

Die 10 Regionen basieren alle auf Teilen der USA, passen aber nicht ständig zu den Staaten (zum Beispiel ist Kalifornien in zwei Regionen aufgeteilt, während eine andere Region Virginia, South Carolina und North Carolina umfassen kann). Jeder außerhalb dieser Regionen erhält einen Standard / internationalen Kontakt / Nachricht.

Es fällt mir schwer, meinen Kopf darum zu wickeln, wie das geht. Ich habe die erweiterten benutzerdefinierten Felder in wp-Admin-Setup und bin mit der Ausgabe von Elementen aus diesem Plugin vertraut, aber ich habe Probleme mit:

  1. Was als database zu verwenden, um IPs zu überprüfen. Gibt es etwas von der Stange, um dies zu tun?
  2. Wie erstelle ich meine “Buckets” von IPs für jede Region.
  3. Wie man die Logik einrichtet, um zu wählen, welche Region contact / text ausgeben soll.

Solutions Collecting From Web of "Ortsbasierter Inhalt"

Ich würde vorschlagen, einen Geolocation-Dienst zu überprüfen, um den Standort der Benutzer-IP-Adresse wie freegeoip.net nachzuschlagen . Um dies zu tun, müssen Sie eine Anfrage über PHP oder Javascript machen.

Um die IP-Adresse des Besuchers zu erhalten, können Sie einlesen

< ?php echo $_SERVER['REMOTE_ADDR']; ?> 

dann schicke das an die entspannte api bei freegeoip.net. Free Geoip wird Ihnen viele tägliche Lookups geben und Ihnen als Beispiel aus der json api folgende Informationen geben:

 { "ip": "104.37.65.178", "country_code": "CA", "country_name": "Canada", "region_code": "ON", "region_name": "Ontario", "city": "Burlington", "zip_code": "L7M", "time_zone": "America/Toronto", "latitude": 43.4191, "longitude": -79.8544, "metro_code": 0 

}

Wie Sie sehen, können Sie den Breiten- und Längengrad des geschätzten Standorts sowie die Region, das Land, die Stadt und die geschätzten Postleitzahlen ermitteln. Sobald Sie diese Informationen haben, müssen Sie überprüfen, ob die Zustände Ihren definierten Regionen entsprechen, ohne die Verwendung von “Bucket-Listen” von IP-Bereichen zu erfordern.

Ich hoffe das hilft.