Flexible Shipping for WooCommerce - Version 4.14.0

Version Description

  • 2022-08-29 = Added free shipping notice filters: flexible_shipping_free_shipping_notice_text_message and flexible_shipping_free_shipping_notice_text_button_label
Download this release

Release Info

Developer octolize
Plugin Icon 128x128 Flexible Shipping for WooCommerce
Version 4.14.0
Comparing to
See all releases

Code changes from version 4.13.3 to 4.14.0

classes/table-rate/shipping-method.php CHANGED
@@ -218,14 +218,6 @@ class WPDesk_Flexible_Shipping extends WC_Shipping_Method {
218
  return $this->plugin_id . $this->id . '_' . $key;
219
  }
220
 
221
- public function generate_shipping_methods_html( $key, $data ) {
222
- $shipping_methods = $this->get_shipping_methods();
223
- $shipping_method_order = $this->get_shipping_method_order();
224
- ob_start();
225
- include ( 'views/html-shipping-method-settings.php' );
226
- return ob_get_clean();
227
- }
228
-
229
  public function get_shipping_methods( $enabled = false ) {
230
  $shipping_methods = $this->get_option_shipping_methods();
231
  $shipping_method_order = get_option( $this->shipping_method_order_option, array() );
218
  return $this->plugin_id . $this->id . '_' . $key;
219
  }
220
 
 
 
 
 
 
 
 
 
