wpbones/geolocalizer

WP Bones 的地理服务提供者

1.0.0 2024-09-19 17:08 UTC

This package is auto-updated.

Last update: 2024-09-20 07:24:51 UTC


README

Latest Stable Version Latest Unstable Version Total Downloads License Monthly Downloads

Geo Localizer 为 WordPress/WP Bones 提供一组地理定位管理工具

要求

此包与使用 WP Bones 框架库 编写的 WordPress 插件兼容。

安装

您可以使用以下命令安装第三方包

php bones require wpbones/geolocalizer

我建议使用此命令而不是 composer require,因为这样做将自动重命名。

您可以使用 composer 安装此包

composer require wpbones/geolocalizer

您也可以在您的插件 composer.json 文件中添加 "wpbones/geolocalizer": "^1.0"

  "require": {
    "php": ">=7.4",
    "wpbones/wpbones": "~0.8",
    "wpbones/geolocalizer": "~1.0"
  },

并运行

composer install

或者,您可以从您的 WP Bones 插件中获取单个文件 src/resources/assets/js/actions-and-filters.js 并使用 gulp 编译它。您还可以获取预编译的压缩版本 src/public/js/actions-and-filters.min.js

迁移

database/migrations 中,您将找到用于国家的基本迁移数据库表。此外,在 database/seeders 中,您可以找到国家数据库表的数据。

无论如何,您只需将这些文件夹复制到您的插件 database/ 文件夹中。

地理服务

此版本使用 IPStack 服务来获取国家代码和其他数据。您必须在 IPStack 中创建一个帐户并获取您的 API 密钥。在您的插件中,您可以使用过滤器通过以下方式使用 API 密钥

add_filter('wpbones_geolocalizer_ipstack_api_key', function () {
    // get your api key rom your settings
    // for example, MyPlugin::$plugin->options->get('General/ipstack_api_key');
    return $your_api_key;
});

测试

为了检查您的 API 密钥是否有效,您可以使用以下命令

$info = MyPlugin\GeoLocalizer\GeoLocalizerProvider::geoIP();

您应该收到从您的 IP 地址开始的所有信息。否则,您将从 IPStack 服务收到错误。

短代码

Geolocalizer 提供了短代码方法。您可以在您的短代码提供者类中定义自己的短代码

use WPMyPlugin\WPBones\Foundation\WordPressShortcodesServiceProvider as ServiceProvider;
use WPMyPlugin\GeoLocalizer\GeoLocalizerProvider;

class WPMyPluginShortcode extends ServiceProvider
{

  /**
   * List of registred shortcodes. {shortcode}/method
   *
   * @var array
   */
  protected $shortcodes = [
    'my_shortocde_geo' => 'my_shortocde_geo',
  ];


  public function my_shortocde_geo( $atts = [], $content = null )
  {
    return GeoLocalizerProvider::shortcode( $atts, $content );
  }

然后您可以使用

[my_shortocde_geo city="Rome"]
  Only for Rome
[/my_shortocde_geo]
[my_shortocde_geo city="rome"]
  Only for Rome
[/my_shortocde_geo]
[my_shortocde_geo city="rome,london"]
  Only for Rome and Landon
[/my_shortocde_geo]
[my_shortocde_geo region_name="lazio"]
  Only for region (Italy) Lazio
[/my_shortocde_geo]
[my_shortocde_geo country_code="IT"]
  Italian only
[/my_shortocde_geo]
[my_shortocde_geo country_name="italy"]
  Italian only
[/my_shortocde_geo]
[my_shortocde_geo zip_code="00137"]
  Wow
[/my_shortocde_geo]
[my_shortocde_geo ip="80.182.82.82"]
  Only for me
[/my_shortocde_geo]
[my_shortocde_geo time_zone="europe\rome"]
  Rome/Berlin time zone
[/my_shortocde_geo]