Version Description
Minor improvements
=
Download this release
Release Info
Developer | printful |
Plugin | Printful Integration for WooCommerce |
Version | 1.0.1 |
Comparing to | |
See all releases |
Code changes from version 1.0 to 1.0.1
- PrintfulClient.php +1 -3
- printful-shipping.php +35 -11
- readme.txt +10 -2
PrintfulClient.php
CHANGED
@@ -15,7 +15,7 @@ class PrintfulClient {
|
|
15 |
private $lastResponse;
|
16 |
|
17 |
const API_URL = 'https://api.theprintful.com/';
|
18 |
-
const USER_AGENT = 'Printful API WooCommerce Library 1.0';
|
19 |
|
20 |
/**
|
21 |
* @param string $key Printful Store API key
|
@@ -134,8 +134,6 @@ class PrintfulClient {
|
|
134 |
curl_setopt($curl, CURLOPT_USERPWD, $this->key);
|
135 |
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
|
136 |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
137 |
-
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
|
138 |
-
curl_setopt($curl, CURLOPT_MAXREDIRS, 3);
|
139 |
|
140 |
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 20);
|
141 |
curl_setopt($curl, CURLOPT_TIMEOUT, 20);
|
15 |
private $lastResponse;
|
16 |
|
17 |
const API_URL = 'https://api.theprintful.com/';
|
18 |
+
const USER_AGENT = 'Printful API WooCommerce Library 1.0.1';
|
19 |
|
20 |
/**
|
21 |
* @param string $key Printful Store API key
|
134 |
curl_setopt($curl, CURLOPT_USERPWD, $this->key);
|
135 |
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
|
136 |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
|
|
|
|
137 |
|
138 |
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 20);
|
139 |
curl_setopt($curl, CURLOPT_TIMEOUT, 20);
|
printful-shipping.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Printful Shipping Rates for WooCommerce
|
4 |
Plugin URI: https://wordpress.org/plugins/printful-shipping-for-woocommerce/
|
5 |
Description: Printful shipping rates
|
6 |
-
Version: 1.0
|
7 |
Author: Idea Bits LLC
|
8 |
License: GPL2 http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
*/
|
@@ -27,8 +27,9 @@ function printful_shipping_init()
|
|
27 |
|
28 |
class Printful_Shipping extends WC_Shipping_Method
|
29 |
{
|
30 |
-
public $
|
31 |
-
|
|
|
32 |
|
33 |
function __construct()
|
34 |
{
|
@@ -43,11 +44,12 @@ function printful_shipping_init()
|
|
43 |
|
44 |
$this->enabled = $this->get_option('enabled');
|
45 |
$this->title = $this->get_option('title');
|
|
|
46 |
|
47 |
if (get_woocommerce_currency() != 'USD') {
|
48 |
-
$
|
49 |
-
if($
|
50 |
-
$this->
|
51 |
}
|
52 |
}
|
53 |
$this->type = 'order';
|
@@ -76,6 +78,12 @@ function printful_shipping_init()
|
|
76 |
'description'=> 'Your store\'s Printful API key. Create it in the Prinful dashboard',
|
77 |
'default' => '',
|
78 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
);
|
80 |
$currency = get_woocommerce_currency();
|
81 |
if ($currency != 'USD'){ //Require conversion rate
|
@@ -118,7 +126,7 @@ function printful_shipping_init()
|
|
118 |
try {
|
119 |
$printful = new PrintfulClient($this->get_option('printful_key'));
|
120 |
} catch( PrintfulException $e) {
|
121 |
-
|
122 |
return false;
|
123 |
}
|
124 |
|
@@ -131,19 +139,35 @@ function printful_shipping_init()
|
|
131 |
$rateData = array(
|
132 |
'id' => $this->id . '_' . $rate['id'],
|
133 |
'label' => $rate['name'],
|
134 |
-
'cost' => round($rate['rate'] / $this->
|
135 |
'taxes' => '',
|
136 |
'calc_tax' => 'per_order'
|
137 |
);
|
138 |
$this->add_rate($rateData);
|
139 |
}
|
140 |
} catch ( PrintfulException $e) {
|
141 |
-
|
142 |
-
wc_add_notice( $e->getMessage(), 'error' );
|
143 |
-
}
|
144 |
return false;
|
145 |
}
|
146 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
147 |
}
|
148 |
}
|
149 |
|
3 |
Plugin Name: Printful Shipping Rates for WooCommerce
|
4 |
Plugin URI: https://wordpress.org/plugins/printful-shipping-for-woocommerce/
|
5 |
Description: Printful shipping rates
|
6 |
+
Version: 1.0.1
|
7 |
Author: Idea Bits LLC
|
8 |
License: GPL2 http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
*/
|
27 |
|
28 |
class Printful_Shipping extends WC_Shipping_Method
|
29 |
{
|
30 |
+
public $currency_rate = 1;
|
31 |
+
public $show_warnings = false;
|
32 |
+
private $last_error = false;
|
33 |
|
34 |
function __construct()
|
35 |
{
|
44 |
|
45 |
$this->enabled = $this->get_option('enabled');
|
46 |
$this->title = $this->get_option('title');
|
47 |
+
$this->show_warnings = $this->get_option('show_warnings') == 'yes';
|
48 |
|
49 |
if (get_woocommerce_currency() != 'USD') {
|
50 |
+
$currency_rate = (float)$this->get_option('rate');
|
51 |
+
if ($currency_rate>0) {
|
52 |
+
$this->currency_rate = $currency_rate;
|
53 |
}
|
54 |
}
|
55 |
$this->type = 'order';
|
78 |
'description'=> 'Your store\'s Printful API key. Create it in the Prinful dashboard',
|
79 |
'default' => '',
|
80 |
),
|
81 |
+
'show_warnings' => array(
|
82 |
+
'title' => 'Show Printful warnings',
|
83 |
+
'type' => 'checkbox',
|
84 |
+
'label' => 'Display Printful status messages if rate API request fails',
|
85 |
+
'default' => 'yes'
|
86 |
+
),
|
87 |
);
|
88 |
$currency = get_woocommerce_currency();
|
89 |
if ($currency != 'USD'){ //Require conversion rate
|
126 |
try {
|
127 |
$printful = new PrintfulClient($this->get_option('printful_key'));
|
128 |
} catch( PrintfulException $e) {
|
129 |
+
$this->set_error($e);
|
130 |
return false;
|
131 |
}
|
132 |
|
139 |
$rateData = array(
|
140 |
'id' => $this->id . '_' . $rate['id'],
|
141 |
'label' => $rate['name'],
|
142 |
+
'cost' => round($rate['rate'] / $this->currency_rate, 2),
|
143 |
'taxes' => '',
|
144 |
'calc_tax' => 'per_order'
|
145 |
);
|
146 |
$this->add_rate($rateData);
|
147 |
}
|
148 |
} catch ( PrintfulException $e) {
|
149 |
+
$this->set_error($e);
|
|
|
|
|
150 |
return false;
|
151 |
}
|
152 |
}
|
153 |
+
|
154 |
+
private function set_error($error)
|
155 |
+
{
|
156 |
+
if ($this->show_warnings){
|
157 |
+
$this->last_error = $error;
|
158 |
+
add_filter('woocommerce_cart_no_shipping_available_html', array($this, 'show_error'));
|
159 |
+
add_filter('woocommerce_no_shipping_available_html', array($this, 'show_error'));
|
160 |
+
}
|
161 |
+
}
|
162 |
+
public function show_error($data)
|
163 |
+
{
|
164 |
+
$error = $this->last_error;
|
165 |
+
$message = $error->getMessage();
|
166 |
+
if($error instanceof PrintfulApiException && $error->getCode() == 401){
|
167 |
+
$message = 'Invalid API key';
|
168 |
+
}
|
169 |
+
return '<p>'.$this->title.': '.htmlspecialchars($message).'</p>';
|
170 |
+
}
|
171 |
}
|
172 |
}
|
173 |
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: girts_u
|
|
3 |
Tags: woocommerce, printful, shipping, shipping rates, fulfillment, printing, fedex, carriers, checkout
|
4 |
Requires at least: 3.8
|
5 |
Tested up to: 4.0
|
6 |
-
Stable tag: 1.0
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -38,9 +38,17 @@ Go to https://www.theprintful.com/dashboard/store , select your WooCommerce stor
|
|
38 |
== Upgrade Notice ==
|
39 |
|
40 |
= 1.0 =
|
41 |
-
|
|
|
|
|
|
|
42 |
|
43 |
== Changelog ==
|
44 |
|
45 |
= 1.0 =
|
46 |
* First release
|
|
|
|
|
|
|
|
|
|
3 |
Tags: woocommerce, printful, shipping, shipping rates, fulfillment, printing, fedex, carriers, checkout
|
4 |
Requires at least: 3.8
|
5 |
Tested up to: 4.0
|
6 |
+
Stable tag: 1.0.1
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
38 |
== Upgrade Notice ==
|
39 |
|
40 |
= 1.0 =
|
41 |
+
First release
|
42 |
+
|
43 |
+
= 1.0.1 =
|
44 |
+
Minor improvements
|
45 |
|
46 |
== Changelog ==
|
47 |
|
48 |
= 1.0 =
|
49 |
* First release
|
50 |
+
|
51 |
+
= 1.0.1 =
|
52 |
+
* Removed CURLOPT_FOLLOWLOCATION that caused problems on some hosting environments
|
53 |
+
* Added option to display reason status messages if the rate API request has failed
|
54 |
+
|