221
  public function get_shipping_methods( $enabled = false ) {
222
  $shipping_methods = $this->get_option_shipping_methods();
223
  $shipping_method_order = get_option( $this->shipping_method_order_option, array() );
classes/table-rate/views/html-shipping-method-settings.php DELETED
@@ -1,230 +0,0 @@
1
- <?php if ( ! defined( 'ABSPATH' ) ) {
2
- exit;
3
- } ?>
4
- <tr valign="top">
5
- <td class="forminp" style="padding-left:0;padding-right:0;">
6
- <fieldset>
7
- <legend class="screen-reader-text"><span><?php echo wp_kses_post( $data['title'] ); ?></span></legend>
8
-
9
- <table class="flexible_shipping_methods wc_shipping widefat wp-list-table" cellspacing="0">
10
- <thead>
11
- <tr>
12
- <th class="sort">&nbsp;</th>
13
- <th class="title"><?php esc_html_e( 'Title', 'flexible-shipping' ); ?></th>
14
- <th class="status"><?php esc_html_e( 'Enabled', 'flexible-shipping' ); ?></th>
15
- <th class="visibility"><?php esc_html_e( 'Visibility', 'flexible-shipping' ); ?></th>
16
- <th class="default"><?php esc_html_e( 'Default', 'flexible-shipping' ); ?></th>
17
- <th class="integration"><?php esc_html_e( 'Integration', 'flexible-shipping' ); ?></th>
18
- <th class="select check-column"><input type="checkbox" class="tips checkbox-select-all"
19
- value="1"
20
- data-tip="<?php esc_attr_e( 'Select all', 'flexible-shipping' ); ?>"/>
21
- </th>
22
- </tr>
23
- </thead>
24
- <tbody>
25
- <?php if ( isset( $shipping_method_order ) && is_array( $shipping_method_order ) ) : ?>
26
- <?php foreach ( $shipping_method_order as $shipping_method_id ) : ?>
27
- <?php $shipping_method = $shipping_methods[ $shipping_method_id ]; ?>
28
- <?php $tr_class = ''; ?>
29
- <?php
30
- if ( isset( $_GET['added'] ) && sanitize_key( $_GET['added'] ) == $shipping_method_id ) {
31
- $tr_class = 'highlight';
32
- }
33
- if ( isset( $_GET['updated'] ) && sanitize_key( $_GET['updated'] ) == $shipping_method_id ) {
34
- $tr_class = 'highlight';
35
- }
36
- ?>
37
- <tr id="method_<?php echo esc_attr( $shipping_method_id ); ?>" class="<?php echo esc_attr( $tr_class ); ?>">
38
- <td width="1%" class="sort">
39
- <input type="hidden"
40
- name="method_order[<?php echo esc_attr( $shipping_method['id'] ); ?>]"
41
- value="<?php echo esc_attr( $shipping_method['id'] ); ?>"/>
42
- </td>
43
- <td class="title">
44
- <a data-qa-id="shipping-method-<?php echo esc_attr( $shipping_method['method_title'] ); ?>"
45
- href="<?php echo esc_url( add_query_arg( 'method_id', $shipping_method_id, add_query_arg( 'action', 'edit' ) ) ); ?>">
46
- <strong><?php echo esc_html( $shipping_method['method_title'] ); ?></strong>
47
- </a>
48
- <?php if ( isset( $shipping_method['method_description'] ) && $shipping_method['method_description'] != '' ) : ?>
49
- (<?php echo esc_html( $shipping_method['method_description'] ); ?>)
50
- <?php endif; ?>
51
- </td>
52
- <td width="1%" class="status">
53
- <?php if ( isset( $shipping_method['method_enabled'] ) && 'yes' === $shipping_method['method_enabled'] ) : ?>
54
- <span class="status-enabled tips"
55
- data-tip="<?php esc_attr_e( 'yes', 'flexible-shipping' ); ?>"><?php esc_html_e( 'yes', 'flexible-shipping' ); ?></span>
56
- <?php else : ?>
57
- <span class="na">-</span>
58
- <?php endif; ?>
59
- </td>
60
- <td width="1%" class="default visibility">
61
- <?php if ( isset( $shipping_method['method_visibility'] ) && 'yes' === $shipping_method['method_visibility'] ) : ?>
62
- <span class="status-enabled tips"
63
- data-tip="<?php esc_attr_e( 'Show only for logged in users', 'flexible-shipping' ); ?>"><?php esc_html_e( 'yes', 'flexible-shipping' ); ?></span>
64
- <?php else : ?>
65
- <span class="na tips"
66
- data-tip="<?php esc_attr_e( 'Show for all users', 'flexible-shipping' ); ?>">-</span>
67
- <?php endif; ?>
68
- </td>
69
- <td width="1%" class="default">
70
- <?php if ( 'yes' === $shipping_method['method_default'] ) : ?>
71
- <span class="status-enabled tips"
72
- data-tip="<?php esc_attr_e( 'yes', 'flexible-shipping' ); ?>"><?php esc_html_e( 'yes', 'flexible-shipping' ); ?></span>
73
- <?php else : ?>
74
- <span class="na">-</span>
75
- <?php endif; ?>
76
- </td>
77
- <?php echo wp_kses_post( apply_filters( 'flexible_shipping_method_integration_col', '<td width="1%" class="integration default">-</td>', $shipping_method ) ); ?>
78
- <td width="1%" class="select check-column" nowrap>
79
- <input type="checkbox" class="tips checkbox-select"
80
- value="<?php echo esc_attr( $shipping_method['id'] ); ?>"
81
- data-tip="<?php echo esc_html( $shipping_method['method_title'] ); ?>"/>
82
- </td>
83
- </tr>
84
- <?php endforeach; ?>
85
- <?php endif; ?>
86
- </tbody>
87
- <tfoot>
88
- <tr>
89
- <th>&nbsp;</th>
90
- <th colspan="8"><span
91
- class="description"><?php esc_html_e( 'Drag and drop the above shipment methods to control their display order. Confirm by clicking Save changes button below.', 'flexible-shipping' ); ?></span>
92
- </th>
93
- </tr>
94
- <tr>
95
- <th>&nbsp;</th>
96
- <th colspan="8">
97
- <button id="flexible_shipping_remove_selected" class="button"
98
- disabled><?php esc_html_e( 'Remove selected', 'flexible-shipping' ); ?></button>
99
- <div class="flexilble_shipping_export_import">
100
- <input id="flexible_shipping_import_file" type="file" name="import_file"
101
- style="display:none;" accept=".csv,.json"/>
102
- <input id="flexible_shipping_import_action" type="hidden" name="import_action"
103
- value="0"/>
104
- <button id="flexible_shipping_import_cancel" class="button"
105
- style="display:none;"><?php esc_html_e( 'Cancel import', 'flexible-shipping' ); ?></button>
106
- <input id="flexible_shipping_do_import" style="display:none;"
107
- class="button button-primary"
108
- data-instance-id="<?php echo esc_attr( isset( $_GET['instance_id'] ) ? sanitize_key( $_GET['instance_id'] ) : '1' ); ?>"
109
- data-nonce="<?php echo esc_attr( wp_create_nonce( 'flexible_shipping' ) ); ?>" type="submit"
110
- value="<?php esc_attr_e( 'Import', 'flexible-shipping' ); ?>"/>
111
- <button id="flexible_shipping_import" class="button"
112
- data-instance-id="<?php isset( $_GET['instance_id'] ) ? sanitize_key( $_GET['instance_id'] ) : '1'; ?>"
113
- data-nonce="<?php echo esc_attr( wp_create_nonce( 'flexible_shipping' ) ); ?>"><?php esc_html_e( 'Import', 'flexible-shipping' ); ?></button>
114
- <?php do_action( 'flexible_shipping_actions_row' ); ?>
115
- </div>
116
- <div style="clear:both;"></div>
117
- </th>
118
- </tr>
119
- </tfoot>
120
- </table>
121
-
122
- <?php echo wp_kses_post( $this->get_description_html( $data ) ); ?>
123
- </fieldset>
124
- </td>
125
- </tr>
126
- <script type="text/javascript">
127
- <?php
128
- if ( version_compare( WC()->version, '2.6.0', '>=' ) ) :
129
- $zone = WC_Shipping_Zones::get_zone_by( 'instance_id', sanitize_key( $_GET['instance_id'] ) );
130
- $shipping_method_woo = WC_Shipping_Zones::get_shipping_method( sanitize_key( $_GET['instance_id'] ) );
131
- $content = '<a href="' . admin_url( 'admin.php?page=wc-settings&tab=shipping' ) . '">' . __( 'Shipping Zones', 'flexible-shipping' ) . '</a> > ';
132
- $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> >';
133
- $content .= esc_html( $shipping_method_woo->get_title() );
134
- ?>
135
- jQuery('#mainform h2').first().replaceWith('<h2>' + '<?php echo wp_kses_post( $content ); ?>' + '</h2>');
136
-
137
- <?php
138
- global $wp;
139
- $current_url = 'admin.php?page=wc-settings&tab=shipping&instance_id=' . sanitize_key( $_GET['instance_id'] );
140
- ?>
141
-
142
- jQuery('#mainform').attr('action', '<?php echo esc_url( $current_url ); ?>');
143
- <?php
144
- endif;
145
- ?>
146
-
147
- jQuery("input.checkbox-select-all").click(function () {
148
- if (jQuery(this).is(':checked')) {
149
- jQuery('input.checkbox-select').prop('checked', true);
150
- } else {
151
- jQuery('input.checkbox-select').prop('checked', false);
152
- }
153
- })
154
-
155
- /**
156
- * Enable Bulk Action Buttons when at least one Shipping Method is selected
157
- *
158
- */
159
- jQuery('.flexible_shipping_methods input[type="checkbox"]').click(function () {
160
- jQuery('#flexible_shipping_export_selected, #flexible_shipping_remove_selected').attr('disabled', !jQuery('.flexible_shipping_methods td input[type="checkbox"]').is(':checked'));
161
- });
162
-
163
- jQuery('#flexible_shipping_remove_selected').click(function () {
164
- var empty_url = '<?php echo add_query_arg( 'methods_id', '', add_query_arg( 'action', 'delete', admin_url( 'admin.php?page=wc-settings&tab=shipping&instance_id=' . sanitize_key( $_GET['instance_id'] ) ) ) ); // phpcs:ignore ?>';
165
- var url = empty_url;
166
- var first = true;
167
- jQuery('input.checkbox-select').each(function () {
168
- if (jQuery(this).is(':checked')) {
169
- if (!first) {
170
- url = url + ',';
171
- } else {
172
- url = url + '=';
173
- }
174
- url = url + jQuery(this).val();
175
- first = false;
176
- }
177
- })
178
- if (first) {
179
- alert('<?php esc_attr_e( 'Please select shipment methods to remove', 'flexible-shipping' ); ?>');
180
- return false;
181
- }
182
- if (url !== empty_url) {
183
- jQuery('#flexible_shipping_remove_selected').prop('disabled', true);
184
- jQuery('.woocommerce-save-button').prop('disabled', true);
185
-
186
- window.location.href = url;
187
- }
188
- return false;
189
- })
190
-
191
- jQuery('#flexible_shipping_import').click(function () {
192
- jQuery(this).hide();
193
- jQuery('#flexible_shipping_do_import').show();
194
- jQuery('#flexible_shipping_import_file').show();
195
- jQuery('#flexible_shipping_import_cancel').show();
196
- jQuery('input[name=save]').prop('disabled', true);
197
- return false;
198
- })
199
-
200
- jQuery('#flexible_shipping_import_cancel').click(function () {
201
- jQuery(this).hide();
202
- jQuery('#flexible_shipping_do_import').hide();
203
- jQuery('#flexible_shipping_import_file').hide();
204
- jQuery('#flexible_shipping_import_cancel').hide();
205
- jQuery('#flexible_shipping_import').show();
206
- jQuery('input[name=save]').prop('disabled', false);
207
- return false;
208
- })
209
-
210
- jQuery('#flexible_shipping_do_import').click(function () {
211
- if (jQuery('#flexible_shipping_import_file').val() == '') {
212
- alert('<?php esc_attr_e( 'Select file to import', 'flexible-shipping' ); ?>');
213
- return false;
214
- }
215
- jQuery('#flexible_shipping_import_action').val('1');
216
- jQuery('input[name=save]').prop('disabled', false);
217
- jQuery('.woocommerce-save-button').click();
218
- return false;
219
- })
220
-
221
- <?php
222
- if ( isset( $_POST['import_action'] ) && sanitize_key( $_POST['import_action'] ) == '1' ) { // phpcs:ignore
223
- ?>
224
- jQuery('.updated.inline:lt(1)').hide();
225
- jQuery('.updated.inline:lt(2)').hide();
226
- <?php
227
- }
228
- ?>
229
- </script>
230
- <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
flexible-shipping.php CHANGED
@@ -3,15 +3,15 @@
3
  * Plugin Name: Flexible Shipping
4
  * Plugin URI: https://wordpress.org/plugins/flexible-shipping/
5
  * Description: Create additional shipment methods in WooCommerce and enable pricing based on cart weight or total.
6
- * Version: 4.13.3
7
  * Author: Octolize
8
  * Author URI: https://octol.io/fs-author
9
  * Text Domain: flexible-shipping
10
  * Domain Path: /lang/
11
  * Requires at least: 5.7
12
  * Tested up to: 6.0
13
- * WC requires at least: 6.4
14
- * WC tested up to: 6.8
15
  * Requires PHP: 7.0
16
  *
17
  * Copyright 2017 WP Desk Ltd.
@@ -38,14 +38,14 @@ if ( ! defined( 'ABSPATH' ) ) {
38
  } // Exit if accessed directly
39
 
40
  /* THIS VARIABLE CAN BE CHANGED AUTOMATICALLY */
41
- $plugin_version = '4.13.3';
42
 
43
  $plugin_name = 'Flexible Shipping';
44
  $product_id = 'Flexible Shipping';
45
  $plugin_class_name = 'Flexible_Shipping_Plugin';
46
  $plugin_text_domain = 'flexible-shipping';
47
  $plugin_file = __FILE__;
48
- $plugin_dir = dirname( __FILE__ );
49
 
50
  define( 'FLEXIBLE_SHIPPING_VERSION', $plugin_version );
51
  define( $plugin_class_name, $plugin_version );
3
  * Plugin Name: Flexible Shipping
4
  * Plugin URI: https://wordpress.org/plugins/flexible-shipping/
5
  * Description: Create additional shipment methods in WooCommerce and enable pricing based on cart weight or total.
6
+ * Version: 4.14.0
7
  * Author: Octolize
8
  * Author URI: https://octol.io/fs-author
9
  * Text Domain: flexible-shipping
10
  * Domain Path: /lang/
11
  * Requires at least: 5.7
12
  * Tested up to: 6.0
13
+ * WC requires at least: 6.5
14
+ * WC tested up to: 6.9
15
  * Requires PHP: 7.0
16
  *
17
  * Copyright 2017 WP Desk Ltd.
38
  } // Exit if accessed directly
