ijagjeet / laravel-woocommerce-api-client
Laravel 对 Woocommerce REST API 的包装
Requires
- php: ^7.0|^8.0
- automattic/woocommerce: ^3.0
- friendsofphp/php-cs-fixer: ^3.13
Requires (Dev)
- mockery/mockery: ^1.0
- nunomaduro/collision: ^5.10|^6.0|^7.0
- nunomaduro/larastan: ^1.0|^2.0
- orchestra/testbench: ^6.22|^7.0|^8.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- php-coveralls/php-coveralls: ^2.2
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-10-03 05:14:26 UTC
README
一个简单的 Laravel 对 Automattic 的官方 WooCommerce REST API PHP 库的包装。
版本概述
安装
步骤 1:通过 Composer 安装
对于 API 版本 v2,WooCommerce 3.0+、WordPress 5.5+、php 7.0+、Laravel 9.0+ 使用 v3.x 分支
composer require ijagjeet/laravel-woocommerce-api-client ^3.0
对于 API 版本 v1,WooCommerce 2.6+、WordPress 4.4+、Laravel 5.4+ 使用 v2.x 分支
composer require ijagjeet/laravel-woocommerce-api-client ^2.0
对于 Woocommerce 2.1+ 及更早版本,使用 v1.x 分支
composer require ijagjeet/laravel-woocommerce-api-client ^1.0
步骤 2:添加服务提供者(v3.x 不需要)
在 app/config/app.php
中添加服务提供者
'provider' => [ ... IJagjeet\Woocommerce\WoocommerceServiceProvider::class, ... ];
步骤 3:添加 Facade(v3.x 不需要)
在 app/config/app.php
中添加别名
'aliases' => [ ... 'Woocommerce' => IJagjeet\Woocommerce\Facades\Woocommerce::class, ... ];
步骤 4:发布配置
php artisan vendor:publish --provider="IJagjeet\Woocommerce\WoocommerceServiceProvider"
步骤 5:自定义配置
您可以直接在 config/woocommerce.php
中编辑配置,或将这些值复制到您的 .env
文件中。
WOOCOMMERCE_STORE_URL=https://example-store.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 文档。
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近的变化。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全漏洞
请参阅 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。