Skip to content

Commit 449c5f9

Browse files
committed
Added WooCommerce API, Trait, Facade, Configuration
1 parent 51df126 commit 449c5f9

7 files changed

+128
-8
lines changed

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"Codexshaper\\Woocommerce\\WooCommerceServiceProvider"
2525
],
2626
"aliases": {
27-
"WooCommerce": "Codexshaper\\Woocommerce\\WooCommerceServiceProvider"
27+
"Woocommerce": "Codexshaper\\Woocommerce\\Facades\\WoocommerceFacade"
2828
}
2929
}
3030
}

src/Facades/WoocommerceFacade.php

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
namespace Codexshaper\Woocommerce\Facades;
3+
4+
use Illuminate\Support\Facades\Facade;
5+
6+
class WoocommerceFacade extends Facade
7+
{
8+
/**
9+
* Get the registered name of the component.
10+
*
11+
* @return string
12+
*/
13+
protected static function getFacadeAccessor()
14+
{
15+
return 'Codexshaper\Woocommerce\WoocommerceApi';
16+
}
17+
}

src/Traits/WoocommerceTrait.php

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
namespace Codexshaper\Woocommerce\Traits;
4+
5+
trait WoocommerceTrait
6+
{
7+
public function get($endpoints, $args = [])
8+
{
9+
// return $this->client->get($endpoints, $args);
10+
return config('woocommerce.store_url');
11+
}
12+
}

src/WooCommerceServiceProvider.php

+11-4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Codexshaper\Woocommerce;
44

5+
use Codexshaper\Woocommerce\WoocommerceApi;
56
use Illuminate\Support\ServiceProvider;
67

78
class WooCommerceServiceProvider extends ServiceProvider
@@ -15,12 +16,10 @@ class WooCommerceServiceProvider extends ServiceProvider
1516
public function boot()
1617
{
1718
$this->loadRoutesFrom(__DIR__.'/routes.php');
18-
$this->mergeConfigFrom(
19-
__DIR__.'/config/woocommerce.php', 'laravel-woocommerce'
20-
);
19+
2120
$this->publishes([
2221
__DIR__.'/config/woocommerce.php' => config_path('woocommerce.php'),
23-
],'laravel-woocommerce');
22+
],'woocommerce');
2423
}
2524

2625
/**
@@ -31,5 +30,13 @@ public function boot()
3130
public function register()
3231
{
3332

33+
$this->mergeConfigFrom(
34+
__DIR__.'/config/woocommerce.php', 'woocommerce'
35+
);
36+
37+
$this->app->singleton('WoocommerceApi', function(){
38+
return new WoocommerceApi();
39+
});
40+
// $app->alias('Codexshaper\Woocommerce\WoocommerceApi', 'WoocommerceApi');
3441
}
3542
}

src/WoocommerceApi.php

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
namespace Codexshaper\Woocommerce;
4+
5+
use Automattic\WooCommerce\Client;
6+
use Codexshaper\Woocommerce\Traits\WoocommerceTrait;
7+
8+
class WoocommerceApi extends Client
9+
{
10+
use WoocommerceTrait;
11+
12+
protected $client;
13+
14+
public function __construct()
15+
{
16+
$this->client = Parent::__construct(
17+
config('woocommerce.store_url'),
18+
config('woocommerce.consumer_key'),
19+
config('woocommerce.consumer_secret'),
20+
[
21+
'version' => 'wc/'.config('woocommerce.api_version'),
22+
'verify_ssl' => config('woocommerce.verify_ssl'),
23+
'wp_api' => config('woocommerce.wp_api_integration'),
24+
'query_string_auth' => config('woocommerce.query_string_auth'),
25+
'timeout' => config('woocommerce.timeout'),
26+
]);
27+
}
28+
29+
}

src/config/woocommerce.php

+55-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,59 @@
11
<?php
22

33
return [
4-
'WOOCOOMERCE_CONSUMER_KEY' => env('WOOCOOMERCE_CONSUMER_KEY', ''),
5-
'WOOCOOMERCE_CONSUMER_SECRET' => env('WOOCOOMERCE_CONSUMER_SECRET', ''),
4+
/**
5+
*================================================================================
6+
* Store URL eg: http://example.com
7+
*================================================================================
8+
*/
9+
'store_url' => env('WOOCOMMERCE_STORE_URL', 'YOUR_STORE_URL'),
10+
11+
/**
12+
*================================================================================
13+
* Consumer Key
14+
*================================================================================
15+
*/
16+
'consumer_key' => env('WOOCOMMERCE_CONSUMER_KEY', 'YOUR_CONSUMER_KEY'),
17+
18+
/**
19+
* Consumer Secret
20+
*/
21+
'consumer_secret' => env('WOOCOMMERCE_CONSUMER_SECRET', 'YOUR_CONSUMER_SECRET'),
22+
23+
/**
24+
*================================================================================
25+
* SSL support
26+
*================================================================================
27+
*/
28+
'verify_ssl' => env('WOOCOMMERCE_VERIFY_SSL', false),
29+
30+
/**
31+
*================================================================================
32+
* Woocommerce API version
33+
*================================================================================
34+
*/
35+
'api_version' => env('WOOCOMMERCE_API_VERSION', 'v3'),
36+
37+
/**
38+
*================================================================================
39+
* Enable WP API Integration
40+
*================================================================================
41+
*/
42+
'wp_api' => env('WP_API_INTEGRATION', true),
43+
44+
/**
45+
*================================================================================
46+
* Force Basic Authentication as query string
47+
*================================================================================
48+
*/
49+
50+
'query_string_auth' => env('WOOCOMMERCE_WP_QUERY_STRING_AUTH', false),
51+
52+
/**
53+
*================================================================================
54+
* Default WP timeout
55+
*================================================================================
56+
*/
57+
58+
'timeout' => env('WOOCOMMERCE_WP_TIMEOUT', 15),
659
];

src/routes.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<?php
22

3+
use Codexshaper\Woocommerce\Facades\WoocommerceFacade as Woocommerce;
4+
35
Route::get('test', function(){
4-
return "Test";
6+
return Woocommerce::get('');
57
});

0 commit comments

Comments
 (0)