39
 
40
  /* THIS VARIABLE CAN BE CHANGED AUTOMATICALLY */
41
+ $plugin_version = '4.14.0';
42
 
43
  $plugin_name = 'Flexible Shipping';
44
  $product_id = 'Flexible Shipping';
45
  $plugin_class_name = 'Flexible_Shipping_Plugin';
46
  $plugin_text_domain = 'flexible-shipping';
47
  $plugin_file = __FILE__;
48
+ $plugin_dir = __DIR__;
49
 
50
  define( 'FLEXIBLE_SHIPPING_VERSION', $plugin_version );
51
  define( $plugin_class_name, $plugin_version );
lang/flexible-shipping.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the same license as the Flexible Shipping plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Flexible Shipping 4.13.3\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/flexible-shipping\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2022-08-16T13:47:06+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: flexible-shipping\n"
@@ -299,36 +299,36 @@ msgstr ""
299
  msgid "Add New"
300
  msgstr ""
301
 
302
- #: classes/table-rate/shipping-method.php:356
303
  msgid "Flexible Shipping: security check error. Shipping method order not saved!"
304
  msgstr ""
305
 
306
- #: classes/table-rate/shipping-method.php:424
307
  msgid "New Shipping Method"
308
  msgstr ""
309
 
310
- #: classes/table-rate/shipping-method.php:427
311
  msgid "Edit Shipping Method"
