Flexible Shipping for WooCommerce - Version 3.11.1

Version Description

  • 2020-08-11 =
  • Modified New Table Interface test
  • Added support for WordPress 5.5
Download this release

Release Info

Developer wpdesk
Plugin Icon 128x128 Flexible Shipping for WooCommerce
Version 3.11.1
Comparing to
See all releases

Code changes from version 3.11.0 to 3.11.1

Files changed (31) hide show
  1. assets/css/admin.css +5 -0
  2. assets/css/admin.min.css +1 -1
  3. classes/class-flexible-shipping-plugin.php +15 -4
  4. classes/table-rate/shipping-method.php +9 -1
  5. composer.lock +65 -65
  6. flexible-shipping.php +3 -3
  7. readme.txt +6 -2
  8. src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesBannerClickedOption.php +72 -0
  9. src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesBannerDontLikeOption.php +36 -0
  10. src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesBannerLikeOption.php +62 -0
  11. src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesPointerBanner.php +71 -0
  12. src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesPointerBannerForNewTable.php +45 -0
  13. src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesPointerBannerForOldTable.php +54 -0
  14. src/WPDesk/FS/TableRate/NewRulesTableBanner/views/html-new-rules-table-banner-for-new-table.php +20 -0
  15. src/WPDesk/FS/TableRate/NewRulesTableBanner/views/html-new-rules-table-banner.php +20 -0
  16. src/WPDesk/FS/TableRate/NewRulesTableBanner/views/html-new-rules-table-script.php +69 -0
  17. src/WPDesk/FS/TableRate/NewRulesTableDeactivationTracker.php +47 -0
  18. src/WPDesk/FS/TableRate/NewRulesTablePointer/ShippingMethodNewRuleTableSetting.php +19 -5
  19. src/WPDesk/FS/TableRate/NewRulesTableTracker.php +4 -74
  20. src/WPDesk/FS/TableRate/NewRulesTableTrackerData.php +101 -0
  21. src/WPDesk/FS/TableRate/UserFeedback.php +17 -14
  22. src/WPDesk/FS/TableRate/views/shipping-method-settings-rules.php +2 -0
  23. vendor/autoload.php +1 -1
  24. vendor/composer/autoload_classmap.php +8 -0
  25. vendor/composer/autoload_real.php +4 -4
  26. vendor/composer/autoload_static.php +13 -5
  27. vendor_prefixed/monolog/monolog/src/Monolog/Handler/RavenHandler.php +1 -1
  28. vendor_prefixed/monolog/monolog/src/Monolog/Handler/StreamHandler.php +1 -1
  29. vendor_prefixed/monolog/monolog/src/Monolog/Processor/WebProcessor.php +3 -3
  30. vendor_prefixed/wpdesk/wp-logs/src/WP/WPCapture.php +6 -2
  31. vendor_prefixed/wpdesk/wp-logs/src/WPDeskLoggerFactory.php +3 -1
