WooCommerce ShipStation Gateway - Version 4.2.0

Version Description

  • 2022-09-07 =
  • Add - Filter for manipulating address export data.
  • Fix - Remove unnecessary files from plugin zip file.
  • Tweak - Transition version numbering to WordPress versioning.
  • Tweak - WC 6.7.0 and WP 6.0.1 compatibility.
  • Fix - Remove 'translate : true' in package.json.
Download this release

Release Info

Developer harriswong
Plugin Icon 128x128 WooCommerce ShipStation Gateway
Version 4.2.0
Comparing to
See all releases

Code changes from version 4.1.49 to 4.2.0

changelog.txt CHANGED
@@ -1,6 +1,10 @@
1
  *** ShipStation for WooCommerce ***
2
 
3
- = 4.1.49 - 2022-01-05 =
 
 
 
 
4
  * Fix - Remove 'translate : true' in package.json.
5
 
6
  = 4.1.48 - 2021-11-03 =
1
  *** ShipStation for WooCommerce ***
2
 
3
+ = 4.2.0 - 2022-09-07 =
4
+ * Add - Filter for manipulating address export data.
5
+ * Fix - Remove unnecessary files from plugin zip file.
6
+ * Tweak - Transition version numbering to WordPress versioning.
7
+ * Tweak - WC 6.8 and WP 6.0 compatibility.
8
  * Fix - Remove 'translate : true' in package.json.
9
 
10
  = 4.1.48 - 2021-11-03 =
includes/api-requests/class-wc-shipstation-api-export.php CHANGED
@@ -162,7 +162,7 @@ class WC_Shipstation_API_Export extends WC_Shipstation_API_Request {
162
  $this->xml_append( $order_xml, 'CustomField3', apply_filters( 'woocommerce_shipstation_export_custom_field_3_value', get_post_meta( $order_id, $meta_key, true ), $order_id ) );
163
  }
164
 
165
- // Customer data
166
  $customer_xml = $xml->createElement( 'Customer' );
167
  $this->xml_append( $customer_xml, 'CustomerCode', $wc_gte_30 ? $order->get_billing_email() : $order->billing_email );
168
 