312
  msgstr ""
313
 
314
- #: classes/table-rate/shipping-method.php:437
315
- #: classes/table-rate/shipping-method.php:480
316
  msgid "Shipping method %s added."
317
  msgstr ""
318
 
319
- #: classes/table-rate/shipping-method.php:463
320
  msgid "Shipping method %s deleted."
321
  msgstr ""
322
 
323
- #: classes/table-rate/shipping-method.php:466
324
  msgid "Shipping method not found."
325
  msgstr ""
326
 
327
- #: classes/table-rate/shipping-method.php:492
328
  msgid "Shipping method %s updated."
329
  msgstr ""
330
 
331
- #: classes/table-rate/shipping-method.php:562
332
  #: src/WPDesk/FS/TableRate/ShippingMethodSingle.php:277
333
  msgid "Shipping cost added."
334
  msgstr ""
@@ -405,7 +405,6 @@ msgid "Name"
405
  msgstr ""
406
 
407
  #: classes/table-rate/views/html-custom-services.php:17
408
- #: classes/table-rate/views/html-shipping-method-settings.php:14
409
  msgid "Enabled"
410
  msgstr ""
411
 
@@ -419,7 +418,6 @@ msgid "All shippings"
419
  msgstr ""
420
 
421
  #: classes/table-rate/views/html-orders-filter-form.php:5
422
- #: classes/table-rate/views/html-shipping-method-settings.php:17
423
  #: src/WPDesk/FS/TableRate/ShippingMethod/CommonMethodSettings.php:189
424
  msgid "Integration"
425
  msgstr ""
@@ -429,78 +427,11 @@ msgid "Shipment status"
429
  msgstr ""
430
 
431
  #: classes/table-rate/views/html-shipping-method-scripts.php:25
432
- #: classes/table-rate/views/html-shipping-method-settings.php:131
433
  #: src/WPDesk/FS/Info/WooCommerceABC.php:33
434
  #: src/WPDesk/FS/Info/WooCommerceABCPL.php:37
435
  msgid "Shipping Zones"
436
  msgstr ""
437
 
438
- #: classes/table-rate/views/html-shipping-method-settings.php:13
439
- msgid "Title"
440
- msgstr ""
441
-
442
- #: classes/table-rate/views/html-shipping-method-settings.php:15
443
- #: src/WPDesk/FS/TableRate/ShippingMethod/CommonMethodSettings.php:130
444
- msgid "Visibility"
445
- msgstr ""
446
-
447
- #: classes/table-rate/views/html-shipping-method-settings.php:16
448
- #: src/WPDesk/FS/TableRate/ShippingMethod/CommonMethodSettings.php:137
449
- msgid "Default"
450
- msgstr ""
451
-
452
- #: classes/table-rate/views/html-shipping-method-settings.php:20
453
- msgid "Select all"
454
- msgstr ""
455
-
456
- #. Translators: matched condition.
457
- #. Translators: add method.
458
- #. Translators: free shipping.
459
- #: classes/table-rate/views/html-shipping-method-settings.php:55
460
- #: classes/table-rate/views/html-shipping-method-settings.php:63
461
- #: classes/table-rate/views/html-shipping-method-settings.php:72
462
- #: src/WPDesk/FS/TableRate/Rule/Condition/AbstractCondition.php:156
463
- #: src/WPDesk/FS/TableRate/Rule/Condition/None.php:64
464
- #: src/WPDesk/FS/TableRate/ShippingMethod/RateCalculator.php:252
465
- #: src/WPDesk/FS/TableRate/ShippingMethod/RateCalculator.php:258
466
- #: src/WPDesk/FS/TableRate/ShippingMethod/RateCalculator.php:269
467
- msgid "yes"
468
- msgstr ""
469
-
470
- #: classes/table-rate/views/html-shipping-method-settings.php:63
471
- #: src/WPDesk/FS/TableRate/ShippingMethod/CommonMethodSettings.php:133
472
- msgid "Show only for logged in users"
473
- msgstr ""
474
-
475
- #: classes/table-rate/views/html-shipping-method-settings.php:66
476
- msgid "Show for all users"
477
- msgstr ""
478
-
479
- #: classes/table-rate/views/html-shipping-method-settings.php:91
480
- msgid "Drag and drop the above shipment methods to control their display order. Confirm by clicking Save changes button below."
481
- msgstr ""
482
-
483
- #: classes/table-rate/views/html-shipping-method-settings.php:98
484
- msgid "Remove selected"
485
- msgstr ""
486
-
487
- #: classes/table-rate/views/html-shipping-method-settings.php:105
488
- msgid "Cancel import"
489
- msgstr ""
490
-
491
- #: classes/table-rate/views/html-shipping-method-settings.php:110
492
- #: classes/table-rate/views/html-shipping-method-settings.php:113
493
- msgid "Import"
494
- msgstr ""
495
-
496
- #: classes/table-rate/views/html-shipping-method-settings.php:179
497
- msgid "Please select shipment methods to remove"
498
- msgstr ""
499
-
500
- #: classes/table-rate/views/html-shipping-method-settings.php:212
501
- msgid "Select file to import"
502
- msgstr ""
503
-
504
  #: classes/table-rate/views/html-shipping-settings-advanced.php:20
