pixelpeter/laravel5-woocommerce-api-client

Laravel 5 对 Woocommerce REST API 的封装

v3.0.1 2017-12-25 16:11 UTC

README

Latest Version on Packagist Software License Travis Build Scrutinizer Quality Scrutinizer Build SensioLabsInsight Total Downloads Coverage Status

这是一个简单的 Laravel 5 封装,用于 Automattic 的官方 WooCommerce REST API PHP 库官方 WooCommerce REST API PHP 库

版本概述

安装

步骤 1:通过 Composer 安装

对于 API 版本 v2,WooCommerce 3.0+,WordPress 4.4+,php 7.0+,Laravel 5.5+ 使用 v3.x 分支

composer require pixelpeter/laravel5-woocommerce-api-client ^3.0

对于 API 版本 v1,WooCommerce 2.6+,WordPress 4.4+,Laravel 5.4+ 使用 v2.x 分支

composer require pixelpeter/laravel5-woocommerce-api-client ^2.0

对于 Woocommerce 的旧版本,从 2.1+ 开始使用 v1.x 分支

composer require pixelpeter/laravel5-woocommerce-api-client ^1.0

步骤 2:添加服务提供者(v3.x 不需要)

app/config/app.php 中添加服务提供者

'provider' => [
    ...
    Pixelpeter\Woocommerce\WoocommerceServiceProvider::class,
    ...
];

步骤 3:添加外观(v3.x 不需要)

app/config/app.php 中添加别名

'aliases' => [
    ...
    'Woocommerce' => Pixelpeter\Woocommerce\Facades\Woocommerce::class,
    ...
];

步骤 4:发布配置

php artisan vendor:publish --provider="Pixelpeter\Woocommerce\WoocommerceServiceProvider"

步骤 5:自定义配置

您可以直接在 config/woocommerce.php 中编辑配置,或者将这些值复制到您的 .env 文件中。

WOOCOMMERCE_STORE_URL=http://example.org
WOOCOMMERCE_CONSUMER_KEY=ck_your-consumer-key
WOOCOMMERCE_CONSUMER_SECRET=cs_your-consumer-secret
WOOCOMMERCE_VERIFY_SSL=false
WOOCOMMERCE_VERSION=v1
WOOCOMMERCE_WP_API=true
WOOCOMMERCE_WP_QUERY_STRING_AUTH=false
WOOCOMMERCE_WP_TIMEOUT=15

示例

获取所有可用端点的索引

use Woocommerce;

return Woocommerce::get('');

查看所有订单

use Woocommerce;

return Woocommerce::get('orders');

查看在特定日期之后创建的所有已完成订单

对于旧版 API 版本

(WC 2.4.x 或更高版本,WP 4.1 或更高版本)使用此语法

use Woocommerce;

$data = [
    'status' => 'completed',
    'filter' => [
        'created_at_min' => '2016-01-14'
    ]
];

$result = Woocommerce::get('orders', $data);

foreach($result['orders'] as $order)
{
    // do something with $order
}

// you can also use array access
$orders = Woocommerce::get('orders', $data)['orders'];

foreach($orders as $order)
{
    // do something with $order
}

对于当前 API 版本

(WC 2.6.x 或更高版本,WP 4.4 或更高版本)使用此语法。 after 必须是符合 ISO-8601 的日期!≠

use Woocommerce;

$data = [
    'status' => 'completed',
    'after' => '2016-01-14T00:00:00'
    ]
];

$result = Woocommerce::get('orders', $data);

foreach($result['orders'] as $order)
{
    // do something with $order
}

// you can also use array access
$orders = Woocommerce::get('orders', $data)['orders'];

foreach($orders as $order)
{
    // do something with $order
}

更新产品

use Woocommerce;

$data = [
    'product' => [
        'title' => 'Updated title'
    ]
];

return Woocommerce::put('products/1', $data);

分页

因此,您无需处理请求和响应头以及计算,此封装将为您完成所有繁重的工作。(WC 2.6.x 或更高版本,WP 4.4 或更高版本)

use Woocommerce;

// assuming we have 474 orders in pur result
// we will request page 5 with 25 results per page
$params = [
    'per_page' => 25,
    'page' => 5
];

Woocommerce::get('orders', $params);

Woocommerce::totalResults(); // 474
Woocommerce::firstPage(); // 1
Woocommerce::lastPage(); // 19
Woocommerce::currentPage(); // 5 
Woocommerce::totalPages(); // 19
Woocommerce::previousPage(); // 4
Woocommerce::nextPage(); // 6
Woocommerce::hasPreviousPage(); // true 
Woocommerce::hasNextPage(); // true
Woocommerce::hasNotPreviousPage(); // false 
Woocommerce::hasNotNextPage(); // false

HTTP 请求 & 响应(头部)

use Woocommerce;

// first send a request
Woocommerce::get('orders');

// get the request
Woocommerce::getRequest();

// get the response headers
Woocommerce::getResponse();

// get the total number of results
Woocommerce::getResponse()->getHeaders()['X-WP-Total']

更多示例

有关更多示例和文档,请参阅WooCommerce REST API 文档

测试

使用以下命令运行测试

vendor/bin/phpunit

许可证

MIT 许可证(MIT)。有关更多信息,请参阅许可证文件