@@ -173,33 +173,19 @@ class WC_Shipstation_API_Export extends WC_Shipstation_API_Request {
173
  $this->xml_append( $billto_xml, 'Email', $wc_gte_30 ? $order->get_billing_email() : $order->billing_email );
174
  $customer_xml->appendChild( $billto_xml );
175
 
176
- $shipto_xml = $xml->createElement( 'ShipTo' );
177
-
178
- $shipping_country = $wc_gte_30 ? $order->get_shipping_country() : $order->shipping_country;
179
- $shipping_address = $wc_gte_30 ? $order->get_shipping_address_1() : $order->shipping_address_1;
180
- if ( empty( $shipping_country ) && empty( $shipping_address ) ) {
181
- $name = ( $wc_gte_30 ? $order->get_billing_first_name() : $order->billing_first_name ) . ' ' . ( $wc_gte_30 ? $order->get_billing_last_name() : $order->billing_last_name );
182
- $this->xml_append( $shipto_xml, 'Name', $name );
183
- $this->xml_append( $shipto_xml, 'Company', $wc_gte_30 ? $order->get_billing_company() : $order->billing_company );
184
- $this->xml_append( $shipto_xml, 'Address1', $wc_gte_30 ? $order->get_billing_address_1() : $order->billing_address_1 );
185
- $this->xml_append( $shipto_xml, 'Address2', $wc_gte_30 ? $order->get_billing_address_2() : $order->billing_address_2 );
186
- $this->xml_append( $shipto_xml, 'City', $wc_gte_30 ? $order->get_billing_city() : $order->billing_city );
187
- $this->xml_append( $shipto_xml, 'State', $wc_gte_30 ? $order->get_billing_state() : $order->billing_state );
188
- $this->xml_append( $shipto_xml, 'PostalCode', $wc_gte_30 ? $order->get_billing_postcode() : $order->billing_postcode );
189
- $this->xml_append( $shipto_xml, 'Country', $wc_gte_30 ? $order->get_billing_country() : $order->billing_country );
190
- $this->xml_append( $shipto_xml, 'Phone', $wc_gte_30 ? $order->get_billing_phone() : $order->billing_phone );
191
- } else {
192
- $name = ( $wc_gte_30 ? $order->get_shipping_first_name() : $order->shipping_first_name ) . ' ' . ( $wc_gte_30 ? $order->get_shipping_last_name() : $order->shipping_last_name );
193
- $this->xml_append( $shipto_xml, 'Name', $name );
194
- $this->xml_append( $shipto_xml, 'Company', $wc_gte_30 ? $order->get_shipping_company() : $order->shipping_company );
195
- $this->xml_append( $shipto_xml, 'Address1', $wc_gte_30 ? $order->get_shipping_address_1() : $order->shipping_address_1 );
196
- $this->xml_append( $shipto_xml, 'Address2', $wc_gte_30 ? $order->get_shipping_address_2() : $order->shipping_address_2 );
197
- $this->xml_append( $shipto_xml, 'City', $wc_gte_30 ? $order->get_shipping_city() : $order->shipping_city );
198
- $this->xml_append( $shipto_xml, 'State', $wc_gte_30 ? $order->get_shipping_state() : $order->shipping_state );
199
- $this->xml_append( $shipto_xml, 'PostalCode', $wc_gte_30 ? $order->get_shipping_postcode() : $order->shipping_postcode );
200
- $this->xml_append( $shipto_xml, 'Country', $wc_gte_30 ? $order->get_shipping_country() : $order->shipping_country );
201
- $this->xml_append( $shipto_xml, 'Phone', $wc_gte_30 ? $order->get_billing_phone() : $order->billing_phone );
202
- }
203
  $customer_xml->appendChild( $shipto_xml );
204
 
205
  $order_xml->appendChild( $customer_xml );
@@ -324,6 +310,49 @@ class WC_Shipstation_API_Export extends WC_Shipstation_API_Request {
324
  $this->log( sprintf( __( 'Exported %s orders', 'woocommerce-shipstation-integration' ), $exported ) );
325
  }
326
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
327
  /**
328
  * Get shipping method names
329
  * @param WC_Order $order
162
  $this->xml_append( $order_xml, 'CustomField3', apply_filters( 'woocommerce_shipstation_export_custom_field_3_value', get_post_meta( $order_id, $meta_key, true ), $order_id ) );
163
  }
164
 
165
+ // Customer data.
166
  $customer_xml = $xml->createElement( 'Customer' );
167
  $this->xml_append( $customer_xml, 'CustomerCode', $wc_gte_30 ? $order->get_billing_email() : $order->billing_email );
168
 
173
  $this->xml_append( $billto_xml, 'Email', $wc_gte_30 ? $order->get_billing_email() : $order->billing_email );
174
  $customer_xml->appendChild( $billto_xml );
175
 
176
+ $shipto_xml = $xml->createElement( 'ShipTo' );
177
+ $address_data = $this->get_address_data( $order );
178
+
179
+ $this->xml_append( $shipto_xml, 'Name', $address_data['name'] );
180
+ $this->xml_append( $shipto_xml, 'Company', $address_data['company'] );
181
+ $this->xml_append( $shipto_xml, 'Address1', $address_data['address1'] );
182
+ $this->xml_append( $shipto_xml, 'Address2', $address_data['address2'] );
183
+ $this->xml_append( $shipto_xml, 'City', $address_data['city'] );
184
+ $this->xml_append( $shipto_xml, 'State', $address_data['state'] );
185
+ $this->xml_append( $shipto_xml, 'PostalCode', $address_data['postcode'] );
186
+ $this->xml_append( $shipto_xml, 'Country', $address_data['country'] );
187
+ $this->xml_append( $shipto_xml, 'Phone', $address_data['phone'] );
188
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
189
  $customer_xml->appendChild( $shipto_xml );
190
 
191
  $order_xml->appendChild( $customer_xml );
310
  $this->log( sprintf( __( 'Exported %s orders', 'woocommerce-shipstation-integration' ), $exported ) );
311
  }
312
 
313
+ /**
314
+ * Get address data from Order.
315
+ *
316
+ * @param WC_Order $order Order object.
317
+ *
318
+ * @result array.
319
+ */
320
+ public function get_address_data( $order ) {
321
+ $wc_gte_30 = version_compare( WC_VERSION, '3.0', '>=' );// gte greater than or equal to 3.0.
322
+ $shipping_country = $wc_gte_30 ? $order->get_shipping_country() : $order->shipping_country;
323
+ $shipping_address = $wc_gte_30 ? $order->get_shipping_address_1() : $order->shipping_address_1;
324
+
325
+ $address = array();
326
+
327
+ if ( empty( $shipping_country ) && empty( $shipping_address ) ) {
328
+ $name = ( $wc_gte_30 ? $order->get_billing_first_name() : $order->billing_first_name ) . ' ' . ( $wc_gte_30 ? $order->get_billing_last_name() : $order->billing_last_name );
329
+
330
+ $address['name'] = $name;
331
+ $address['company'] = $wc_gte_30 ? $order->get_billing_company() : $order->billing_company;
332
+ $address['address1'] = $wc_gte_30 ? $order->get_billing_address_1() : $order->billing_address_1;
333
+ $address['address2'] = $wc_gte_30 ? $order->get_billing_address_2() : $order->billing_address_2;
334
+ $address['city'] = $wc_gte_30 ? $order->get_billing_city() : $order->billing_city;
335
+ $address['state'] = $wc_gte_30 ? $order->get_billing_state() : $order->billing_state;
336
+ $address['postcode'] = $wc_gte_30 ? $order->get_billing_postcode() : $order->billing_postcode;
337
+ $address['country'] = $wc_gte_30 ? $order->get_billing_country() : $order->billing_country;
338
+ $address['phone'] = $wc_gte_30 ? $order->get_billing_phone() : $order->billing_phone;
339
+ } else {
340
+ $name = ( $wc_gte_30 ? $order->get_shipping_first_name() : $order->shipping_first_name ) . ' ' . ( $wc_gte_30 ? $order->get_shipping_last_name() : $order->shipping_last_name );
341
+
342
+ $address['name'] = $name;
343
+ $address['company'] = $wc_gte_30 ? $order->get_shipping_company() : $order->shipping_company;
344
+ $address['address1'] = $wc_gte_30 ? $order->get_shipping_address_1() : $order->shipping_address_1;
345
+ $address['address2'] = $wc_gte_30 ? $order->get_shipping_address_2() : $order->shipping_address_2;
346
+ $address['city'] = $wc_gte_30 ? $order->get_shipping_city() : $order->shipping_city;
347
+ $address['state'] = $wc_gte_30 ? $order->get_shipping_state() : $order->shipping_state;
348
+ $address['postcode'] = $wc_gte_30 ? $order->get_shipping_postcode() : $order->shipping_postcode;
349
+ $address['country'] = $wc_gte_30 ? $order->get_shipping_country() : $order->shipping_country;
350
+ $address['phone'] = $wc_gte_30 ? $order->get_billing_phone() : $order->billing_phone;
351
+ }
352
+
353
+ return apply_filters( 'woocommerce_shipstation_export_address_data', $address, $order, $wc_gte_30 );
354
+ }
355
+
356
  /**
357
  * Get shipping method names
358
  * @param WC_Order $order
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: shipping, woocommerce, automattic
4
  Requires at least: 4.4
5
  Tested up to: 5.8
6
  Requires PHP: 5.6
7
- Stable tag: 4.1.49
8
  License: GPLv3
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -46,8 +46,12 @@ If you get stuck, you can ask for help in the Plugin Forum.
46
 
47
  == Changelog ==
48
 
49
- = 4.1.49 - 2022-01-05 =
50
- * * Fix - Remove 'translate : true' in package.json.
 
 
 
 
51
 
52
  = 4.1.48 - 2021-11-03 =
53
  * Fix - Critical Error when null value is passed to appendChild method.
4
  Requires at least: 4.4
5
  Tested up to: 5.8
6
  Requires PHP: 5.6
7
+ Stable tag: 4.2.0
8
  License: GPLv3
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
10
 
46
 
47
  == Changelog ==
48
 
49
+ = 4.2.0 - 2022-09-07 =
50
+ * Add - Filter for manipulating address export data.
51
+ * Fix - Remove unnecessary files from plugin zip file.
52
+ * Tweak - Transition version numbering to WordPress versioning.
53
+ * Tweak - WC 6.7.0 and WP 6.0.1 compatibility.
54
+ * Fix - Remove 'translate : true' in package.json.
55
 
56
  = 4.1.48 - 2021-11-03 =
57
  * Fix - Critical Error when null value is passed to appendChild method.
woocommerce-shipstation.php CHANGED
@@ -2,14 +2,14 @@
2
  /**
3
  * Plugin Name: WooCommerce - ShipStation Integration
4
  * Plugin URI: https://woocommerce.com/products/shipstation-integration/
5
- * Version: 4.1.49
6
  * Description: Adds ShipStation label printing support to WooCommerce. Requires server DomDocument support.
7
  * Author: WooCommerce
8
  * Author URI: https://woocommerce.com/
9
  * Text Domain: woocommerce-shipstation-integration
10
  * Domain Path: /languages
11
- * Tested up to: 5.8
12
- * WC tested up to: 5.6
13
  * WC requires at least: 3.4
14
  */
15
 
@@ -41,7 +41,7 @@ function woocommerce_shipstation_init() {
41
  return;
42
  }
43
 
44
- define( 'WC_SHIPSTATION_VERSION', '4.1.49' ); // WRCS: DEFINED_VERSION.
45
  define( 'WC_SHIPSTATION_FILE', __FILE__ );
46
 
47
  if ( ! defined( 'WC_SHIPSTATION_EXPORT_LIMIT' ) ) {
2
  /**
3
  * Plugin Name: WooCommerce - ShipStation Integration
4
  * Plugin URI: https://woocommerce.com/products/shipstation-integration/
5
+ * Version: 4.2.0
6
  * Description: Adds ShipStation label printing support to WooCommerce. Requires server DomDocument support.
7
  * Author: WooCommerce
8
  * Author URI: https://woocommerce.com/
9
  * Text Domain: woocommerce-shipstation-integration
10
  * Domain Path: /languages
11
+ * Tested up to: 6.0
12
+ * WC tested up to: 6.8
13
  * WC requires at least: 3.4
14
  */
15
 
41
  return;
42
  }
43
 
44
+ define( 'WC_SHIPSTATION_VERSION', '4.2.0' ); // WRCS: DEFINED_VERSION.
45
  define( 'WC_SHIPSTATION_FILE', __FILE__ );
46
 
47
  if ( ! defined( 'WC_SHIPSTATION_EXPORT_LIMIT' ) ) {