505
  msgid "How to use Flexible Shipping?"
506
  msgstr ""
@@ -956,9 +887,13 @@ msgstr ""
956
  msgid "No shipping method handled by Flexible Shipping found in the %1$s shipping zone. %2$sAdd shipping method →%3$s"
957
  msgstr ""
958
 
959
- #. Translators: cart value and shop link.
960
- #: src/WPDesk/FS/TableRate/FreeShipping/FreeShippingNotice.php:130
961
- msgid "You only need %1$s more to get free shipping! %2$sContinue shopping%3$s"
 
 
 
 
962
  msgstr ""
963
 
964
  #: src/WPDesk/FS/TableRate/ImporterExporter/Importer/AbstractImporter.php:75
@@ -1045,6 +980,17 @@ msgstr ""
1045
  msgid " matched: %1$s"
1046
  msgstr ""
1047
 
 
 
 
 
 
 
 
 
 
 
 
1048
  #. Translators: matched condition.
1049
  #. Translators: add method.
1050
  #. Translators: free shipping.
@@ -1421,6 +1367,18 @@ msgstr ""
1421
  msgid "Choose Package value to exclude virtual products from rules calculation."
1422
  msgstr ""
1423
 
 
 
 
 
 
 
 
 
 
 
 
 
1424
  #: src/WPDesk/FS/TableRate/ShippingMethod/CommonMethodSettings.php:140
1425
  msgid "Check the box to set this option as the default selected choice on the cart page."
1426
  msgstr ""
2
  # This file is distributed under the same license as the Flexible Shipping plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Flexible Shipping 4.14.0\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/flexible-shipping\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2022-08-29T08:49:59+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: flexible-shipping\n"
299
  msgid "Add New"
300
  msgstr ""
301
 
302
+ #: classes/table-rate/shipping-method.php:348
303
  msgid "Flexible Shipping: security check error. Shipping method order not saved!"
304
  msgstr ""
305
 
306
+ #: classes/table-rate/shipping-method.php:416
307
  msgid "New Shipping Method"
308
  msgstr ""
309
 
310
+ #: classes/table-rate/shipping-method.php:419
311
  msgid "Edit Shipping Method"
312
  msgstr ""
313
 
314
+ #: classes/table-rate/shipping-method.php:429
315
+ #: classes/table-rate/shipping-method.php:472
316
  msgid "Shipping method %s added."
317
  msgstr ""
318
 
319
+ #: classes/table-rate/shipping-method.php:455
320
  msgid "Shipping method %s deleted."
321
  msgstr ""
322
 
323
+ #: classes/table-rate/shipping-method.php:458
324
  msgid "Shipping method not found."
325
  msgstr ""
326
 
327
+ #: classes/table-rate/shipping-method.php:484
328
  msgid "Shipping method %s updated."
329
  msgstr ""
330
 
331
+ #: classes/table-rate/shipping-method.php:554
332
  #: src/WPDesk/FS/TableRate/ShippingMethodSingle.php:277
333
  msgid "Shipping cost added."
334
  msgstr ""
405
  msgstr ""
406
 
407
  #: classes/table-rate/views/html-custom-services.php:17
 
408
  msgid "Enabled"
409
  msgstr ""
410
 
418
  msgstr ""
419
 
420
  #: classes/table-rate/views/html-orders-filter-form.php:5
 
421
  #: src/WPDesk/FS/TableRate/ShippingMethod/CommonMethodSettings.php:189
422
  msgid "Integration"
423
  msgstr ""
427
  msgstr ""
428
 
429
  #: classes/table-rate/views/html-shipping-method-scripts.php:25
 
430
  #: src/WPDesk/FS/Info/WooCommerceABC.php:33
431
  #: src/WPDesk/FS/Info/WooCommerceABCPL.php:37
432
  msgid "Shipping Zones"
433
  msgstr ""
434
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
435
  #: classes/table-rate/views/html-shipping-settings-advanced.php:20
436
  msgid "How to use Flexible Shipping?"
437
  msgstr ""
887
  msgid "No shipping method handled by Flexible Shipping found in the %1$s shipping zone. %2$sAdd shipping method →%3$s"
888
  msgstr ""
889
 
890
+ #. Translators: cart value.
891
+ #: src/WPDesk/FS/TableRate/FreeShipping/FreeShippingNotice.php:159
892
+ msgid "You only need %1$s more to get free shipping!"
893
+ msgstr ""
894
+
895
+ #: src/WPDesk/FS/TableRate/FreeShipping/FreeShippingNotice.php:170
896
+ msgid "Continue shopping"
897
  msgstr ""
898
 
899
  #: src/WPDesk/FS/TableRate/ImporterExporter/Importer/AbstractImporter.php:75
980
  msgid " matched: %1$s"
981
  msgstr ""
982
 
983
+ #. Translators: matched condition.
984
+ #. Translators: add method.
985
+ #. Translators: free shipping.
986
+ #: src/WPDesk/FS/TableRate/Rule/Condition/AbstractCondition.php:156
987
+ #: src/WPDesk/FS/TableRate/Rule/Condition/None.php:64
988
+ #: src/WPDesk/FS/TableRate/ShippingMethod/RateCalculator.php:252
989
+ #: src/WPDesk/FS/TableRate/ShippingMethod/RateCalculator.php:258
990
+ #: src/WPDesk/FS/TableRate/ShippingMethod/RateCalculator.php:269
991
+ msgid "yes"
992
+ msgstr ""
993
+
994
  #. Translators: matched condition.
