AfterShip – WooCommerce Tracking - Version 1.6.0

Version Description

  • Custom tracking URL support
Download this release

Release Info

Developer aftership
Plugin Icon 128x128 AfterShip – WooCommerce Tracking
Version 1.6.0
Comparing to
See all releases

Code changes from version 1.5.0 to 1.6.0

Files changed (3) hide show
  1. aftership.php +29 -7
  2. class-aftership-settings.php +21 -1
  3. readme.txt +4 -1
aftership.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: AfterShip - WooCommerce Tracking
4
  Plugin URI: http://aftership.com/
5
  Description: Add tracking number and carrier name to WooCommerce, display tracking info at order history page, auto import tracking numbers to AfterShip.
6
- Version: 1.5.0
7
  Author: AfterShip
8
  Author URI: http://aftership.com
9
 
@@ -83,6 +83,12 @@ if (is_woocommerce_active()) {
83
  $this->use_track_button = false;
84
  }
85
 
 
 
 
 
 
 
86
  add_action('woocommerce_view_order', array(&$this, 'display_tracking_info'));
87
  add_action('woocommerce_email_before_order_table', array(&$this, 'email_display'));
88
 
@@ -438,10 +444,12 @@ if (is_woocommerce_active()) {
438
 
439
  $required_fields_values = array();
440
  $provider_required_fields = explode(",", $values['aftership_tracking_required_fields']);
441
- foreach ($provider_required_fields as $field) {
 
 
442
  foreach ($this->aftership_fields as $aftership_field) {
443
  if (array_key_exists('key', $aftership_field) && $field == $aftership_field['key']) {
444
- array_push($required_fields_values, $values[$aftership_field['id']]);
445
  }
446
  }
447
  }
@@ -456,7 +464,7 @@ if (is_woocommerce_active()) {
456
  echo $track_message_1 . $values['aftership_tracking_provider_name'] . '<br/>' . $track_message_2 . $values['aftership_tracking_number'] . $required_fields_msg;
457
 
458
  if (!$for_email && $this->use_track_button) {
459
- $this->display_track_button($values['aftership_tracking_provider'], $values['aftership_tracking_number']);
460
  }
461
 
462
  //-------------------------------------------------------------------------------------
@@ -518,6 +526,7 @@ if (is_woocommerce_active()) {
518
  $tracking = get_post_meta($order_id, '_tracking_number', true);
519
  $sharp = strpos($tracking, '#');
520
  $colon = strpos($tracking, ':');
 
521
  if ($sharp && $colon && $sharp >= $colon) {
522
  return;
523
  } else if (!$sharp && $colon) {
@@ -526,6 +535,8 @@ if (is_woocommerce_active()) {
526
  $tracking_provider = substr($tracking, 0, $sharp);
527
  if ($colon) {
528
  $tracking_number = substr($tracking, $sharp + 1, $colon - $sharp - 1);
 
 
529
  } else {
530
  $tracking_number = substr($tracking, $sharp + 1, strlen($tracking));
531
  }
@@ -534,7 +545,7 @@ if (is_woocommerce_active()) {
534
  $tracking_number = $tracking;
535
  }
536
  if ($tracking_number) {
537
- $this->display_track_button($tracking_provider, $tracking_number);
538
  }
539
  }
540
 
@@ -549,7 +560,7 @@ if (is_woocommerce_active()) {
549
  $this->display_tracking_info($order->id, true);
550
  }
551
 
552
- private function display_track_button($tracking_provider, $tracking_number)
553
  {
554
 
555
  $js = '(function(e,t,n){var r,i=e.getElementsByTagName(t)[0];if(e.getElementById(n))return;r=e.createElement(t);r.id=n;r.src="//apps.aftership.com/all.js";i.parentNode.insertBefore(r,i)})(document,"script","aftership-jssdk")';
@@ -560,7 +571,18 @@ if (is_woocommerce_active()) {
560
  $woocommerce->add_inline_js($js);
561
  }
562
 
563
- $track_button = '<div id="as-root"></div><div class="as-track-button" data-slug="' . $tracking_provider . '" data-tracking-number="' . $tracking_number . '" data-support="true" data-width="400" data-size="normal" data-hide-tracking-number="true"></div>';
 
 
 
 
 
 
 
 
 
 
 
564
  echo wpautop(sprintf('%s', $track_button));
565
  echo "<br><br>";
566
  }
3
  Plugin Name: AfterShip - WooCommerce Tracking
4
  Plugin URI: http://aftership.com/
5
  Description: Add tracking number and carrier name to WooCommerce, display tracking info at order history page, auto import tracking numbers to AfterShip.
6
+ Version: 1.6.0
7
  Author: AfterShip
8
  Author URI: http://aftership.com
9
 
83
  $this->use_track_button = false;
84
  }
85
 
86
+ if (isset($options['custom_domain'])) {
87
+ $this->custom_domain = $options['custom_domain'];
88
+ } else {
89
+ $this->custom_domain = '';
90
+ }
91
+
92
  add_action('woocommerce_view_order', array(&$this, 'display_tracking_info'));
93
  add_action('woocommerce_email_before_order_table', array(&$this, 'email_display'));
94
 
444
 
445
  $required_fields_values = array();
446
  $provider_required_fields = explode(",", $values['aftership_tracking_required_fields']);
447
+
448
+ for ($i = 0 ; $i < count($provider_required_fields); $i++) {
449
+ $field = $provider_required_fields[$i];
450
  foreach ($this->aftership_fields as $aftership_field) {
451
  if (array_key_exists('key', $aftership_field) && $field == $aftership_field['key']) {
452
+ array_unshift($required_fields_values, $values[$aftership_field['id']]);
453
  }
454
  }
455
  }
464
  echo $track_message_1 . $values['aftership_tracking_provider_name'] . '<br/>' . $track_message_2 . $values['aftership_tracking_number'] . $required_fields_msg;
465
 
466
  if (!$for_email && $this->use_track_button) {
467
+ $this->display_track_button($values['aftership_tracking_provider'], $values['aftership_tracking_number'], $required_fields_values);
468
  }
469
 
470
  //-------------------------------------------------------------------------------------
526
  $tracking = get_post_meta($order_id, '_tracking_number', true);
527
  $sharp = strpos($tracking, '#');
528
  $colon = strpos($tracking, ':');
529
+ $required_fields = array();
530
  if ($sharp && $colon && $sharp >= $colon) {
531
  return;
532
  } else if (!$sharp && $colon) {
535
  $tracking_provider = substr($tracking, 0, $sharp);
536
  if ($colon) {
537
  $tracking_number = substr($tracking, $sharp + 1, $colon - $sharp - 1);
538
+ $temp = substr($tracking, $sharp + 1, strlen($tracking));
539
+ $required_fields = explode(':', $temp);
540
  } else {
541
  $tracking_number = substr($tracking, $sharp + 1, strlen($tracking));
542
  }
545
  $tracking_number = $tracking;
546
  }
547
  if ($tracking_number) {
548
+ $this->display_track_button($tracking_provider, $tracking_number, $required_fields);
549
  }
550
  }
551
 
560
  $this->display_tracking_info($order->id, true);
561
  }
562
 
563
+ private function display_track_button($tracking_provider, $tracking_number, $required_fields_values)
564
  {
565
 
566
  $js = '(function(e,t,n){var r,i=e.getElementsByTagName(t)[0];if(e.getElementById(n))return;r=e.createElement(t);r.id=n;r.src="//apps.aftership.com/all.js";i.parentNode.insertBefore(r,i)})(document,"script","aftership-jssdk")';
571
  $woocommerce->add_inline_js($js);
572
  }
573
 
574
+ if (count($required_fields_values)) {
575
+ $tracking_number = $tracking_number . ':' . join(':', $required_fields_values);
576
+ }
577
+
578
+ $temp_url = '';
579
+ $temp_slug = ' data-slug="' . $tracking_provider . '"';
580
+ if($this->custom_domain != '') {
581
+ $temp_url = '" data-domain="' . $this->custom_domain;
582
+ $temp_slug = '';
583
+ }
584
+
585
+ $track_button = '<div id="as-root"></div><div class="as-track-button"' . $temp_slug . ' data-tracking-number="' . $tracking_number . $temp_url .'" data-support="true" data-width="400" data-size="normal" data-hide-tracking-number="true"></div>';
586
  echo wpautop(sprintf('%s', $track_button));
587
  echo "<br><br>";
588
  }