assets/css/admin.css CHANGED
@@ -1025,3 +1025,8 @@ table.wc_input_table.flexible_shipping_rules td.rule_conditions {
1025
  table.wc_input_table.flexible_shipping_rules td.rule_conditions div.single_rule_condition p.form-row {
1026
  display: inline-block;
1027
  }
 
 
 
 
 
1025
  table.wc_input_table.flexible_shipping_rules td.rule_conditions div.single_rule_condition p.form-row {
1026
  display: inline-block;
1027
  }
1028
+
1029
+ /** New rules table banner */
1030
+ table#fs_new_rules_table_banner.widefat thead td, table#fs_new_rules_table_banner_for_new_table.widefat thead td {
1031
+ padding:5px 20px 20px;
1032
+ }
assets/css/admin.min.css CHANGED
@@ -1 +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;padding:2px}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_methods td.ui-sortable-handle:before,table.flexible_shipping_services td.ui-sortable-handle:before{content:'\f333';font-family:Dashicons;text-align:center;line-height:1;color:#999;display:block;width:17px;float:left;height:100%;line-height:24px}table.wc_input_table.flexible_shipping_rules.fs_new_interface td{padding:25px 5px;vertical-align:middle;border:0}table.wc_input_table.flexible_shipping_rules.fs_new_interface tr:nth-child(even) td{background:#f9f9f9}table.wc_input_table.flexible_shipping_rules.fs_new_interface tr:nth-child(odd) td.sort{background:white}table.wc_input_table.flexible_shipping_rules.fs_new_interface td p.form-row{margin-top:0}table.wc_input_table.flexible_shipping_rules.fs_new_interface .description{padding-top:5px}table.wc_input_table.flexible_shipping_rules.fs_new_interface .form-row{padding-right:5px}table.wc_input_table.flexible_shipping_rules.fs_new_interface .single_rule_condition{vertical-align:middle;display:flex}table.wc_input_table.flexible_shipping_rules.fs_new_interface tbody .sort{padding-top:27px !important;padding-bottom:23px !important}.flexible_shipping_method_rules th{width:auto}.flexible_shipping_method_rules th.sort{width:10px}td.fs_cost{width:75px !important}div.rule_condition div{display:inline-block}div.rule_condition div.based_on{width:70px}div.rule_condition div input{width:70px}table.flexible_shipping_method_rules th,table.flexible_shipping_method_rules th{padding:5px 10px 5px 0}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%;box-shadow:none;padding:0 !important}table.flexible_shipping_method_rules td p input[type=text]{text-align:right;padding:0 5px 0 5px !important;width:100% !important}table.flexible_shipping_method_rules td p select{margin:0;width:100% !important;box-shadow:none;line-height:28px;height:37px;vertical-align:middle}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}table.flexible_shipping_method_rules th.shipping_class,table.flexible_shipping_method_rules td.shipping_class{text-align:center;width:200px}table.flexible_shipping_method_rules td.shipping_class span{border:0}table.flexible_shipping_method_rules th.stop,table.flexible_shipping_method_rules td.stop{text-align:center;width:30px}table.flexible_shipping_method_rules th.cancel,table.flexible_shipping_method_rules td.cancel{text-align:center;width:60px}.woocommerce table.form-table .flexible_shipping_method_rules th span.woocommerce-help-tip{float:none;margin:0}.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}table.flexible_shipping_method_rules tfoot th{padding:10px}.woocommerce_page_wc-settings #mainform{position:relative}.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}.column-flexible_shipping mark.manifest:after{color:#2ea2cc !important}.flexible_shipping_shipment_message{color:green}.flexible_shipping_shipment_message_error{color:#a00 !important}.flexible_shipping_shipment_message_error span{color:#444;font-weight:bold}.woocommerce .wp-admin select{height:100%}.button.flexible-printing-button-print{height:auto !important;white-space:normal !important;word-wrap:break-word !important}.inspire-settings{display:table;width:100%}.inspire-settings .inspire-main-content,.inspire-settings .inspire-sidebar{display:table-cell;height:500px;margin:0;padding:0;vertical-align:top}.inspire-settings .inspire-main-content{min-width:800px}.inspire-settings .inspire-sidebar{padding-left:30px;width:250px}.flexible-shipping-info ol{margin-top:0}#wpbody-content .flexible-shipping-info .metabox-holder{padding-top:0}#adminmenu #toplevel_page_flexible-shipping .menu-icon-generic div.wp-menu-image::before{font-family:WooCommerce !important;content:'\e01d'}.fs-new-service{color:#006799}.fs-order-item-fallback{margin-top:.5em;color:#888}.flexible_shipping_shipment_content p select{max-width:95%}.flexible_shipping_shipment_content span.description{display:block}.fs-saas-button-cancel-created{float:right;color:#a00;margin-top:5px}.fs-saas-button-cancel-created:hover{color:#a00;cursor:pointer}.flexible_shipping_shipment_content input[type=checkbox]{float:left;margin-right:5px;margin-top:2px !important;opacity:1;border-color:#888}.flexible_shipping_shipment_content input[type=checkbox]:disabled{opacity:.7;border-color:rgba(51,51,51,0.5)}.flexible_shipping_shipment_content p.fs-saas-status span{font-weight:bold;color:#444}.flexible_shipping_shipment_content p.fs-saas-status-fs-new{color:#ffba00}.flexible_shipping_shipment_content p.fs-saas-status-fs-created{color:#d0c21f}.flexible_shipping_shipment_content p.fs-saas-status-fs-confirmed{color:#444}.flexible_shipping_shipment_content p.fs-saas-status-fs-failed{color:#a00}.flexible_shipping_shipment_content p.fs-saas-status-fs-manifest{color:#2ea2cc}.flexible_shipping_shipment_content p.connection-error{font-weight:bold;color:#a00}.fs-saas-shipment span{font-weight:bold}.fs-saas-labels-counts span{font-weight:bold}.fs-saas-no-labels-left{color:#a00}div.flexible-shipping-shipment-attachments p{display:inline}.flexible_shipping_shipment_attachment_message{padding-top:10px;color:green}table.flexible_shipping_services{max-width:550px}table.flexible_shipping_services .sort{width:1%}table.flexible_shipping_services .service_code{width:30px}table.flexible_shipping_services .select{text-align:center;width:1%}table.flexible_shipping_services .select input{margin:0 8px 0 8px}.woocommerce table.form-table table.flexible_shipping_services td.service_name input{width:100%}input.woocommerce_flexible_shipping_service_name{width:100%}.updated .fs-banner__button-container{padding:.75rem 0 0}.notice-info.fs-connect__container{border-left:0;padding:0;box-shadow:0 0 0 1px #dfdfdf,0 1px 2px #dfdfdf}@media screen and (max-width:782px){.notice-info.fs-connect__container{padding:0 !important}}.fs-connect__container{display:block;position:relative;box-sizing:border-box}.fs-connect__inner-container>a:first-child{z-index:1}.fs-connect__inner-container{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:left;justify-content:left}.fs-connect__content-container{width:1250px;position:relative;padding:2rem;z-index:0}@media(min-width:782px){.fs-connect__content-container{padding:2rem 2rem 4rem 2rem}}.fs-connect__content-container p{color:#555;font-size:.875rem}.fs-connect__content-container h2{margin-top:0;color:#555;line-height:1.6}.fs-connect__content-icon{float:right;margin:0 1.5rem 0 2.25rem}.fs-connect__content-icon svg{fill:#0085ba;height:180px;width:auto}@media(max-width:782px){.fs-connect__content-icon.fs-connect-illo{float:none;width:100%;text-align:center;margin:2.25rem 0 1.5rem}}.fs-connect__slide{display:none}.fs-connect__slide.fs__slide-is-active{display:block}@media(min-width:782px){.fs-connect__content-container .fs-banner__button-container{position:absolute;bottom:.5rem}}.fs-banner__button-container .button-primary{margin:0 .3125rem .3125rem 0}.fs-connect__vertical-nav{background-color:#f1f1f1}@media(min-width:600px){.fs-connect__vertical-nav{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:start;justify-content:flex-start}}@media(max-width:600px){.fs-connect__vertical-nav{display:none}}.fs-connect__vertical-nav-container{width:15rem}.vertical-menu__feature-item-label{display:none}@media(min-width:600px){.vertical-menu__feature-item{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;border:0;padding:.5rem;border-bottom:1px solid #dfdfdf;border-right:1px solid #dfdfdf;border-left:3px solid #f9f9f9;background-color:#f9f9f9;color:#555;cursor:pointer}.vertical-menu__feature-item:last-of-type{position:relative;top:1px}.vertical-menu__feature-item-is-selected{border-left:3px solid #0085ba;border-right:1px solid #fff;background-color:#fff;color:#2e4453}.vertical-menu__feature-item-is-selected.fs-feature-intro{border-left:3px solid #00be28}.vertical-menu__feature-item-icon{width:1.25rem;height:1.25rem;padding:.25rem;text-align:center}.vertical-menu__feature-item svg{fill:#555;vertical-align:middle}.vertical-menu__feature-item-is-selected svg{fill:#0085ba}.vertical-menu__feature-item-label{display:block;padding:.5rem}}.fs-couriers{margin-top:2.5em}.fs-courier{position:relative;margin-bottom:2.5em;text-align:center}.fs-courier img{height:50px;width:auto}.fs-courier-label{background-color:#333;border-radius:3px;color:#fff;padding:0 4px 1px;position:absolute;right:0;top:-10px}@media(min-width:1200px){.fs-couriers{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.fs-courier{width:20%}}.admin_page_flexible_shipping_connect_register .notice.is-dismissible,.admin_page_flexible_shipping_connect_register .update-nag,.admin_page_flexible_shipping_connect_register .updated,.admin_page_flexible_shipping_connect_register .settings-error{display:none !important}.fs-page-wrap{margin:0 auto;max-width:45rem}.fs-page-wrap h1{font-weight:normal;margin-bottom:.67em;text-align:center}.fs-box{display:block;position:relative;margin:0 auto 20px;padding:16px;box-sizing:border-box;background:white;box-shadow:0 0 0 1px #dfdfdf,0 1px 2px #dfdfdf}.fs-box:after{content:".";display:block;height:0;clear:both;visibility:hidden}.admin_page_flexible_shipping_connect_register .fs-box,.fs-box.text-center{text-align:center}.admin_page_flexible_shipping_connect_register .fs-box p{margin:1.5em 0}.fs-box input[type="email"]{padding:8px 10px}.fs-actions{padding-left:40px}.fs-actions button:active{vertical-align:inherit !important}.fs-actions .spinner{float:none;margin-top:0}.fs-cols{display:flex;flex-wrap:wrap;justify-content:space-between}.fs-inner-box{box-sizing:border-box;margin-top:30px;padding:0 20px}.fs-inner-box h4{font-size:1.2em;margin-bottom:.37em}.fs-inner-box svg{fill:#0085ba;height:70px;width:auto}@media(min-width:600px){.fs-inner-box{width:33.33%}}.fs-connect-box-header{margin-top:3em}.hide-fs-connect-integration-box{display:none}.fs-settings-div table.form-table{width:700px;float:left}.fs-flexible-shipping-sidebar{float:right;padding-left:30px;width:300px;margin-top:-100px}@media(max-width:1200px){.fs-flexible-shipping-sidebar{display:none}}.wpdesk-metabox{background-color:#23282d;color:#fff;padding:20px}.wpdesk-metabox .title{color:#fff}.wpdesk-metabox .icon{display:block;margin:0 auto;width:110px}table.wc_input_table.flexible_shipping_rules{width:auto;min-width:764px}table.wc_input_table.flexible_shipping_rules td{padding:3px 5px}table.wc_input_table.flexible_shipping_rules span.input-wrapper{line-height:2em}table.wc_input_table.flexible_shipping_rules span.input-wrapper input{line-height:2em}table.wc_input_table.flexible_shipping_rules span.input-wrapper select,table.wc_input_table.flexible_shipping_rules p span.woocommerce-input-wrapper select{line-height:2em}table.wc_input_table.flexible_shipping_rules span.input-wrapper label{padding-right:3px;padding-left:3px}table.wc_input_table.flexible_shipping_rules td label{padding-right:3px;padding-left:3px;padding-top:5px}table.wc_input_table.flexible_shipping_rules.fs_new_interface td label{padding-right:10px;padding-left:10px;padding-top:5px}table.wc_input_table.flexible_shipping_rules span.input-wrapper span.description,table.wc_input_table.flexible_shipping_rules p.form-row span.description{padding-right:3px;padding-left:3px;vertical-align:middle;font-style:normal;font-size:14px}table.wc_input_table.flexible_shipping_rules p.form-row span.description{padding-top:4px;position:absolute}table.wc_input_table.flexible_shipping_rules td{vertical-align:top}table.wc_input_table.flexible_shipping_rules td{padding-top:2px;padding-bottom:2px}table.wc_input_table.flexible_shipping_rules th.sort,table.wc_input_table.flexible_shipping_rules th.sort{width:20px;text-align:center}table.wc_input_table.flexible_shipping_rules th.cb,table.wc_input_table.flexible_shipping_rules td.cb{width:20px;text-align:center;padding:10px 5px;padding-right:5px !important;margin:0}table.wc_input_table.flexible_shipping_rules th.cb input,table.wc_input_table.flexible_shipping_rules td.cb input{margin:0}table.wc_input_table.flexible_shipping_rules th.rule_costs{width:220px}table.wc_input_table.flexible_shipping_rules input[type=text]{width:100px !important;height:2em !important;border:1px solid}table.wc_input_table.flexible_shipping_rules select{width:120px !important;height:2em !important;border:1px solid;padding:0 5px}table.wc_input_table.flexible_shipping_rules.fs_new_interface select{width:130px !important}table.wc_input_table.flexible_shipping_rules input.cost_additional{width:60px !important;min-width:60px}table.wc_input_table.flexible_shipping_rules input.per_value{width:60px !important;min-width:60px}table.wc_input_table.flexible_shipping_rules td.rule_costs div.input-wrapper.cost_per_order{display:block}table.wc_input_table.flexible_shipping_rules td.rule_costs a.button.plus.insert{display:inline-block;float:right;clear:both}table.wc_input_table.flexible_shipping_rules td.rule_costs div.additional_cost_wrapper{border-top:1px solid #dfdfdf;margin-top:2px;padding-top:2px;display:block}table.wc_input_table.flexible_shipping_rules td.rule_costs a.button.minus{display:inline-block;float:right;clear:both}table.wc_input_table.flexible_shipping_rules div.single_rule_condition:nth-child(n+2){border-top:1px solid #dfdfdf;padding-top:2px;margin-top:2px}table.wc_input_table.flexible_shipping_rules div.single_rule_condition div.condition_field_wrapper{display:inline-block}table.wc_input_table.flexible_shipping_rules div.single_rule_condition div.condition_parameters_wrapper{display:inline-block}table.wc_input_table.flexible_shipping_rules div.single_rule_condition div.condition_parameters_wrapper input.parameter_min{width:60px !important;min-width:60px}table.wc_input_table.flexible_shipping_rules div.single_rule_condition div.condition_parameters_wrapper input.parameter_max{width:60px !important;min-width:60px}table.wc_input_table.flexible_shipping_rules div.single_rule_condition label.condition_field_label{width:55px;text-align:right}table.wc_input_table.flexible_shipping_rules div.single_rule_condition:first-child label.condition_field_label_where{display:inline-block}table.wc_input_table.flexible_shipping_rules div.single_rule_condition:nth-child(n+2) label.condition_field_label_where{display:none}table.wc_input_table.flexible_shipping_rules div.single_rule_condition:first-child label.condition_field_label_and{display:none}table.wc_input_table.flexible_shipping_rules div.single_rule_condition:nth-child(n+2) label.condition_field_label_and{display:inline-block}table.wc_input_table.flexible_shipping_rules div.single_rule_condition a.minus{float:right}table.wc_input_table.flexible_shipping_rules div.single_rule_condition a.plus{float:right}table.wc_input_table.flexible_shipping_rules div.single_rule_condition:first-child a.minus{display:none}table.wc_input_table.flexible_shipping_rules div.single_rule_condition:nth-child(n+2) a.plus{display:none}table.wc_input_table.flexible_shipping_rules input.select2-search__field{border:0}table.wc_input_table.flexible_shipping_rules td p label span.optional{display:none}table.wc_input_table.flexible_shipping_rules td.rule_conditions{min-width:465px}table.wc_input_table.flexible_shipping_rules td.rule_conditions div.single_rule_condition p.form-row{display:inline-block}
1
+ table.flexible_shipping_methods th.select,table.flexible_shipping_methods td.select{text-align:center;width:40px;margin-top:-7px;margin-left:-6px;padding:2px}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_methods td.ui-sortable-handle:before,table.flexible_shipping_services td.ui-sortable-handle:before{content:'\f333';font-family:Dashicons;text-align:center;line-height:1;color:#999;display:block;width:17px;float:left;height:100%;line-height:24px}table.wc_input_table.flexible_shipping_rules.fs_new_interface td{padding:25px 5px;vertical-align:middle;border:0}table.wc_input_table.flexible_shipping_rules.fs_new_interface tr:nth-child(even) td{background:#f9f9f9}table.wc_input_table.flexible_shipping_rules.fs_new_interface tr:nth-child(odd) td.sort{background:white}table.wc_input_table.flexible_shipping_rules.fs_new_interface td p.form-row{margin-top:0}table.wc_input_table.flexible_shipping_rules.fs_new_interface .description{padding-top:5px}table.wc_input_table.flexible_shipping_rules.fs_new_interface .form-row{padding-right:5px}table.wc_input_table.flexible_shipping_rules.fs_new_interface .single_rule_condition{vertical-align:middle;display:flex}table.wc_input_table.flexible_shipping_rules.fs_new_interface tbody .sort{padding-top:27px !important;padding-bottom:23px !important}.flexible_shipping_method_rules th{width:auto}.flexible_shipping_method_rules th.sort{width:10px}td.fs_cost{width:75px !important}div.rule_condition div{display:inline-block}div.rule_condition div.based_on{width:70px}div.rule_condition div input{width:70px}table.flexible_shipping_method_rules th,table.flexible_shipping_method_rules th{padding:5px 10px 5px 0}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%;box-shadow:none;padding:0 !important}table.flexible_shipping_method_rules td p input[type=text]{text-align:right;padding:0 5px 0 5px !important;width:100% !important}table.flexible_shipping_method_rules td p select{margin:0;width:100% !important;box-shadow:none;line-height:28px;height:37px;vertical-align:middle}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}table.flexible_shipping_method_rules th.shipping_class,table.flexible_shipping_method_rules td.shipping_class{text-align:center;width:200px}table.flexible_shipping_method_rules td.shipping_class span{border:0}table.flexible_shipping_method_rules th.stop,table.flexible_shipping_method_rules td.stop{text-align:center;width:30px}table.flexible_shipping_method_rules th.cancel,table.flexible_shipping_method_rules td.cancel{text-align:center;width:60px}.woocommerce table.form-table .flexible_shipping_method_rules th span.woocommerce-help-tip{float:none;margin:0}.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}table.flexible_shipping_method_rules tfoot th{padding:10px}.woocommerce_page_wc-settings #mainform{position:relative}.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}.column-flexible_shipping mark.manifest:after{color:#2ea2cc !important}.flexible_shipping_shipment_message{color:green}.flexible_shipping_shipment_message_error{color:#a00 !important}.flexible_shipping_shipment_message_error span{color:#444;font-weight:bold}.woocommerce .wp-admin select{height:100%}.button.flexible-printing-button-print{height:auto !important;white-space:normal !important;word-wrap:break-word !important}.inspire-settings{display:table;width:100%}.inspire-settings .inspire-main-content,.inspire-settings .inspire-sidebar{display:table-cell;height:500px;margin:0;padding:0;vertical-align:top}.inspire-settings .inspire-main-content{min-width:800px}.inspire-settings .inspire-sidebar{padding-left:30px;width:250px}.flexible-shipping-info ol{margin-top:0}#wpbody-content .flexible-shipping-info .metabox-holder{padding-top:0}#adminmenu #toplevel_page_flexible-shipping .menu-icon-generic div.wp-menu-image::before{font-family:WooCommerce !important;content:'\e01d'}.fs-new-service{color:#006799}.fs-order-item-fallback{margin-top:.5em;color:#888}.flexible_shipping_shipment_content p select{max-width:95%}.flexible_shipping_shipment_content span.description{display:block}.fs-saas-button-cancel-created{float:right;color:#a00;margin-top:5px}.fs-saas-button-cancel-created:hover{color:#a00;cursor:pointer}.flexible_shipping_shipment_content input[type=checkbox]{float:left;margin-right:5px;margin-top:2px !important;opacity:1;border-color:#888}.flexible_shipping_shipment_content input[type=checkbox]:disabled{opacity:.7;border-color:rgba(51,51,51,0.5)}.flexible_shipping_shipment_content p.fs-saas-status span{font-weight:bold;color:#444}.flexible_shipping_shipment_content p.fs-saas-status-fs-new{color:#ffba00}.flexible_shipping_shipment_content p.fs-saas-status-fs-created{color:#d0c21f}.flexible_shipping_shipment_content p.fs-saas-status-fs-confirmed{color:#444}.flexible_shipping_shipment_content p.fs-saas-status-fs-failed{color:#a00}.flexible_shipping_shipment_content p.fs-saas-status-fs-manifest{color:#2ea2cc}.flexible_shipping_shipment_content p.connection-error{font-weight:bold;color:#a00}.fs-saas-shipment span{font-weight:bold}.fs-saas-labels-counts span{font-weight:bold}.fs-saas-no-labels-left{color:#a00}div.flexible-shipping-shipment-attachments p{display:inline}.flexible_shipping_shipment_attachment_message{padding-top:10px;color:green}table.flexible_shipping_services{max-width:550px}table.flexible_shipping_services .sort{width:1%}table.flexible_shipping_services .service_code{width:30px}table.flexible_shipping_services .select{text-align:center;width:1%}table.flexible_shipping_services .select input{margin:0 8px 0 8px}.woocommerce table.form-table table.flexible_shipping_services td.service_name input{width:100%}input.woocommerce_flexible_shipping_service_name{width:100%}.updated .fs-banner__button-container{padding:.75rem 0 0}.notice-info.fs-connect__container{border-left:0;padding:0;box-shadow:0 0 0 1px #dfdfdf,0 1px 2px #dfdfdf}@media screen and (max-width:782px){.notice-info.fs-connect__container{padding:0 !important}}.fs-connect__container{display:block;position:relative;box-sizing:border-box}.fs-connect__inner-container>a:first-child{z-index:1}.fs-connect__inner-container{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:left;justify-content:left}.fs-connect__content-container{width:1250px;position:relative;padding:2rem;z-index:0}@media(min-width:782px){.fs-connect__content-container{padding:2rem 2rem 4rem 2rem}}.fs-connect__content-container p{color:#555;font-size:.875rem}.fs-connect__content-container h2{margin-top:0;color:#555;line-height:1.6}.fs-connect__content-icon{float:right;margin:0 1.5rem 0 2.25rem}.fs-connect__content-icon svg{fill:#0085ba;height:180px;width:auto}@media(max-width:782px){.fs-connect__content-icon.fs-connect-illo{float:none;width:100%;text-align:center;margin:2.25rem 0 1.5rem}}.fs-connect__slide{display:none}.fs-connect__slide.fs__slide-is-active{display:block}@media(min-width:782px){.fs-connect__content-container .fs-banner__button-container{position:absolute;bottom:.5rem}}.fs-banner__button-container .button-primary{margin:0 .3125rem .3125rem 0}.fs-connect__vertical-nav{background-color:#f1f1f1}@media(min-width:600px){.fs-connect__vertical-nav{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:start;justify-content:flex-start}}@media(max-width:600px){.fs-connect__vertical-nav{display:none}}.fs-connect__vertical-nav-container{width:15rem}.vertical-menu__feature-item-label{display:none}@media(min-width:600px){.vertical-menu__feature-item{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;border:0;padding:.5rem;border-bottom:1px solid #dfdfdf;border-right:1px solid #dfdfdf;border-left:3px solid #f9f9f9;background-color:#f9f9f9;color:#555;cursor:pointer}.vertical-menu__feature-item:last-of-type{position:relative;top:1px}.vertical-menu__feature-item-is-selected{border-left:3px solid #0085ba;border-right:1px solid #fff;background-color:#fff;color:#2e4453}.vertical-menu__feature-item-is-selected.fs-feature-intro{border-left:3px solid #00be28}.vertical-menu__feature-item-icon{width:1.25rem;height:1.25rem;padding:.25rem;text-align:center}.vertical-menu__feature-item svg{fill:#555;vertical-align:middle}.vertical-menu__feature-item-is-selected svg{fill:#0085ba}.vertical-menu__feature-item-label{display:block;padding:.5rem}}.fs-couriers{margin-top:2.5em}.fs-courier{position:relative;margin-bottom:2.5em;text-align:center}.fs-courier img{height:50px;width:auto}.fs-courier-label{background-color:#333;border-radius:3px;color:#fff;padding:0 4px 1px;position:absolute;right:0;top:-10px}@media(min-width:1200px){.fs-couriers{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.fs-courier{width:20%}}.admin_page_flexible_shipping_connect_register .notice.is-dismissible,.admin_page_flexible_shipping_connect_register .update-nag,.admin_page_flexible_shipping_connect_register .updated,.admin_page_flexible_shipping_connect_register .settings-error{display:none !important}.fs-page-wrap{margin:0 auto;max-width:45rem}.fs-page-wrap h1{font-weight:normal;margin-bottom:.67em;text-align:center}.fs-box{display:block;position:relative;margin:0 auto 20px;padding:16px;box-sizing:border-box;background:white;box-shadow:0 0 0 1px #dfdfdf,0 1px 2px #dfdfdf}.fs-box:after{content:".";display:block;height:0;clear:both;visibility:hidden}.admin_page_flexible_shipping_connect_register .fs-box,.fs-box.text-center{text-align:center}.admin_page_flexible_shipping_connect_register .fs-box p{margin:1.5em 0}.fs-box input[type="email"]{padding:8px 10px}.fs-actions{padding-left:40px}.fs-actions button:active{vertical-align:inherit !important}.fs-actions .spinner{float:none;margin-top:0}.fs-cols{display:flex;flex-wrap:wrap;justify-content:space-between}.fs-inner-box{box-sizing:border-box;margin-top:30px;padding:0 20px}.fs-inner-box h4{font-size:1.2em;margin-bottom:.37em}.fs-inner-box svg{fill:#0085ba;height:70px;width:auto}@media(min-width:600px){.fs-inner-box{width:33.33%}}.fs-connect-box-header{margin-top:3em}.hide-fs-connect-integration-box{display:none}.fs-settings-div table.form-table{width:700px;float:left}.fs-flexible-shipping-sidebar{float:right;padding-left:30px;width:300px;margin-top:-100px}@media(max-width:1200px){.fs-flexible-shipping-sidebar{display:none}}.wpdesk-metabox{background-color:#23282d;color:#fff;padding:20px}.wpdesk-metabox .title{color:#fff}.wpdesk-metabox .icon{display:block;margin:0 auto;width:110px}table.wc_input_table.flexible_shipping_rules{width:auto;min-width:764px}table.wc_input_table.flexible_shipping_rules td{padding:3px 5px}table.wc_input_table.flexible_shipping_rules span.input-wrapper{line-height:2em}table.wc_input_table.flexible_shipping_rules span.input-wrapper input{line-height:2em}table.wc_input_table.flexible_shipping_rules span.input-wrapper select,table.wc_input_table.flexible_shipping_rules p span.woocommerce-input-wrapper select{line-height:2em}table.wc_input_table.flexible_shipping_rules span.input-wrapper label{padding-right:3px;padding-left:3px}table.wc_input_table.flexible_shipping_rules td label{padding-right:3px;padding-left:3px;padding-top:5px}table.wc_input_table.flexible_shipping_rules.fs_new_interface td label{padding-right:10px;padding-left:10px;padding-top:5px}table.wc_input_table.flexible_shipping_rules span.input-wrapper span.description,table.wc_input_table.flexible_shipping_rules p.form-row span.description{padding-right:3px;padding-left:3px;vertical-align:middle;font-style:normal;font-size:14px}table.wc_input_table.flexible_shipping_rules p.form-row span.description{padding-top:4px;position:absolute}table.wc_input_table.flexible_shipping_rules td{vertical-align:top}table.wc_input_table.flexible_shipping_rules td{padding-top:2px;padding-bottom:2px}table.wc_input_table.flexible_shipping_rules th.sort,table.wc_input_table.flexible_shipping_rules th.sort{width:20px;text-align:center}table.wc_input_table.flexible_shipping_rules th.cb,table.wc_input_table.flexible_shipping_rules td.cb{width:20px;text-align:center;padding:10px 5px;padding-right:5px !important;margin:0}table.wc_input_table.flexible_shipping_rules th.cb input,table.wc_input_table.flexible_shipping_rules td.cb input{margin:0}table.wc_input_table.flexible_shipping_rules th.rule_costs{width:220px}table.wc_input_table.flexible_shipping_rules input[type=text]{width:100px !important;height:2em !important;border:1px solid}table.wc_input_table.flexible_shipping_rules select{width:120px !important;height:2em !important;border:1px solid;padding:0 5px}table.wc_input_table.flexible_shipping_rules.fs_new_interface select{width:130px !important}table.wc_input_table.flexible_shipping_rules input.cost_additional{width:60px !important;min-width:60px}table.wc_input_table.flexible_shipping_rules input.per_value{width:60px !important;min-width:60px}table.wc_input_table.flexible_shipping_rules td.rule_costs div.input-wrapper.cost_per_order{display:block}table.wc_input_table.flexible_shipping_rules td.rule_costs a.button.plus.insert{display:inline-block;float:right;clear:both}table.wc_input_table.flexible_shipping_rules td.rule_costs div.additional_cost_wrapper{border-top:1px solid #dfdfdf;margin-top:2px;padding-top:2px;display:block}table.wc_input_table.flexible_shipping_rules td.rule_costs a.button.minus{display:inline-block;float:right;clear:both}table.wc_input_table.flexible_shipping_rules div.single_rule_condition:nth-child(n+2){border-top:1px solid #dfdfdf;padding-top:2px;margin-top:2px}table.wc_input_table.flexible_shipping_rules div.single_rule_condition div.condition_field_wrapper{display:inline-block}table.wc_input_table.flexible_shipping_rules div.single_rule_condition div.condition_parameters_wrapper{display:inline-block}table.wc_input_table.flexible_shipping_rules div.single_rule_condition div.condition_parameters_wrapper input.parameter_min{width:60px !important;min-width:60px}table.wc_input_table.flexible_shipping_rules div.single_rule_condition div.condition_parameters_wrapper input.parameter_max{width:60px !important;min-width:60px}table.wc_input_table.flexible_shipping_rules div.single_rule_condition label.condition_field_label{width:55px;text-align:right}table.wc_input_table.flexible_shipping_rules div.single_rule_condition:first-child label.condition_field_label_where{display:inline-block}table.wc_input_table.flexible_shipping_rules div.single_rule_condition:nth-child(n+2) label.condition_field_label_where{display:none}table.wc_input_table.flexible_shipping_rules div.single_rule_condition:first-child label.condition_field_label_and{display:none}table.wc_input_table.flexible_shipping_rules div.single_rule_condition:nth-child(n+2) label.condition_field_label_and{display:inline-block}table.wc_input_table.flexible_shipping_rules div.single_rule_condition a.minus{float:right}table.wc_input_table.flexible_shipping_rules div.single_rule_condition a.plus{float:right}table.wc_input_table.flexible_shipping_rules div.single_rule_condition:first-child a.minus{display:none}table.wc_input_table.flexible_shipping_rules div.single_rule_condition:nth-child(n+2) a.plus{display:none}table.wc_input_table.flexible_shipping_rules input.select2-search__field{border:0}table.wc_input_table.flexible_shipping_rules td p label span.optional{display:none}table.wc_input_table.flexible_shipping_rules td.rule_conditions{min-width:465px}table.wc_input_table.flexible_shipping_rules td.rule_conditions div.single_rule_condition p.form-row{display:inline-block}table#fs_new_rules_table_banner.widefat thead td,table#fs_new_rules_table_banner_for_new_table.widefat thead td{padding:5px 20px 20px}
classes/class-flexible-shipping-plugin.php CHANGED
@@ -22,6 +22,11 @@ use FSVendor\WPDesk\View\Resolver\WPThemeResolver;
22
  use FSVendor\WPDesk\WooCommerce\CurrencySwitchers\ShippingIntegrations;
23
  use Psr\Log\LoggerInterface;
24
  use Psr\Log\NullLogger;
 
 
 
 
 
25
  use WPDesk\FS\TableRate\NewRulesTablePointer\RulesPointerMessage;
26
  use WPDesk\FS\TableRate\NewRulesTablePointer\RulesPointerOption;
27
  use WPDesk\FS\TableRate\NewRulesTableTracker;
@@ -47,7 +52,7 @@ class Flexible_Shipping_Plugin extends AbstractPlugin implements HookableCollect
47
  *
48
  * @var string
49
  */
50
- private $scripts_version = FLEXIBLE_SHIPPING_VERSION . '.208';
51
 
52
  /**
53
  * Admin notices.
@@ -177,13 +182,19 @@ class Flexible_Shipping_Plugin extends AbstractPlugin implements HookableCollect
177
 
178
  $this->add_hookable( new WPDesk_Flexible_Shipping_Order_Item_Meta() );
179
 
180
- $rules_pointer_option = new RulesPointerOption();
181
- $this->add_hookable( $rules_pointer_option );
182
 
183
- $this->add_hookable( new RulesPointerMessage( $rules_pointer_option ) );
 
 
 
 
184
 
185
  $this->add_hookable( new NewRulesTableTracker() );
186
 
 
 
187
  $this->add_hookable( new UserFeedback() );
188
 
189
  $this->init_contextual_info();
22
  use FSVendor\WPDesk\WooCommerce\CurrencySwitchers\ShippingIntegrations;
23
  use Psr\Log\LoggerInterface;
24
  use Psr\Log\NullLogger;
25
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesBannerClickedOption;
26
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesBannerLikeOption;
27
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesPointerBannerForNewTable;
28
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesPointerBannerForOldTable;
29
+ use WPDesk\FS\TableRate\NewRulesTableDeactivationTracker;
30
  use WPDesk\FS\TableRate\NewRulesTablePointer\RulesPointerMessage;
31
  use WPDesk\FS\TableRate\NewRulesTablePointer\RulesPointerOption;
32
  use WPDesk\FS\TableRate\NewRulesTableTracker;
52
  *
53
  * @var string
54
  */
55
+ private $scripts_version = FLEXIBLE_SHIPPING_VERSION . '.209';
56
 
57
  /**
58
  * Admin notices.
182
 
183
  $this->add_hookable( new WPDesk_Flexible_Shipping_Order_Item_Meta() );
184
 
185
+ $rules_banner_option = new RulesBannerLikeOption();
186
+ $this->add_hookable( $rules_banner_option );
187
 
188
+ $this->add_hookable( new RulesPointerBannerForOldTable() );
189
+
190
+ $this->add_hookable( new RulesPointerBannerForNewTable() );
191
+
192
+ $this->add_hookable( new RulesBannerClickedOption() );
193
 
194
  $this->add_hookable( new NewRulesTableTracker() );
195
 
196
+ $this->add_hookable( new NewRulesTableDeactivationTracker() );
197
+
198
  $this->add_hookable( new UserFeedback() );
199
 
200
  $this->init_contextual_info();
classes/table-rate/shipping-method.php CHANGED
@@ -1,6 +1,7 @@
1
  <?php
2
 
3
  use FSVendor\WPDesk\Beacon\Beacon\WooCommerceSettingsFieldsModifier;
 
4
  use WPDesk\FS\TableRate\NewRulesTablePointer\RulesPointerOption;
5
  use WPDesk\FS\TableRate\NewRulesTablePointer\ShippingMethodNewRuleTableSetting;
6
  use WPDesk\FS\TableRate\RulesSettingsField;
@@ -188,12 +189,19 @@ class WPDesk_Flexible_Shipping extends WC_Shipping_Method {
188
  return $ret;
189
  }
190
 
 
 
 
 
 
 
 
191
  /**
192
  * @return bool
193
  */
194
  private function should_show_new_rules_table() {
195
  $new_rule_table_setting = new ShippingMethodNewRuleTableSetting();
196
- return ! wpdesk_is_plugin_active( 'flexible-shipping-pro/flexible-shipping-pro.php' ) && $new_rule_table_setting->is_enabled();
197
  }
198
 
199
  /**
1
  <?php
2
 
3
  use FSVendor\WPDesk\Beacon\Beacon\WooCommerceSettingsFieldsModifier;
4
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesPointerBannerForOldTable;
5
  use WPDesk\FS\TableRate\NewRulesTablePointer\RulesPointerOption;
6
  use WPDesk\FS\TableRate\NewRulesTablePointer\ShippingMethodNewRuleTableSetting;
7
  use WPDesk\FS\TableRate\RulesSettingsField;
189
  return $ret;
190
  }
191
 
192
+ /**
193
+ * @return bool
194
+ */
195
+ private function is_new_rules_table_parameter_present() {
196
+ return isset( $_GET[ RulesPointerBannerForOldTable::NEW_RULES_TABLE_PARAMETER ] );
197
+ }
198
+
199
  /**
200
  * @return bool
201
  */
202
  private function should_show_new_rules_table() {
203
  $new_rule_table_setting = new ShippingMethodNewRuleTableSetting();
204
+ return ! wpdesk_is_plugin_active( 'flexible-shipping-pro/flexible-shipping-pro.php' ) && ( $new_rule_table_setting->is_enabled() || $this->is_new_rules_table_parameter_present() );
205
  }
206
 
207
  /**
composer.lock CHANGED
@@ -1058,16 +1058,16 @@
1058
  },
1059
  {
1060
  "name": "composer/composer",
1061
- "version": "1.10.9",
1062
  "source": {
1063
  "type": "git",
1064
  "url": "https://github.com/composer/composer.git",
1065
- "reference": "83c3250093d5491600a822e176b107a945baf95a"
1066
  },
1067
  "dist": {
1068
  "type": "zip",
1069
- "url": "https://api.github.com/repos/composer/composer/zipball/83c3250093d5491600a822e176b107a945baf95a",
1070
- "reference": "83c3250093d5491600a822e176b107a945baf95a",
1071
  "shasum": ""
1072
  },
1073
  "require": {
@@ -1148,7 +1148,7 @@
1148
  "type": "tidelift"
1149
  }
1150
  ],
1151
- "time": "2020-07-16T10:57:00+00:00"
1152
  },
1153
  {
1154
  "name": "composer/semver",
@@ -2225,16 +2225,16 @@
2225
  },
2226
  {
2227
  "name": "lucatume/wp-browser",
2228
- "version": "2.6.5",
2229
  "source": {
2230
  "type": "git",
2231
  "url": "https://github.com/lucatume/wp-browser.git",
2232
- "reference": "a14506d589935de7ad9bb0aabaecf56cc2d8f9b9"
2233
  },
2234
  "dist": {
2235
  "type": "zip",
2236
- "url": "https://api.github.com/repos/lucatume/wp-browser/zipball/a14506d589935de7ad9bb0aabaecf56cc2d8f9b9",
2237
- "reference": "a14506d589935de7ad9bb0aabaecf56cc2d8f9b9",
2238
  "shasum": ""
2239
  },
2240
  "require": {
@@ -2304,7 +2304,7 @@
2304
  "codeception",
2305
  "wordpress"
2306
  ],
2307
- "time": "2020-07-16T08:24:48+00:00"
2308
  },
2309
  {
2310
  "name": "matthiasmullie/minify",
@@ -2673,16 +2673,16 @@
2673
  },
2674
  {
2675
  "name": "monolog/monolog",
2676
- "version": "1.25.4",
2677
  "source": {
2678
  "type": "git",
2679
  "url": "https://github.com/Seldaek/monolog.git",
2680
- "reference": "3022efff205e2448b560c833c6fbbf91c3139168"
2681
  },
2682
  "dist": {
2683
  "type": "zip",
2684
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/3022efff205e2448b560c833c6fbbf91c3139168",
2685
- "reference": "3022efff205e2448b560c833c6fbbf91c3139168",
2686
  "shasum": ""
2687
  },
2688
  "require": {
@@ -2756,7 +2756,7 @@
2756
  "type": "tidelift"
2757
  }
2758
  ],
2759
- "time": "2020-05-22T07:31:27+00:00"
2760
  },
2761
  {
2762
  "name": "mustache/mustache",
@@ -4583,7 +4583,7 @@
4583
  },
4584
  {
4585
  "name": "symfony/browser-kit",
4586
- "version": "v3.4.42",
4587
  "source": {
4588
  "type": "git",
4589
  "url": "https://github.com/symfony/browser-kit.git",
@@ -4654,16 +4654,16 @@
4654
  },
4655
  {
4656
  "name": "symfony/console",
4657
- "version": "v3.4.42",
4658
  "source": {
4659
  "type": "git",
4660
  "url": "https://github.com/symfony/console.git",
4661
- "reference": "bfe29ead7e7b1cc9ce74c6a40d06ad1f96fced13"
4662
  },
4663
  "dist": {
4664
  "type": "zip",
4665
- "url": "https://api.github.com/repos/symfony/console/zipball/bfe29ead7e7b1cc9ce74c6a40d06ad1f96fced13",
4666
- "reference": "bfe29ead7e7b1cc9ce74c6a40d06ad1f96fced13",
4667
  "shasum": ""
4668
  },
4669
  "require": {
@@ -4736,11 +4736,11 @@
4736
  "type": "tidelift"
4737
  }
4738
  ],
4739
- "time": "2020-05-30T18:58:05+00:00"
4740
  },
4741
  {
4742
  "name": "symfony/css-selector",
4743
- "version": "v3.4.42",
4744
  "source": {
4745
  "type": "git",
4746
  "url": "https://github.com/symfony/css-selector.git",
@@ -4807,16 +4807,16 @@
4807
  },
4808
  {
4809
  "name": "symfony/debug",
4810
- "version": "v3.4.42",
4811
  "source": {
4812
  "type": "git",
4813
  "url": "https://github.com/symfony/debug.git",
4814
- "reference": "518c6a00d0872da30bd06aee3ea59a0a5cf54d6d"
4815
  },
4816
  "dist": {
4817
  "type": "zip",
4818
- "url": "https://api.github.com/repos/symfony/debug/zipball/518c6a00d0872da30bd06aee3ea59a0a5cf54d6d",
4819
- "reference": "518c6a00d0872da30bd06aee3ea59a0a5cf54d6d",
4820
  "shasum": ""
4821
  },
4822
  "require": {
@@ -4873,20 +4873,20 @@
4873
  "type": "tidelift"
4874
  }
4875
  ],
4876
- "time": "2020-05-22T18:25:20+00:00"
4877
  },
4878
  {
4879
  "name": "symfony/dom-crawler",
4880
- "version": "v3.4.42",
4881
  "source": {
4882
  "type": "git",
4883
  "url": "https://github.com/symfony/dom-crawler.git",
4884
- "reference": "c3086a58a66b2a519c0b7ac80539a3727609ea9c"
4885
  },
4886
  "dist": {
4887
  "type": "zip",
4888
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/c3086a58a66b2a519c0b7ac80539a3727609ea9c",
4889
- "reference": "c3086a58a66b2a519c0b7ac80539a3727609ea9c",
4890
  "shasum": ""
4891
  },
4892
  "require": {
@@ -4944,11 +4944,11 @@
4944
  "type": "tidelift"
4945
  }
4946
  ],
4947
- "time": "2020-05-22T19:35:43+00:00"
4948
  },
4949
  {
4950
  "name": "symfony/event-dispatcher",
4951
- "version": "v3.4.42",
4952
  "source": {
4953
  "type": "git",
4954
  "url": "https://github.com/symfony/event-dispatcher.git",
@@ -5025,7 +5025,7 @@
5025
  },
5026
  {
5027
  "name": "symfony/filesystem",
5028
- "version": "v3.4.42",
5029
  "source": {
5030
  "type": "git",
5031
  "url": "https://github.com/symfony/filesystem.git",
@@ -5089,7 +5089,7 @@
5089
  },
5090
  {
5091
  "name": "symfony/finder",
5092
- "version": "v3.4.42",
5093
  "source": {
5094
  "type": "git",
5095
  "url": "https://github.com/symfony/finder.git",
@@ -5152,7 +5152,7 @@
5152
  },
5153
  {
5154
  "name": "symfony/polyfill-ctype",
5155
- "version": "v1.18.0",
5156
  "source": {
5157
  "type": "git",
5158
  "url": "https://github.com/symfony/polyfill-ctype.git",
@@ -5228,16 +5228,16 @@
5228
  },
5229
  {
5230
  "name": "symfony/polyfill-intl-idn",
5231
- "version": "v1.18.0",
5232
  "source": {
5233
  "type": "git",
5234
  "url": "https://github.com/symfony/polyfill-intl-idn.git",
5235
- "reference": "bc6549d068d0160e0f10f7a5a23c7d1406b95ebe"
5236
  },
5237
  "dist": {
5238
  "type": "zip",
5239
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/bc6549d068d0160e0f10f7a5a23c7d1406b95ebe",
5240
- "reference": "bc6549d068d0160e0f10f7a5a23c7d1406b95ebe",
5241
  "shasum": ""
5242
  },
5243
  "require": {
@@ -5309,11 +5309,11 @@
5309
  "type": "tidelift"
5310
  }
5311
  ],
5312
- "time": "2020-07-14T12:35:20+00:00"
5313
  },
5314
  {
5315
  "name": "symfony/polyfill-intl-normalizer",
5316
- "version": "v1.18.0",
5317
  "source": {
5318
  "type": "git",
5319
  "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
@@ -5394,7 +5394,7 @@
5394
  },
5395
  {
5396
  "name": "symfony/polyfill-mbstring",
5397
- "version": "v1.18.0",
5398
  "source": {
5399
  "type": "git",
5400
  "url": "https://github.com/symfony/polyfill-mbstring.git",
@@ -5471,7 +5471,7 @@
5471
  },
5472
  {
5473
  "name": "symfony/polyfill-php70",
5474
- "version": "v1.18.0",
5475
  "source": {
5476
  "type": "git",
5477
  "url": "https://github.com/symfony/polyfill-php70.git",
@@ -5548,7 +5548,7 @@
5548
  },
5549
  {
5550
  "name": "symfony/polyfill-php72",
5551
- "version": "v1.18.0",
5552
  "source": {
5553
  "type": "git",
5554
  "url": "https://github.com/symfony/polyfill-php72.git",
@@ -5621,16 +5621,16 @@
5621
  },
5622
  {
5623
  "name": "symfony/process",
5624
- "version": "v3.4.42",
5625
  "source": {
5626
  "type": "git",
5627
  "url": "https://github.com/symfony/process.git",
5628
- "reference": "8a895f0c92a7c4b10db95139bcff71bdf66d4d21"
5629
  },
5630
  "dist": {
5631
  "type": "zip",
5632
- "url": "https://api.github.com/repos/symfony/process/zipball/8a895f0c92a7c4b10db95139bcff71bdf66d4d21",
5633
- "reference": "8a895f0c92a7c4b10db95139bcff71bdf66d4d21",
5634
  "shasum": ""
5635
  },
5636
  "require": {
@@ -5680,20 +5680,20 @@
5680
  "type": "tidelift"
5681
  }
5682
  ],
5683
- "time": "2020-05-23T17:05:51+00:00"
5684
  },
5685
  {
5686
  "name": "symfony/yaml",
5687
- "version": "v3.4.42",
5688
  "source": {
5689
  "type": "git",
5690
  "url": "https://github.com/symfony/yaml.git",
5691
- "reference": "7233ac2bfdde24d672f5305f2b3f6b5d741ef8eb"
5692
  },
5693
  "dist": {
5694
  "type": "zip",
5695
- "url": "https://api.github.com/repos/symfony/yaml/zipball/7233ac2bfdde24d672f5305f2b3f6b5d741ef8eb",
5696
- "reference": "7233ac2bfdde24d672f5305f2b3f6b5d741ef8eb",
5697
  "shasum": ""
5698
  },
5699
  "require": {
@@ -5753,7 +5753,7 @@
5753
  "type": "tidelift"
5754
  }
5755
  ],
5756
- "time": "2020-05-11T07:51:54+00:00"
5757
  },
5758
  {
5759
  "name": "vlucas/phpdotenv",
@@ -8232,16 +8232,16 @@
8232
  },
8233
  {
8234
  "name": "wpdesk/wp-logs",
8235
- "version": "1.6.1",
8236
  "source": {
8237
  "type": "git",
8238
  "url": "https://gitlab.com/wpdesk/wp-logs.git",
8239
- "reference": "8826da3ec03e8093f8634826e6ec261eb4ba2b0a"
8240
  },
8241
  "dist": {
8242
  "type": "zip",
8243
- "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-logs/repository/archive.zip?sha=8826da3ec03e8093f8634826e6ec261eb4ba2b0a",
8244
- "reference": "8826da3ec03e8093f8634826e6ec261eb4ba2b0a",
8245
  "shasum": ""
8246
  },
8247
  "require": {
@@ -8272,7 +8272,7 @@
8272
  "email": "krzysiek@wpdesk.pl"
8273
  }
8274
  ],
8275
- "time": "2020-05-25T09:45:36+00:00"
8276
  },
8277
  {
8278
  "name": "wpdesk/wp-mutex",
@@ -8516,16 +8516,16 @@
8516
  },
8517
  {
8518
  "name": "wpdesk/wp-wpdesk-composer",
8519
- "version": "2.8.5",
8520
  "source": {
8521
  "type": "git",
8522
  "url": "https://gitlab.com/wpdesk/wp-wpdesk-composer.git",
8523
- "reference": "8725f6d70c14c6fc81cdc54197f1d98745fb4fad"
8524
  },
8525
  "dist": {
8526
  "type": "zip",
8527
- "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-composer/repository/archive.zip?sha=8725f6d70c14c6fc81cdc54197f1d98745fb4fad",
8528
- "reference": "8725f6d70c14c6fc81cdc54197f1d98745fb4fad",
8529
  "shasum": ""
8530
  },
8531
  "require": {
@@ -8555,7 +8555,7 @@
8555
  "email": "krzysiek@wpdesk.pl"
8556
  }
8557
  ],
8558
- "time": "2020-06-03T11:26:35+00:00"
8559
  },
8560
  {
8561
  "name": "wpdesk/wp-wpdesk-helper",
1058
  },
1059
  {
1060
  "name": "composer/composer",
1061
+ "version": "1.10.10",
1062
  "source": {
1063
  "type": "git",
1064
  "url": "https://github.com/composer/composer.git",
1065
+ "reference": "32966a3b1d48bc01472a8321fd6472b44fad033a"
1066
  },
1067
  "dist": {
1068
  "type": "zip",
1069
+ "url": "https://api.github.com/repos/composer/composer/zipball/32966a3b1d48bc01472a8321fd6472b44fad033a",
1070
+ "reference": "32966a3b1d48bc01472a8321fd6472b44fad033a",
1071
  "shasum": ""
1072
  },
1073
  "require": {
1148
  "type": "tidelift"
1149
  }
1150
  ],
1151
+ "time": "2020-08-03T09:35:19+00:00"
1152
  },
1153
  {
1154
  "name": "composer/semver",
2225
  },
2226
  {
2227
  "name": "lucatume/wp-browser",
2228
+ "version": "2.6.6",
2229
  "source": {
2230
  "type": "git",
2231
  "url": "https://github.com/lucatume/wp-browser.git",
2232
+ "reference": "4f42d000acd44af3555ea7d6ead8d882d25154f2"
2233
  },
2234
  "dist": {
2235
  "type": "zip",
2236
+ "url": "https://api.github.com/repos/lucatume/wp-browser/zipball/4f42d000acd44af3555ea7d6ead8d882d25154f2",
2237
+ "reference": "4f42d000acd44af3555ea7d6ead8d882d25154f2",
2238
  "shasum": ""
2239
  },
2240
  "require": {
2304
  "codeception",
2305
  "wordpress"
2306
  ],
2307
+ "time": "2020-08-04T09:56:19+00:00"
2308
  },
2309
  {
2310
  "name": "matthiasmullie/minify",
2673
  },
2674
  {
2675
  "name": "monolog/monolog",
2676
+ "version": "1.25.5",
2677
  "source": {
2678
  "type": "git",
2679
  "url": "https://github.com/Seldaek/monolog.git",
2680
+ "reference": "1817faadd1846cd08be9a49e905dc68823bc38c0"
2681
  },
2682
  "dist": {
2683
  "type": "zip",
2684
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1817faadd1846cd08be9a49e905dc68823bc38c0",
2685
+ "reference": "1817faadd1846cd08be9a49e905dc68823bc38c0",
2686
  "shasum": ""
2687
  },
2688
  "require": {
2756
  "type": "tidelift"
2757
  }
2758
  ],
2759
+ "time": "2020-07-23T08:35:51+00:00"
2760
  },
2761
  {
2762
  "name": "mustache/mustache",
4583
  },
4584
  {
4585
  "name": "symfony/browser-kit",
4586
+ "version": "v3.4.43",
4587
  "source": {
4588
  "type": "git",
4589
  "url": "https://github.com/symfony/browser-kit.git",
4654
  },
4655
  {
4656
  "name": "symfony/console",
4657
+ "version": "v3.4.43",
4658
  "source": {
4659
  "type": "git",
4660
  "url": "https://github.com/symfony/console.git",
4661
+ "reference": "afc7189694d2c59546cf24ea606a236fa46a966e"
4662
  },
4663
  "dist": {
4664
  "type": "zip",
4665
+ "url": "https://api.github.com/repos/symfony/console/zipball/afc7189694d2c59546cf24ea606a236fa46a966e",
4666
+ "reference": "afc7189694d2c59546cf24ea606a236fa46a966e",
4667
  "shasum": ""
4668
  },
4669
  "require": {
4736
  "type": "tidelift"
4737
  }
4738
  ],
4739
+ "time": "2020-07-06T08:57:31+00:00"
4740
  },
4741
  {
4742
  "name": "symfony/css-selector",
4743
+ "version": "v3.4.43",
4744
  "source": {
4745
  "type": "git",
4746
  "url": "https://github.com/symfony/css-selector.git",
4807
  },
4808
  {
4809
  "name": "symfony/debug",
4810
+ "version": "v3.4.43",
4811
  "source": {
4812
  "type": "git",
4813
  "url": "https://github.com/symfony/debug.git",
4814
+ "reference": "7ce874f4432d8b11cc45a80cc5130a6e2609728d"
4815
  },
4816
  "dist": {
4817
  "type": "zip",
4818
+ "url": "https://api.github.com/repos/symfony/debug/zipball/7ce874f4432d8b11cc45a80cc5130a6e2609728d",
4819
+ "reference": "7ce874f4432d8b11cc45a80cc5130a6e2609728d",
4820
  "shasum": ""
4821
  },
4822
  "require": {
4873
  "type": "tidelift"
4874
  }
4875
  ],
4876
+ "time": "2020-07-16T09:41:49+00:00"
4877
  },
4878
  {
4879
  "name": "symfony/dom-crawler",
4880
+ "version": "v3.4.43",
4881
  "source": {
4882
  "type": "git",
4883
  "url": "https://github.com/symfony/dom-crawler.git",
4884
+ "reference": "fc66039e3138db2fc54ee9ad30646d99c4495691"
4885
  },
4886
  "dist": {
4887
  "type": "zip",
4888
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/fc66039e3138db2fc54ee9ad30646d99c4495691",
4889
+ "reference": "fc66039e3138db2fc54ee9ad30646d99c4495691",
4890
  "shasum": ""
4891
  },
4892
  "require": {
4944
  "type": "tidelift"
4945
  }
4946
  ],
4947
+ "time": "2020-07-16T09:41:49+00:00"
4948
  },
4949
  {
4950
  "name": "symfony/event-dispatcher",
4951
+ "version": "v3.4.43",
4952
  "source": {
4953
  "type": "git",
4954
  "url": "https://github.com/symfony/event-dispatcher.git",
5025
  },
5026
  {
5027
  "name": "symfony/filesystem",
5028
+ "version": "v3.4.43",
5029
  "source": {
5030
  "type": "git",
5031
  "url": "https://github.com/symfony/filesystem.git",
5089
  },
5090
  {
5091
  "name": "symfony/finder",
5092
+ "version": "v3.4.43",
5093
  "source": {
5094
  "type": "git",
5095
  "url": "https://github.com/symfony/finder.git",
5152
  },
5153
  {
5154
  "name": "symfony/polyfill-ctype",
5155
+ "version": "v1.18.1",
5156
  "source": {
5157
  "type": "git",
5158
  "url": "https://github.com/symfony/polyfill-ctype.git",
5228
  },
5229
  {
5230
  "name": "symfony/polyfill-intl-idn",
5231
+ "version": "v1.18.1",
5232
  "source": {
5233
  "type": "git",
5234
  "url": "https://github.com/symfony/polyfill-intl-idn.git",
5235
+ "reference": "5dcab1bc7146cf8c1beaa4502a3d9be344334251"
5236
  },
5237
  "dist": {
5238
  "type": "zip",
5239
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/5dcab1bc7146cf8c1beaa4502a3d9be344334251",
5240
+ "reference": "5dcab1bc7146cf8c1beaa4502a3d9be344334251",
5241
  "shasum": ""
5242
  },
5243
  "require": {
5309
  "type": "tidelift"
5310
  }
5311
  ],
5312
+ "time": "2020-08-04T06:02:08+00:00"
5313
  },
5314
  {
5315
  "name": "symfony/polyfill-intl-normalizer",
5316
+ "version": "v1.18.1",
5317
  "source": {
5318
  "type": "git",
5319
  "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
5394
  },
5395
  {
5396
  "name": "symfony/polyfill-mbstring",
5397
+ "version": "v1.18.1",
5398
  "source": {
5399
  "type": "git",
5400
  "url": "https://github.com/symfony/polyfill-mbstring.git",
5471
  },
5472
  {
5473
  "name": "symfony/polyfill-php70",
5474
+ "version": "v1.18.1",
5475
  "source": {
5476
  "type": "git",
5477
  "url": "https://github.com/symfony/polyfill-php70.git",
5548
  },
5549
  {
5550
  "name": "symfony/polyfill-php72",
5551
+ "version": "v1.18.1",
5552
  "source": {
5553
  "type": "git",
5554
  "url": "https://github.com/symfony/polyfill-php72.git",
5621
  },
5622
  {
5623
  "name": "symfony/process",
5624
+ "version": "v3.4.43",
5625
  "source": {
5626
  "type": "git",
5627
  "url": "https://github.com/symfony/process.git",
5628
+ "reference": "af8d812d75fcdf2eae30928b42396fe17df137e4"
5629
  },
5630
  "dist": {
5631
  "type": "zip",
5632
+ "url": "https://api.github.com/repos/symfony/process/zipball/af8d812d75fcdf2eae30928b42396fe17df137e4",
5633
+ "reference": "af8d812d75fcdf2eae30928b42396fe17df137e4",
5634
  "shasum": ""
5635
  },
5636
  "require": {
5680
  "type": "tidelift"
5681
  }
5682
  ],
5683
+ "time": "2020-07-16T09:41:49+00:00"
5684
  },
5685
  {
5686
  "name": "symfony/yaml",
5687
+ "version": "v3.4.43",
5688
  "source": {
5689
  "type": "git",
5690
  "url": "https://github.com/symfony/yaml.git",
5691
+ "reference": "e7fa05917ae931332a42d65b577ece4d497aad81"
5692
  },
5693
  "dist": {
5694
  "type": "zip",
5695
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/e7fa05917ae931332a42d65b577ece4d497aad81",
5696
+ "reference": "e7fa05917ae931332a42d65b577ece4d497aad81",
5697
  "shasum": ""
5698
  },
5699
  "require": {
5753
  "type": "tidelift"
5754
  }
5755
  ],
5756
+ "time": "2020-07-23T09:37:51+00:00"
5757
  },
5758
  {
5759
  "name": "vlucas/phpdotenv",
8232
  },
8233
  {
8234
  "name": "wpdesk/wp-logs",
8235
+ "version": "1.6.2",
8236
  "source": {
8237
  "type": "git",
8238
  "url": "https://gitlab.com/wpdesk/wp-logs.git",
8239
+ "reference": "f1d4afb9b61347bc19337016f5d618bcedc593b4"
8240
  },
8241
  "dist": {
8242
  "type": "zip",
8243
+ "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-logs/repository/archive.zip?sha=f1d4afb9b61347bc19337016f5d618bcedc593b4",
8244
+ "reference": "f1d4afb9b61347bc19337016f5d618bcedc593b4",
8245
  "shasum": ""
8246
  },
8247
  "require": {
8272
  "email": "krzysiek@wpdesk.pl"
8273
  }
8274
  ],
8275
+ "time": "2020-07-23T13:48:54+00:00"
8276
  },
8277
  {
8278
  "name": "wpdesk/wp-mutex",
8516
  },
8517
  {
8518
  "name": "wpdesk/wp-wpdesk-composer",
8519
+ "version": "2.8.7",
8520
  "source": {
8521
  "type": "git",
8522
  "url": "https://gitlab.com/wpdesk/wp-wpdesk-composer.git",
8523
+ "reference": "6e3ab103e61e698662da908b1566d6a19d2de1f8"
8524
  },
8525
  "dist": {
8526
  "type": "zip",
8527
+ "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-composer/repository/archive.zip?sha=6e3ab103e61e698662da908b1566d6a19d2de1f8",
8528
+ "reference": "6e3ab103e61e698662da908b1566d6a19d2de1f8",
8529
  "shasum": ""
8530
  },
8531
  "require": {
8555
  "email": "krzysiek@wpdesk.pl"
8556
  }
8557
  ],
8558
+ "time": "2020-08-03T13:21:27+00:00"
8559
  },
8560
  {
8561
  "name": "wpdesk/wp-wpdesk-helper",
flexible-shipping.php CHANGED
@@ -3,13 +3,13 @@
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: 3.11.0
7
  * Author: WP Desk
8
  * Author URI: https://www.wpdesk.net/
9
  * Text Domain: flexible-shipping
10
  * Domain Path: /lang/
11
  * Requires at least: 4.5
12
- * Tested up to: 5.4.2
13
  * WC requires at least: 4.0
14
  * WC tested up to: 4.4
15
  * Requires PHP: 5.6
@@ -38,7 +38,7 @@ if ( ! defined( 'ABSPATH' ) ) {
38
  } // Exit if accessed directly
39
 
40
  /* THIS VARIABLE CAN BE CHANGED AUTOMATICALLY */
41
- $plugin_version = '3.11.0';
42
 
43
  $plugin_name = 'Flexible Shipping';
44
  $product_id = 'Flexible Shipping';
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: 3.11.1
7
  * Author: WP Desk
8
  * Author URI: https://www.wpdesk.net/
9
  * Text Domain: flexible-shipping
10
  * Domain Path: /lang/
11
  * Requires at least: 4.5
12
+ * Tested up to: 5.5
13
  * WC requires at least: 4.0
14
  * WC tested up to: 4.4
15
  * Requires PHP: 5.6
38
  } // Exit if accessed directly
39
 
40
  /* THIS VARIABLE CAN BE CHANGED AUTOMATICALLY */
41
+ $plugin_version = '3.11.1';
42
 
43
  $plugin_name = 'Flexible Shipping';
44
  $product_id = 'Flexible Shipping';
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: wpdesk,dyszczo,grola,piotrpo,marcinkolanko
3
  Donate link: https://flexibleshipping.com/table-rate/
4
  Tags: table rate, table rate shipping, conditional shipping, shipping method, 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, shipping, free shipping, advanced shipping
5
  Requires at least: 4.5
6
- Tested up to: 5.4.2
7
- Stable tag: 3.11.0
8
  Requires PHP: 5.6
9
  License: GPLv3 or later
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
@@ -163,6 +163,10 @@ If you are upgrading from the old Flexible Shipping version (1.3.2, woo-flexible
163
 
164
  == Changelog ==
165
 
 
 
 
 
166
  = 3.11.0 - 2020-07-30 =
167
  * Added ability to open shipment label in new tab - works with some integrations
168
 
3
  Donate link: https://flexibleshipping.com/table-rate/
4
  Tags: table rate, table rate shipping, conditional shipping, shipping method, 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, shipping, free shipping, advanced shipping
5
  Requires at least: 4.5
6
+ Tested up to: 5.5
7
+ Stable tag: 3.11.1
8
  Requires PHP: 5.6
9
  License: GPLv3 or later
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
163
 
164
  == Changelog ==
165
 
166
+ = 3.11.1 - 2020-08-11 =
167
+ * Modified New Table Interface test
168
+ * Added support for WordPress 5.5
169
+
170
  = 3.11.0 - 2020-07-30 =
171
  * Added ability to open shipment label in new tab - works with some integrations
172
 
src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesBannerClickedOption.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Rules banner clicked option.
4
+ *
5
+ * @package WPDesk\FS\TableRate\NewRulesTableBanner
6
+ */
7
+
8
+ namespace WPDesk\FS\TableRate\NewRulesTableBanner;
9
+
10
+ use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
11
+ use WPDesk\FS\TableRate\NewRulesTablePointer\ShippingMethodNewRuleTableSetting;
12
+
13
+ /**
14
+ * Can update option when banner is clicked.
15
+ */
16
+ class RulesBannerClickedOption implements Hookable {
17
+
18
+ const OPTION_NAME = 'flexible_shipping_new_rules_banner_clicked';
19
+
20
+ /**
21
+ * Hooks.
22
+ */
23
+ public function hooks() {
24
+ if ( current_user_can( 'manage_woocommerce' )
25
+ && $this->has_parameter_value_in_get( 'page', 'wc-settings' )
26
+ && $this->has_parameter_value_in_get( 'tab', 'shipping' )
27
+ && $this->is_parameter_present_in_get( 'instance_id' )
28
+ && $this->is_parameter_present_in_get( 'method_id' )
29
+ && $this->is_parameter_present_in_get( 'new_rules_table' )
30
+ ) {
31
+ add_action( 'admin_init', array( $this, 'set_option' ) );
32
+ }
33
+ }
34
+
35
+ /**
36
+ * @param string $parameter .
37
+ *
38
+ * @return bool
39
+ */
40
+ private function is_parameter_present_in_get( $parameter ) {
41
+ return isset( $_GET[ $parameter ] );
42
+ }
43
+
44
+ /**
45
+ * @param string $parameter .
46
+ * @param string $parameter_value .
47
+ *
48
+ * @return bool
49
+ */
50
+ private function has_parameter_value_in_get( $parameter, $parameter_value ) {
51
+ return isset( $_GET[ $parameter ] ) && $_GET[ $parameter ] === $parameter_value;
52
+ }
53
+
54
+ /**
55
+ * Set option.
56
+ *
57
+ * @internal
58
+ */
59
+ public function set_option() {
60
+ update_option( self::OPTION_NAME, '1' );
61
+ }
62
+
63
+ /**
64
+ * Checks if option is set.
65
+ *
66
+ * @return bool Option status.
67
+ */
68
+ public static function is_option_set() {
69
+ return 1 === intval( get_option( self::OPTION_NAME, '0' ) );
70
+ }
71
+
72
+ }
src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesBannerDontLikeOption.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Rules banner dont like option.
4
+ *
5
+ * @package WPDesk\FS\TableRate\NewRulesTableBanner
6
+ */
7
+
8
+ namespace WPDesk\FS\TableRate\NewRulesTableBanner;
9
+
10
+ use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
11
+ use WPDesk\FS\TableRate\NewRulesTablePointer\ShippingMethodNewRuleTableSetting;
12
+
13
+ /**
14
+ * Can update option when dont like is clicked.
15
+ */
16
+ class RulesBannerDontLikeOption {
17
+
18
+ const OPTION_NAME = 'flexible_shipping_new_rules_dont_like';
19
+
20
+ /**
21
+ * Checks if option is set.
22
+ *
23
+ * @return bool Option status.
24
+ */
25
+ public static function is_option_set() {
26
+ return 1 === intval( get_option( self::OPTION_NAME, '0' ) );
27
+ }
28
+
29
+ /**
30
+ * Set option.
31
+ */
32
+ public static function set_option() {
33
+ update_option( self::OPTION_NAME, '1' );
34
+ }
35
+
36
+ }
src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesBannerLikeOption.php ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Rules banner like option.
4
+ *
5
+ * @package WPDesk\FS\TableRate\NewRulesTableBanner
6
+ */
7
+
8
+ namespace WPDesk\FS\TableRate\NewRulesTableBanner;
9
+
10
+ use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
11
+ use WPDesk\FS\TableRate\NewRulesTablePointer\ShippingMethodNewRuleTableSetting;
12
+
13
+ /**
14
+ * Can update option when banner like is clicked.
15
+ */
16
+ class RulesBannerLikeOption implements Hookable {
17
+
18
+ const OPTION_NAME = 'flexible_shipping_new_rules_like';
19
+
20
+ const AJAX_ACTION = 'flexible_shipping_new_rules_like';
21
+
22
+ const NONCE_PARAMETER = 'security';
23
+
24
+ const SHIPPING_METHOD_SETTINGS_OPTION = 'woocommerce_flexible_shipping_info_settings';
25
+
26
+ const PRIORITY_FIRST = 1;
27
+
28
+ /**
29
+ * Hooks.
30
+ */
31
+ public function hooks() {
32
+ add_action( 'wp_ajax_' . self::AJAX_ACTION, array( $this, 'handle_ajax_request' ) );
33
+ }
34
+
35
+ /**
36
+ * Handle AJAX request.
37
+ *
38
+ * @internal
39
+ */
40
+ public function handle_ajax_request() {
41
+ check_ajax_referer( self::AJAX_ACTION, self::NONCE_PARAMETER );
42
+ $this->update_shipping_method_settings();
43
+ update_option( self::OPTION_NAME, '1' );
44
+ }
45
+
46
+ /**
47
+ * Update shipping method settings.
48
+ */
49
+ private function update_shipping_method_settings() {
50
+ ShippingMethodNewRuleTableSetting::enable_option();
51
+ }
52
+
53
+ /**
54
+ * Checks if pointer is active.
55
+ *
56
+ * @return bool Option status.
57
+ */
58
+ public static function is_option_set() {
59
+ return 1 === intval( get_option( self::OPTION_NAME, '0' ) );
60
+ }
61
+
62
+ }
src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesPointerBanner.php ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Rules pointer banner.
4
+ *
5
+ * @package WPDesk\FS\TableRate\NewRulesTableBanner
6
+ */
7
+
8
+ namespace WPDesk\FS\TableRate\NewRulesTableBanner;
9
+
10
+ use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
11
+ use FSVendor\WPDesk\Pointer\PointerConditions;
12
+ use FSVendor\WPDesk\Pointer\PointerMessage;
13
+ use FSVendor\WPDesk\Pointer\PointerPosition;
14
+ use FSVendor\WPDesk\Pointer\PointersScripts;
15
+ use FSVendor\WPDesk\View\Renderer\SimplePhpRenderer;
16
+ use FSVendor\WPDesk\View\Resolver\DirResolver;
17
+ use WPDesk\FS\Helpers\ShippingMethod;
18
+
19
+ /**
20
+ * Can display new rules pointer banner.
21
+ */
22
+ abstract class RulesPointerBanner implements Hookable {
23
+
24
+ const NEW_RULES_TABLE_PARAMETER = 'new_rules_table';
25
+
26
+ const TRIGGER = 'new-rules-table-feedback';
27
+
28
+ /**
29
+ * Hooks.
30
+ */
31
+ public function hooks() {
32
+ add_action( 'flexible_shipping_method_script', array( $this, 'add_new_rules_banner_script' ) );
33
+ }
34
+
35
+ /**
36
+ * Should show banner?
37
+ *
38
+ * @return bool
39
+ */
40
+ abstract protected function should_show_banner();
41
+
42
+ /**
43
+ * Get banner file.
44
+ *
45
+ * @return string
46
+ */
47
+ abstract protected function get_banner_file();
48
+
49
+ /**
50
+ * Add pointer messages if it should be visible.
51
+ *
52
+ * @internal
53
+ */
54
+ public function add_new_rules_banner_script() {
55
+ if ( ! $this->should_show_banner() ) {
56
+ return;
57
+ }
58
+
59
+ $this->add_script();
60
+ }
61
+
62
+ /**
63
+ * Creates pointer message.
64
+ */
65
+ private function add_script() {
66
+ $banner_file = $this->get_banner_file();
67
+ $trigger = self::TRIGGER;
68
+ include __DIR__ . '/views/html-new-rules-table-script.php';
69
+ }
70
+
71
+ }
src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesPointerBannerForNewTable.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Rules pointer banner for new rules table.
4
+ *
5
+ * @package WPDesk\FS\TableRate\NewRulesTableBanner
6
+ */
7
+
8
+ namespace WPDesk\FS\TableRate\NewRulesTableBanner;
9
+
10
+ use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
11
+ use FSVendor\WPDesk\Pointer\PointerConditions;
12
+ use FSVendor\WPDesk\Pointer\PointerMessage;
13
+ use FSVendor\WPDesk\Pointer\PointerPosition;
14
+ use FSVendor\WPDesk\Pointer\PointersScripts;
15
+ use FSVendor\WPDesk\View\Renderer\SimplePhpRenderer;
16
+ use FSVendor\WPDesk\View\Resolver\DirResolver;
17
+ use WPDesk\FS\Helpers\ShippingMethod;
18
+ use WPDesk\FS\TableRate\NewRulesTablePointer\ShippingMethodNewRuleTableSetting;
19
+
20
+ /**
21
+ * Can display new rules pointer banner on new rules table.
22
+ */
23
+ class RulesPointerBannerForNewTable extends RulesPointerBanner {
24
+
25
+ /**
26
+ * @return string
27
+ */
28
+ protected function get_banner_file() {
29
+ return __DIR__ . '/views/html-new-rules-table-banner-for-new-table.php';
30
+ }
31
+
32
+ /**
33
+ * Should show pointer.
34
+ */
35
+ protected function should_show_banner() {
36
+ $new_rule_table_setting = new ShippingMethodNewRuleTableSetting();
37
+ if ( isset( $_GET[ self::NEW_RULES_TABLE_PARAMETER ] ) && ! $new_rule_table_setting->is_enabled() ) {
38
+ return true;
39
+ }
40
+
41
+ return false;
42
+ }
43
+
44
+
45
+ }
src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesPointerBannerForOldTable.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Rules pointer banner.
4
+ *
5
+ * @package WPDesk\FS\TableRate\NewRulesTableBanner
6
+ */
7
+
8
+ namespace WPDesk\FS\TableRate\NewRulesTableBanner;
9
+
10
+ use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
11
+ use FSVendor\WPDesk\Pointer\PointerConditions;
12
+ use FSVendor\WPDesk\Pointer\PointerMessage;
13
+ use FSVendor\WPDesk\Pointer\PointerPosition;
14
+ use FSVendor\WPDesk\Pointer\PointersScripts;
15
+ use FSVendor\WPDesk\View\Renderer\SimplePhpRenderer;
16
+ use FSVendor\WPDesk\View\Resolver\DirResolver;
17
+ use WPDesk\FS\Helpers\ShippingMethod;
18
+ use WPDesk\FS\TableRate\NewRulesTablePointer\ShippingMethodNewRuleTableSetting;
19
+
20
+ /**
21
+ * Can display new rules pointer banner.
22
+ */
23
+ class RulesPointerBannerForOldTable extends RulesPointerBanner {
24
+
25
+ /**
26
+ * @return string
27
+ */
28
+ protected function get_banner_file() {
29
+ return __DIR__ . '/views/html-new-rules-table-banner.php';
30
+ }
31
+
32
+ /**
33
+ * Should show pointer.
34
+ *
35
+ * @return bool
36
+ */
37
+ protected function should_show_banner() {
38
+ $new_rule_table_setting = new ShippingMethodNewRuleTableSetting();
39
+ if ( ! isset( $_GET['method_id'] )
40
+ || $new_rule_table_setting->is_enabled()
41
+ || RulesBannerLikeOption::is_option_set()
42
+ || RulesBannerDontLikeOption::is_option_set()
43
+ || ! ( new \FSVendor\WPDesk_Tracker_Persistence_Consent() )->is_active()
44
+ || wpdesk_is_plugin_active( 'flexible-shipping-pro/flexible-shipping-pro.php' )
45
+ || ! ShippingMethod::check_if_method_exists_in_zones( 'flexible_shipping' )
46
+ || isset( $_GET[ self::NEW_RULES_TABLE_PARAMETER ] )
47
+ ) {
48
+ return false;
49
+ }
50
+
51
+ return true;
52
+ }
53
+
54
+ }
src/WPDesk/FS/TableRate/NewRulesTableBanner/views/html-new-rules-table-banner-for-new-table.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package WPDesk\FS\TableRate\NewRulesTableBanner
4
+ */
5
+
6
+ ?><tr valign="top">
7
+ <td colspan="2" style="padding:0;">
8
+ <p>
9
+ <table id="fs_new_rules_table_banner_for_new_table" class="widefat">
10
+ <thead><tr><td>
11
+ <h2><span style = "margin-right: 12px; color: #007cba;" class = "dashicons dashicons-admin-appearance"></span><?php echo esc_html( __( 'The new table interface has been activated', 'flexible-shipping' ) ); ?></h2>
12
+ <p><?php echo esc_html( __( 'We are very curious about your opinion on the new table design. With the buttons below you can choose which interface you want to use from now on.', 'flexible-shipping' ) ); ?></p>
13
+ <br />
14
+ <button class="button button-primary i-like-it" ><span style = "margin-right: 8px; color: #fff; margin-top: 3px;" class = "dashicons dashicons-thumbs-up"></span> <?php echo esc_html( __( 'I like it and want to use the new interface', 'flexible-shipping' ) ); ?></button>
15
+ <button class="button i-dont-like-it"><span style = "margin-right: 8px; color: # 007cba; margin-top: 4px; " class = "dashicons dashicons-thumbs-down"> </span> <?php echo esc_html( __( 'I don\'t like it, keep using the old one', 'flexible-shipping' ) ); ?></button>
16
+ </td></tr></thead>
17
+ </table>
18
+ </p><br/>
19
+ </td>
20
+ </tr>
src/WPDesk/FS/TableRate/NewRulesTableBanner/views/html-new-rules-table-banner.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @package WPDesk\FS\TableRate\NewRulesTableBanner
4
+ */
5
+
6
+ ?><tr valign="top">
7
+ <td colspan="2" style="padding:0;">
8
+ <p>
9
+ <table id="fs_new_rules_table_banner" class="widefat">
10
+ <thead><tr><td>
11
+ <h2><span style="margin-right: 12px;color: #007cba;" class="dashicons dashicons-admin-appearance"></span><?php echo esc_html( __( 'Hey, we are changing for you! Let us introduce you a completely new table interface!', 'flexible-shipping' ) ); ?></h2>
12
+ <p><?php echo esc_html( __( 'We are constantly developing our plugin to make it more intuitive, user-friendly and approachable at the same time. Therefore, we have designed a completely new table interface which will make it easier to create your own rules and configure the whole shipping.', 'flexible-shipping' ) ); ?></p>
13
+ <p><strong><?php echo esc_html( __( 'Can we count on you?', 'flexible-shipping' ) ); ?></strong> <?php echo esc_html( __( 'Your opinion is very important to us and will help us to adapt Flexible Shipping plugin to your needs even better.', 'flexible-shipping' ) ); ?></p>
14
+ <br />
15
+ <button class="button button-primary show-new-rules-table"><?php echo esc_html( __( 'Check the new interface', 'flexible-shipping' ) ); ?></button>
16
+ </td></tr></thead>
17
+ </table>
18
+ </p><br/>
19
+ </td>
20
+ </tr>
src/WPDesk/FS/TableRate/NewRulesTableBanner/views/html-new-rules-table-script.php ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @var string $banner_file
4
+ * @var string $trigger
5
+ *
6
+ * @package WPDesk\FS\TableRate\NewRulesTableBanner
7
+ */
8
+
9
+ ?><script type="text/javascript">
10
+ jQuery(document).ready(function () {
11
+
12
+ var trigger = '<?php echo esc_attr( $trigger ); ?>';
13
+
14
+ jQuery(".flexible_shipping_method_rules:first").after('<?php
15
+ ob_start();
16
+ include $banner_file;
17
+ $banner = ob_get_clean();
18
+ echo implode( "\\" . PHP_EOL, explode( PHP_EOL, $banner ) );
19
+ ?>'
20
+ );
21
+
22
+ if (jQuery('#fs_new_rules_table_banner_for_new_table').length) {
23
+ jQuery("body,html").animate(
24
+ {
25
+ scrollTop: jQuery("#fs_new_rules_table_banner_for_new_table").offset().top
26
+ },
27
+ 800 //speed
28
+ );
29
+ }
30
+
31
+ jQuery(document).on('click', '#fs_new_rules_table_banner button.show-new-rules-table', function (e) {
32
+ e.preventDefault();
33
+ window.open('<?php echo admin_url( 'admin.php?page=wc-settings&tab=shipping&instance_id=' . sanitize_key( $_GET['instance_id'] ) . '&method_id=' . sanitize_key( $_GET['method_id'] ) . '&action=edit&' . \WPDesk\FS\TableRate\NewRulesTableBanner\RulesPointerBannerForOldTable::NEW_RULES_TABLE_PARAMETER . '=1' ); ?>');
34
+ });
35
+
36
+ jQuery(document).on('click', '#fs_new_rules_table_banner_for_new_table button.i-like-it', function (e) {
37
+ e.preventDefault();
38
+ jQuery(this).attr('disabled', 'disabled');
39
+ jQuery('#fs_new_rules_table_banner_for_new_table button.i-dont-like-it').attr('disabled', 'disabled');
40
+
41
+ jQuery.ajax({
42
+ url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
43
+ type: 'POST',
44
+ data: {
45
+ action: '<?php echo \WPDesk\FS\TableRate\NewRulesTableBanner\RulesBannerLikeOption::AJAX_ACTION; ?>',
46
+ security: '<?php echo wp_create_nonce( \WPDesk\FS\TableRate\NewRulesTableBanner\RulesBannerLikeOption::AJAX_ACTION ); ?>'
47
+ },
48
+ success: function (response) {
49
+ jQuery('#fs_new_rules_table_banner_for_new_table').closest('tr').remove();
50
+ window.opener.jQuery('#fs_new_rules_table_banner').closest('tr').remove();
51
+ }
52
+ });
53
+ });
54
+
55
+ jQuery(document).on('click', '#fs_new_rules_table_banner_for_new_table button.i-dont-like-it', function (e) {
56
+ e.preventDefault();
57
+ jQuery(document).trigger(trigger);
58
+ });
59
+
60
+ jQuery(document).on(trigger + '_proceed', function () {
61
+ window.onbeforeunload = null;
62
+ if (window.opener) {
63
+ window.opener.jQuery('#fs_new_rules_table_banner').closest('tr').remove();
64
+ }
65
+ window.close();
66
+ });
67
+
68
+ });
69
+ </script>
src/WPDesk/FS/TableRate/NewRulesTableDeactivationTracker.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Decativation tracker data.
4
+ *
5
+ * @package WPDesk\FS\TableRate
6
+ */
7
+
8
+ namespace WPDesk\FS\TableRate;
9
+
10
+ use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
11
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesBannerClickedOption;
12
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesBannerDontLikeOption;
13
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesBannerLikeOption;
14
+ use WPDesk\FS\TableRate\NewRulesTablePointer\RulesPointerOption;
15
+ use WPDesk\FS\TableRate\NewRulesTablePointer\ShippingMethodNewRuleTableSetting;
16
+
17
+ /**
18
+ * Can add new rates table data to deactivation tracker data.
19
+ */
20
+ class NewRulesTableDeactivationTracker implements Hookable {
21
+
22
+ const ADDITIONAL_DATA = 'additional_data';
23
+
24
+ /**
25
+ * Hooks.
26
+ */
27
+ public function hooks() {
28
+ add_filter( 'wpdesk_tracker_deactivation_data', array( $this, 'append_new_rules_table_data_to_deactivation_tracker' ) );
29
+ }
30
+
31
+ /**
32
+ * Set new rules table data to data array.
33
+ *
34
+ * @param array $data Data.
35
+ *
36
+ * @return array
37
+ */
38
+ public function append_new_rules_table_data_to_deactivation_tracker( array $data ) {
39
+ if ( empty( $data[ self::ADDITIONAL_DATA ] ) || is_array( $data[ self::ADDITIONAL_DATA ] ) ) {
40
+ $data[ self::ADDITIONAL_DATA ] = array();
41
+ }
42
+ $data[ self::ADDITIONAL_DATA ]['fs_new_rules_table_v2'] = ( new NewRulesTableTrackerData() )->get_data();
43
+
44
+ return $data;
45
+ }
46
+
47
+ }
src/WPDesk/FS/TableRate/NewRulesTablePointer/ShippingMethodNewRuleTableSetting.php CHANGED
@@ -7,6 +7,8 @@
7
 
8
  namespace WPDesk\FS\TableRate\NewRulesTablePointer;
9
 
 
 
10
  /**
11
  * Can add option to shipping method settings.
12
  */
@@ -27,7 +29,7 @@ class ShippingMethodNewRuleTableSetting {
27
  * @return bool
28
  */
29
  private function should_add_field_to_settings() {
30
- return RulesPointerOption::is_option_set() && ! wpdesk_is_plugin_active( 'flexible-shipping-pro/flexible-shipping-pro.php' );
31
  }
32
 
33
  /**
@@ -55,7 +57,7 @@ class ShippingMethodNewRuleTableSetting {
55
  */
56
  public function is_enabled() {
57
  $settings = get_option( self::SHIPPING_METHOD_SETTINGS_OPTION, array() );
58
- return isset( $settings[ self::SETTINGS_OPTION ] ) && $settings[ self::SETTINGS_OPTION ] === self::VALUE_YES;
59
  }
60
 
61
  /**
@@ -66,8 +68,10 @@ class ShippingMethodNewRuleTableSetting {
66
  }
67
 
68
  /**
69
- * @param array $old_value .
70
- * @param array $new_value .
 
 
71
  * @param string $option .
72
  */
73
  public function update_option_if_settings_changed( $old_value, $new_value, $option ) {
@@ -81,7 +85,7 @@ class ShippingMethodNewRuleTableSetting {
81
  $new_option_value = $new_value[ self::SETTINGS_OPTION ];
82
  }
83
  }
84
- if ( $old_option_value === self::VALUE_YES && $new_option_value === self::VALUE_NO ) {
85
  update_option( self::OPTION_NEW_RULES_DISABLED, '1' );
86
  }
87
  }
@@ -90,6 +94,7 @@ class ShippingMethodNewRuleTableSetting {
90
  * Display settings JavaScript.
91
  */
92
  public function settings_script() {
 
93
  if ( ! RulesPointerOption::is_option_set() ) {
94
  return;
95
  }
@@ -107,4 +112,13 @@ class ShippingMethodNewRuleTableSetting {
107
  return 1 === intval( get_option( self::OPTION_NEW_RULES_DISABLED, '0' ) );
108
  }
109
 
 
 
 
 
 
 
 
 
 
110
  }
7
 
8
  namespace WPDesk\FS\TableRate\NewRulesTablePointer;
9
 
10
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesBannerClickedOption;
11
+
12
  /**
13
  * Can add option to shipping method settings.
14
  */
29
  * @return bool
30
  */
31
  private function should_add_field_to_settings() {
32
+ return RulesBannerClickedOption::is_option_set() && ! wpdesk_is_plugin_active( 'flexible-shipping-pro/flexible-shipping-pro.php' );
33
  }
34
 
35
  /**
57
  */
58
  public function is_enabled() {
59
  $settings = get_option( self::SHIPPING_METHOD_SETTINGS_OPTION, array() );
60
+ return isset( $settings[ self::SETTINGS_OPTION ] ) && self::VALUE_YES === $settings[ self::SETTINGS_OPTION ];
61
  }
62
 
63
  /**
68
  }
69
 
70
  /**
71
+ * .
72
+ *
73
+ * @param array $old_value .
74
+ * @param array $new_value .
75
  * @param string $option .
76
  */
77
  public function update_option_if_settings_changed( $old_value, $new_value, $option ) {
85
  $new_option_value = $new_value[ self::SETTINGS_OPTION ];
86
  }
87
  }
88
+ if ( self::VALUE_YES === $old_option_value && self::VALUE_NO === $new_option_value ) {
89
  update_option( self::OPTION_NEW_RULES_DISABLED, '1' );
90
  }
91
  }
94
  * Display settings JavaScript.
95
  */
96
  public function settings_script() {
97
+ return;
98
  if ( ! RulesPointerOption::is_option_set() ) {
99
  return;
100
  }
112
  return 1 === intval( get_option( self::OPTION_NEW_RULES_DISABLED, '0' ) );
113
  }
114
 
115
+ /**
116
+ * Enable option.
117
+ */
118
+ public static function enable_option() {
119
+ $shipping_method_settings = get_option( self::SHIPPING_METHOD_SETTINGS_OPTION, array() );
120
+ $shipping_method_settings[ self::SETTINGS_OPTION ] = 'yes';
121
+ update_option( self::SHIPPING_METHOD_SETTINGS_OPTION, $shipping_method_settings );
122
+ }
123
+
124
  }
