diff --git a/admin/admin-taxonomies.php b/admin/admin-taxonomies.php
index e4234c4fd49..104089f1420 100644
--- a/admin/admin-taxonomies.php
+++ b/admin/admin-taxonomies.php
@@ -273,7 +273,5 @@ add_action('product_shipping_class_pre_add_form', 'woocommerce_shipping_class_de
function woocommerce_shipping_class_description() {
echo wpautop(__('Shipping classes can be used to group products of similar type. These groups can then be used by certain shipping methods to provide different rates to different products.', 'woothemes'));
-
- echo wpautop(__('You can drag and drop to re-order your shipping classes - if an order contains items with multiple classes, the top most class will be used if the shipping cost is per-order.', 'woothemes'));
}
diff --git a/assets/js/woocommerce.js b/assets/js/woocommerce.js
index ddf7916aa6e..6c9d43961a4 100755
--- a/assets/js/woocommerce.js
+++ b/assets/js/woocommerce.js
@@ -177,7 +177,7 @@ jQuery(document).ready(function($) {
$('div.woocommerce_tabs ul.tabs li a').click(function(){
var $tab = $(this);
- var $tabs_wrapper = tab.closest('div.woocommerce_tabs');
+ var $tabs_wrapper = $tab.closest('div.woocommerce_tabs');
$('ul.tabs li', $tabs_wrapper).removeClass('active');
$('div.panel', $tabs_wrapper).hide();
diff --git a/assets/js/woocommerce.min.js b/assets/js/woocommerce.min.js
index 8408ee5624e..dd01648fd30 100644
--- a/assets/js/woocommerce.min.js
+++ b/assets/js/woocommerce.min.js
@@ -1 +1 @@
-jQuery(document).ready(function(e){if(woocommerce_params.option_ajax_add_to_cart=="yes"){e(".add_to_cart_button").live("click",function(){var l=e(this);if(l.is(".product_type_simple, .product_type_downloadable, .product_type_virtual")){if(!e(l).attr("data-product_id")){return true}e(l).addClass("loading");var m={action:"woocommerce_add_to_cart",product_id:e(l).attr("data-product_id"),security:woocommerce_params.add_to_cart_nonce};e("body").trigger("adding_to_cart");e.post(woocommerce_params.ajax_url,m,function(n){e(l).removeClass("loading");m=e.parseJSON(n);if(m.error){alert(m.error);return}fragments=m;if(fragments){e.each(fragments,function(o,p){e(o).addClass("updating")})}e(".widget_shopping_cart, .shop_table.cart, .updating, .cart_totals").fadeTo("400","0.6").block({message:null,overlayCSS:{background:"transparent url("+woocommerce_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:0.6}});e(l).addClass("added");if(e(".widget_shopping_cart").size()>0){e(".widget_shopping_cart:eq(0)").load(window.location+" .widget_shopping_cart:eq(0) > *",function(){if(fragments){e.each(fragments,function(o,p){e(o).replaceWith(p)})}e(".widget_shopping_cart, .updating").css("opacity","1").unblock()})}else{if(fragments){e.each(fragments,function(o,p){e(o).replaceWith(p)})}e(".widget_shopping_cart, .updating").css("opacity","1").unblock()}e(".shop_table.cart").load(window.location+" .shop_table.cart:eq(0) > *",function(){e("div.quantity:not(.buttons_added), td.quantity:not(.buttons_added)").addClass("buttons_added").append(' ').prepend(' ');e(".shop_table.cart").css("opacity","1").unblock()});e(".cart_totals").load(window.location+" .cart_totals:eq(0) > *",function(){e(".cart_totals").css("opacity","1").unblock()});e("body").trigger("added_to_cart")});return false}else{return true}})}e("select.orderby").change(function(){e(this).closest("form").submit()});e("#rating").hide().before('
1 2 3 4 5
');e("p.stars a").click(function(){var l=e(this);e("#rating").val(l.text());e("p.stars a").removeClass("active");l.addClass("active");return false});e("div.quantity:not(.buttons_added), td.quantity:not(.buttons_added)").addClass("buttons_added").append(' ').prepend(' ');e(".plus").live("click",function(){var l=parseInt(e(this).prev(".qty").val());if(!l||l==""||l=="NaN"){l=0}e(this).prev(".qty").val(l+1)});e(".minus").live("click",function(){var l=parseInt(e(this).next(".qty").val());if(!l||l==""||l=="NaN"){l=1}if(l>0){e(this).next(".qty").val(l-1)}});var b=woocommerce_params.countries.replace(/"/g,'"');var i=e.parseJSON(b);e("select.country_to_state").change(function(){var r=e(this).val();var o=e("#"+e(this).attr("rel"));var s=e(o).attr("name");var n=e(o).attr("id");var q=e(o).val();if(i[r]){var m="";var p=i[r];for(var l in p){m=m+''+p[l]+" "}if(e(o).is("input")){e(o).replaceWith(' ');o=e("#"+e(this).attr("rel"))}e(o).html(''+woocommerce_params.select_state_text+" "+m);e(o).val(q)}else{if(e(o).is("select")){e(o).replaceWith(' ')}}}).change();e("div.woocommerce_tabs .panel").hide();e("div.woocommerce_tabs ul.tabs li a").click(function(){var m=e(this);var l=tab.closest("div.woocommerce_tabs");e("ul.tabs li",l).removeClass("active");e("div.panel",l).hide();e("div"+m.attr("href")).show();m.parent().addClass("active");return false});e("div.woocommerce_tabs").each(function(){var l=window.location.hash;if(l.toLowerCase().indexOf("comment-")>=0){e("ul.tabs li.reviews_tab a",e(this)).click()}else{e("ul.tabs li:first a",e(this)).click()}});e(".shipping-calculator-form").hide();e(".shipping-calculator-button").click(function(){e(".shipping-calculator-form").slideToggle("slow");return false});function a(p,o){var l=true;for(name in p){var n=p[name];var m=o[name];if(n.length!=0&&m.length!=0&&n!=m){l=false}}return l}function k(n){var p=[];for(var m=0;m").html(n).text();n=n.replace(/'/g,"\\'");n=n.replace(/"/g,'\\"');current_attr_select.find('option[value="'+n+'"]').removeAttr("disabled")}else{current_attr_select.find("option").removeAttr("disabled")}}}}})}function f(n){var l=e("div.images img:eq(0)");var r=e("div.images a.zoom:eq(0)");var q=e(l).attr("original-src");var p=e(r).attr("original-href");var o=n.image_src;var m=n.image_link;e(".variations_button").show();e(".single_variation").html(n.price_html+n.availability_html);if(!q){e(l).attr("original-src",e(l).attr("src"))}if(!p){e(r).attr("original-href",e(r).attr("href"))}if(o&&o.length>1){e(l).attr("src",o);e(r).attr("href",m)}else{e(l).attr("src",q);e(r).attr("href",p)}e(".single_variation_wrap").slideDown("200").trigger("variationWrapShown")}function c(m){var l=true;var o={};e(".variations select").each(function(){if(m&&e(this).attr("name")==m){l=false;o[e(this).attr("name")]=""}else{if(e(this).val().length==0){l=false}value=e(this).val().replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">");o[e(this).attr("name")]=value}});var p=k(o);if(l){var n=p.pop();if(n){e("form input[name=variation_id]").val(n.variation_id);f(n)}else{e(".variations select").val("")}}else{g(p)}}e(".variations select").change(function(){e("form input[name=variation_id]").val("");e(".single_variation_wrap").hide();e(".single_variation").text("");c();e(this).blur();if(e().uniform&&e.isFunction(e.uniform.update)){e.uniform.update()}}).focus(function(){c(e(this).attr("name"))}).change();if(woocommerce_params.is_cart==1){e("select#shipping_method").live("change",function(){var m=e("#shipping_method").val();e("div.cart_totals").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:0.6}});var l={action:"woocommerce_update_shipping_method",security:woocommerce_params.update_shipping_method_nonce,shipping_method:m};e.post(woocommerce_params.ajax_url,l,function(n){e("div.cart_totals").replaceWith(n)})})}if(woocommerce_params.is_checkout==1||woocommerce_params.is_pay_page==1){var j;var h;function d(){if(h){h.abort()}var s=e("#shipping_method").val();var r=e("#billing_country").val();var p=e("#billing_state").val();var l=e("input#billing_postcode").val();if(e("#shiptobilling input").is(":checked")||e("#shiptobilling input").size()==0){var m=e("#billing_country").val();var o=e("#billing_state").val();var q=e("input#billing_postcode").val()}else{var m=e("#shipping_country").val();var o=e("#shipping_state").val();var q=e("input#shipping_postcode").val()}e("#order_methods, #order_review").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:0.6}});var n={action:"woocommerce_update_order_review",security:woocommerce_params.update_order_review_nonce,shipping_method:s,country:r,state:p,postcode:l,s_country:m,s_state:o,s_postcode:q,post_data:e("form.checkout").serialize()};h=e.ajax({type:"POST",url:woocommerce_params.ajax_url,data:n,success:function(t){e("#order_methods, #order_review").remove();e("#order_review_heading").after(t);e("#order_review input[name=payment_method]:checked").click()}})}e("p.password, form.login, div.shipping_address").hide();e("input.show_password").change(function(){e("p.password").slideToggle()});e("a.showlogin").click(function(){e("form.login").slideToggle();return false});e("#shiptobilling input").change(function(){e("div.shipping_address").hide();if(!e(this).is(":checked")){e("div.shipping_address").slideDown()}}).change();if(woocommerce_params.option_guest_checkout=="yes"){e("div.create-account").hide();e("input#createaccount").change(function(){e("div.create-account").hide();if(e(this).is(":checked")){e("div.create-account").slideDown()}}).change()}e(".payment_methods input.input-radio").live("click",function(){e("div.payment_box").hide();if(e(this).is(":checked")){e("div.payment_box."+e(this).attr("ID")).slideDown()}});e("#order_review input[name=payment_method]:checked").click();e("#shipping_method").live("change",function(){clearTimeout(j);d()});e("input#billing_country, input#billing_state, #billing_postcode, input#shipping_country, input#shipping_state, #shipping_postcode").live("keydown",function(){clearTimeout(j);j=setTimeout("update_checkout()","1000")});e("select#billing_country, select#billing_state, select#shipping_country, select#shipping_state, #shiptobilling input, .update_totals_on_change").live("change",function(){clearTimeout(j);d()});if(woocommerce_params.is_checkout==1){d()}e("form.checkout").submit(function(){var l=e(this);if(l.is(".processing")){return false}l.addClass("processing").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:0.6}});e.ajax({type:"POST",url:woocommerce_params.checkout_url,data:l.serialize(),success:function(n){e(".woocommerce_error, .woocommerce_message").remove();try{success=e.parseJSON(n);window.location=decodeURI(success.redirect)}catch(m){l.prepend(n);l.removeClass("processing").unblock();e("html, body").animate({scrollTop:(e("form.checkout").offset().top-100)},1000)}},dataType:"html"});return false})}});
\ No newline at end of file
+jQuery(document).ready(function(e){if(woocommerce_params.option_ajax_add_to_cart=="yes"){e(".add_to_cart_button").live("click",function(){var l=e(this);if(l.is(".product_type_simple, .product_type_downloadable, .product_type_virtual")){if(!e(l).attr("data-product_id")){return true}e(l).addClass("loading");var m={action:"woocommerce_add_to_cart",product_id:e(l).attr("data-product_id"),security:woocommerce_params.add_to_cart_nonce};e("body").trigger("adding_to_cart");e.post(woocommerce_params.ajax_url,m,function(n){e(l).removeClass("loading");m=e.parseJSON(n);if(m.error){alert(m.error);return}fragments=m;if(fragments){e.each(fragments,function(o,p){e(o).addClass("updating")})}e(".widget_shopping_cart, .shop_table.cart, .updating, .cart_totals").fadeTo("400","0.6").block({message:null,overlayCSS:{background:"transparent url("+woocommerce_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:0.6}});e(l).addClass("added");if(e(".widget_shopping_cart").size()>0){e(".widget_shopping_cart:eq(0)").load(window.location+" .widget_shopping_cart:eq(0) > *",function(){if(fragments){e.each(fragments,function(o,p){e(o).replaceWith(p)})}e(".widget_shopping_cart, .updating").css("opacity","1").unblock()})}else{if(fragments){e.each(fragments,function(o,p){e(o).replaceWith(p)})}e(".widget_shopping_cart, .updating").css("opacity","1").unblock()}e(".shop_table.cart").load(window.location+" .shop_table.cart:eq(0) > *",function(){e("div.quantity:not(.buttons_added), td.quantity:not(.buttons_added)").addClass("buttons_added").append(' ').prepend(' ');e(".shop_table.cart").css("opacity","1").unblock()});e(".cart_totals").load(window.location+" .cart_totals:eq(0) > *",function(){e(".cart_totals").css("opacity","1").unblock()});e("body").trigger("added_to_cart")});return false}else{return true}})}e("select.orderby").change(function(){e(this).closest("form").submit()});e("#rating").hide().before('1 2 3 4 5
');e("p.stars a").click(function(){var l=e(this);e("#rating").val(l.text());e("p.stars a").removeClass("active");l.addClass("active");return false});e("div.quantity:not(.buttons_added), td.quantity:not(.buttons_added)").addClass("buttons_added").append(' ').prepend(' ');e(".plus").live("click",function(){var l=parseInt(e(this).prev(".qty").val());if(!l||l==""||l=="NaN"){l=0}e(this).prev(".qty").val(l+1)});e(".minus").live("click",function(){var l=parseInt(e(this).next(".qty").val());if(!l||l==""||l=="NaN"){l=1}if(l>0){e(this).next(".qty").val(l-1)}});var b=woocommerce_params.countries.replace(/"/g,'"');var i=e.parseJSON(b);e("select.country_to_state").change(function(){var r=e(this).val();var o=e("#"+e(this).attr("rel"));var s=e(o).attr("name");var n=e(o).attr("id");var q=e(o).val();if(i[r]){var m="";var p=i[r];for(var l in p){m=m+''+p[l]+" "}if(e(o).is("input")){e(o).replaceWith(' ');o=e("#"+e(this).attr("rel"))}e(o).html(''+woocommerce_params.select_state_text+" "+m);e(o).val(q)}else{if(e(o).is("select")){e(o).replaceWith(' ')}}}).change();e("div.woocommerce_tabs .panel").hide();e("div.woocommerce_tabs ul.tabs li a").click(function(){var m=e(this);var l=m.closest("div.woocommerce_tabs");e("ul.tabs li",l).removeClass("active");e("div.panel",l).hide();e("div"+m.attr("href")).show();m.parent().addClass("active");return false});e("div.woocommerce_tabs").each(function(){var l=window.location.hash;if(l.toLowerCase().indexOf("comment-")>=0){e("ul.tabs li.reviews_tab a",e(this)).click()}else{e("ul.tabs li:first a",e(this)).click()}});e(".shipping-calculator-form").hide();e(".shipping-calculator-button").click(function(){e(".shipping-calculator-form").slideToggle("slow");return false});function a(p,o){var l=true;for(name in p){var n=p[name];var m=o[name];if(n.length!=0&&m.length!=0&&n!=m){l=false}}return l}function k(n){var p=[];for(var m=0;m").html(n).text();n=n.replace(/'/g,"\\'");n=n.replace(/"/g,'\\"');current_attr_select.find('option[value="'+n+'"]').removeAttr("disabled")}else{current_attr_select.find("option").removeAttr("disabled")}}}}})}function f(n){var l=e("div.images img:eq(0)");var r=e("div.images a.zoom:eq(0)");var q=e(l).attr("original-src");var p=e(r).attr("original-href");var o=n.image_src;var m=n.image_link;e(".variations_button").show();e(".single_variation").html(n.price_html+n.availability_html);if(!q){e(l).attr("original-src",e(l).attr("src"))}if(!p){e(r).attr("original-href",e(r).attr("href"))}if(o&&o.length>1){e(l).attr("src",o);e(r).attr("href",m)}else{e(l).attr("src",q);e(r).attr("href",p)}e(".single_variation_wrap").slideDown("200").trigger("variationWrapShown")}function c(m){var l=true;var o={};e(".variations select").each(function(){if(m&&e(this).attr("name")==m){l=false;o[e(this).attr("name")]=""}else{if(e(this).val().length==0){l=false}value=e(this).val().replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">");o[e(this).attr("name")]=value}});var p=k(o);if(l){var n=p.pop();if(n){e("form input[name=variation_id]").val(n.variation_id);f(n)}else{e(".variations select").val("")}}else{g(p)}}e(".variations select").change(function(){e("form input[name=variation_id]").val("");e(".single_variation_wrap").hide();e(".single_variation").text("");c();e(this).blur();if(e().uniform&&e.isFunction(e.uniform.update)){e.uniform.update()}}).focus(function(){c(e(this).attr("name"))}).change();if(woocommerce_params.is_cart==1){e("select#shipping_method").live("change",function(){var m=e("#shipping_method").val();e("div.cart_totals").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:0.6}});var l={action:"woocommerce_update_shipping_method",security:woocommerce_params.update_shipping_method_nonce,shipping_method:m};e.post(woocommerce_params.ajax_url,l,function(n){e("div.cart_totals").replaceWith(n)})})}if(woocommerce_params.is_checkout==1||woocommerce_params.is_pay_page==1){var j;var h;function d(){if(h){h.abort()}var s=e("#shipping_method").val();var r=e("#billing_country").val();var p=e("#billing_state").val();var l=e("input#billing_postcode").val();if(e("#shiptobilling input").is(":checked")||e("#shiptobilling input").size()==0){var m=e("#billing_country").val();var o=e("#billing_state").val();var q=e("input#billing_postcode").val()}else{var m=e("#shipping_country").val();var o=e("#shipping_state").val();var q=e("input#shipping_postcode").val()}e("#order_methods, #order_review").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:0.6}});var n={action:"woocommerce_update_order_review",security:woocommerce_params.update_order_review_nonce,shipping_method:s,country:r,state:p,postcode:l,s_country:m,s_state:o,s_postcode:q,post_data:e("form.checkout").serialize()};h=e.ajax({type:"POST",url:woocommerce_params.ajax_url,data:n,success:function(t){e("#order_methods, #order_review").remove();e("#order_review_heading").after(t);e("#order_review input[name=payment_method]:checked").click()}})}e("p.password, form.login, div.shipping_address").hide();e("input.show_password").change(function(){e("p.password").slideToggle()});e("a.showlogin").click(function(){e("form.login").slideToggle();return false});e("#shiptobilling input").change(function(){e("div.shipping_address").hide();if(!e(this).is(":checked")){e("div.shipping_address").slideDown()}}).change();if(woocommerce_params.option_guest_checkout=="yes"){e("div.create-account").hide();e("input#createaccount").change(function(){e("div.create-account").hide();if(e(this).is(":checked")){e("div.create-account").slideDown()}}).change()}e(".payment_methods input.input-radio").live("click",function(){e("div.payment_box").hide();if(e(this).is(":checked")){e("div.payment_box."+e(this).attr("ID")).slideDown()}});e("#order_review input[name=payment_method]:checked").click();e("#shipping_method").live("change",function(){clearTimeout(j);d()});e("input#billing_country, input#billing_state, #billing_postcode, input#shipping_country, input#shipping_state, #shipping_postcode").live("keydown",function(){clearTimeout(j);j=setTimeout("update_checkout()","1000")});e("select#billing_country, select#billing_state, select#shipping_country, select#shipping_state, #shiptobilling input, .update_totals_on_change").live("change",function(){clearTimeout(j);d()});if(woocommerce_params.is_checkout==1){d()}e("form.checkout").submit(function(){var l=e(this);if(l.is(".processing")){return false}l.addClass("processing").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:0.6}});e.ajax({type:"POST",url:woocommerce_params.checkout_url,data:l.serialize(),success:function(n){e(".woocommerce_error, .woocommerce_message").remove();try{success=e.parseJSON(n);window.location=decodeURI(success.redirect)}catch(m){l.prepend(n);l.removeClass("processing").unblock();e("html, body").animate({scrollTop:(e("form.checkout").offset().top-100)},1000)}},dataType:"html"});return false})}});
\ No newline at end of file
diff --git a/classes/product.class.php b/classes/product.class.php
index 1c681d8495e..70c1546c11d 100644
--- a/classes/product.class.php
+++ b/classes/product.class.php
@@ -43,6 +43,7 @@ class woocommerce_product {
var $min_variation_price;
var $max_variation_price;
var $featured;
+ var $shipping_class;
/**
* Loads all product data from custom fields
@@ -687,6 +688,15 @@ class woocommerce_product {
return get_the_term_list($this->id, 'product_tag', $before, $sep, $after);
}
+ /** Returns the product shipping class */
+ function get_shipping_class() {
+ if (!$this->shipping_class) :
+ $classes = get_the_terms( $this->id, 'product_shipping_class' );
+ $this->shipping_class = (isset($classes[0])) ? $classes[0]->slug : '';
+ endif;
+ return $this->shipping_class;
+ }
+
/** Get and return related products */
function get_related( $limit = 5 ) {
global $woocommerce;
diff --git a/classes/shipping/shipping-flat_rate.php b/classes/shipping/shipping-flat_rate.php
index ae17b9c5f7a..5ba0a38d951 100644
--- a/classes/shipping/shipping-flat_rate.php
+++ b/classes/shipping/shipping-flat_rate.php
@@ -122,19 +122,59 @@ class flat_rate extends woocommerce_shipping_method {
$this->shipping_tax = 0;
if ($this->type=='order') :
+
+ $cost = null;
+ $fee = null;
+
+ if (sizeof($this->flat_rates)>0) :
+
+ $found_shipping_classes = array();
+
+ // Find shipping class
+ if (sizeof($woocommerce->cart->get_cart())>0) : foreach ($woocommerce->cart->get_cart() as $item_id => $values) : $found_shipping_classes[] = $values['data']->get_shipping_class(); endforeach; endif;
+
+ $found_shipping_classes = array_unique($found_shipping_classes);
+
+ // Find most expensive class (if found)
+ foreach ($found_shipping_classes as $shipping_class) :
+ if (isset($this->flat_rates[$shipping_class])) :
+ if ($this->flat_rates[$shipping_class]['cost'] > $cost) :
+ $cost = $this->flat_rates[$shipping_class]['cost'];
+ $fee = $this->flat_rates[$shipping_class]['fee'];
+ endif;
+ else :
+ // No matching classes so use defaults
+ if ($this->cost > $cost) :
+ $cost = $this->cost;
+ $fee = $this->fee;
+ endif;
+ endif;
+ endforeach;
+
+ endif;
+
+ // Default rates
+ if (is_null($cost)) :
+ $cost = $this->cost;
+ $fee = $this->fee;
+ endif;
+
// Shipping for whole order
- $this->shipping_total = $this->cost + $this->get_fee( $this->fee, $woocommerce->cart->cart_contents_total );
+ $this->shipping_total = $cost + $this->get_fee( $fee, $woocommerce->cart->cart_contents_total );
if ( get_option('woocommerce_calc_taxes')=='yes' && $this->tax_status=='taxable' ) :
-
$rate = $_tax->get_shipping_tax_rate();
if ($rate>0) :
$tax_amount = $_tax->calc_shipping_tax( $this->shipping_total, $rate );
-
$this->shipping_tax = $this->shipping_tax + $tax_amount;
endif;
endif;
- else :
+
+ elseif ($this->type=='class') :
+ // Shipping per class
+ $cost = 0;
+
+ elseif ($this->type=='item') :
// Shipping per item
if (sizeof($woocommerce->cart->get_cart())>0) : foreach ($woocommerce->cart->get_cart() as $item_id => $values) :
$_product = $values['data'];