class-aftership-settings.php CHANGED
@@ -146,6 +146,14 @@ class AfterShip_Settings
146
  'aftership_setting_section_id'
147
  );
148
 
 
 
 
 
 
 
 
 
149
  add_settings_field(
150
  'track_message',
151
  'Content',
@@ -168,6 +176,10 @@ class AfterShip_Settings
168
  $new_input['couriers'] = sanitize_text_field($input['couriers']);
169
  }
170
 
 
 
 
 
171
  if (isset($input['plugin'])) {
172
  $new_input['plugin'] = sanitize_text_field($input['plugin']);
173
  }
@@ -242,6 +254,14 @@ class AfterShip_Settings
242
  );
243
  }
244
 
 
 
 
 
 
 
 
 
245
  public function track_message_callback()
246
  {
247
  printf(
@@ -272,4 +292,4 @@ class AfterShip_Settings
272
 
273
 
274
  if (is_admin())
275
- $aftership_settings = new AfterShip_Settings();
146
  'aftership_setting_section_id'
147
  );
148
 
149
+ add_settings_field(
150
+ 'custom_domain',
151
+ 'Display Tracking Information at Custom Domain',
152
+ array($this, 'custom_domain_callback'),
153
+ 'aftership-setting-admin',
154
+ 'aftership_setting_section_id'
155
+ );
156
+
157
  add_settings_field(
158
  'track_message',
159
  'Content',
176
  $new_input['couriers'] = sanitize_text_field($input['couriers']);
177
  }
178
 
179
+ if (isset($input['custom_domain'])) {
180
+ $new_input['custom_domain'] = sanitize_text_field($input['custom_domain']);
181
+ }
182
+
183
  if (isset($input['plugin'])) {
184
  $new_input['plugin'] = sanitize_text_field($input['plugin']);
185
  }
254
  );