src/WPDesk/FS/TableRate/NewRulesTableTracker.php CHANGED
@@ -8,6 +8,9 @@
8
  namespace WPDesk\FS\TableRate;
9
 
10
  use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
 
 
 
11
  use WPDesk\FS\TableRate\NewRulesTablePointer\RulesPointerOption;
12
  use WPDesk\FS\TableRate\NewRulesTablePointer\ShippingMethodNewRuleTableSetting;
13
 
@@ -16,10 +19,7 @@ use WPDesk\FS\TableRate\NewRulesTablePointer\ShippingMethodNewRuleTableSetting;
16
  */
17
  class NewRulesTableTracker implements Hookable {
18
 
19
- const NEW_USERS_AFTER_THIS_DATE = '2020-07-07 01:00:00';
20
-
21
  const PRIORITY_AFTER_FS_TRACKER = 12;
22
- const TRACKER_DATA_FLEXIBLE_SHIPPING = 'flexible_shipping';
23
 
24
  /**
25
  * Hooks.
@@ -28,63 +28,6 @@ class NewRulesTableTracker implements Hookable {
28
  add_filter( 'wpdesk_tracker_data', array( $this, 'append_new_rules_table_data_to_tracker' ), self::PRIORITY_AFTER_FS_TRACKER );
29
  }
30
 
31
- /**
32
- * If this a old user? If so then FS should work like always.
33
- *
34
- * @return bool
35
- */
36
- private function is_new_installation() {
37
- return strtotime( self::NEW_USERS_AFTER_THIS_DATE ) < $this->activation_date_according_to_wpdesk_helper();
38
- }
39
-
40
- /**
41
- * Activation date according to wpdesk helper.
42
- *
43
- * @return int Activation date timestamp.
44
- */
45
- private function activation_date_according_to_wpdesk_helper() {
46
- $option_name = 'plugin_activation_flexible-shipping/flexible-shipping.php';
47
- $activation_date = get_option( $option_name, current_time( 'mysql' ) );
48
-
49
- if ( ! $activation_date ) {
50
- return time();
51
- }
52
-
53
- return strtotime( $activation_date );
54
- }
55
-
56
- /**
57
- * Checks if new tables are activated.
58
- *
59
- * @return string Status "yes" for true or "no" for false.
60
- */
61
- private function get_new_rules_table_enabled() {
62
- $shipping_method_settings = get_option( ShippingMethodNewRuleTableSetting::SHIPPING_METHOD_SETTINGS_OPTION, array() );
63
- if ( isset( $shipping_method_settings[ ShippingMethodNewRuleTableSetting::SETTINGS_OPTION ] ) ) {
64
- return $shipping_method_settings[ ShippingMethodNewRuleTableSetting::SETTINGS_OPTION ];
65
- }
66
- return 'no';
67
- }
68
-
69
- /**
70
- * Adds info about New Table Interface to user feedback.
71
- *
72
- * @param array $data Stats about New Table Interface.
73
- * @param array $user_feedback User feedback.
74
- *
75
- * @return array Updated $data array.
76
- */
77
- private function append_user_feedback_data( $data, $user_feedback ) {
78
- if ( isset( $user_feedback['selected_option'] ) ) {
79
- $data['feedback_option'] = $user_feedback['selected_option'];
80
- }
81
- if ( isset( $user_feedback['additional_info'] ) ) {
82
- $data['feedback_additional_info'] = $user_feedback['additional_info'];
83
- }
84
-
85
- return $data;
86
- }
87
-
88
  /**
89
  * Adds data to the tracker about New Table Interface.
90
  *
@@ -93,20 +36,7 @@ class NewRulesTableTracker implements Hookable {
93
  * @return array Updated $data array.
94
  */
95
  public function append_new_rules_table_data_to_tracker( $data ) {
96
- $new_rules_table_data = array();
97
-
98
- $new_rules_table_data['new_installation'] = $this->is_new_installation() ? 'yes' : 'no';
99
- $new_rules_table_data['pointer_clicked'] = RulesPointerOption::is_option_set() ? 'yes' : 'no';
100
- $new_rules_table_data['table_enabled'] = $this->get_new_rules_table_enabled();
101
- $new_rules_table_data['was_disabled'] = ShippingMethodNewRuleTableSetting::was_option_disabled() ? 'yes' : 'no';
102
-
103
- $user_feedback = get_option( UserFeedback::USER_FEEDBACK_OPTION );
104
-
105
- if ( is_array( $user_feedback ) ) {
106
- $new_rules_table_data = $this->append_user_feedback_data( $new_rules_table_data, $user_feedback );
107
- }
108
-
109
- $data['flexible_shipping']['new_rules_table'] = $new_rules_table_data;
110
 
111
  return $data;
112
  }
8
  namespace WPDesk\FS\TableRate;
9
 
10
  use FSVendor\WPDesk\PluginBuilder\Plugin\Hookable;
11
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesBannerClickedOption;
12
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesBannerDontLikeOption;
13
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesBannerLikeOption;
14
  use WPDesk\FS\TableRate\NewRulesTablePointer\RulesPointerOption;
15
  use WPDesk\FS\TableRate\NewRulesTablePointer\ShippingMethodNewRuleTableSetting;
16
 
19
  */
20
  class NewRulesTableTracker implements Hookable {
21
 
 
 
22
  const PRIORITY_AFTER_FS_TRACKER = 12;
 
23
 
24
  /**
25
  * Hooks.
28
  add_filter( 'wpdesk_tracker_data', array( $this, 'append_new_rules_table_data_to_tracker' ), self::PRIORITY_AFTER_FS_TRACKER );
29
  }
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  /**
32
  * Adds data to the tracker about New Table Interface.
33
  *
36
  * @return array Updated $data array.
37
  */
38
  public function append_new_rules_table_data_to_tracker( $data ) {
39
+ $data['flexible_shipping']['new_rules_table_v2'] = ( new NewRulesTableTrackerData() )->get_data();
 
 
 
 
 
 
 
 
 
 
 
 
 
40
 
41
  return $data;
42
  }
src/WPDesk/FS/TableRate/NewRulesTableTrackerData.php ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * New Rules Table tracker data.
4
+ *
5
+ * @package WPDesk\FS\TableRate
6
+ */
7
+
8
+ namespace WPDesk\FS\TableRate;
9
+
10
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesBannerClickedOption;
11
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesBannerDontLikeOption;
12
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesBannerLikeOption;
13
+ use WPDesk\FS\TableRate\NewRulesTablePointer\ShippingMethodNewRuleTableSetting;
14
+
15
+ /**
16
+ * Class NewRulesTableTrackerData
17
+ */
18
+ class NewRulesTableTrackerData {
19
+
20
+ const NEW_USERS_AFTER_THIS_DATE = '2020-08-12 01:00:00';
21
+
22
+ /**
23
+ * If this a old user? If so then FS should work like always.
24
+ *
25
+ * @return bool
26
+ */
27
+ private function is_new_installation() {
28
+ return strtotime( self::NEW_USERS_AFTER_THIS_DATE ) < $this->activation_date_according_to_wpdesk_helper();
29
+ }
30
+
31
+ /**
32
+ * Activation date according to wpdesk helper.
33
+ *
34
+ * @return int Activation date timestamp.
35
+ */
36
+ private function activation_date_according_to_wpdesk_helper() {
37
+ $option_name = 'plugin_activation_flexible-shipping/flexible-shipping.php';
38
+ $activation_date = get_option( $option_name, current_time( 'mysql' ) );
39
+
40
+ if ( ! $activation_date ) {
41
+ return time();
42
+ }
43
+
44
+ return strtotime( $activation_date );
45
+ }
46
+
47
+ /**
48
+ * Adds info about New Table Interface to user feedback.
49
+ *
50
+ * @param array $data Stats about New Table Interface.
51
+ * @param array $user_feedback User feedback.
52
+ *
53
+ * @return array Updated $data array.
54
+ */
55
+ private function append_user_feedback_data( $data, $user_feedback ) {
56
+ if ( isset( $user_feedback['selected_option'] ) ) {
57
+ $data['feedback_option'] = $user_feedback['selected_option'];
58
+ }
59
+ if ( isset( $user_feedback['additional_info'] ) ) {
60
+ $data['feedback_additional_info'] = $user_feedback['additional_info'];
61
+ }
62
+
63
+ return $data;
64
+ }
65
+
66
+ /**
67
+ * Checks if new tables are activated.
68
+ *
69
+ * @return string Status "yes" for true or "no" for false.
70
+ */
71
+ private function get_new_rules_table_enabled() {
72
+ $shipping_method_settings = get_option( ShippingMethodNewRuleTableSetting::SHIPPING_METHOD_SETTINGS_OPTION, array() );
73
+ if ( isset( $shipping_method_settings[ ShippingMethodNewRuleTableSetting::SETTINGS_OPTION ] ) ) {
74
+ return $shipping_method_settings[ ShippingMethodNewRuleTableSetting::SETTINGS_OPTION ];
75
+ }
76
+ return 'no';
77
+ }
78
+
79
+ /**
80
+ * @return array
81
+ */
82
+ public function get_data() {
83
+ $new_rules_table_data = array();
84
+
85
+ $new_rules_table_data['new_installation'] = $this->is_new_installation() ? 'yes' : 'no';
86
+ $new_rules_table_data['banner_clicked'] = RulesBannerClickedOption::is_option_set() ? 'yes' : 'no';
87
+ $new_rules_table_data['like_clicked'] = RulesBannerLikeOption::is_option_set() ? 'yes' : 'no';
88
+ $new_rules_table_data['dont_like_clicked'] = RulesBannerDontLikeOption::is_option_set() ? 'yes' : 'no';
89
+ $new_rules_table_data['table_enabled'] = $this->get_new_rules_table_enabled();
90
+ $new_rules_table_data['was_disabled'] = ShippingMethodNewRuleTableSetting::was_option_disabled() ? 'yes' : 'no';
91
+
92
+ $user_feedback = get_option( UserFeedback::USER_FEEDBACK_OPTION );
93
+
94
+ if ( is_array( $user_feedback ) ) {
95
+ $new_rules_table_data = $this->append_user_feedback_data( $new_rules_table_data, $user_feedback );
96
+ }
97
+
98
+ return $new_rules_table_data;
99
+ }
100
+
101
+ }
src/WPDesk/FS/TableRate/UserFeedback.php CHANGED
@@ -13,6 +13,8 @@ use FSVendor\WPDesk\Tracker\UserFeedback\Tracker;
13
  use FSVendor\WPDesk\Tracker\UserFeedback\TrackerFactory;
14
  use FSVendor\WPDesk\Tracker\UserFeedback\UserFeedbackData;
15
  use FSVendor\WPDesk\Tracker\UserFeedback\UserFeedbackOption;
 
 
16
  use WPDesk\FS\TableRate\NewRulesTablePointer\RulesPointerOption;
17
  use WPDesk\FS\TableRate\NewRulesTablePointer\ShippingMethodNewRuleTableSetting;
18
 
@@ -21,31 +23,20 @@ use WPDesk\FS\TableRate\NewRulesTablePointer\ShippingMethodNewRuleTableSetting;
21
  */
22
  class UserFeedback implements Hookable {
23
 
24
- const THICKBOX_ID = 'new-rules-table';
25
  const USER_FEEDBACK_OPTION = 'flexible_shipping_new_rules_feedback';
26
 
27
  /**
28
  * Hooks.
29
  */
30
  public function hooks() {
31
- if ( RulesPointerOption::is_option_set() ) {
32
  $user_feedback = $this->prepare_user_feedback_tracker();
33
  $user_feedback->hooks();
34
  }
35
  add_action( 'wpdesk_tracker_user_feedback_data_handled', array( $this, 'save_user_feedback' ) );
36
  }
37
 
38
- /**
39
- * Saves user feedback for lated sending by Tracker.
40
- *
41
- * @param array $payload Tracker request data.
42
- */
43
- public function save_user_feedback( $payload ) {
44
- if ( is_array( $payload ) && isset( $payload[ AjaxUserFeedbackDataHandler::FEEDBACK_ID ] ) && self::THICKBOX_ID === $payload[ AjaxUserFeedbackDataHandler::FEEDBACK_ID ] ) {
45
- update_option( self::USER_FEEDBACK_OPTION, $payload );
46
- }
47
- }
48
-
49
  /**
50
  * Prepares tracker for save user feedback.
51
  *
@@ -54,7 +45,7 @@ class UserFeedback implements Hookable {
54
  private function prepare_user_feedback_tracker() {
55
  $user_feedback_data = new UserFeedbackData(
56
  self::THICKBOX_ID,
57
- __( 'You are disabling new rules table', 'flexible-shipping' ),
58
  '',
59
  __( 'What should we do to improve your experience?', 'flexible-shipping' ),
60
  'woocommerce_page_wc-settings'
@@ -71,4 +62,16 @@ class UserFeedback implements Hookable {
71
  return TrackerFactory::create_custom_tracker_with_null_sender( $user_feedback_data );
72
  }
73
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  }
13
  use FSVendor\WPDesk\Tracker\UserFeedback\TrackerFactory;
14
  use FSVendor\WPDesk\Tracker\UserFeedback\UserFeedbackData;
15
  use FSVendor\WPDesk\Tracker\UserFeedback\UserFeedbackOption;
16
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesBannerDontLikeOption;
17
+ use WPDesk\FS\TableRate\NewRulesTableBanner\RulesBannerLikeOption;
18
  use WPDesk\FS\TableRate\NewRulesTablePointer\RulesPointerOption;
19
  use WPDesk\FS\TableRate\NewRulesTablePointer\ShippingMethodNewRuleTableSetting;
20
 
23
  */
24
  class UserFeedback implements Hookable {
25
 
26
+ const THICKBOX_ID = 'new-rules-table-feedback';
27
  const USER_FEEDBACK_OPTION = 'flexible_shipping_new_rules_feedback';
28
 
29
  /**
30
  * Hooks.
31
  */
32
  public function hooks() {
33
+ if ( ! RulesBannerLikeOption::is_option_set() ) {
34
  $user_feedback = $this->prepare_user_feedback_tracker();
35
  $user_feedback->hooks();
36
  }
37
  add_action( 'wpdesk_tracker_user_feedback_data_handled', array( $this, 'save_user_feedback' ) );
38
  }
39
 
 
 
 
 
 
 
 
 
 
 
 
40
  /**
41
  * Prepares tracker for save user feedback.
42
  *
45
  private function prepare_user_feedback_tracker() {
46
  $user_feedback_data = new UserFeedbackData(
47
  self::THICKBOX_ID,
48
+ __( 'You don\'t like new interface?', 'flexible-shipping' ),
49
  '',
50
  __( 'What should we do to improve your experience?', 'flexible-shipping' ),
51
  'woocommerce_page_wc-settings'
62
  return TrackerFactory::create_custom_tracker_with_null_sender( $user_feedback_data );
63
  }
64
 
65
+ /**
66
+ * Saves user feedback for lated sending by Tracker.
67
+ *
68
+ * @param array $payload Tracker request data.
69
+ */
70
+ public function save_user_feedback( $payload ) {
71
+ if ( is_array( $payload ) && isset( $payload[ AjaxUserFeedbackDataHandler::FEEDBACK_ID ] ) && self::THICKBOX_ID === $payload[ AjaxUserFeedbackDataHandler::FEEDBACK_ID ] ) {
72
+ update_option( self::USER_FEEDBACK_OPTION, $payload );
73
+ }
74
+ RulesBannerDontLikeOption::set_option();
75
+ }
76
+
77
  }
src/WPDesk/FS/TableRate/views/shipping-method-settings-rules.php CHANGED
@@ -75,11 +75,13 @@ $count_rules = 0;
75
  ?>
76
  <p><?php printf( __( 'Check %sFlexible Shipping PRO &rarr;%s to add advanced rules based on shipment classes, product/item count or additional handling fees/insurance.', 'flexible-shipping' ), '<a href="' . $fs_pro_link . '?utm_campaign=flexible-shipping&utm_source=user-site&utm_medium=link&utm_term=flexible-shipping-pro&utm_content=fs-shippingzone-addnew-rules" target="_blank">', '</a>' ); ?></p>
77
  <?php endif; ?>
 
78
  <p><?php echo sprintf(
79
  __( 'You are currently using the new rules table interface. You can always change it back on the %1$ssettings page%2$s.', 'flexible-shipping' ),
80
  '<a href="' . esc_attr( admin_url( 'admin.php?page=wc-settings&tab=shipping&section=flexible_shipping_info#woocommerce_flexible_shipping_info_enable_new_rules_table' ) ) . '">',
81
  '</a>'
82
  ); ?></p>
 
83
  </th>
84
  </tr>
85
  <tr valign="top" class="flexible_shipping_method_rules">
75
  ?>
76
  <p><?php printf( __( 'Check %sFlexible Shipping PRO &rarr;%s to add advanced rules based on shipment classes, product/item count or additional handling fees/insurance.', 'flexible-shipping' ), '<a href="' . $fs_pro_link . '?utm_campaign=flexible-shipping&utm_source=user-site&utm_medium=link&utm_term=flexible-shipping-pro&utm_content=fs-shippingzone-addnew-rules" target="_blank">', '</a>' ); ?></p>
77
  <?php endif; ?>
78
+ <!--
79
  <p><?php echo sprintf(
80
  __( 'You are currently using the new rules table interface. You can always change it back on the %1$ssettings page%2$s.', 'flexible-shipping' ),
81
  '<a href="' . esc_attr( admin_url( 'admin.php?page=wc-settings&tab=shipping&section=flexible_shipping_info#woocommerce_flexible_shipping_info_enable_new_rules_table' ) ) . '">',
82
  '</a>'
83
  ); ?></p>
84
+ -->
85
  </th>
86
  </tr>
87
  <tr valign="top" class="flexible_shipping_method_rules">
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit052cd55d6ab2bb805b5c19888ea1afd6::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit8ce38e4100319ccd3fb5977b8cd5e1cd::getLoader();
vendor/composer/autoload_classmap.php CHANGED
@@ -306,10 +306,18 @@ return array(
306
  'WPDesk\\FS\\Rate\\SecondRateNotice' => $baseDir . '/classes/wp-wpdesk-fs-shipment/rate-notices/second-rate-notice.php',
307
  'WPDesk\\FS\\Rate\\ThirdRateNotice' => $baseDir . '/classes/wp-wpdesk-fs-shipment/rate-notices/third-rate-notice.php',
308
  'WPDesk\\FS\\Rate\\WPDesk_Flexible_Shipping_Rate_Notice' => $baseDir . '/classes/wp-wpdesk-fs-shipment/rate-notice.php',
 
 
 
 
 
 
 
309
  'WPDesk\\FS\\TableRate\\NewRulesTablePointer\\RulesPointerMessage' => $baseDir . '/src/WPDesk/FS/TableRate/NewRulesTablePointer/RulesPointerMessage.php',
310
  'WPDesk\\FS\\TableRate\\NewRulesTablePointer\\RulesPointerOption' => $baseDir . '/src/WPDesk/FS/TableRate/NewRulesTablePointer/RulesPointerOption.php',
311
  'WPDesk\\FS\\TableRate\\NewRulesTablePointer\\ShippingMethodNewRuleTableSetting' => $baseDir . '/src/WPDesk/FS/TableRate/NewRulesTablePointer/ShippingMethodNewRuleTableSetting.php',
312
  'WPDesk\\FS\\TableRate\\NewRulesTableTracker' => $baseDir . '/src/WPDesk/FS/TableRate/NewRulesTableTracker.php',
 
313
  'WPDesk\\FS\\TableRate\\RulesSettingsField' => $baseDir . '/src/WPDesk/FS/TableRate/RulesSettingsField.php',
314
  'WPDesk\\FS\\TableRate\\UserFeedback' => $baseDir . '/src/WPDesk/FS/TableRate/UserFeedback.php',
315
  'WPDesk\\Helper\\HelperAsLibrary' => $vendorDir . '/wpdesk/wp-wpdesk-helper-override/src/Helper/HelperAsLibrary.php',
306
  'WPDesk\\FS\\Rate\\SecondRateNotice' => $baseDir . '/classes/wp-wpdesk-fs-shipment/rate-notices/second-rate-notice.php',
307
  'WPDesk\\FS\\Rate\\ThirdRateNotice' => $baseDir . '/classes/wp-wpdesk-fs-shipment/rate-notices/third-rate-notice.php',
308
  'WPDesk\\FS\\Rate\\WPDesk_Flexible_Shipping_Rate_Notice' => $baseDir . '/classes/wp-wpdesk-fs-shipment/rate-notice.php',
309
+ 'WPDesk\\FS\\TableRate\\NewRulesTableBanner\\RulesBannerClickedOption' => $baseDir . '/src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesBannerClickedOption.php',
310
+ 'WPDesk\\FS\\TableRate\\NewRulesTableBanner\\RulesBannerDontLikeOption' => $baseDir . '/src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesBannerDontLikeOption.php',
311
+ 'WPDesk\\FS\\TableRate\\NewRulesTableBanner\\RulesBannerLikeOption' => $baseDir . '/src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesBannerLikeOption.php',
312
+ 'WPDesk\\FS\\TableRate\\NewRulesTableBanner\\RulesPointerBanner' => $baseDir . '/src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesPointerBanner.php',
313
+ 'WPDesk\\FS\\TableRate\\NewRulesTableBanner\\RulesPointerBannerForNewTable' => $baseDir . '/src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesPointerBannerForNewTable.php',
314
+ 'WPDesk\\FS\\TableRate\\NewRulesTableBanner\\RulesPointerBannerForOldTable' => $baseDir . '/src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesPointerBannerForOldTable.php',
315
+ 'WPDesk\\FS\\TableRate\\NewRulesTableDeactivationTracker' => $baseDir . '/src/WPDesk/FS/TableRate/NewRulesTableDeactivationTracker.php',
316
  'WPDesk\\FS\\TableRate\\NewRulesTablePointer\\RulesPointerMessage' => $baseDir . '/src/WPDesk/FS/TableRate/NewRulesTablePointer/RulesPointerMessage.php',
317
  'WPDesk\\FS\\TableRate\\NewRulesTablePointer\\RulesPointerOption' => $baseDir . '/src/WPDesk/FS/TableRate/NewRulesTablePointer/RulesPointerOption.php',
318
  'WPDesk\\FS\\TableRate\\NewRulesTablePointer\\ShippingMethodNewRuleTableSetting' => $baseDir . '/src/WPDesk/FS/TableRate/NewRulesTablePointer/ShippingMethodNewRuleTableSetting.php',
319
  'WPDesk\\FS\\TableRate\\NewRulesTableTracker' => $baseDir . '/src/WPDesk/FS/TableRate/NewRulesTableTracker.php',
320
+ 'WPDesk\\FS\\TableRate\\NewRulesTableTrackerData' => $baseDir . '/src/WPDesk/FS/TableRate/NewRulesTableTrackerData.php',
321
  'WPDesk\\FS\\TableRate\\RulesSettingsField' => $baseDir . '/src/WPDesk/FS/TableRate/RulesSettingsField.php',
322
  'WPDesk\\FS\\TableRate\\UserFeedback' => $baseDir . '/src/WPDesk/FS/TableRate/UserFeedback.php',
323
  'WPDesk\\Helper\\HelperAsLibrary' => $vendorDir . '/wpdesk/wp-wpdesk-helper-override/src/Helper/HelperAsLibrary.php',
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit052cd55d6ab2bb805b5c19888ea1afd6
6
  {
7
  private static $loader;
8
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit052cd55d6ab2bb805b5c19888ea1afd6
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit052cd55d6ab2bb805b5c19888ea1afd6', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit052cd55d6ab2bb805b5c19888ea1afd6', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
- call_user_func(\Composer\Autoload\ComposerStaticInit052cd55d6ab2bb805b5c19888ea1afd6::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit8ce38e4100319ccd3fb5977b8cd5e1cd
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit8ce38e4100319ccd3fb5977b8cd5e1cd', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit8ce38e4100319ccd3fb5977b8cd5e1cd', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
+ call_user_func(\Composer\Autoload\ComposerStaticInit8ce38e4100319ccd3fb5977b8cd5e1cd::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit052cd55d6ab2bb805b5c19888ea1afd6
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'W' =>
@@ -338,10 +338,18 @@ class ComposerStaticInit052cd55d6ab2bb805b5c19888ea1afd6
338
  'WPDesk\\FS\\Rate\\SecondRateNotice' => __DIR__ . '/../..' . '/classes/wp-wpdesk-fs-shipment/rate-notices/second-rate-notice.php',
339
  'WPDesk\\FS\\Rate\\ThirdRateNotice' => __DIR__ . '/../..' . '/classes/wp-wpdesk-fs-shipment/rate-notices/third-rate-notice.php',
340
  'WPDesk\\FS\\Rate\\WPDesk_Flexible_Shipping_Rate_Notice' => __DIR__ . '/../..' . '/classes/wp-wpdesk-fs-shipment/rate-notice.php',
 
 
 
 
 
 
 
341
  'WPDesk\\FS\\TableRate\\NewRulesTablePointer\\RulesPointerMessage' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/NewRulesTablePointer/RulesPointerMessage.php',
342
  'WPDesk\\FS\\TableRate\\NewRulesTablePointer\\RulesPointerOption' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/NewRulesTablePointer/RulesPointerOption.php',
343
  'WPDesk\\FS\\TableRate\\NewRulesTablePointer\\ShippingMethodNewRuleTableSetting' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/NewRulesTablePointer/ShippingMethodNewRuleTableSetting.php',
344
  'WPDesk\\FS\\TableRate\\NewRulesTableTracker' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/NewRulesTableTracker.php',
 
345
  'WPDesk\\FS\\TableRate\\RulesSettingsField' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/RulesSettingsField.php',
346
  'WPDesk\\FS\\TableRate\\UserFeedback' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/UserFeedback.php',
347
  'WPDesk\\Helper\\HelperAsLibrary' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-helper-override/src/Helper/HelperAsLibrary.php',
@@ -438,10 +446,10 @@ class ComposerStaticInit052cd55d6ab2bb805b5c19888ea1afd6
438
  public static function getInitializer(ClassLoader $loader)
439
  {
440
  return \Closure::bind(function () use ($loader) {
441
- $loader->prefixLengthsPsr4 = ComposerStaticInit052cd55d6ab2bb805b5c19888ea1afd6::$prefixLengthsPsr4;
442
- $loader->prefixDirsPsr4 = ComposerStaticInit052cd55d6ab2bb805b5c19888ea1afd6::$prefixDirsPsr4;
443
- $loader->fallbackDirsPsr4 = ComposerStaticInit052cd55d6ab2bb805b5c19888ea1afd6::$fallbackDirsPsr4;
444
- $loader->classMap = ComposerStaticInit052cd55d6ab2bb805b5c19888ea1afd6::$classMap;
445
 
446
  }, null, ClassLoader::class);
447
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit8ce38e4100319ccd3fb5977b8cd5e1cd
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'W' =>
338
  'WPDesk\\FS\\Rate\\SecondRateNotice' => __DIR__ . '/../..' . '/classes/wp-wpdesk-fs-shipment/rate-notices/second-rate-notice.php',
339
  'WPDesk\\FS\\Rate\\ThirdRateNotice' => __DIR__ . '/../..' . '/classes/wp-wpdesk-fs-shipment/rate-notices/third-rate-notice.php',
340
  'WPDesk\\FS\\Rate\\WPDesk_Flexible_Shipping_Rate_Notice' => __DIR__ . '/../..' . '/classes/wp-wpdesk-fs-shipment/rate-notice.php',
341
+ 'WPDesk\\FS\\TableRate\\NewRulesTableBanner\\RulesBannerClickedOption' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesBannerClickedOption.php',
342
+ 'WPDesk\\FS\\TableRate\\NewRulesTableBanner\\RulesBannerDontLikeOption' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesBannerDontLikeOption.php',
343
+ 'WPDesk\\FS\\TableRate\\NewRulesTableBanner\\RulesBannerLikeOption' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesBannerLikeOption.php',
344
+ 'WPDesk\\FS\\TableRate\\NewRulesTableBanner\\RulesPointerBanner' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesPointerBanner.php',
345
+ 'WPDesk\\FS\\TableRate\\NewRulesTableBanner\\RulesPointerBannerForNewTable' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesPointerBannerForNewTable.php',
346
+ 'WPDesk\\FS\\TableRate\\NewRulesTableBanner\\RulesPointerBannerForOldTable' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/NewRulesTableBanner/RulesPointerBannerForOldTable.php',
347
+ 'WPDesk\\FS\\TableRate\\NewRulesTableDeactivationTracker' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/NewRulesTableDeactivationTracker.php',
348
  'WPDesk\\FS\\TableRate\\NewRulesTablePointer\\RulesPointerMessage' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/NewRulesTablePointer/RulesPointerMessage.php',
349
  'WPDesk\\FS\\TableRate\\NewRulesTablePointer\\RulesPointerOption' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/NewRulesTablePointer/RulesPointerOption.php',
350
  'WPDesk\\FS\\TableRate\\NewRulesTablePointer\\ShippingMethodNewRuleTableSetting' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/NewRulesTablePointer/ShippingMethodNewRuleTableSetting.php',
351
  'WPDesk\\FS\\TableRate\\NewRulesTableTracker' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/NewRulesTableTracker.php',
352
+ 'WPDesk\\FS\\TableRate\\NewRulesTableTrackerData' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/NewRulesTableTrackerData.php',
353
  'WPDesk\\FS\\TableRate\\RulesSettingsField' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/RulesSettingsField.php',
354
  'WPDesk\\FS\\TableRate\\UserFeedback' => __DIR__ . '/../..' . '/src/WPDesk/FS/TableRate/UserFeedback.php',
355
  'WPDesk\\Helper\\HelperAsLibrary' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-helper-override/src/Helper/HelperAsLibrary.php',
446
  public static function getInitializer(ClassLoader $loader)
447
  {
448
  return \Closure::bind(function () use ($loader) {
449
+ $loader->prefixLengthsPsr4 = ComposerStaticInit8ce38e4100319ccd3fb5977b8cd5e1cd::$prefixLengthsPsr4;
450
+ $loader->prefixDirsPsr4 = ComposerStaticInit8ce38e4100319ccd3fb5977b8cd5e1cd::$prefixDirsPsr4;
451
+ $loader->fallbackDirsPsr4 = ComposerStaticInit8ce38e4100319ccd3fb5977b8cd5e1cd::$fallbackDirsPsr4;
452
+ $loader->classMap = ComposerStaticInit8ce38e4100319ccd3fb5977b8cd5e1cd::$classMap;
453
 
454
  }, null, ClassLoader::class);
455
  }
vendor_prefixed/monolog/monolog/src/Monolog/Handler/RavenHandler.php CHANGED
@@ -65,7 +65,7 @@ class RavenHandler extends \FSVendor\Monolog\Handler\AbstractProcessingHandler
65
  }
66
  // the record with the highest severity is the "main" one
67
  $record = \array_reduce($records, function ($highest, $record) {
68
- if ($record['level'] > $highest['level']) {
69
  return $record;
70
  }
71
  return $highest;
65
  }
66
  // the record with the highest severity is the "main" one
67
  $record = \array_reduce($records, function ($highest, $record) {
68
+ if (null === $highest || $record['level'] > $highest['level']) {
69
  return $record;
70
  }
71
  return $highest;
vendor_prefixed/monolog/monolog/src/Monolog/Handler/StreamHandler.php CHANGED
@@ -98,7 +98,7 @@ class StreamHandler extends \FSVendor\Monolog\Handler\AbstractProcessingHandler
98
  \restore_error_handler();
99
  if (!\is_resource($this->stream)) {
100
  $this->stream = null;
101
- throw new \UnexpectedValueException(\sprintf('The stream or file "%s" could not be opened: ' . $this->errorMessage, $this->url));
102
  }
103
  }
104
  if ($this->useLocking) {
98
  \restore_error_handler();
99
  if (!\is_resource($this->stream)) {
100
  $this->stream = null;
101
+ throw new \UnexpectedValueException(\sprintf('The stream or file "%s" could not be opened in append mode: ' . $this->errorMessage, $this->url));
102
  }
103
  }
104
  if ($this->useLocking) {
vendor_prefixed/monolog/monolog/src/Monolog/Processor/WebProcessor.php CHANGED
@@ -42,6 +42,9 @@ class WebProcessor implements \FSVendor\Monolog\Processor\ProcessorInterface
42
  } else {
43
  throw new \UnexpectedValueException('$serverData must be an array or object implementing ArrayAccess.');
44
  }
 
 
 
45
  if (null !== $extraFields) {
46
  if (isset($extraFields[0])) {
47
  foreach (\array_keys($this->extraFields) as $fieldName) {
@@ -87,9 +90,6 @@ class WebProcessor implements \FSVendor\Monolog\Processor\ProcessorInterface
87
  foreach ($this->extraFields as $extraName => $serverName) {
88
  $extra[$extraName] = isset($this->serverData[$serverName]) ? $this->serverData[$serverName] : null;
89
  }
90
- if (isset($this->serverData['UNIQUE_ID'])) {
91
- $extra['unique_id'] = $this->serverData['UNIQUE_ID'];
92
- }
93
  return $extra;
94
  }
95
  }
42
  } else {
43
  throw new \UnexpectedValueException('$serverData must be an array or object implementing ArrayAccess.');
44
  }
45
+ if (isset($this->serverData['UNIQUE_ID'])) {
46
+ $this->extraFields['unique_id'] = 'UNIQUE_ID';
47
+ }
48
  if (null !== $extraFields) {
49
  if (isset($extraFields[0])) {
50
  foreach (\array_keys($this->extraFields) as $fieldName) {
90
  foreach ($this->extraFields as $extraName => $serverName) {
91
  $extra[$extraName] = isset($this->serverData[$serverName]) ? $this->serverData[$serverName] : null;
92
  }
 
 
 
93
  return $extra;
94
  }
95
  }
vendor_prefixed/wpdesk/wp-logs/src/WP/WPCapture.php CHANGED
@@ -22,7 +22,7 @@ class WPCapture
22
  // Translators: directory.
23
  \__('Can not enable WP Desk Debug log! Cannot create directory %s or this directory is not writeable!', 'wpdesk-helper'),
24
  $dir
25
- ), \FSVendor\WPDesk\Logger\WP\WPDesk\Notice\Notice::NOTICE_TYPE_ERROR);
26
  }
27
  /**
28
  * Add notice for file.
@@ -35,7 +35,7 @@ class WPCapture
35
  // Translators: directory.
36
  \__('Can not enable WP Desk Debug log! Cannot create file %s!', 'wpdesk-helper'),
37
  $file
38
- ), \FSVendor\WPDesk\Logger\WP\WPDesk\Notice\Notice::NOTICE_TYPE_ERROR);
39
  }
40
  /**
41
  * Is debug log writable.
@@ -71,6 +71,10 @@ class WPCapture
71
  \fclose($log);
72
  }
73
  }
 
 
 
 
74
  return \true;
75
  }
76
  /**
22
  // Translators: directory.
23
  \__('Can not enable WP Desk Debug log! Cannot create directory %s or this directory is not writeable!', 'wpdesk-helper'),
24
  $dir
25
+ ), \FSVendor\WPDesk\Notice\Notice::NOTICE_TYPE_ERROR);
26
  }
27
  /**
28
  * Add notice for file.
35
  // Translators: directory.
36
  \__('Can not enable WP Desk Debug log! Cannot create file %s!', 'wpdesk-helper'),
37
  $file
38
+ ), \FSVendor\WPDesk\Notice\Notice::NOTICE_TYPE_ERROR);
39
  }
40
  /**
41
  * Is debug log writable.
71
  \fclose($log);
72
  }
73
  }
74
+ if (!\is_writable($log_file)) {
75
+ $this->add_notice_for_file($log_file);
76
+ return \false;
77
+ }
78
  return \true;
79
  }
80
  /**
vendor_prefixed/wpdesk/wp-logs/src/WPDeskLoggerFactory.php CHANGED
@@ -103,7 +103,9 @@ class WPDeskLoggerFactory extends \FSVendor\WPDesk\Logger\BasicLoggerFactory
103
  private function appendMainLog($logger)
104
  {
105
  $wpCapture = $this->captureWPLog();
106
- $this->appendFileLog($logger, $wpCapture->get_log_file());
 
 
107
  }
108
  /**
109
  * @param Logger $logger
103
  private function appendMainLog($logger)
104
  {
105
  $wpCapture = $this->captureWPLog();
106
+ if (\is_writable($wpCapture->get_log_file())) {
107
+ $this->appendFileLog($logger, $wpCapture->get_log_file());
108
+ }
109
  }
110
  /**
111
  * @param Logger $logger