metaline/wp-api-client

基于 Guzzle 的 WordPress REST API 的 PHP 客户端。

dev-main 2024-03-28 15:12 UTC

This package is auto-updated.

Last update: 2024-09-25 08:10:30 UTC


README

Test library

基于 Guzzle 的 WordPress REST API 的 PHP 客户端。

安装

推荐通过 Composer 安装此库。

composer require metaline/wp-api-client

文档

创建客户端

您可以通过 ClientFactory 创建客户端实例。目前,仅支持 WooCommerce 凭据。

use MetaLine\WordPressAPIClient\ClientFactory;

$factory = new ClientFactory();
$client = $factory->createFromWooCommerceCredentials(
    $customerKey,
    $customerSecret,
    $apiUrl
);

如果您需要通过 WooCommerce API 凭据访问 WordPress REST API,您需要在您的 WordPress 安装中添加此钩子

add_filter('woocommerce_rest_is_request_to_rest_api', function ($enabled) {
	if (!$enabled) {
        $rest_prefix = trailingslashit(rest_get_url_prefix());
        $request_uri = esc_url_raw(wp_unslash($_SERVER['REQUEST_URI']));
        $enabled = false !== strpos($request_uri, $rest_prefix . 'wp/');
    }

    return $enabled;
});

从 REST API 获取数据

通过客户端实例,您可以从 WordPress REST API 获取数据。例如

$customers = $client->request('GET', 'wc/v3/customers');

请参阅 WordPressWooCommerce REST API 文档,了解所有可用方法。

辅助方法

客户端有五个辅助方法,分别对应 REST 动词:get()post()put()patch()delete()

  • $uri 是调用端点;
  • $query 是要放入查询字符串的变量数组;
  • $params 是要放入请求体的数据数组;

上传文件

特殊案例是 媒体 端点,允许我们上传文件

$data = [
	'file' => new SplFileObject('/path/to/file.zip'),
];

$client->post('wp/v2/media', $data);

许可证

本项目根据 MIT 许可证(MIT)提供。有关更多信息,请参阅 许可证文件