995
  #. Translators: add method.
996
  #. Translators: free shipping.
1367
  msgid "Choose Package value to exclude virtual products from rules calculation."
1368
  msgstr ""
1369
 
1370
+ #: src/WPDesk/FS/TableRate/ShippingMethod/CommonMethodSettings.php:130
1371
+ msgid "Visibility"
1372
+ msgstr ""
1373
+
1374
+ #: src/WPDesk/FS/TableRate/ShippingMethod/CommonMethodSettings.php:133
1375
+ msgid "Show only for logged in users"
1376
+ msgstr ""
1377
+
1378
+ #: src/WPDesk/FS/TableRate/ShippingMethod/CommonMethodSettings.php:137
1379
+ msgid "Default"
1380
+ msgstr ""
1381
+
1382
  #: src/WPDesk/FS/TableRate/ShippingMethod/CommonMethodSettings.php:140
1383
  msgid "Check the box to set this option as the default selected choice on the cart page."
1384
  msgstr ""
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://octol.io/fs-repo-up
4
  Tags: table rate, table rate shipping, conditional shipping, free shipping, woocommerce shipping, woocommerce table rate shipping, cart based shipping, weight based shipping, totals based shipping, order based shipping, advanced shipping
5
  Requires at least: 5.7
6
  Tested up to: 6.0
7
- Stable tag: 4.13.3
8
  Requires PHP: 7.0
