Version Description
- 2017-03-30 =
- Added support for upcoming WooCommerce 3.0
- Added support for bulk shipping available in our shipping integrations
Download this release
Release Info
Developer | wpdesk |
Plugin | Flexible Shipping for WooCommerce |
Version | 1.9 |
Comparing to | |
See all releases |
Code changes from version 1.8 to 1.9
- assets/css/admin.css +57 -0
- assets/css/admin.min.css +1 -0
- assets/js/admin.js +45 -0
- assets/js/admin.min.js +1 -0
- classes/bulk-actions.php +258 -0
- classes/settings-shipping-method-form.php +4 -0
- classes/shipping_method.php +6 -31
- classes/views/html-column-shipping-message.php +6 -0
- classes/views/html-column-shipping-shipping.php +20 -0
- classes/views/html-orders-filter-form.php +19 -0
- classes/views/html-shipping-method-rules.php +1 -1
- classes/views/html-shipping-method-settings.php +21 -21
- flexible-shipping.php +82 -20
- languages/flexible-shipping-pl_PL.mo +0 -0
- languages/flexible-shipping-pl_PL.po +144 -64
- readme.txt +23 -3
assets/css/admin.css
CHANGED
@@ -83,3 +83,60 @@ div.flexilble_shipping_export_import {
|
|
83 |
display: none;
|
84 |
}
|
85 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
display: none;
|
84 |
}
|
85 |
}
|
86 |
+
|
87 |
+
/* Flexible Shipping Column - Orders List */
|
88 |
+
|
89 |
+
.column-flexible_shipping {
|
90 |
+
width: 130px;
|
91 |
+
}
|
92 |
+
|
93 |
+
.column-flexible_shipping .shipping-status {
|
94 |
+
float: left;
|
95 |
+
margin-right: 8px;
|
96 |
+
margin-top: 4px;
|
97 |
+
text-align: left;
|
98 |
+
width: 18px;
|
99 |
+
}
|
100 |
+
|
101 |
+
.column-flexible_shipping .shipping-status .created:after {
|
102 |
+
color: #d0c21f !important;
|
103 |
+
}
|
104 |
+
|
105 |
+
.column-flexible_shipping .shipping-actions a.button {
|
106 |
+
float: left;
|
107 |
+
margin: 0 4px 2px 0;
|
108 |
+
display: block;
|
109 |
+
height: 2em !important;
|
110 |
+
padding: 0 !important;
|
111 |
+
position: relative;
|
112 |
+
text-indent: -9999px;
|
113 |
+
width: 2em;
|
114 |
+
}
|
115 |
+
|
116 |
+
.column-flexible_shipping .shipping-actions a.button:after {
|
117 |
+
font-family: WooCommerce;
|
118 |
+
font-variant: normal;
|
119 |
+
font-weight: 400;
|
120 |
+
height: 100%;
|
121 |
+
left: 0;
|
122 |
+
line-height: 1.85;
|
123 |
+
margin: 0;
|
124 |
+
position: absolute;
|
125 |
+
text-align: center;
|
126 |
+
text-indent: 0;
|
127 |
+
text-transform: none;
|
128 |
+
top: 0;
|
129 |
+
width: 100%;
|
130 |
+
}
|
131 |
+
|
132 |
+
.column-flexible_shipping .shipping-actions a.button.get-label:after {
|
133 |
+
content: "\e01e";
|
134 |
+
}
|
135 |
+
|
136 |
+
.column-flexible_shipping .shipping-actions a.button.track:after {
|
137 |
+
content: "\e01b";
|
138 |
+
}
|
139 |
+
|
140 |
+
.column-flexible_shipping mark.failed:after {
|
141 |
+
color: #a00 !important;
|
142 |
+
}
|
assets/css/admin.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
table.flexible_shipping_methods th.select,table.flexible_shipping_methods td.select{text-align:center;width:40px;margin-top:-7px;margin-left:-6px}table.flexible_shipping_methods .checkbox-select-all{margin:0 12px 0 8px}table.flexible_shipping_methods th.integration,table.flexible_shipping_methods td.integration{text-align:center;width:130px}table.flexible_shipping_methods tr.highlight td{background-color:#e4f2fd}table.flexible_shipping_methods.wc_shipping th{font-weight:400;width:auto}table.flexible_shipping_method_rules td p,table.flexible_shipping_method_rules td p input,table.flexible_shipping_method_rules td p select{margin:0;width:100%}table.flexible_shipping_method_rules td p input[type=checkbox]{margin:0;width:auto}table.flexible_shipping_method_rules th,table.flexible_shipping_method_rules td{text-align:center}.woocommerce table.form-table .flexible_shipping_method_rules th span.woocommerce-help-tip{float:none}.woocommerce table.form-table .flexible_shipping_method_rules .select2-container{margin:0}.woocommerce table.form-table .fs-locations-table .select2-container{max-width:none}.woocommerce table.form-table .fs-locations-table th .woocommerce-help-tip{float:none}div.flexilble_shipping_export_import{float:right}.woocommerce_page_wc-settings #mainform{position:relative}.flexible-shipping-pro-box{max-width:280px;min-width:180px;right:0;position:absolute;top:50px}@media screen and (max-width:1023px){.flexible-shipping-pro-box{display:none}}.column-flexible_shipping{width:130px}.column-flexible_shipping .shipping-status{float:left;margin-right:8px;margin-top:4px;text-align:left;width:18px}.column-flexible_shipping .shipping-status .created:after{color:#d0c21f !important}.column-flexible_shipping .shipping-actions a.button{float:left;margin:0 4px 2px 0;display:block;height:2em !important;padding:0 !important;position:relative;text-indent:-9999px;width:2em}.column-flexible_shipping .shipping-actions a.button:after{font-family:WooCommerce;font-variant:normal;font-weight:400;height:100%;left:0;line-height:1.85;margin:0;position:absolute;text-align:center;text-indent:0;text-transform:none;top:0;width:100%}.column-flexible_shipping .shipping-actions a.button.get-label:after{content:"\e01e"}.column-flexible_shipping .shipping-actions a.button.track:after{content:"\e01b"}.column-flexible_shipping mark.failed:after{color:#a00 !important}
|
assets/js/admin.js
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(document).ready(function(){
|
2 |
+
if ( jQuery('#flexible_shipping_labels_url').length ) {
|
3 |
+
window.location.href = jQuery('#flexible_shipping_labels_url').attr('href');
|
4 |
+
}
|
5 |
+
|
6 |
+
if ( typeof window.history.pushState == 'function' ) {
|
7 |
+
var url = document.location.href;
|
8 |
+
var url2 = document.location.href;
|
9 |
+
url = fs_removeParam('bulk_flexible_shipping_labels', url);
|
10 |
+
url = fs_removeParam('bulk_flexible_shipping_send', url);
|
11 |
+
url = fs_trimChar(url,'?');
|
12 |
+
if ( url != url2 ) {
|
13 |
+
window.history.pushState({}, "", url);
|
14 |
+
}
|
15 |
+
}
|
16 |
+
})
|
17 |
+
|
18 |
+
function fs_removeParam(key, sourceURL) {
|
19 |
+
var rtn = sourceURL.split("?")[0],
|
20 |
+
param,
|
21 |
+
params_arr = [],
|
22 |
+
queryString = (sourceURL.indexOf("?") !== -1) ? sourceURL.split("?")[1] : "";
|
23 |
+
if (queryString !== "") {
|
24 |
+
params_arr = queryString.split("&");
|
25 |
+
for (var i = params_arr.length - 1; i >= 0; i -= 1) {
|
26 |
+
param = params_arr[i].split("=")[0];
|
27 |
+
if (param === key) {
|
28 |
+
params_arr.splice(i, 1);
|
29 |
+
}
|
30 |
+
}
|
31 |
+
rtn = rtn + "?" + params_arr.join("&");
|
32 |
+
}
|
33 |
+
return rtn;
|
34 |
+
}
|
35 |
+
function fs_trimChar(string, charToRemove) {
|
36 |
+
while(string.charAt(0)==charToRemove) {
|
37 |
+
string = string.substring(1);
|
38 |
+
}
|
39 |
+
|
40 |
+
while(string.charAt(string.length-1)==charToRemove) {
|
41 |
+
string = string.substring(0,string.length-1);
|
42 |
+
}
|
43 |
+
|
44 |
+
return string;
|
45 |
+
}
|
assets/js/admin.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
jQuery(document).ready(function(){if(jQuery("#flexible_shipping_labels_url").length){window.location.href=jQuery("#flexible_shipping_labels_url").attr("href")}if(typeof window.history.pushState=="function"){var a=document.location.href;var b=document.location.href;a=fs_removeParam("bulk_flexible_shipping_labels",a);a=fs_removeParam("bulk_flexible_shipping_send",a);a=fs_trimChar(a,"?");if(a!=b){window.history.pushState({},"",a)}}});function fs_removeParam(b,d){var e=d.split("?")[0],f,c=[],g=(d.indexOf("?")!==-1)?d.split("?")[1]:"";if(g!==""){c=g.split("&");for(var a=c.length-1;a>=0;a-=1){f=c[a].split("=")[0];if(f===b){c.splice(a,1)}}e=e+"?"+c.join("&")}return e}function fs_trimChar(b,a){while(b.charAt(0)==a){b=b.substring(1)}while(b.charAt(b.length-1)==a){b=b.substring(0,b.length-1)}return b};
|
classes/bulk-actions.php
ADDED
@@ -0,0 +1,258 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
4 |
+
|
5 |
+
if ( ! class_exists( 'WPDesk_Flexible_Shipping_Bulk_Actions' ) ) {
|
6 |
+
class WPDesk_Flexible_Shipping_Bulk_Actions {
|
7 |
+
|
8 |
+
public function __construct() {
|
9 |
+
$this->hooks();
|
10 |
+
}
|
11 |
+
|
12 |
+
public function hooks() {
|
13 |
+
|
14 |
+
$integrations = apply_filters( 'flexible_shipping_integration_options', array() );
|
15 |
+
|
16 |
+
if ( count( $integrations ) ) {
|
17 |
+
add_filter( 'manage_edit-shop_order_columns', array( $this, 'manage_edit_shop_order_columns' ), 11 );
|
18 |
+
add_action( 'manage_shop_order_posts_custom_column', array(
|
19 |
+
$this,
|
20 |
+
'manage_shop_order_posts_custom_column'
|
21 |
+
), 11 );
|
22 |
+
|
23 |
+
add_filter( 'bulk_actions-edit-shop_order', array( $this, 'bulk_actions_edit_shop_order' ) );
|
24 |
+
add_filter( 'handle_bulk_actions-edit-shop_order', array(
|
25 |
+
$this,
|
26 |
+
'handle_bulk_actions_edit_shop_order'
|
27 |
+
), 10, 3 );
|
28 |
+
|
29 |
+
add_action( 'restrict_manage_posts', array( $this, 'restrict_manage_posts' ), 9999 );
|
30 |
+
|
31 |
+
add_filter( 'parse_query', array( $this, 'parse_query' ), 666 );
|
32 |
+
|
33 |
+
add_action( 'admin_notices', array( $this, 'admin_notices' ) );
|
34 |
+
|
35 |
+
add_action( 'admin_init', array( $this, 'admin_init' ), 1 );
|
36 |
+
}
|
37 |
+
|
38 |
+
add_filter( 'flexible_shipping_status', array( $this, 'flexible_shipping_status' ) );
|
39 |
+
|
40 |
+
}
|
41 |
+
|
42 |
+
public function flexible_shipping_status( $statuses ) {
|
43 |
+
$statuses['new'] = __( 'New', 'flexible-shipping' );
|
44 |
+
$statuses['created'] = __( 'Created', 'flexible-shipping' );
|
45 |
+
$statuses['confirmed'] = __( 'Confirmed', 'flexible-shipping' );
|
46 |
+
$statuses['failed'] = __( 'Failed', 'flexible-shipping' );
|
47 |
+
return $statuses;
|
48 |
+
}
|
49 |
+
|
50 |
+
public function parse_query( $query ) {
|
51 |
+
global $pagenow;
|
52 |
+
$type = 'shop_order';
|
53 |
+
if ( isset( $_GET['post_type'] ) ) {
|
54 |
+
$type = $_GET['post_type'];
|
55 |
+
}
|
56 |
+
if ( isset( $query->query_vars['post_type'] ) && $query->query_vars['post_type'] == 'shop_order' ) {
|
57 |
+
if ( 'shop_order' == $type && is_admin() && 'edit.php' == $pagenow ) {
|
58 |
+
$integration = '';
|
59 |
+
if ( isset( $_GET['flexible_shipping_integration_filter'] ) ) {
|
60 |
+
$integration = $_GET['flexible_shipping_integration_filter'];
|
61 |
+
}
|
62 |
+
$status = '';
|
63 |
+
if ( isset( $_GET['flexible_shipping_status_filter'] ) ) {
|
64 |
+
$status = $_GET['flexible_shipping_status_filter'];
|
65 |
+
}
|
66 |
+
if ( $integration != '' ) {
|
67 |
+
if ( !isset( $query->query_vars['meta_query'] ) ) {
|
68 |
+
$query->query_vars['meta_query'] = array();
|
69 |
+
}
|
70 |
+
$meta_query = array();
|
71 |
+
$meta_query['key'] = '_flexible_shipping_integration';
|
72 |
+
$meta_query['value'] = $integration;
|
73 |
+
$query->query_vars['meta_query'][] = $meta_query;
|
74 |
+
}
|
75 |
+
if ( $status != '' ) {
|
76 |
+
if ( !isset( $query->query_vars['meta_query'] ) ) {
|
77 |
+
$query->query_vars['meta_query'] = array();
|
78 |
+
}
|
79 |
+
$meta_query = array();
|
80 |
+
$meta_query['key'] = '_flexible_shipping_status';
|
81 |
+
$meta_query['value'] = $status;
|
82 |
+
$query->query_vars['meta_query'][] = $meta_query;
|
83 |
+
}
|
84 |
+
}
|
85 |
+
}
|
86 |
+
}
|
87 |
+
|
88 |
+
public function restrict_manage_posts() {
|
89 |
+
|
90 |
+
if ( apply_filters( 'flexible_shipping_disable_order_filters', false ) ) {
|
91 |
+
return;
|
92 |
+
}
|
93 |
+
|
94 |
+
global $typenow;
|
95 |
+
if ( 'shop_order' == $typenow ){
|
96 |
+
$integrations = apply_filters( 'flexible_shipping_integration_options', array() );
|
97 |
+
$statuses = apply_filters( 'flexible_shipping_status', array() );
|
98 |
+
$integration = '';
|
99 |
+
if ( isset( $_GET['flexible_shipping_integration_filter'] ) ) {
|
100 |
+
$integration = $_GET['flexible_shipping_integration_filter'];
|
101 |
+
}
|
102 |
+
$status = '';
|
103 |
+
if ( isset( $_GET['flexible_shipping_status_filter'] ) ) {
|
104 |
+
$status = $_GET['flexible_shipping_status_filter'];
|
105 |
+
}
|
106 |
+
include( 'views/html-orders-filter-form.php' );
|
107 |
+
}
|
108 |
+
}
|
109 |
+
|
110 |
+
public function manage_shop_order_posts_custom_column( $column ) {
|
111 |
+
global $post, $woocommerce, $the_order;
|
112 |
+
if ( $column == 'flexible_shipping' ) {
|
113 |
+
$classes = array(
|
114 |
+
'error' => 'failed',
|
115 |
+
'new' => 'on-hold',
|
116 |
+
'created' => 'processing created',
|
117 |
+
'confirmed' => 'processing confirmed',
|
118 |
+
);
|
119 |
+
$statuses = array(
|
120 |
+
'error' => __( 'Error', 'flexible-shipping' ),
|
121 |
+
'new' => __( 'New shipping', 'flexible-shipping' ),
|
122 |
+
'created' => __( 'Created', 'flexible-shipping' ),
|
123 |
+
'confirmed' => __( 'Confirmed', 'flexible-shipping' ),
|
124 |
+
);
|
125 |
+
$shippings = array();
|
126 |
+
$shippings = apply_filters( 'flexible_shipping_shipping_data', $shippings );
|
127 |
+
if( !session_id() ) {
|
128 |
+
session_start();
|
129 |
+
}
|
130 |
+
foreach ( $shippings as $shipping ) {
|
131 |
+
if ( $shipping['status'] == 'error' ) {
|
132 |
+
$statuses['error'] = $shipping['error'];
|
133 |
+
}
|
134 |
+
else {
|
135 |
+
$statuses['error'] = __( 'Error', 'flexible-shipping' );
|
136 |
+
}
|
137 |
+
include( 'views/html-column-shipping-shipping.php' );
|
138 |
+
}
|
139 |
+
$messages = array();
|
140 |
+
if ( isset( $_SESSION['flexible_shipping_bulk_send'] ) ) {
|
141 |
+
$messages = $_SESSION['flexible_shipping_bulk_send'];
|
142 |
+
}
|
143 |
+
if ( isset( $messages[$post->ID] ) ) {
|
144 |
+
//include( 'views/html-column-shipping-message.php' );
|
145 |
+
unset( $messages[$post->ID] );
|
146 |
+
}
|
147 |
+
$_SESSION['flexible_shipping_bulk_send'] = $messages;
|
148 |
+
}
|
149 |
+
}
|
150 |
+
|
151 |
+
public function manage_edit_shop_order_columns( $columns ) {
|
152 |
+
if ( isset( $columns['flexible_shipping'] ) ) {
|
153 |
+
return $columns;
|
154 |
+
}
|
155 |
+
$ret = array();
|
156 |
+
foreach ( $columns as $key => $column ) {
|
157 |
+
if ( $key == 'order_actions' ) {
|
158 |
+
$ret['flexible_shipping'] = __( 'Shipping', 'flexible-shipping' );
|
159 |
+
}
|
160 |
+
$ret[$key] = $column;
|
161 |
+
}
|
162 |
+
return $ret;
|
163 |
+
}
|
164 |
+
|
165 |
+
function bulk_actions_edit_shop_order( $bulk_actions ) {
|
166 |
+
$bulk_actions['flexible_shipping_send'] = __( 'Send shipping', 'flexible-shipping');
|
167 |
+
$bulk_actions['flexible_shipping_labels'] = __( 'Get labels', 'flexible-shipping');
|
168 |
+
return $bulk_actions;
|
169 |
+
}
|
170 |
+
|
171 |
+
public function handle_bulk_actions_edit_shop_order( $redirect_to, $doaction, $post_ids ) {
|
172 |
+
if ( $doaction == 'flexible_shipping_send' ) {
|
173 |
+
$messages = array();
|
174 |
+
foreach ( $post_ids as $post_id ) {
|
175 |
+
$messages[$post_id] = apply_filters(
|
176 |
+
'flexible_shipping_bulk_send',
|
177 |
+
array( 'status' => 'none', 'message' => __( 'No action performed.', 'flexible-shipping' )
|
178 |
+
), $post_id );
|
179 |
+
}
|
180 |
+
if ( ! session_id() ) {
|
181 |
+
session_start();
|
182 |
+
}
|
183 |
+
$_SESSION['flexible_shipping_bulk_send'] = $messages;
|
184 |
+
$redirect_to = add_query_arg( 'bulk_flexible_shipping_send', count( $post_ids ), $redirect_to );
|
185 |
+
}
|
186 |
+
if ( $doaction == 'flexible_shipping_labels' ) {
|
187 |
+
$labels = array();
|
188 |
+
foreach ( $post_ids as $post_id ) {
|
189 |
+
$labels = apply_filters( 'flexible_shipping_bulk_label', $labels, $post_id );
|
190 |
+
}
|
191 |
+
$tmp_zip = tempnam ( 'tmp', 'labels_' ) . '.zip';
|
192 |
+
$zip = new ZipArchive();
|
193 |
+
if ( !$zip->open( $tmp_zip, ZIPARCHIVE::CREATE) ) {
|
194 |
+
$labels['error'] = __( 'Unable to create temporary zip archive for labels. Check temporary folder configuration on server.', 'flexible-shipping' );
|
195 |
+
}
|
196 |
+
else {
|
197 |
+
foreach ( $labels as $label ) {
|
198 |
+
if ( isset( $label['content'] ) ) {
|
199 |
+
$zip->addFromString( $label['file_name'], $label['content'] );
|
200 |
+
}
|
201 |
+
}
|
202 |
+
$labels['tmp_zip'] = $tmp_zip;
|
203 |
+
$zip->close();
|
204 |
+
if ( ! session_id() ) {
|
205 |
+
session_start();
|
206 |
+
}
|
207 |
+
$_SESSION['flexible_shipping_bulk_labels'] = $labels;
|
208 |
+
$redirect_to = add_query_arg( 'bulk_flexible_shipping_labels', count( $post_ids ), $redirect_to );
|
209 |
+
}
|
210 |
+
}
|
211 |
+
return $redirect_to;
|
212 |
+
}
|
213 |
+
|
214 |
+
public function admin_notices() {
|
215 |
+
if ( ! empty( $_REQUEST['bulk_flexible_shipping_send'] ) ) {
|
216 |
+
$bulk_flexible_shipping_send_count = intval( $_REQUEST['bulk_flexible_shipping_send'] );
|
217 |
+
printf( '<div id="message" class="updated fade"><p>' .
|
218 |
+
__( 'Bulk send shipping - processed orders: %d' ).
|
219 |
+
'</p></div>', $bulk_flexible_shipping_send_count
|
220 |
+
);
|
221 |
+
}
|
222 |
+
if ( ! empty( $_REQUEST['bulk_flexible_shipping_labels'] ) ) {
|
223 |
+
$bulk_flexible_shipping_labels_count = intval( $_REQUEST['bulk_flexible_shipping_labels'] );
|
224 |
+
if ( ! session_id() ) {
|
225 |
+
session_start();
|
226 |
+
}
|
227 |
+
$labels = array();
|
228 |
+
if ( isset( $_SESSION['flexible_shipping_bulk_labels'] ) ) {
|
229 |
+
$labels = $_SESSION['flexible_shipping_bulk_labels'];
|
230 |
+
}
|
231 |
+
$nonce = wp_create_nonce( 'flexible_shipping_labels' );
|
232 |
+
printf( '<div id="message" class="updated fade"><p>' .
|
233 |
+
__( 'Bulk labels - processed orders: %d. If download not start automatically click %shere%s.' ).
|
234 |
+
'</p></div>', $bulk_flexible_shipping_labels_count, '<a id="flexible_shipping_labels_url" target="_blank" href=' . admin_url( '?flexible_shipping_labels=' . basename( $labels['tmp_zip'] ) . '&nonce=' . $nonce ) . '>', '</a>'
|
235 |
+
);
|
236 |
+
}
|
237 |
+
}
|
238 |
+
|
239 |
+
public function admin_init() {
|
240 |
+
if ( isset( $_GET['flexible_shipping_labels'] ) && isset( $_GET['nonce'] ) ) {
|
241 |
+
if ( wp_verify_nonce( $_GET['nonce'], 'flexible_shipping_labels' ) ) {
|
242 |
+
$file = trailingslashit( sys_get_temp_dir() ) . $_GET['flexible_shipping_labels'];
|
243 |
+
header( 'Content-Description: File Transfer' );
|
244 |
+
header( 'Content-Type: application/octet-stream' );
|
245 |
+
header( 'Content-Disposition: attachment; filename="' . basename( $file ) . '"' );
|
246 |
+
header( 'Expires: 0' );
|
247 |
+
header( 'Cache-Control: must-revalidate' );
|
248 |
+
header( 'Pragma: public' );
|
249 |
+
header( 'Content-Length: ' . filesize( $file ) );
|
250 |
+
readfile( $file );
|
251 |
+
unlink( $file );
|
252 |
+
die();
|
253 |
+
}
|
254 |
+
}
|
255 |
+
}
|
256 |
+
|
257 |
+
}
|
258 |
+
}
|
classes/settings-shipping-method-form.php
CHANGED
@@ -21,6 +21,10 @@ if ( !isset( $shipping_method['method_free_shipping_label'] ) ) {
|
|
21 |
|
22 |
$this->settings['method_free_shipping'] = $shipping_method['method_free_shipping'];
|
23 |
|
|
|
|
|
|
|
|
|
24 |
$settings = array(
|
25 |
'method_enabled' => array(
|
26 |
'title' => __( 'Enable/Disable', 'flexible-shipping' ),
|
21 |
|
22 |
$this->settings['method_free_shipping'] = $shipping_method['method_free_shipping'];
|
23 |
|
24 |
+
if ( empty( $shipping_method['method_integration'] ) ) {
|
25 |
+
$shipping_method['method_integration'] = '';
|
26 |
+
}
|
27 |
+
|
28 |
$settings = array(
|
29 |
'method_enabled' => array(
|
30 |
'title' => __( 'Enable/Disable', 'flexible-shipping' ),
|
classes/shipping_method.php
CHANGED
@@ -183,7 +183,7 @@ if ( ! class_exists( 'WPDesk_Flexible_Shipping' ) ) {
|
|
183 |
$this->form_fields = include( 'settings-flexible-shipping.php' );
|
184 |
}
|
185 |
|
186 |
-
public function update_rates($shipping_methods) {
|
187 |
$rates = array();
|
188 |
foreach ( $shipping_methods as $shipping_method ) {
|
189 |
$id = $this->id . '_' . $this->instance_id . '_' . sanitize_title($shipping_method['method_title'] );
|
@@ -490,7 +490,9 @@ if ( ! class_exists( 'WPDesk_Flexible_Shipping' ) ) {
|
|
490 |
}
|
491 |
else {
|
492 |
parent::process_admin_options();
|
493 |
-
|
|
|
|
|
494 |
}
|
495 |
}
|
496 |
}
|
@@ -615,34 +617,6 @@ if ( ! class_exists( 'WPDesk_Flexible_Shipping' ) ) {
|
|
615 |
?>
|
616 |
</table>
|
617 |
<script type="text/javascript">
|
618 |
-
function fs_removeParam(key, sourceURL) {
|
619 |
-
var rtn = sourceURL.split("?")[0],
|
620 |
-
param,
|
621 |
-
params_arr = [],
|
622 |
-
queryString = (sourceURL.indexOf("?") !== -1) ? sourceURL.split("?")[1] : "";
|
623 |
-
if (queryString !== "") {
|
624 |
-
params_arr = queryString.split("&");
|
625 |
-
for (var i = params_arr.length - 1; i >= 0; i -= 1) {
|
626 |
-
param = params_arr[i].split("=")[0];
|
627 |
-
if (param === key) {
|
628 |
-
params_arr.splice(i, 1);
|
629 |
-
}
|
630 |
-
}
|
631 |
-
rtn = rtn + "?" + params_arr.join("&");
|
632 |
-
}
|
633 |
-
return rtn;
|
634 |
-
}
|
635 |
-
function fs_trimChar(string, charToRemove) {
|
636 |
-
while(string.charAt(0)==charToRemove) {
|
637 |
-
string = string.substring(1);
|
638 |
-
}
|
639 |
-
|
640 |
-
while(string.charAt(string.length-1)==charToRemove) {
|
641 |
-
string = string.substring(0,string.length-1);
|
642 |
-
}
|
643 |
-
|
644 |
-
return string;
|
645 |
-
}
|
646 |
if ( typeof window.history.pushState == 'function' ) {
|
647 |
var url = document.location.href;
|
648 |
url = fs_removeParam('action', url);
|
@@ -825,7 +799,8 @@ if ( ! class_exists( 'WPDesk_Flexible_Shipping' ) ) {
|
|
825 |
'method' => $shipping_method,
|
826 |
'rule_costs' => $rule_costs,
|
827 |
'meta_data' => array(
|
828 |
-
'
|
|
|
829 |
)
|
830 |
) );
|
831 |
if ( isset( $shipping_method['method_description'] ) ) {
|
183 |
$this->form_fields = include( 'settings-flexible-shipping.php' );
|
184 |
}
|
185 |
|
186 |
+
public function update_rates( $shipping_methods ) {
|
187 |
$rates = array();
|
188 |
foreach ( $shipping_methods as $shipping_method ) {
|
189 |
$id = $this->id . '_' . $this->instance_id . '_' . sanitize_title($shipping_method['method_title'] );
|
490 |
}
|
491 |
else {
|
492 |
parent::process_admin_options();
|
493 |
+
if ( isset( $_POST['method_order'] ) ) {
|
494 |
+
update_option( $this->shipping_method_order_option, $_POST['method_order'] );
|
495 |
+
}
|
496 |
}
|
497 |
}
|
498 |
}
|
617 |
?>
|
618 |
</table>
|
619 |
<script type="text/javascript">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
620 |
if ( typeof window.history.pushState == 'function' ) {
|
621 |
var url = document.location.href;
|
622 |
url = fs_removeParam('action', url);
|
799 |
'method' => $shipping_method,
|
800 |
'rule_costs' => $rule_costs,
|
801 |
'meta_data' => array(
|
802 |
+
'_default' => $shipping_method['method_default'],
|
803 |
+
'_fs_method' => $shipping_method
|
804 |
)
|
805 |
) );
|
806 |
if ( isset( $shipping_method['method_description'] ) ) {
|
classes/views/html-column-shipping-message.php
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
|
2 |
+
<div class="flexible_shipping_message">
|
3 |
+
<span class="<?php echo $messages[$post->ID]['status']; ?>">
|
4 |
+
<?php echo $messages[$post->ID]['message']; ?>
|
5 |
+
</span>
|
6 |
+
</div>
|
classes/views/html-column-shipping-shipping.php
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php if ( ! defined( 'ABSPATH' ) ) exit; ?>
|
2 |
+
<div class="shipping">
|
3 |
+
<div class="shipping-status column-order_status">
|
4 |
+
<a href="<?php echo $shipping['url']; ?>">
|
5 |
+
<mark class="<?php echo $classes[$shipping['status']]; ?> tips" data-tip="<?php echo $statuses[$shipping['status']]; ?>"><?php echo $statuses[$shipping['status']]; ?></mark>
|
6 |
+
</a>
|
7 |
+
<?php do_action( 'flexible_shipping_shipping_status_html', $shipping ); ?>
|
8 |
+
</div>
|
9 |
+
<div class="shipping-actions order_actions">
|
10 |
+
<?php if ( isset( $shipping['label_url'] ) ) : ?>
|
11 |
+
<a class="button tips get-label" target="_blank" href="<?php echo $shipping['label_url']; ?>" data-tip="<?php _e( 'Get label for: ', 'flexible-shipping' ); ?><?php echo $shipping['tracking_number']; ?>"><?php _e( 'Get label for: ', 'flexible-shipping' ); ?><?php echo $shipping['tracking_number']; ?></a>
|
12 |
+
<?php endif; ?>
|
13 |
+
<?php if ( isset( $shipping['tracking_url'] ) ) : ?>
|
14 |
+
<a class="button tips track" target="_blank" href="<?php echo $shipping['tracking_url']; ?>" data-tip="<?php _e( 'Track shipment for: ', 'flexible-shipping' ); ?><?php echo $shipping['tracking_number']; ?>"><?php _e( 'Track shipment for: ', 'flexible-shipping' ); ?><?php echo $shipping['tracking_number']; ?></a>
|
15 |
+
<?php endif; ?>
|
16 |
+
<?php do_action( 'flexible_shipping_shipping_actions_html', $shipping ); ?>
|
17 |
+
</div>
|
18 |
+
<div style="clear: both;"></div>
|
19 |
+
<?php do_action( 'flexible_shipping_shipping_html', $shipping ); ?>
|
20 |
+
</div>
|
classes/views/html-orders-filter-form.php
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php ?>
|
2 |
+
<div class="alignleft actions">
|
3 |
+
<select name="flexible_shipping_integration_filter">
|
4 |
+
<option value=""><?php _e( 'All shippings', 'flexible-shipping' ); ?></option>
|
5 |
+
<optgroup label="<?php _e( 'Integration', 'flexible-shipping' ); ?>">
|
6 |
+
<?php foreach ( $integrations as $key => $val ) : ?>
|
7 |
+
<option value="<?php echo $key; ?>" <?php echo ($key == $integration ? 'selected' : '' ); ?>><?php echo $val; ?></option>
|
8 |
+
<?php endforeach; ?>
|
9 |
+
</optgroup>
|
10 |
+
</select>
|
11 |
+
<select name="flexible_shipping_status_filter">
|
12 |
+
<option value=""><?php _e( 'All shippings', 'flexible-shipping' ); ?></option>
|
13 |
+
<optgroup label="<?php _e( 'Shipment status', 'flexible-shipping' ); ?>">
|
14 |
+
<?php foreach ( $statuses as $key => $val ) : ?>
|
15 |
+
<option value="<?php echo $key; ?>" <?php echo ($key == $status ? 'selected' : '' ); ?>><?php echo $val; ?></option>
|
16 |
+
<?php endforeach; ?>
|
17 |
+
</optgroup>
|
18 |
+
</select>
|
19 |
+
</div>
|
classes/views/html-shipping-method-rules.php
CHANGED
@@ -230,7 +230,7 @@
|
|
230 |
$zone = WC_Shipping_Zones::get_zone_by( 'instance_id', $_GET['instance_id'] );
|
231 |
$shipping_method_woo = WC_Shipping_Zones::get_shipping_method( $_GET['instance_id'] );
|
232 |
$content = '<a href="' . admin_url( 'admin.php?page=wc-settings&tab=shipping' ) . '">' . __( 'Shipping Zones', 'woocommerce' ) . '</a> > ';
|
233 |
-
$content .= '<a href="' . admin_url( 'admin.php?page=wc-settings&tab=shipping&zone_id=' . absint( $zone->
|
234 |
$content .= '<a href="' . admin_url( 'admin.php?page=wc-settings&tab=shipping&instance_id=' . $_GET['instance_id'] ) . '">' . esc_html( $shipping_method_woo->get_title() ) . '</a>';
|
235 |
if ( isset( $data['method_title'] ) && $data['method_title'] != '' ) {
|
236 |
$content .= ' > ';
|
230 |
$zone = WC_Shipping_Zones::get_zone_by( 'instance_id', $_GET['instance_id'] );
|
231 |
$shipping_method_woo = WC_Shipping_Zones::get_shipping_method( $_GET['instance_id'] );
|
232 |
$content = '<a href="' . admin_url( 'admin.php?page=wc-settings&tab=shipping' ) . '">' . __( 'Shipping Zones', 'woocommerce' ) . '</a> > ';
|
233 |
+
$content .= '<a href="' . admin_url( 'admin.php?page=wc-settings&tab=shipping&zone_id=' . absint( $zone->get_id() ) ) . '">' . esc_html( $zone->get_zone_name() ) . '</a> > ';
|
234 |
$content .= '<a href="' . admin_url( 'admin.php?page=wc-settings&tab=shipping&instance_id=' . $_GET['instance_id'] ) . '">' . esc_html( $shipping_method_woo->get_title() ) . '</a>';
|
235 |
if ( isset( $data['method_title'] ) && $data['method_title'] != '' ) {
|
236 |
$content .= ' > ';
|
classes/views/html-shipping-method-settings.php
CHANGED
@@ -76,8 +76,8 @@
|
|
76 |
<input id="flexible_shipping_import_file" type="file" name="import_file" style="display:none;" accept=".csv" />
|
77 |
<input id="flexible_shipping_import_action" type="hidden" name="import_action" value="0" />
|
78 |
<button id="flexible_shipping_import_cancel" class="button" style="display:none;"><?php _e( 'Cancel import', 'flexible-shipping' ); ?></button>
|
79 |
-
<input id="flexible_shipping_do_import" style="display:none;" class="button button-primary" data-instance-id="<?php echo $_GET['instance_id']; ?>" data-nonce="<?php echo wp_create_nonce( "flexible_shipping" ); ?>" type="submit" value="<?php _e( 'Import', 'flexible-shipping' ); ?>" />
|
80 |
-
<button id="flexible_shipping_import" class="button" data-instance-id="<?php
|
81 |
<?php do_action( 'flexible_shipping_actions_row' ); ?>
|
82 |
</div>
|
83 |
<div style="clear:both;"></div>
|
@@ -96,18 +96,28 @@
|
|
96 |
include ( 'html-ads.php' );
|
97 |
?>
|
98 |
|
99 |
-
<?php
|
100 |
-
if( version_compare( WC()->version, '2.6.0', ">=" ) ) {
|
101 |
-
?>
|
102 |
<script type="text/javascript">
|
103 |
<?php
|
104 |
-
|
105 |
-
$shipping_method_woo = WC_Shipping_Zones::get_shipping_method( $_GET['instance_id'] );
|
106 |
-
$content = '<a href="' . admin_url( 'admin.php?page=wc-settings&tab=shipping' ) . '">' . __( 'Shipping Zones', 'woocommerce' ) . '</a> > ';
|
107 |
-
$content .= '<a href="' . admin_url( 'admin.php?page=wc-settings&tab=shipping&zone_id=' . absint( $zone->get_zone_id() ) ) . '">' . esc_html( $zone->get_zone_name() ) . '</a> >';
|
108 |
-
$content .= esc_html( $shipping_method_woo->get_title() );
|
109 |
?>
|
110 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
|
112 |
jQuery("input.checkbox-select-all").click(function(){
|
113 |
if ( jQuery(this).is(':checked') ) {
|
@@ -183,13 +193,6 @@
|
|
183 |
return false;
|
184 |
})
|
185 |
|
186 |
-
<?php
|
187 |
-
global $wp;
|
188 |
-
$current_url = 'admin.php?page=wc-settings&tab=shipping&instance_id=' . $_GET['instance_id'];
|
189 |
-
?>
|
190 |
-
|
191 |
-
jQuery('#mainform').attr('action', '<?php echo $current_url; ?>' );
|
192 |
-
|
193 |
<?php
|
194 |
if ( isset( $_POST['import_action'] ) && $_POST['import_action'] == '1' ) {
|
195 |
?>
|
@@ -199,7 +202,4 @@
|
|
199 |
}
|
200 |
?>
|
201 |
</script>
|
202 |
-
<?php
|
203 |
-
}
|
204 |
-
?>
|
205 |
<?php
|
76 |
<input id="flexible_shipping_import_file" type="file" name="import_file" style="display:none;" accept=".csv" />
|
77 |
<input id="flexible_shipping_import_action" type="hidden" name="import_action" value="0" />
|
78 |
<button id="flexible_shipping_import_cancel" class="button" style="display:none;"><?php _e( 'Cancel import', 'flexible-shipping' ); ?></button>
|
79 |
+
<input id="flexible_shipping_do_import" style="display:none;" class="button button-primary" data-instance-id="<?php echo isset( $_GET['instance_id'] ) ? $_GET['instance_id'] : '1'; ?>" data-nonce="<?php echo wp_create_nonce( "flexible_shipping" ); ?>" type="submit" value="<?php _e( 'Import', 'flexible-shipping' ); ?>" />
|
80 |
+
<button id="flexible_shipping_import" class="button" data-instance-id="<?php isset( $_GET['instance_id'] ) ? $_GET['instance_id'] : '1'; ?>" data-nonce="<?php echo wp_create_nonce( "flexible_shipping" ); ?>" ><?php _e( 'Import', 'flexible-shipping' ); ?></button>
|
81 |
<?php do_action( 'flexible_shipping_actions_row' ); ?>
|
82 |
</div>
|
83 |
<div style="clear:both;"></div>
|
96 |
include ( 'html-ads.php' );
|
97 |
?>
|
98 |
|
|
|
|
|
|
|
99 |
<script type="text/javascript">
|
100 |
<?php
|
101 |
+
if( version_compare( WC()->version, '2.6.0', ">=" ) ) :
|
|
|
|
|
|
|
|
|
102 |
?>
|
103 |
+
<?php
|
104 |
+
$zone = WC_Shipping_Zones::get_zone_by( 'instance_id', $_GET['instance_id'] );
|
105 |
+
$shipping_method_woo = WC_Shipping_Zones::get_shipping_method( $_GET['instance_id'] );
|
106 |
+
$content = '<a href="' . admin_url( 'admin.php?page=wc-settings&tab=shipping' ) . '">' . __( 'Shipping Zones', 'woocommerce' ) . '</a> > ';
|
107 |
+
$content .= '<a href="' . admin_url( 'admin.php?page=wc-settings&tab=shipping&zone_id=' . absint( $zone->get_id() ) ) . '">' . esc_html( $zone->get_zone_name() ) . '</a> >';
|
108 |
+
$content .= esc_html( $shipping_method_woo->get_title() );
|
109 |
+
?>
|
110 |
+
jQuery('#mainform h2').first().replaceWith( '<h2>' + '<?php echo $content; ?>' + '</h2>' );
|
111 |
+
|
112 |
+
<?php
|
113 |
+
global $wp;
|
114 |
+
$current_url = 'admin.php?page=wc-settings&tab=shipping&instance_id=' . $_GET['instance_id'];
|
115 |
+
?>
|
116 |
+
|
117 |
+
jQuery('#mainform').attr('action', '<?php echo $current_url; ?>' );
|
118 |
+
<?php
|
119 |
+
endif;
|
120 |
+
?>
|
121 |
|
122 |
jQuery("input.checkbox-select-all").click(function(){
|
123 |
if ( jQuery(this).is(':checked') ) {
|
193 |
return false;
|
194 |
})
|
195 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
<?php
|
197 |
if ( isset( $_POST['import_action'] ) && $_POST['import_action'] == '1' ) {
|
198 |
?>
|
202 |
}
|
203 |
?>
|
204 |
</script>
|
|
|
|
|
|
|
205 |
<?php
|
flexible-shipping.php
CHANGED
@@ -3,14 +3,14 @@
|
|
3 |
Plugin Name: Flexible Shipping
|
4 |
Plugin URI: https://wordpress.org/plugins/flexible-shipping/
|
5 |
Description: Create additional shipping methods in WooCommerce and enable pricing based on cart weight or total.
|
6 |
-
Version: 1.
|
7 |
Author: WP Desk
|
8 |
Author URI: https://www.wpdesk.net/
|
9 |
Text Domain: flexible-shipping
|
10 |
Domain Path: /languages/
|
11 |
-
Tested up to: 4.7.
|
12 |
|
13 |
-
Copyright
|
14 |
|
15 |
This program is free software; you can redistribute it and/or modify
|
16 |
it under the terms of the GNU General Public License as published by
|
@@ -52,15 +52,20 @@ if ( wpdesk_is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
|
|
52 |
|
53 |
class WPDesk_Flexible_Shipping_Free_Plugin extends inspire_Plugin4 {
|
54 |
|
|
|
|
|
55 |
protected $_pluginNamespace = "flexible-shipping";
|
56 |
|
57 |
public function __construct() {
|
58 |
parent::__construct();
|
59 |
-
add_action('plugins_loaded', array($this, 'init_flexible_shipping'), 1000 );
|
60 |
}
|
61 |
|
62 |
public function init_flexible_shipping() {
|
63 |
|
|
|
|
|
|
|
64 |
require_once('classes/shipping_method.php');
|
65 |
add_action( 'admin_enqueue_scripts', array($this, 'enqueue_admin_scripts'), 75 );
|
66 |
add_action( 'admin_notices', array( $this, 'admin_notices' ) );
|
@@ -73,6 +78,20 @@ if ( wpdesk_is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
|
|
73 |
|
74 |
add_filter( 'woocommerce_shipping_chosen_method', array( $this, 'woocommerce_shipping_chosen_method' ), 10, 2);
|
75 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
add_action( 'init', array( $this, 'init_polylang') );
|
77 |
add_action( 'admin_init', array( $this, 'init_wpml') );
|
78 |
|
@@ -96,6 +115,37 @@ if ( wpdesk_is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
|
|
96 |
|
97 |
}
|
98 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
function woocommerce_shipping_chosen_method( $method, $available_methods ) {
|
100 |
$chosen_shipping_methods = WC()->session->get( 'chosen_shipping_methods', array() );
|
101 |
if ( isset( $chosen_shipping_methods[0] ) ) {
|
@@ -390,13 +440,11 @@ if ( wpdesk_is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
|
|
390 |
|
391 |
function enqueue_admin_scripts() {
|
392 |
$current_screen = get_current_screen();
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
if ( $current_screen->id === 'woocommerce_page_wc-settings' )
|
399 |
-
wp_enqueue_style( 'flexible-shipping-admin', $this->getPluginUrl() . 'assets/css/admin.css' );
|
400 |
}
|
401 |
|
402 |
function enqueue_scripts() {
|
@@ -493,23 +541,37 @@ if ( wpdesk_is_plugin_active( 'woocommerce/woocommerce.php' ) ) {
|
|
493 |
return false;
|
494 |
}
|
495 |
|
496 |
-
function flexible_shipping_method_selected( $
|
497 |
-
|
|
|
|
|
498 |
$shippings = $order->get_shipping_methods();
|
499 |
$all_shipping_methods = WC()->shipping()->get_shipping_methods();
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
|
|
507 |
}
|
508 |
}
|
509 |
}
|
510 |
return false;
|
511 |
}
|
512 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
513 |
if ( !function_exists('wpdesk_redirect') ) {
|
514 |
function wpdesk_redirect( $redirect ) {
|
515 |
if ( 1==1 && headers_sent() ) {
|
3 |
Plugin Name: Flexible Shipping
|
4 |
Plugin URI: https://wordpress.org/plugins/flexible-shipping/
|
5 |
Description: Create additional shipping methods in WooCommerce and enable pricing based on cart weight or total.
|
6 |
+
Version: 1.9
|
7 |
Author: WP Desk
|
8 |
Author URI: https://www.wpdesk.net/
|
9 |
Text Domain: flexible-shipping
|
10 |
Domain Path: /languages/
|
11 |
+
Tested up to: 4.7.3
|
12 |
|
13 |
+
Copyright 2017 WP Desk Ltd.
|
14 |
|
15 |
This program is free software; you can redistribute it and/or modify
|
16 |
it under the terms of the GNU General Public License as published by
|
52 |
|
53 |
class WPDesk_Flexible_Shipping_Free_Plugin extends inspire_Plugin4 {
|
54 |
|
55 |
+
private $scripts_version = '17';
|
56 |
+
|
57 |
protected $_pluginNamespace = "flexible-shipping";
|
58 |
|
59 |
public function __construct() {
|
60 |
parent::__construct();
|
61 |
+
add_action( 'plugins_loaded', array($this, 'init_flexible_shipping'), 1000 );
|
62 |
}
|
63 |
|
64 |
public function init_flexible_shipping() {
|
65 |
|
66 |
+
require_once('classes/bulk-actions.php');
|
67 |
+
new WPDesk_Flexible_Shipping_Bulk_Actions();
|
68 |
+
|
69 |
require_once('classes/shipping_method.php');
|
70 |
add_action( 'admin_enqueue_scripts', array($this, 'enqueue_admin_scripts'), 75 );
|
71 |
add_action( 'admin_notices', array( $this, 'admin_notices' ) );
|
78 |
|
79 |
add_filter( 'woocommerce_shipping_chosen_method', array( $this, 'woocommerce_shipping_chosen_method' ), 10, 2);
|
80 |
|
81 |
+
if ( version_compare( WC_VERSION, '2.7', '<' ) ) {
|
82 |
+
add_action( 'woocommerce_checkout_update_order_meta', array(
|
83 |
+
$this,
|
84 |
+
'woocommerce_checkout_update_order_meta'
|
85 |
+
) );
|
86 |
+
}
|
87 |
+
else {
|
88 |
+
add_action( 'woocommerce_checkout_create_order', array(
|
89 |
+
$this,
|
90 |
+
'woocommerce_checkout_create_order'
|
91 |
+
) );
|
92 |
+
}
|
93 |
+
|
94 |
+
|
95 |
add_action( 'init', array( $this, 'init_polylang') );
|
96 |
add_action( 'admin_init', array( $this, 'init_wpml') );
|
97 |
|
115 |
|
116 |
}
|
117 |
|
118 |
+
public function woocommerce_checkout_create_order( WC_Order $order ) {
|
119 |
+
$order_shipping_methods = $order->get_shipping_methods();
|
120 |
+
foreach ( $order_shipping_methods as $key => $shipping_method ) {
|
121 |
+
if ( isset( $shipping_method['item_meta'] )
|
122 |
+
&& isset( $shipping_method['item_meta']['_fs_method'] )
|
123 |
+
) {
|
124 |
+
$fs_method = $shipping_method['item_meta']['_fs_method'];
|
125 |
+
if ( !empty( $fs_method['method_integration'] ) ) {
|
126 |
+
$order->add_meta_data( '_flexible_shipping_integration', $fs_method['method_integration'] );
|
127 |
+
}
|
128 |
+
}
|
129 |
+
}
|
130 |
+
}
|
131 |
+
|
132 |
+
|
133 |
+
public function woocommerce_checkout_update_order_meta( $order_id ) {
|
134 |
+
$order = wc_get_order( $order_id );
|
135 |
+
$order_shipping_methods = $order->get_shipping_methods();
|
136 |
+
foreach ( $order_shipping_methods as $key => $shipping_method ) {
|
137 |
+
if ( isset( $shipping_method['item_meta'] )
|
138 |
+
&& isset( $shipping_method['item_meta']['_fs_method'] )
|
139 |
+
&& isset( $shipping_method['item_meta']['_fs_method'][0] )
|
140 |
+
) {
|
141 |
+
$fs_method = unserialize( $shipping_method['item_meta']['_fs_method'][0] );
|
142 |
+
if ( !empty( $fs_method['method_integration'] ) ) {
|
143 |
+
add_post_meta( $order->id, '_flexible_shipping_integration', $fs_method['method_integration'] );
|
144 |
+
}
|
145 |
+
}
|
146 |
+
}
|
147 |
+
}
|
148 |
+
|
149 |
function woocommerce_shipping_chosen_method( $method, $available_methods ) {
|
150 |
$chosen_shipping_methods = WC()->session->get( 'chosen_shipping_methods', array() );
|
151 |
if ( isset( $chosen_shipping_methods[0] ) ) {
|
440 |
|
441 |
function enqueue_admin_scripts() {
|
442 |
$current_screen = get_current_screen();
|
443 |
+
if ( $current_screen->id === 'woocommerce_page_wc-settings' || $current_screen->id === 'edit-shop_order' ) {
|
444 |
+
$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
|
445 |
+
wp_enqueue_script( 'flexible-shipping-admin', $this->getPluginUrl() . 'assets/js/admin' . $suffix . '.js', array( 'jquery' ), $this->scripts_version );
|
446 |
+
wp_enqueue_style( 'flexible-shipping-admin', $this->getPluginUrl() . 'assets/css/admin' . $suffix . '.css', array(), $this->scripts_version );
|
447 |
+
}
|
|
|
|
|
448 |
}
|
449 |
|
450 |
function enqueue_scripts() {
|
541 |
return false;
|
542 |
}
|
543 |
|
544 |
+
function flexible_shipping_method_selected( $order, $shipping_method_integration ) {
|
545 |
+
if ( is_numeric( $order ) ) {
|
546 |
+
$order = wc_get_order( $order );
|
547 |
+
}
|
548 |
$shippings = $order->get_shipping_methods();
|
549 |
$all_shipping_methods = WC()->shipping()->get_shipping_methods();
|
550 |
+
if ( isset( $all_shipping_methods['flexible_shipping'] ) ) {
|
551 |
+
$flexible_shipping_rates = $all_shipping_methods['flexible_shipping']->get_all_rates();
|
552 |
+
foreach ( $shippings as $id => $shipping ) {
|
553 |
+
if ( isset( $flexible_shipping_rates[ $shipping['method_id'] ] ) ) {
|
554 |
+
$shipping_method = $flexible_shipping_rates[ $shipping['method_id'] ];
|
555 |
+
if ( $shipping_method['method_integration'] == $shipping_method_integration ) {
|
556 |
+
return $shipping_method;
|
557 |
+
}
|
558 |
}
|
559 |
}
|
560 |
}
|
561 |
return false;
|
562 |
}
|
563 |
|
564 |
+
function flexible_shipping_get_integration_for_method( $method_id ) {
|
565 |
+
$all_shipping_methods = WC()->shipping()->get_shipping_methods();
|
566 |
+
if ( isset( $all_shipping_methods['flexible_shipping'] ) ) {
|
567 |
+
$flexible_shipping_rates = $all_shipping_methods['flexible_shipping']->get_all_rates();
|
568 |
+
if ( isset( $flexible_shipping_rates[$method_id] ) ) {
|
569 |
+
return $flexible_shipping_rates[$method_id]['method_integration'];
|
570 |
+
}
|
571 |
+
}
|
572 |
+
return false;
|
573 |
+
}
|
574 |
+
|
575 |
if ( !function_exists('wpdesk_redirect') ) {
|
576 |
function wpdesk_redirect( $redirect ) {
|
577 |
if ( 1==1 && headers_sent() ) {
|
languages/flexible-shipping-pl_PL.mo
CHANGED
Binary file
|
languages/flexible-shipping-pl_PL.po
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Flexible Shipping\n"
|
4 |
-
"POT-Creation-Date: 2017-
|
5 |
-
"PO-Revision-Date: 2017-
|
6 |
-
"Last-Translator:
|
7 |
"Language-Team: Maciej Swoboda <maciej.swoboda@gmail.com>\n"
|
8 |
"Language: pl_PL\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"X-Generator: Poedit
|
13 |
"X-Poedit-Basepath: ..\n"
|
14 |
"X-Poedit-WPHeader: flexible-shipping.php\n"
|
15 |
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
@@ -21,6 +21,68 @@ msgstr ""
|
|
21 |
"X-Poedit-SearchPath-0: .\n"
|
22 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
#: classes/inspire/plugin4.php:218
|
25 |
msgid ""
|
26 |
"An Unexpected HTTP Error occurred during the API request. <a href=\"?\" "
|
@@ -33,25 +95,25 @@ msgstr ""
|
|
33 |
msgid "An unknown error occurred"
|
34 |
msgstr "Wystąpił nieznany błąd"
|
35 |
|
36 |
-
#: classes/inspire/plugin4.php:387 flexible-shipping.php:
|
37 |
msgid "Settings"
|
38 |
msgstr "Ustawienia"
|
39 |
|
40 |
-
#: classes/inspire/plugin4.php:388 flexible-shipping.php:
|
41 |
msgid "Docs"
|
42 |
msgstr "Docs"
|
43 |
|
44 |
-
#: classes/inspire/plugin4.php:389 flexible-shipping.php:
|
45 |
msgid "Support"
|
46 |
msgstr "Wsparcie"
|
47 |
|
48 |
#. Plugin Name of the plugin/theme
|
49 |
#: classes/settings-flexible-shipping.php:14
|
50 |
#: classes/settings-flexible-shipping.php:28
|
51 |
-
#: classes/settings-shipping-method-form.php:
|
52 |
#: classes/shipping_method.php:25 classes/shipping_method.php:43
|
53 |
-
#: flexible-shipping.php:
|
54 |
-
#: flexible-shipping.php:
|
55 |
msgid "Flexible Shipping"
|
56 |
msgstr "Flexible Shipping"
|
57 |
|
@@ -61,7 +123,7 @@ msgid "See how to %sconfigure Flexible Shipping%s."
|
|
61 |
msgstr "Zobacz jak %sskonfigurować Flexible Shipping%s."
|
62 |
|
63 |
#: classes/settings-flexible-shipping.php:19
|
64 |
-
#: classes/settings-shipping-method-form.php:
|
65 |
msgid "Enable/Disable"
|
66 |
msgstr "Włącz/Wyłącz"
|
67 |
|
@@ -108,35 +170,35 @@ msgstr ""
|
|
108 |
"%sDodaj integrację%s z DHL, Paczkomaty InPost, eNadawca Poczta Polska, "
|
109 |
"Paczka w Ruchu."
|
110 |
|
111 |
-
#: classes/settings-shipping-method-form.php:19 classes/shipping_method.php:
|
112 |
msgid "Free"
|
113 |
msgstr "Bezpłatnie"
|
114 |
|
115 |
-
#: classes/settings-shipping-method-form.php:
|
116 |
msgid "Enable this shipping method"
|
117 |
msgstr "Włącz tę metodę wysyłki"
|
118 |
|
119 |
-
#: classes/settings-shipping-method-form.php:
|
120 |
msgid "Method Title"
|
121 |
msgstr "Tytuł metody"
|
122 |
|
123 |
-
#: classes/settings-shipping-method-form.php:
|
124 |
msgid "This controls the title which the user sees during checkout."
|
125 |
msgstr "Tytuł, który widzi użytkownik podczas składania zamówienia."
|
126 |
|
127 |
-
#: classes/settings-shipping-method-form.php:
|
128 |
msgid "Method Description"
|
129 |
msgstr "Opis"
|
130 |
|
131 |
-
#: classes/settings-shipping-method-form.php:
|
132 |
msgid "This controls method description which the user sees during checkout."
|
133 |
msgstr "Opis, który widzi użytkownik podczas składania zamówienia."
|
134 |
|
135 |
-
#: classes/settings-shipping-method-form.php:
|
136 |
msgid "Free Shipping"
|
137 |
msgstr "Darmowa wysyłka"
|
138 |
|
139 |
-
#: classes/settings-shipping-method-form.php:
|
140 |
msgid ""
|
141 |
"Enter a minimum order amount for free shipping. This will override the costs "
|
142 |
"configured below."
|
@@ -144,46 +206,46 @@ msgstr ""
|
|
144 |
"Wpisz minimalną kwotę zamówienia dla bezpłatnej wysyłki. Spowoduje to "
|
145 |
"zastąpienie reguł skonfigurowanych poniżej."
|
146 |
|
147 |
-
#: classes/settings-shipping-method-form.php:
|
148 |
msgid "Free Shipping Label"
|
149 |
msgstr "Etykieta darmowej wysyłki"
|
150 |
|
151 |
-
#: classes/settings-shipping-method-form.php:
|
152 |
msgid "Enter additional label for shipping when free shipping available."
|
153 |
msgstr ""
|
154 |
"Wpisz dodatkową etykietę, która zostanie wyświetlona dla darmowej wysyłki."
|
155 |
|
156 |
-
#: classes/settings-shipping-method-form.php:
|
157 |
msgid "Calculation Method"
|
158 |
msgstr "Metoda obliczania"
|
159 |
|
160 |
-
#: classes/settings-shipping-method-form.php:
|
161 |
msgid ""
|
162 |
"Select how rules will be calculated. If you choose \"sum\" the rules order "
|
163 |
"is important."
|
164 |
msgstr ""
|
165 |
"Wybierz jak będą obliczane reguły. Dla sumy, kolejność reguł ma znaczenie."
|
166 |
|
167 |
-
#: classes/settings-shipping-method-form.php:
|
168 |
msgid "Sum"
|
169 |
msgstr "Suma"
|
170 |
|
171 |
-
#: classes/settings-shipping-method-form.php:
|
172 |
-
#: classes/views/html-shipping-method-settings.php:
|
173 |
msgid "Visibility"
|
174 |
msgstr "Wyświetlanie"
|
175 |
|
176 |
-
#: classes/settings-shipping-method-form.php:
|
177 |
-
#: classes/views/html-shipping-method-settings.php:
|
178 |
msgid "Show only for logged in users"
|
179 |
msgstr "Pokaż tylko dla zalogowanych użytkowników"
|
180 |
|
181 |
-
#: classes/settings-shipping-method-form.php:
|
182 |
-
#: classes/views/html-shipping-method-settings.php:
|
183 |
msgid "Default"
|
184 |
msgstr "Domyślnie"
|
185 |
|
186 |
-
#: classes/settings-shipping-method-form.php:
|
187 |
msgid ""
|
188 |
"Check the box to set this option as the default selected choice on the cart "
|
189 |
"page."
|
@@ -191,29 +253,30 @@ msgstr ""
|
|
191 |
"Zaznacz, aby ustawić tę metodę wysyłki jako domyślną przy składaniu "
|
192 |
"zamówienia."
|
193 |
|
194 |
-
#: classes/settings-shipping-method-form.php:
|
195 |
-
#: classes/views/html-
|
|
|
196 |
msgid "Integration"
|
197 |
msgstr "Integracja"
|
198 |
|
199 |
-
#: classes/settings-shipping-method-form.php:
|
200 |
msgid "Select integration. "
|
201 |
msgstr "Wybierz integrację. "
|
202 |
|
203 |
-
#: classes/settings-shipping-method-form.php:
|
204 |
#: classes/views/html-shipping-method-rules.php:7
|
205 |
msgid "None"
|
206 |
msgstr "Brak"
|
207 |
|
208 |
-
#: classes/settings-shipping-method-form.php:
|
209 |
msgid "Rules"
|
210 |
msgstr "Reguły"
|
211 |
|
212 |
-
#: classes/settings-shipping-method-form.php:
|
213 |
msgid "Shipping Zone"
|
214 |
msgstr "Strefa wysyłki"
|
215 |
|
216 |
-
#: classes/settings-shipping-method-form.php:
|
217 |
#, php-format
|
218 |
msgid "See how to %sconfigure shipping methods%s."
|
219 |
msgstr "Zobacz jak %sskonfigurować metody wysyłki %s."
|
@@ -288,29 +351,29 @@ msgstr "Wartość w polu Wartość %s jest niepoprawna. Numer wiersza %d."
|
|
288 |
msgid "Shipping method %s imported as %s."
|
289 |
msgstr "Metoda wysyłki %s została zaimportowana jako %s."
|
290 |
|
291 |
-
#: classes/shipping_method.php:
|
292 |
msgid "New Shipping Method"
|
293 |
msgstr "Nowa metoda wysyłki"
|
294 |
|
295 |
-
#: classes/shipping_method.php:
|
296 |
msgid "Edit Shipping Method"
|
297 |
msgstr "Edytuj metodę wysyłki"
|
298 |
|
299 |
-
#: classes/shipping_method.php:
|
300 |
#, php-format
|
301 |
msgid "Shipping method %s added."
|
302 |
msgstr "Metoda wysyłki dodana: %s."
|
303 |
|
304 |
-
#: classes/shipping_method.php:
|
305 |
#, php-format
|
306 |
msgid "Shipping method %s deleted."
|
307 |
msgstr "Metoda wysyłki usunięta: %s."
|
308 |
|
309 |
-
#: classes/shipping_method.php:
|
310 |
msgid "Shipping method not found."
|
311 |
msgstr "Metoda wysyłki nie znaleziona."
|
312 |
|
313 |
-
#: classes/shipping_method.php:
|
314 |
#, php-format
|
315 |
msgid "Shipping method %s updated."
|
316 |
msgstr "Metoda wysyłki zaktualizowana: %s."
|
@@ -345,6 +408,23 @@ msgstr ""
|
|
345 |
msgid "Upgrade Now →"
|
346 |
msgstr "Zaktualizuj do wersji PRO →"
|
347 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
348 |
#: classes/views/html-shipping-method-rules.php:8
|
349 |
msgid "Price"
|
350 |
msgstr "Cena"
|
@@ -412,33 +492,33 @@ msgid "Are you sure?"
|
|
412 |
msgstr "Na pewno?"
|
413 |
|
414 |
#: classes/views/html-shipping-method-rules.php:232
|
415 |
-
#: classes/views/html-shipping-method-settings.php:
|
416 |
msgid "Shipping Zones"
|
417 |
msgstr "Strefy wysyłki"
|
418 |
|
419 |
-
#: classes/views/html-shipping-method-settings.php:
|
420 |
msgid "Title"
|
421 |
msgstr "Tytuł"
|
422 |
|
423 |
-
#: classes/views/html-shipping-method-settings.php:
|
424 |
msgid "Enabled"
|
425 |
msgstr "Włączona"
|
426 |
|
427 |
-
#: classes/views/html-shipping-method-settings.php:
|
428 |
msgid "Select all"
|
429 |
msgstr "Zaznacz wszystkie"
|
430 |
|
431 |
-
#: classes/views/html-shipping-method-settings.php:
|
432 |
-
#: classes/views/html-shipping-method-settings.php:
|
433 |
-
#: classes/views/html-shipping-method-settings.php:
|
434 |
msgid "yes"
|
435 |
msgstr "tak"
|
436 |
|
437 |
-
#: classes/views/html-shipping-method-settings.php:
|
438 |
msgid "Show for all users"
|
439 |
msgstr "Pokaż dla wszystkich użytkowników"
|
440 |
|
441 |
-
#: classes/views/html-shipping-method-settings.php:
|
442 |
msgid ""
|
443 |
"Drag and drop the above shipping methods to control their display order. "
|
444 |
"Confirm by clicking Save changes button below."
|
@@ -446,44 +526,44 @@ msgstr ""
|
|
446 |
"Przeciągnij i upuść metody wysyłki aby ustawić ich kolejność wyświetlania. "
|
447 |
"Potwierdź przez kliknięcie przycisku Zapisz zmiany poniżej."
|
448 |
|
449 |
-
#: classes/views/html-shipping-method-settings.php:
|
450 |
msgid "Remove selected"
|
451 |
msgstr "Usuń zaznaczone"
|
452 |
|
453 |
-
#: classes/views/html-shipping-method-settings.php:
|
454 |
msgid "Cancel import"
|
455 |
msgstr "Anuluj import"
|
456 |
|
457 |
-
#: classes/views/html-shipping-method-settings.php:
|
458 |
-
#: classes/views/html-shipping-method-settings.php:
|
459 |
msgid "Import"
|
460 |
msgstr "Importuj"
|
461 |
|
462 |
-
#: classes/views/html-shipping-method-settings.php:
|
463 |
msgid "Please select shipping methods to remove"
|
464 |
msgstr "Prosze wybrać metody wysyłki do usunięcia."
|
465 |
|
466 |
-
#: classes/views/html-shipping-method-settings.php:
|
467 |
msgid "Select file to import"
|
468 |
msgstr "Wybierz plik do importu"
|
469 |
|
470 |
-
#: flexible-shipping.php:
|
471 |
msgid ""
|
472 |
"Flexible Shipping requires at least version 2.7 of Active Payments plugin."
|
473 |
msgstr ""
|
474 |
"Flexible Shipping wymaga wtyczki Aktywne płatności w wersji co najmniej 2.7."
|
475 |
|
476 |
-
#: flexible-shipping.php:
|
477 |
msgid "Flexible Shipping requires at least version 1.2 of eNadawca plugin."
|
478 |
msgstr "Flexible Shipping wymaga wtyczki eNadawca w wersji co najmniej 1.2."
|
479 |
|
480 |
-
#: flexible-shipping.php:
|
481 |
msgid ""
|
482 |
"Flexible Shipping requires at least version 1.1 of Paczka w Ruchu plugin."
|
483 |
msgstr ""
|
484 |
"Flexible Shipping wymaga wtyczki Paczka w Ruchu w wersji co najmniej 1.1."
|
485 |
|
486 |
-
#: flexible-shipping.php:
|
487 |
#, php-format
|
488 |
msgid ""
|
489 |
"You are using WooCommerce Flexible Shipping below 1.4. Please deactivate it "
|
@@ -494,7 +574,7 @@ msgstr ""
|
|
494 |
"Wyłącz go na %sstronie wtyczek%s. Przeczytaj o dużej zmianie we Flexible "
|
495 |
"Shipping na %snaszym blogu →%s"
|
496 |
|
497 |
-
#: flexible-shipping.php:
|
498 |
#, php-format
|
499 |
msgid "Redirecting. If page not redirects click %s here %s."
|
500 |
msgstr ""
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Flexible Shipping\n"
|
4 |
+
"POT-Creation-Date: 2017-03-29 15:12+0200\n"
|
5 |
+
"PO-Revision-Date: 2017-03-30 14:13+0200\n"
|
6 |
+
"Last-Translator: Piotr Jabłonowski <piotr.jablonowski@inspirelabs.pl>\n"
|
7 |
"Language-Team: Maciej Swoboda <maciej.swoboda@gmail.com>\n"
|
8 |
"Language: pl_PL\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Generator: Poedit 2.0\n"
|
13 |
"X-Poedit-Basepath: ..\n"
|
14 |
"X-Poedit-WPHeader: flexible-shipping.php\n"
|
15 |
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
21 |
"X-Poedit-SearchPath-0: .\n"
|
22 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
23 |
|
24 |
+
#: classes/bulk-actions.php:43
|
25 |
+
msgid "New"
|
26 |
+
msgstr "Nowa"
|
27 |
+
|
28 |
+
#: classes/bulk-actions.php:44 classes/bulk-actions.php:122
|
29 |
+
msgid "Created"
|
30 |
+
msgstr "Utworzona"
|
31 |
+
|
32 |
+
#: classes/bulk-actions.php:45 classes/bulk-actions.php:123
|
33 |
+
msgid "Confirmed"
|
34 |
+
msgstr "Zatwierdzona"
|
35 |
+
|
36 |
+
#: classes/bulk-actions.php:46
|
37 |
+
msgid "Failed"
|
38 |
+
msgstr "Błąd"
|
39 |
+
|
40 |
+
#: classes/bulk-actions.php:120 classes/bulk-actions.php:135
|
41 |
+
msgid "Error"
|
42 |
+
msgstr "Błąd"
|
43 |
+
|
44 |
+
#: classes/bulk-actions.php:121
|
45 |
+
msgid "New shipping"
|
46 |
+
msgstr "Nowa"
|
47 |
+
|
48 |
+
#: classes/bulk-actions.php:158
|
49 |
+
msgid "Shipping"
|
50 |
+
msgstr "Wysyłka"
|
51 |
+
|
52 |
+
#: classes/bulk-actions.php:166
|
53 |
+
msgid "Send shipping"
|
54 |
+
msgstr "Nadaj przesyłki"
|
55 |
+
|
56 |
+
#: classes/bulk-actions.php:167
|
57 |
+
msgid "Get labels"
|
58 |
+
msgstr "Pobierz etykiety nadawcze"
|
59 |
+
|
60 |
+
#: classes/bulk-actions.php:177
|
61 |
+
msgid "No action performed."
|
62 |
+
msgstr "Nie wykonano żdanych działań."
|
63 |
+
|
64 |
+
#: classes/bulk-actions.php:194
|
65 |
+
msgid ""
|
66 |
+
"Unable to create temporary zip archive for labels. Check temporary folder "
|
67 |
+
"configuration on server."
|
68 |
+
msgstr ""
|
69 |
+
"Nie można utworzyć tymczasowego archwium zip dla etykiet. Sprawdź "
|
70 |
+
"konfigurację folderu na serwerze."
|
71 |
+
|
72 |
+
#: classes/bulk-actions.php:218
|
73 |
+
#, php-format
|
74 |
+
msgid "Bulk send shipping - processed orders: %d"
|
75 |
+
msgstr "Masowe nadawanie przesyłek - przetworzone zamówienia: %d"
|
76 |
+
|
77 |
+
#: classes/bulk-actions.php:233
|
78 |
+
#, php-format
|
79 |
+
msgid ""
|
80 |
+
"Bulk labels - processed orders: %d. If download not start automatically "
|
81 |
+
"click %shere%s."
|
82 |
+
msgstr ""
|
83 |
+
"Masowe pobieranie etykiet - przetworzone zamówienia: %d. Jeśli pobieranie "
|
84 |
+
"nie rozpoczęło się automatycznie kliknij %stutaj%s "
|
85 |
+
|
86 |
#: classes/inspire/plugin4.php:218
|
87 |
msgid ""
|
88 |
"An Unexpected HTTP Error occurred during the API request. <a href=\"?\" "
|
95 |
msgid "An unknown error occurred"
|
96 |
msgstr "Wystąpił nieznany błąd"
|
97 |
|
98 |
+
#: classes/inspire/plugin4.php:387 flexible-shipping.php:468
|
99 |
msgid "Settings"
|
100 |
msgstr "Ustawienia"
|
101 |
|
102 |
+
#: classes/inspire/plugin4.php:388 flexible-shipping.php:469
|
103 |
msgid "Docs"
|
104 |
msgstr "Docs"
|
105 |
|
106 |
+
#: classes/inspire/plugin4.php:389 flexible-shipping.php:470
|
107 |
msgid "Support"
|
108 |
msgstr "Wsparcie"
|
109 |
|
110 |
#. Plugin Name of the plugin/theme
|
111 |
#: classes/settings-flexible-shipping.php:14
|
112 |
#: classes/settings-flexible-shipping.php:28
|
113 |
+
#: classes/settings-shipping-method-form.php:39 classes/shipping_method.php:24
|
114 |
#: classes/shipping_method.php:25 classes/shipping_method.php:43
|
115 |
+
#: flexible-shipping.php:353 flexible-shipping.php:356
|
116 |
+
#: flexible-shipping.php:359
|
117 |
msgid "Flexible Shipping"
|
118 |
msgstr "Flexible Shipping"
|
119 |
|
123 |
msgstr "Zobacz jak %sskonfigurować Flexible Shipping%s."
|
124 |
|
125 |
#: classes/settings-flexible-shipping.php:19
|
126 |
+
#: classes/settings-shipping-method-form.php:30 classes/shipping_method.php:34
|
127 |
msgid "Enable/Disable"
|
128 |
msgstr "Włącz/Wyłącz"
|
129 |
|
170 |
"%sDodaj integrację%s z DHL, Paczkomaty InPost, eNadawca Poczta Polska, "
|
171 |
"Paczka w Ruchu."
|
172 |
|
173 |
+
#: classes/settings-shipping-method-form.php:19 classes/shipping_method.php:785
|
174 |
msgid "Free"
|
175 |
msgstr "Bezpłatnie"
|
176 |
|
177 |
+
#: classes/settings-shipping-method-form.php:33 classes/shipping_method.php:36
|
178 |
msgid "Enable this shipping method"
|
179 |
msgstr "Włącz tę metodę wysyłki"
|
180 |
|
181 |
+
#: classes/settings-shipping-method-form.php:36
|
182 |
msgid "Method Title"
|
183 |
msgstr "Tytuł metody"
|
184 |
|
185 |
+
#: classes/settings-shipping-method-form.php:38 classes/shipping_method.php:42
|
186 |
msgid "This controls the title which the user sees during checkout."
|
187 |
msgstr "Tytuł, który widzi użytkownik podczas składania zamówienia."
|
188 |
|
189 |
+
#: classes/settings-shipping-method-form.php:45
|
190 |
msgid "Method Description"
|
191 |
msgstr "Opis"
|
192 |
|
193 |
+
#: classes/settings-shipping-method-form.php:47
|
194 |
msgid "This controls method description which the user sees during checkout."
|
195 |
msgstr "Opis, który widzi użytkownik podczas składania zamówienia."
|
196 |
|
197 |
+
#: classes/settings-shipping-method-form.php:58
|
198 |
msgid "Free Shipping"
|
199 |
msgstr "Darmowa wysyłka"
|
200 |
|
201 |
+
#: classes/settings-shipping-method-form.php:61
|
202 |
msgid ""
|
203 |
"Enter a minimum order amount for free shipping. This will override the costs "
|
204 |
"configured below."
|
206 |
"Wpisz minimalną kwotę zamówienia dla bezpłatnej wysyłki. Spowoduje to "
|
207 |
"zastąpienie reguł skonfigurowanych poniżej."
|
208 |
|
209 |
+
#: classes/settings-shipping-method-form.php:65
|
210 |
msgid "Free Shipping Label"
|
211 |
msgstr "Etykieta darmowej wysyłki"
|
212 |
|
213 |
+
#: classes/settings-shipping-method-form.php:68
|
214 |
msgid "Enter additional label for shipping when free shipping available."
|
215 |
msgstr ""
|
216 |
"Wpisz dodatkową etykietę, która zostanie wyświetlona dla darmowej wysyłki."
|
217 |
|
218 |
+
#: classes/settings-shipping-method-form.php:77
|
219 |
msgid "Calculation Method"
|
220 |
msgstr "Metoda obliczania"
|
221 |
|
222 |
+
#: classes/settings-shipping-method-form.php:79
|
223 |
msgid ""
|
224 |
"Select how rules will be calculated. If you choose \"sum\" the rules order "
|
225 |
"is important."
|
226 |
msgstr ""
|
227 |
"Wybierz jak będą obliczane reguły. Dla sumy, kolejność reguł ma znaczenie."
|
228 |
|
229 |
+
#: classes/settings-shipping-method-form.php:82
|
230 |
msgid "Sum"
|
231 |
msgstr "Suma"
|
232 |
|
233 |
+
#: classes/settings-shipping-method-form.php:85
|
234 |
+
#: classes/views/html-shipping-method-settings.php:13
|
235 |
msgid "Visibility"
|
236 |
msgstr "Wyświetlanie"
|
237 |
|
238 |
+
#: classes/settings-shipping-method-form.php:88
|
239 |
+
#: classes/views/html-shipping-method-settings.php:46
|
240 |
msgid "Show only for logged in users"
|
241 |
msgstr "Pokaż tylko dla zalogowanych użytkowników"
|
242 |
|
243 |
+
#: classes/settings-shipping-method-form.php:91
|
244 |
+
#: classes/views/html-shipping-method-settings.php:14
|
245 |
msgid "Default"
|
246 |
msgstr "Domyślnie"
|
247 |
|
248 |
+
#: classes/settings-shipping-method-form.php:94
|
249 |
msgid ""
|
250 |
"Check the box to set this option as the default selected choice on the cart "
|
251 |
"page."
|
253 |
"Zaznacz, aby ustawić tę metodę wysyłki jako domyślną przy składaniu "
|
254 |
"zamówienia."
|
255 |
|
256 |
+
#: classes/settings-shipping-method-form.php:97
|
257 |
+
#: classes/views/html-orders-filter-form.php:5
|
258 |
+
#: classes/views/html-shipping-method-settings.php:15
|
259 |
msgid "Integration"
|
260 |
msgstr "Integracja"
|
261 |
|
262 |
+
#: classes/settings-shipping-method-form.php:99
|
263 |
msgid "Select integration. "
|
264 |
msgstr "Wybierz integrację. "
|
265 |
|
266 |
+
#: classes/settings-shipping-method-form.php:102
|
267 |
#: classes/views/html-shipping-method-rules.php:7
|
268 |
msgid "None"
|
269 |
msgstr "Brak"
|
270 |
|
271 |
+
#: classes/settings-shipping-method-form.php:113
|
272 |
msgid "Rules"
|
273 |
msgstr "Reguły"
|
274 |
|
275 |
+
#: classes/settings-shipping-method-form.php:134
|
276 |
msgid "Shipping Zone"
|
277 |
msgstr "Strefa wysyłki"
|
278 |
|
279 |
+
#: classes/settings-shipping-method-form.php:146
|
280 |
#, php-format
|
281 |
msgid "See how to %sconfigure shipping methods%s."
|
282 |
msgstr "Zobacz jak %sskonfigurować metody wysyłki %s."
|
351 |
msgid "Shipping method %s imported as %s."
|
352 |
msgstr "Metoda wysyłki %s została zaimportowana jako %s."
|
353 |
|
354 |
+
#: classes/shipping_method.php:543
|
355 |
msgid "New Shipping Method"
|
356 |
msgstr "Nowa metoda wysyłki"
|
357 |
|
358 |
+
#: classes/shipping_method.php:546
|
359 |
msgid "Edit Shipping Method"
|
360 |
msgstr "Edytuj metodę wysyłki"
|
361 |
|
362 |
+
#: classes/shipping_method.php:556 classes/shipping_method.php:597
|
363 |
#, php-format
|
364 |
msgid "Shipping method %s added."
|
365 |
msgstr "Metoda wysyłki dodana: %s."
|
366 |
|
367 |
+
#: classes/shipping_method.php:580
|
368 |
#, php-format
|
369 |
msgid "Shipping method %s deleted."
|
370 |
msgstr "Metoda wysyłki usunięta: %s."
|
371 |
|
372 |
+
#: classes/shipping_method.php:583
|
373 |
msgid "Shipping method not found."
|
374 |
msgstr "Metoda wysyłki nie znaleziona."
|
375 |
|
376 |
+
#: classes/shipping_method.php:609
|
377 |
#, php-format
|
378 |
msgid "Shipping method %s updated."
|
379 |
msgstr "Metoda wysyłki zaktualizowana: %s."
|
408 |
msgid "Upgrade Now →"
|
409 |
msgstr "Zaktualizuj do wersji PRO →"
|
410 |
|
411 |
+
#: classes/views/html-column-shipping-shipping.php:11
|
412 |
+
msgid "Get label for: "
|
413 |
+
msgstr "Pobierz etykietę dla "
|
414 |
+
|
415 |
+
#: classes/views/html-column-shipping-shipping.php:14
|
416 |
+
msgid "Track shipment for: "
|
417 |
+
msgstr "Śledź przesyłkę "
|
418 |
+
|
419 |
+
#: classes/views/html-orders-filter-form.php:4
|
420 |
+
#: classes/views/html-orders-filter-form.php:12
|
421 |
+
msgid "All shippings"
|
422 |
+
msgstr "Wszystkie przesyłki"
|
423 |
+
|
424 |
+
#: classes/views/html-orders-filter-form.php:13
|
425 |
+
msgid "Shipment status"
|
426 |
+
msgstr "Status przesyłki"
|
427 |
+
|
428 |
#: classes/views/html-shipping-method-rules.php:8
|
429 |
msgid "Price"
|
430 |
msgstr "Cena"
|
492 |
msgstr "Na pewno?"
|
493 |
|
494 |
#: classes/views/html-shipping-method-rules.php:232
|
495 |
+
#: classes/views/html-shipping-method-settings.php:106
|
496 |
msgid "Shipping Zones"
|
497 |
msgstr "Strefy wysyłki"
|
498 |
|
499 |
+
#: classes/views/html-shipping-method-settings.php:11
|
500 |
msgid "Title"
|
501 |
msgstr "Tytuł"
|
502 |
|
503 |
+
#: classes/views/html-shipping-method-settings.php:12
|
504 |
msgid "Enabled"
|
505 |
msgstr "Włączona"
|
506 |
|
507 |
+
#: classes/views/html-shipping-method-settings.php:16
|
508 |
msgid "Select all"
|
509 |
msgstr "Zaznacz wszystkie"
|
510 |
|
511 |
+
#: classes/views/html-shipping-method-settings.php:39
|
512 |
+
#: classes/views/html-shipping-method-settings.php:46
|
513 |
+
#: classes/views/html-shipping-method-settings.php:53
|
514 |
msgid "yes"
|
515 |
msgstr "tak"
|
516 |
|
517 |
+
#: classes/views/html-shipping-method-settings.php:48
|
518 |
msgid "Show for all users"
|
519 |
msgstr "Pokaż dla wszystkich użytkowników"
|
520 |
|
521 |
+
#: classes/views/html-shipping-method-settings.php:69
|
522 |
msgid ""
|
523 |
"Drag and drop the above shipping methods to control their display order. "
|
524 |
"Confirm by clicking Save changes button below."
|
526 |
"Przeciągnij i upuść metody wysyłki aby ustawić ich kolejność wyświetlania. "
|
527 |
"Potwierdź przez kliknięcie przycisku Zapisz zmiany poniżej."
|
528 |
|
529 |
+
#: classes/views/html-shipping-method-settings.php:74
|
530 |
msgid "Remove selected"
|
531 |
msgstr "Usuń zaznaczone"
|
532 |
|
533 |
+
#: classes/views/html-shipping-method-settings.php:78
|
534 |
msgid "Cancel import"
|
535 |
msgstr "Anuluj import"
|
536 |
|
537 |
+
#: classes/views/html-shipping-method-settings.php:79
|
538 |
+
#: classes/views/html-shipping-method-settings.php:80
|
539 |
msgid "Import"
|
540 |
msgstr "Importuj"
|
541 |
|
542 |
+
#: classes/views/html-shipping-method-settings.php:155
|
543 |
msgid "Please select shipping methods to remove"
|
544 |
msgstr "Prosze wybrać metody wysyłki do usunięcia."
|
545 |
|
546 |
+
#: classes/views/html-shipping-method-settings.php:187
|
547 |
msgid "Select file to import"
|
548 |
msgstr "Wybierz plik do importu"
|
549 |
|
550 |
+
#: flexible-shipping.php:396
|
551 |
msgid ""
|
552 |
"Flexible Shipping requires at least version 2.7 of Active Payments plugin."
|
553 |
msgstr ""
|
554 |
"Flexible Shipping wymaga wtyczki Aktywne płatności w wersji co najmniej 2.7."
|
555 |
|
556 |
+
#: flexible-shipping.php:407
|
557 |
msgid "Flexible Shipping requires at least version 1.2 of eNadawca plugin."
|
558 |
msgstr "Flexible Shipping wymaga wtyczki eNadawca w wersji co najmniej 1.2."
|
559 |
|
560 |
+
#: flexible-shipping.php:418
|
561 |
msgid ""
|
562 |
"Flexible Shipping requires at least version 1.1 of Paczka w Ruchu plugin."
|
563 |
msgstr ""
|
564 |
"Flexible Shipping wymaga wtyczki Paczka w Ruchu w wersji co najmniej 1.1."
|
565 |
|
566 |
+
#: flexible-shipping.php:426
|
567 |
#, php-format
|
568 |
msgid ""
|
569 |
"You are using WooCommerce Flexible Shipping below 1.4. Please deactivate it "
|
574 |
"Wyłącz go na %sstronie wtyczek%s. Przeczytaj o dużej zmianie we Flexible "
|
575 |
"Shipping na %snaszym blogu →%s"
|
576 |
|
577 |
+
#: flexible-shipping.php:579
|
578 |
#, php-format
|
579 |
msgid "Redirecting. If page not redirects click %s here %s."
|
580 |
msgstr ""
|
readme.txt
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
Contributors: wpdesk, swoboda, jablonowski, byisk
|
3 |
Donate link: https://www.wpdesk.net/products/flexible-shipping-pro-woocommerce/
|
4 |
Tags: table rate, table rate shipping, woocommerce shipping, flexible shipping, woocommerce table rate shipping, cart based shipping, weight shipping, weight based shipping, totals based shipping, order based shipping, shipping zones, shipping classes
|
5 |
-
Requires at least: 4.
|
6 |
-
Tested up to: 4.7.
|
7 |
-
Stable tag: 1.
|
8 |
License: GPLv3 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -16,6 +16,8 @@ The most flexible Table Rate Shipping WooCommerce plugin. Create virtually any s
|
|
16 |
|
17 |
Flexible Shipping is the most advanced shipping plugin for WooCommerce stores allowing you to calculate shipping costs based on weight and/or cart total. Combine it with the PRO version and it will become the only WooCommerce Shipping plugin you'll ever need.
|
18 |
|
|
|
|
|
19 |
> **Upgrade to Flexible Shipping PRO**<br />
|
20 |
> Get priority e-mail support and access all PRO features, upgrade to [Flexible Shipping PRO now →](https://www.wpdesk.net/products/flexible-shipping-pro-woocommerce/)
|
21 |
|
@@ -68,6 +70,8 @@ The Location Based Shipping Add-On extends Flexible Shipping for WooCommerce wit
|
|
68 |
|
69 |
= WooCommerce Compatibility =
|
70 |
|
|
|
|
|
71 |
**WooCommerce 2.6 ready!** Flexible Shipping is compatible with WooCommerce Shipping Zones introduced in version 2.6. Read more about [WooCommerce Shipping Zones](https://www.wpdesk.net/blog/woocommerce-shipping-zones-explained/).
|
72 |
|
73 |
Flexible Shipping also plays well with older versions of WooCommerce. We tested the plugin with WooCommerce 2.5.x.
|
@@ -103,6 +107,18 @@ There are several integrations that we provide for Flexible Shipping in Poland:
|
|
103 |
* WooCommerce Currency Switcher
|
104 |
* WPML
|
105 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
== Installation ==
|
107 |
|
108 |
You can install this plugin like any other WordPress plugin.
|
@@ -137,6 +153,10 @@ If you are upgrading from the old Flexible Shipping version (1.3.2, woo-flexible
|
|
137 |
|
138 |
== Changelog ==
|
139 |
|
|
|
|
|
|
|
|
|
140 |
= 1.8 - 2017-01-24 =
|
141 |
* Added CSV import for shipping methods including rules
|
142 |
* Added WooCommerce Currency Switcher support
|
2 |
Contributors: wpdesk, swoboda, jablonowski, byisk
|
3 |
Donate link: https://www.wpdesk.net/products/flexible-shipping-pro-woocommerce/
|
4 |
Tags: table rate, table rate shipping, woocommerce shipping, flexible shipping, woocommerce table rate shipping, cart based shipping, weight shipping, weight based shipping, totals based shipping, order based shipping, shipping zones, shipping classes
|
5 |
+
Requires at least: 4.4
|
6 |
+
Tested up to: 4.7.5
|
7 |
+
Stable tag: 1.9
|
8 |
License: GPLv3 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
16 |
|
17 |
Flexible Shipping is the most advanced shipping plugin for WooCommerce stores allowing you to calculate shipping costs based on weight and/or cart total. Combine it with the PRO version and it will become the only WooCommerce Shipping plugin you'll ever need.
|
18 |
|
19 |
+
[youtube https://www.youtube.com/watch?v=qsFvYoiNDgU]
|
20 |
+
|
21 |
> **Upgrade to Flexible Shipping PRO**<br />
|
22 |
> Get priority e-mail support and access all PRO features, upgrade to [Flexible Shipping PRO now →](https://www.wpdesk.net/products/flexible-shipping-pro-woocommerce/)
|
23 |
|
70 |
|
71 |
= WooCommerce Compatibility =
|
72 |
|
73 |
+
**WooCommerce 3.0 ready!** In Flexible Shipping 1.9 we introduced support for upcoming changes in WooCommerce 3.0.
|
74 |
+
|
75 |
**WooCommerce 2.6 ready!** Flexible Shipping is compatible with WooCommerce Shipping Zones introduced in version 2.6. Read more about [WooCommerce Shipping Zones](https://www.wpdesk.net/blog/woocommerce-shipping-zones-explained/).
|
76 |
|
77 |
Flexible Shipping also plays well with older versions of WooCommerce. We tested the plugin with WooCommerce 2.5.x.
|
107 |
* WooCommerce Currency Switcher
|
108 |
* WPML
|
109 |
|
110 |
+
= Flexible Shipping in a nutshell =
|
111 |
+
|
112 |
+
This WooCommerce Shipping Plugin lets you create WooCommerce shipping cost rules such as:
|
113 |
+
|
114 |
+
* price based shipping
|
115 |
+
* weight based shipping
|
116 |
+
* total order based shipping
|
117 |
+
* item count based shipping
|
118 |
+
* shipping class based shipping
|
119 |
+
|
120 |
+
Check out this WooCommerce Table Rate Shipping Plugin today!
|
121 |
+
|
122 |
== Installation ==
|
123 |
|
124 |
You can install this plugin like any other WordPress plugin.
|
153 |
|
154 |
== Changelog ==
|
155 |
|
156 |
+
= 1.9 - 2017-03-30 =
|
157 |
+
* Added support for upcoming WooCommerce 3.0
|
158 |
+
* Added support for bulk shipping available in our shipping integrations
|
159 |
+
|
160 |
= 1.8 - 2017-01-24 =
|
161 |
* Added CSV import for shipping methods including rules
|
162 |
* Added WooCommerce Currency Switcher support
|