mindsize/laravel5-woocommerce

Laravel 5 的 WooCommerce API 客户端

1.0.3 2017-09-25 16:18 UTC

This package is auto-updated.

Last update: 2024-09-19 08:27:05 UTC


README

Latest Version on Packagist Software License Travis Build Total Downloads

这是 Automattic 的官方 WooCommerce REST API PHP 库的简单 Laravel 5 包装器。

安装

步骤 1: 通过 Composer 安装

composer require mindsize/laravel5-woocommerce

步骤 2: 发布配置

php artisan vendor:publish --provider="Mindsize\WooCommerce\ServiceProvider"

步骤 3: 自定义配置

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

WC_STORE_URL=http://example.org
WC_CONSUMER_KEY=ck_your-consumer-key
WC_CONSUMER_SECRET=cs_your-consumer-secret
WC_VERIFY_SSL=false
WC_VERSION=v1
WC_WP_API=true
WC_WP_QUERY_STRING_AUTH=false
WC_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)。有关更多信息,请参阅 许可证文件

pixelpeter/laravel5-woocommerce-api-client 分支

感谢 Peter!