255
  }
256
 
257
+ public function custom_domain_callback()
258
+ {
259
+ printf(
260
+ '<input type="text" id="custom_domain" name="aftership_option_name[custom_domain]" value="%s" style="width:100%%">',
261
+ isset($this->options['custom_domain']) ? $this->options['custom_domain'] : 'track.aftership.com'
262
+ );
263
+ }
264
+
265
  public function track_message_callback()
266
  {
267
  printf(
292
 
293
 
294
  if (is_admin())
295
+ $aftership_settings = new AfterShip_Settings();
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.aftership.com/
4
  Tags: shipping, tracking, ups, usps, fedex, dhl, tnt, dpd, post, shipment, woocommerce, tracking number, aftership, package tracking, fulfilment, tracking link, carrier, courier, woo commerce, woocommerce shipment tracking, shipping details plugin, widget, shipstation, track, package
5
  Requires at least: 2.9
6
  Tested up to: 4.2.2
7
- Stable tag: 1.5.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -92,6 +92,9 @@ You'll find the FAQ on [AfterShip.com](https://aftership.uservoice.com/knowledge
92
 
93
  == Changelog ==
94
 
 
 
 
95
  = 1.5.0 =
96
  * Add credentials verification
97
  * Enable importing note from customer
4
  Tags: shipping, tracking, ups, usps, fedex, dhl, tnt, dpd, post, shipment, woocommerce, tracking number, aftership, package tracking, fulfilment, tracking link, carrier, courier, woo commerce, woocommerce shipment tracking, shipping details plugin, widget, shipstation, track, package
5
  Requires at least: 2.9
6
  Tested up to: 4.2.2
7
+ Stable tag: 1.6.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
92
 
93
  == Changelog ==
94
 
95
+ = 1.6.0 =
96
+ * Custom tracking URL support
97
+
98
  = 1.5.0 =
99
  * Add credentials verification
100
  * Enable importing note from customer