Version Description
- Custom tracking URL support
Download this release
Release Info
Developer | aftership |
Plugin | AfterShip – WooCommerce Tracking |
Version | 1.6.0 |
Comparing to | |
See all releases |
Code changes from version 1.5.0 to 1.6.0
- aftership.php +29 -7
- class-aftership-settings.php +21 -1
- 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.
|
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 |
-
|
|
|
|
|
442 |
foreach ($this->aftership_fields as $aftership_field) {
|
443 |
if (array_key_exists('key', $aftership_field) && $field == $aftership_field['key']) {
|
444 |
-
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
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
|