9
  License: GPLv3 or later
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
@@ -216,6 +216,9 @@ If you are upgrading from the old Flexible Shipping version (1.3.2, woo-flexible
216
 
217
  == Changelog ==
218
 
 
 
 
219
  = 4.13.3 - 2022-08-02 =
220
  * Added extended data (matched items) in debug mode
221
 
4
  Tags: table rate, table rate shipping, conditional shipping, free shipping, woocommerce shipping, woocommerce table rate shipping, cart based shipping, weight based shipping, totals based shipping, order based shipping, advanced shipping
5
  Requires at least: 5.7
6
  Tested up to: 6.0
7
+ Stable tag: 4.14.0
8
  Requires PHP: 7.0
9
  License: GPLv3 or later
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
216
 
217
  == Changelog ==
218
 
219
+ = 4.14.0 - 2022-08-29 =
220
+ Added free shipping notice filters: flexible_shipping_free_shipping_notice_text_message and flexible_shipping_free_shipping_notice_text_button_label
221
+
222
  = 4.13.3 - 2022-08-02 =
223
  * Added extended data (matched items) in debug mode
224
 
src/WPDesk/FS/TableRate/FreeShipping/FreeShippingNotice.php CHANGED
@@ -18,8 +18,8 @@ use WP;
18
  class FreeShippingNotice implements Hookable {
19
 
20
  const FLEXIBLE_SHIPPING_FREE_SHIPPING_NOTICE = 'flexible_shipping_free_shipping_notice';
21
- const NOTICE_TYPE = 'notice';
22
- const NOTICE_CONTAINER_CLASS = 'flexible-shipping-notice-container';
23
 
24
  /**
25
  * @var WC_Cart
@@ -125,13 +125,17 @@ class FreeShippingNotice implements Hookable {
125
  * @return string
126
  */
127
  private function prepare_notice_text( $amount ) {
128
- $notice_text = sprintf(
129
- // Translators: cart value and shop link.
130
- __( 'You only need %1$s more to get free shipping! %2$sContinue shopping%3$s', 'flexible-shipping' ),
131
- wc_price( $amount ),
132
- '<a class="button" href="' . esc_url( apply_filters( 'woocommerce_return_to_shop_redirect', wc_get_page_permalink( 'shop' ) ) ) . '">',
133
- '</a>'
134
- );
 
 
 
 
135
 
136
  /**
137
  * Notice text for Free Shipping.
@@ -143,4 +147,26 @@ class FreeShippingNotice implements Hookable {
143
  */
144
  return apply_filters( 'flexible_shipping_free_shipping_notice_text', $notice_text, $amount );
145
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
146
  }
18
  class FreeShippingNotice implements Hookable {
19
 
20
  const FLEXIBLE_SHIPPING_FREE_SHIPPING_NOTICE = 'flexible_shipping_free_shipping_notice';
21
+ const NOTICE_TYPE = 'notice';
22
+ const NOTICE_CONTAINER_CLASS = 'flexible-shipping-notice-container';
23
 
24
  /**
25
  * @var WC_Cart
125
  * @return string
126
  */
127
  private function prepare_notice_text( $amount ) {
128
+ $notice_text = $this->get_notice_text_message( wc_price( $amount ) );
129
+ $button_label = $this->get_notice_text_button_label();
130
+
131
+ if ( is_string( $button_label ) && ! empty( $button_label ) ) {
132
+ $notice_text .= sprintf(
133
+ '%1$s%2$s%3$s',
134
+ '<a class="button flexible-shipping-free-shipping-button" href="' . esc_url( apply_filters( 'woocommerce_return_to_shop_redirect', wc_get_page_permalink( 'shop' ) ) ) . '">',
135
+ $button_label,
136
+ '</a>'
137
+ );
138
+ }
139
 
140
  /**
141
  * Notice text for Free Shipping.
147
  */
148
  return apply_filters( 'flexible_shipping_free_shipping_notice_text', $notice_text, $amount );
149
  }
150
+
151
+ /**
152
+ * @param $amount
153
+ *
154
+ * @return string
155
+ */
156
+ private function get_notice_text_message( $amount ) {
157
+ $message = sprintf(
158
+ // Translators: cart value.
159
+ __( 'You only need %1$s more to get free shipping!', 'flexible-shipping' ),
160
+ $amount
161
+ );
162
+
163
+ return apply_filters( 'flexible_shipping_free_shipping_notice_text_message', $message, $amount );
164
+ }
165
+
166
+ /**
167
+ * @return string
168
+ */
169
+ private function get_notice_text_button_label() {
170
+ return apply_filters( 'flexible_shipping_free_shipping_notice_text_button_label', __( 'Continue shopping', 'flexible-shipping' ) );
171
+ }
172
  }
vendor_prefixed/wpdesk/wp-basic-requirements/composer.json CHANGED
@@ -29,7 +29,11 @@
29
  "text-domain": "wp-basic-requirements",
30
  "translations-folder": "lang",
31
  "po-files": {
32
- "pl_PL": "wp-basic-requirements-pl_PL.po"
 
 
 
 
33
  }
34
  },
35
  "scripts": {
29
  "text-domain": "wp-basic-requirements",
30
  "translations-folder": "lang",
31
  "po-files": {
32
+ "pl_PL": "pl_PL.po",
33
+ "en_AU": "en_AU.po",
34
+ "en_CA": "en_CA.po",
35
+ "en_GB": "en_GB.po",
36
+ "de_DE": "de_DE.po"
37
  }
38
  },
39
  "scripts": {
vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker.php CHANGED
@@ -442,7 +442,7 @@ if (!\class_exists('FSVendor\\WPDesk_Basic_Requirement_Checker')) {
442
  if (\count($this->module_require) > 0) {
443
  foreach ($this->module_require as $module_name => $nice_module_name) {
444
  if (!self::is_module_active($module_name)) {
445
- $notices[] = $this->prepare_notice_message(\sprintf(\__('The &#8220;%s&#8221; plugin cannot run without %s php module installed. Please contact your host and ask them to install %s.', $this->get_text_domain()), \esc_html($this->plugin_name), \esc_html(\basename($nice_module_name)), \esc_html(\basename($nice_module_name))));
446
  }
447
  }
448
  }
@@ -467,7 +467,7 @@ if (!\class_exists('FSVendor\\WPDesk_Basic_Requirement_Checker')) {
467
  if (\count($this->setting_require) > 0) {
468
  foreach ($this->setting_require as $setting => $value) {
469
  if (!self::is_setting_set($setting, $value)) {
470
- $notices[] = $this->prepare_notice_message(\sprintf(\__('The &#8220;%s&#8221; plugin cannot run without %s php setting set to %s. Please contact your host and ask them to set %s.', $this->get_text_domain()), \esc_html($this->plugin_name), \esc_html(\basename($setting)), \esc_html(\basename($value)), \esc_html(\basename($setting))));
471
  }
472
  }
473
  }
442
  if (\count($this->module_require) > 0) {
443
  foreach ($this->module_require as $module_name => $nice_module_name) {
444
  if (!self::is_module_active($module_name)) {
445
+ $notices[] = $this->prepare_notice_message(\sprintf(\__('The &#8220;%s&#8221; plugin cannot run without %s PHP module installed. Please contact your host and ask them to install %s.', $this->get_text_domain()), \esc_html($this->plugin_name), \esc_html(\basename($nice_module_name)), \esc_html(\basename($nice_module_name))));
446
  }
447
  }
448
  }
467
  if (\count($this->setting_require) > 0) {
468
  foreach ($this->setting_require as $setting => $value) {
469
  if (!self::is_setting_set($setting, $value)) {
470
+ $notices[] = $this->prepare_notice_message(\sprintf(\__('The &#8220;%s&#8221; plugin cannot run without %s PHP setting set to %s. Please contact your host and ask them to set %s.', $this->get_text_domain()), \esc_html($this->plugin_name), \esc_html(\basename($setting)), \esc_html(\basename($value)), \esc_html(\basename($setting))));
471
  }
472
  }
473
  }
vendor_prefixed/wpdesk/wp-basic-requirements/src/Basic_Requirement_Checker_With_Update_Disable.php CHANGED
@@ -26,7 +26,7 @@ if (!\class_exists('FSVendor\\WPDesk_Basic_Requirement_Checker_With_Update_Disab
26
  foreach ($this->plugin_require as $name => $plugin_info) {
27
  if ($this->is_currently_updated($name)) {
28
  $nice_name = $plugin_info[self::PLUGIN_INFO_KEY_NICE_NAME];
29
- $this->notices[] = $this->prepare_notice_message(\sprintf(\__('The &#8220;%s&#8221; plugin disables temporarily as required %s plugin is being upgraded.', $this->get_text_domain()), $this->plugin_name, $nice_name, $nice_name));
30
  }
31
  }
32
  return \count($this->notices) === 0;
26
  foreach ($this->plugin_require as $name => $plugin_info) {
27
  if ($this->is_currently_updated($name)) {
28
  $nice_name = $plugin_info[self::PLUGIN_INFO_KEY_NICE_NAME];
29
+ $this->notices[] = $this->prepare_notice_message(\sprintf(\__('The &#8220;%s&#8221; plugin is temporarily disabled since the required %s plugin is being upgraded.', $this->get_text_domain()), $this->plugin_name, $nice_name, $nice_name));
30
  }
31
  }
32
  return \count($this->notices) === 0;
vendor_prefixed/wpdesk/wp-helpscout-beacon/composer.json CHANGED
@@ -35,5 +35,15 @@
35
  "phpunit-unit-fast": "phpunit --configuration phpunit-unit.xml --no-coverage",
36
  "phpunit-integration": "phpunit --configuration phpunit-integration.xml --coverage-text --colors=never",
37
  "phpunit-integration-fast": "phpunit --configuration phpunit-integration.xml --no-coverage"
 
 
 
 
 
 
 
 
 
 
38
  }
39
  }
35
  "phpunit-unit-fast": "phpunit --configuration phpunit-unit.xml --no-coverage",
36
  "phpunit-integration": "phpunit --configuration phpunit-integration.xml --coverage-text --colors=never",
37
  "phpunit-integration-fast": "phpunit --configuration phpunit-integration.xml --no-coverage"
38
+ },
39
+ "extra": {
40
+ "text-domain": "wp-helpscout-beacon",
41
+ "translations-folder": "lang",
42
+ "po-files": {
43
+ "pl_PL": "wp-helpscout-beacon-pl_PL.po",
44
+ "en_AU": "wp-helpscout-beacon-en_AU.po",
45
+ "en_CA": "wp-helpscout-beacon-en_CA.po",
46
+ "en_GB": "wp-helpscout-beacon-en_GB.po"
47
+ }
48
  }
49
  }
vendor_prefixed/wpdesk/wp-helpscout-beacon/src/Beacon/Beacon.php CHANGED
@@ -48,7 +48,7 @@ class Beacon
48
  $this->activation_strategy = $strategy;
49
  $this->assets_url = $assets_url;
50
  $this->beacon_search_elements_class = $beacon_search_elements_class;
51
- $this->confirmation_message = \__('When you click OK we will open our HelpScout beacon where you can find answers to your questions. This beacon will load our help articles and also potentially set cookies.', 'wp-helpscout-beacon');
52
  $this->beacon_image_content = $beacon_image_content;
53
  }
54
  /**
@@ -89,7 +89,7 @@ class Beacon
89
  {
90
  if ($this->should_display_beacon()) {
91
  $beacon_id = $this->beacon_id;
92
- $confirmation_message = \__('When you click OK we will open our HelpScout beacon where you can find answers to your questions. This beacon will load our help articles and also potentially set cookies.', 'wp-helpscout-beacon');
93
  $beacon_search_elements_class = $this->beacon_search_elements_class;
94
  $confirmation_message = $this->confirmation_message;
95
  $beacon_image_content = $this->beacon_image_content;
48
  $this->activation_strategy = $strategy;
49
  $this->assets_url = $assets_url;
50
  $this->beacon_search_elements_class = $beacon_search_elements_class;
51
+ $this->confirmation_message = \__('When you click OK we will open our HelpScout beacon where you can find answers to your questions. This beacon will load our help articles and also potentially set cookies.', 'flexible-shipping');
52
  $this->beacon_image_content = $beacon_image_content;
53
  }
54
  /**
89
  {
90
  if ($this->should_display_beacon()) {
91
  $beacon_id = $this->beacon_id;
92
+ $confirmation_message = \__('When you click OK we will open our HelpScout beacon where you can find answers to your questions. This beacon will load our help articles and also potentially set cookies.', 'flexible-shipping');
93
  $beacon_search_elements_class = $this->beacon_search_elements_class;
94
  $confirmation_message = $this->confirmation_message;
95
  $beacon_image_content = $this->beacon_image_content;
vendor_prefixed/wpdesk/wp-logs/composer.json CHANGED
@@ -40,7 +40,12 @@
40
  "text-domain": "wp-logs",
41
  "translations-folder": "lang",
42
  "po-files": {
43
- "pl_PL": "pl_PL.po"
 
 
 
 
 
44
  }
45
  }
46
  }
40
  "text-domain": "wp-logs",
41
  "translations-folder": "lang",
42
  "po-files": {
43
+ "pl_PL": "pl_PL.po",
44
+ "en_AU": "en_AU.po",
45
+ "en_CA": "en_CA.po",
46
+ "en_GB": "en_GB.po",
47
+ "es_ES": "es_ES.po",
48
+ "de_DE": "de_DE.po"
49
  }
50
  }
51
  }
vendor_prefixed/wpdesk/wp-wpdesk-tracker-deactivation/composer.json CHANGED
@@ -43,7 +43,11 @@
43
  "text-domain": "wp-wpdesk-tracker-deactivation",
44
  "translations-folder": "lang",
45
  "po-files": {
46
- "pl_PL": "pl_PL.po"
 
 
 
 
47
  }
48
  },
49
  "scripts": {
43
  "text-domain": "wp-wpdesk-tracker-deactivation",
44
  "translations-folder": "lang",
45
  "po-files": {
46
+ "pl_PL": "pl_PL.po",
47
+ "en_AU": "en_AU.po",
48
+ "en_CA": "en_CA.po",
49
+ "en_GB": "en_GB.po",
50
+ "de_DE": "de_DE.po"
51
  }
52
  },
53
  "scripts": {
vendor_prefixed/wpdesk/wp-wpdesk-tracker/composer.json CHANGED
@@ -44,7 +44,12 @@
44
  "text-domain": "wpdesk-tracker",
45
  "translations-folder": "lang",
46
  "po-files": {
47
- "pl_PL": "wpdesk-tracker-pl_PL.po"
 
 
 
 
 
48
  }
49
  },
50
  "scripts": {
44
  "text-domain": "wpdesk-tracker",
45
  "translations-folder": "lang",
46
  "po-files": {
47
+ "pl_PL": "pl_PL.po",
48
+ "es_ES": "es_ES.po",
49
+ "en_AU": "en_AU.po",
50
+ "en_CA": "en_CA.po",
51
+ "en_GB": "en_GB.po",
52
+ "de_DE": "de_DE.po"
53
  }
54
  },
55
  "scripts": {