From fa84b874251213f6dd90e7545ce9bd58826ee05e Mon Sep 17 00:00:00 2001 From: Mike Jolley Date: Sun, 4 Mar 2012 12:37:41 +0000 Subject: [PATCH 1/2] Persistent cart --- classes/class-wc-cart.php | 37 ++++++++++++++++++++++++++++++---- classes/class-wc-customer.php | 3 +-- readme.txt | 1 + woocommerce-core-functions.php | 19 ++++++++++++++++- woocommerce-functions.php | 1 - woocommerce-hooks.php | 1 + 6 files changed, 54 insertions(+), 8 deletions(-) diff --git a/classes/class-wc-cart.php b/classes/class-wc-cart.php index 6bf1c4e0d7a..e3fec49fd3e 100644 --- a/classes/class-wc-cart.php +++ b/classes/class-wc-cart.php @@ -45,8 +45,7 @@ class WC_Cart { $this->display_totals_ex_tax = (get_option('woocommerce_display_totals_excluding_tax')=='yes') ? true : false; $this->display_cart_ex_tax = (get_option('woocommerce_display_cart_prices_excluding_tax')=='yes') ? true : false; - add_action('init', array(&$this, 'init'), 1); // Get cart on init - //add_action('wp', array(&$this, 'calculate_totals'), 1); // Defer calculate totals so we can detect page + add_action('init', array(&$this, 'init'), 5); // Get cart on init } /** @@ -159,17 +158,47 @@ class WC_Cart { $_SESSION['shipping_total'] = $this->shipping_total; $_SESSION['shipping_tax_total'] = $this->shipping_tax_total; $_SESSION['shipping_label'] = $this->shipping_label; + + if (get_current_user_id()) $this->persistent_cart_update(); + + do_action('woocommerce_cart_updated'); } /** * Empty the cart data and destroy the session */ - function empty_cart() { + function empty_cart( $clear_persistent_cart = true ) { + $this->cart_contents = array(); $this->reset(); + unset( $_SESSION['cart_contents_total'], $_SESSION['cart_contents_weight'], $_SESSION['cart_contents_count'], $_SESSION['cart_contents_tax'], $_SESSION['total'], $_SESSION['subtotal'], $_SESSION['subtotal_ex_tax'], $_SESSION['tax_total'], $_SESSION['taxes'], $_SESSION['shipping_taxes'], $_SESSION['discount_cart'], $_SESSION['discount_total'], $_SESSION['shipping_total'], $_SESSION['shipping_tax_total'], $_SESSION['shipping_label'], $_SESSION['coupons'], $_SESSION['cart'] ); + + if ($clear_persistent_cart && get_current_user_id()) $this->persistent_cart_destroy(); + + do_action('woocommerce_cart_emptied'); } + /*-----------------------------------------------------------------------------------*/ + /* Persistent cart handling */ + /*-----------------------------------------------------------------------------------*/ + + /** + * Save the persistent cart when updated + */ + function persistent_cart_update() { + update_user_meta( get_current_user_id(), '_woocommerce_persistent_cart', array( + 'cart' => $_SESSION['cart'], + )); + } + + /** + * Delete the persistent cart + */ + function persistent_cart_destroy() { + delete_user_meta( get_current_user_id(), '_woocommerce_persistent_cart' ); + } + /*-----------------------------------------------------------------------------------*/ /* Cart Data Functions */ /*-----------------------------------------------------------------------------------*/ @@ -351,7 +380,7 @@ class WC_Cart { return $merged_taxes; } - + /*-----------------------------------------------------------------------------------*/ /* Add to cart handling */ /*-----------------------------------------------------------------------------------*/ diff --git a/classes/class-wc-customer.php b/classes/class-wc-customer.php index 1d2f885b3bd..3643f5c577c 100644 --- a/classes/class-wc-customer.php +++ b/classes/class-wc-customer.php @@ -241,8 +241,7 @@ class WC_Customer { endif; return apply_filters('woocommerce_customer_get_downloadable_products', $downloads); - - } + } } /** Depreciated */ diff --git a/readme.txt b/readme.txt index 406cb38fbd7..5b32f8c097e 100644 --- a/readme.txt +++ b/readme.txt @@ -144,6 +144,7 @@ Yes you can! Join in on our [GitHub repository](http://github.com/woothemes/wooc == Changelog == = 1.5.1 = +* Persistent (logged-in) customer carts (thanks dominic-p) * Error suppression on set_time_out * Order-details removed shipping when disabled * Updated Turkish translation diff --git a/woocommerce-core-functions.php b/woocommerce-core-functions.php index a5c0694c836..9be91661a3b 100644 --- a/woocommerce-core-functions.php +++ b/woocommerce-core-functions.php @@ -54,7 +54,24 @@ if (!function_exists('woocommerce_empty_cart')) { if (!isset($woocommerce->cart) || $woocommerce->cart == '' ) $woocommerce->cart = new WC_Cart(); - $woocommerce->cart->empty_cart(); + $woocommerce->cart->empty_cart( false ); + } +} + +/** + * Load the cart upon login + **/ +function woocommerce_load_persistent_cart( $user_login, $user ) { + global $woocommerce; + + $saved_cart = get_user_meta( $user->ID, '_woocommerce_persistent_cart', true ); + + if ($saved_cart) { + if (!isset($_SESSION['cart']) || !is_array($_SESSION['cart']) || sizeof($_SESSION['cart'])==0) { + + $_SESSION['cart'] = $saved_cart['cart']; + + } } } diff --git a/woocommerce-functions.php b/woocommerce-functions.php index be20a1227fd..2cb82d08d90 100644 --- a/woocommerce-functions.php +++ b/woocommerce-functions.php @@ -462,7 +462,6 @@ function woocommerce_clear_cart_after_payment() { endif; } - /** * Process the checkout form **/ diff --git a/woocommerce-hooks.php b/woocommerce-hooks.php index 1527a3732b6..8217cfd81f3 100644 --- a/woocommerce-hooks.php +++ b/woocommerce-hooks.php @@ -119,6 +119,7 @@ add_action( 'init', 'woocommerce_update_catalog_ordering' ); /* Cart Actions */ add_action( 'init', 'woocommerce_update_cart_action' ); add_action( 'init', 'woocommerce_add_to_cart_action' ); +add_action( 'wp_login', 'woocommerce_load_persistent_cart', 1, 2); /* Checkout Actions */ add_action( 'init', 'woocommerce_checkout_action' ); From 75eb12db3f941c0d592cd08f18d45b12997ff491 Mon Sep 17 00:00:00 2001 From: Mike Jolley Date: Sun, 4 Mar 2012 12:42:24 +0000 Subject: [PATCH 2/2] Fix attribute styling --- assets/js/admin/write-panels.js | 2 +- assets/js/admin/write-panels.min.js | 2 +- readme.txt | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/assets/js/admin/write-panels.js b/assets/js/admin/write-panels.js index f62a7b497ca..c39a883804c 100644 --- a/assets/js/admin/write-panels.js +++ b/assets/js/admin/write-panels.js @@ -573,7 +573,7 @@ jQuery( function($){ if (product_type!='variable') enable_variation = 'style="display:none;"'; else enable_variation = ''; // Add custom attribute row - $('.woocommerce_attributes').append('
\ + $('.woocommerce_attributes').append('
\

\ \
\ diff --git a/assets/js/admin/write-panels.min.js b/assets/js/admin/write-panels.min.js index a8dadac6bda..4d690f1e5a6 100644 --- a/assets/js/admin/write-panels.min.js +++ b/assets/js/admin/write-panels.min.js @@ -1 +1 @@ -jQuery(function(a){function e(){a(".woocommerce_attributes .woocommerce_attribute").each(function(b,c){a(".attribute_position",c).val(parseInt(a(c).index(".woocommerce_attributes .woocommerce_attribute")))})}a("#upsell_product_data").bind("keypress",function(a){if(a.keyCode==13)return!1});a("ul.tabs").show();a("div.panel-wrap").each(function(){a("div.panel:not(div.panel:first)",this).hide()});a("ul.tabs a").click(function(){var b=a(this).closest("div.panel-wrap");a("ul.tabs li",b).removeClass("active");a(this).parent().addClass("active");a("div.panel",b).hide();a(a(this).attr("href")).show();return!1});jQuery("#woocommerce-order-actions input, #woocommerce-order-actions a").click(function(){window.onbeforeunload=""});a("a.edit_address").click(function(b){a(this).hide();a(this).closest(".order_data").find("div.address").hide();a(this).closest(".order_data").find("div.edit_address").show();b.preventDefault()});jQuery("select.chosen_select").chosen();jQuery("select.chosen_select_nostd").chosen({allow_single_deselect:"true"});a("#order_items_list .remove_row").live("click",function(){var b=confirm(woocommerce_writepanel_params.remove_item_notice);if(b){a(this).closest("tr.item").hide();a("input",a(this).closest("tr.item")).val("")}return!1});a("button.calc_line_taxes").live("click",function(){a(".woocommerce_order_items_wrapper").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_writepanel_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:.6}});var b=confirm(woocommerce_writepanel_params.calc_line_taxes);if(b){var c=a("#order_items_list tr.item"),d=a("#_shipping_country").val();if(d)var e=a("#_shipping_state").val(),f=a("#_shipping_postcode").val();else{d=a("#_billing_country").val();var e=a("#_billing_state").val(),f=a("#_billing_postcode").val()}c.each(function(b){var g=a(this),h={action:"woocommerce_calc_line_taxes",item_id:g.find("input.item_id").val(),line_subtotal:g.find("input.line_subtotal").val(),line_total:g.find("input.line_total").val(),tax_class:g.find("select.tax_class").val(),country:d,state:e,postcode:f,security:woocommerce_writepanel_params.calc_totals_nonce};a.post(woocommerce_writepanel_params.ajax_url,h,function(d){result=jQuery.parseJSON(d);g.find("input.line_subtotal_tax").val(result.line_subtotal_tax);g.find("input.line_tax").val(result.line_tax);b==c.size()-1&&a(".woocommerce_order_items_wrapper").unblock()})})}else a(".woocommerce_order_items_wrapper").unblock();return!1}).hover(function(){a("#order_items_list input.line_subtotal_tax, #order_items_list input.line_tax").css("background-color","#d8c8d2")},function(){a("#order_items_list input.line_subtotal_tax, #order_items_list input.line_tax").css("background-color","")});a("button.calc_totals").live("click",function(){a("#woocommerce-order-totals").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_writepanel_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:.6}});var b=confirm(woocommerce_writepanel_params.calc_totals);if(b){var c=0,d=0,e=0,f=0,g=0,h=parseFloat(a("#_order_shipping").val()),i=parseFloat(a("#_order_shipping_tax").val()),j=parseFloat(a("#_order_discount").val());h||(h=0);i||(i=0);j||(j=0);a("#order_items_list tr.item").each(function(){var b=parseFloat(a(this).find("input.line_subtotal").val()),f=parseFloat(a(this).find("input.line_subtotal_tax").val()),h=parseFloat(a(this).find("input.line_total").val()),i=parseFloat(a(this).find("input.line_tax").val());c=parseFloat(c+b);d=parseFloat(d+f);e=parseFloat(e+h);woocommerce_writepanel_params.round_at_subtotal=="no"&&(i=parseFloat(i.toFixed(2)));g=parseFloat(g+i)});woocommerce_writepanel_params.round_at_subtotal=="yes"&&(g=parseFloat(g.toFixed(2)));var f=c+d-(e+g);f<0&&(f=0);f=f.toFixed(2);var k=e+g+h+i-j;k=k.toFixed(2);a("#_cart_discount").val(f);a("#_order_tax").val(g);a("#_order_total").val(k);a("#tax_rows").empty();a("#woocommerce-order-totals").unblock()}else a("#woocommerce-order-totals").unblock();return!1}).hover(function(){a("#woocommerce-order-totals .calculated").css("background-color","#d8c8d2")},function(){a("#woocommerce-order-totals .calculated").css("background-color","")});a("button.add_shop_order_item").click(function(){var b=a("select.add_item_id").val();if(b){a("table.woocommerce_order_items").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_writepanel_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:.6}});var c=a("table.woocommerce_order_items tbody tr.item").size(),d={action:"woocommerce_add_order_item",item_to_add:a("select.add_item_id").val(),index:c,security:woocommerce_writepanel_params.add_order_item_nonce};a.post(woocommerce_writepanel_params.ajax_url,d,function(b){a("table.woocommerce_order_items tbody#order_items_list").append(b);a("table.woocommerce_order_items").unblock();a("select.add_item_id").css("border-color","").val("");jQuery(".tips").tipTip({attribute:"tip",fadeIn:50,fadeOut:50})})}else a("select.add_item_id").css("border-color","red")});a("button.add_meta").live("click",function(){var b=a(this).closest("tr.item").attr("rel");a(this).closest("table.meta").find(".meta_items").append('');return!1});a("button.remove_meta").live("click",function(){var b=confirm("Remove this meta key?");b&&a(this).closest("tr").remove();return!1});a("button.load_customer_billing").live("click",function(){var b=confirm(woocommerce_writepanel_params.load_billing);if(b){var c=a("#customer_user").val();if(!c){alert(woocommerce_writepanel_params.no_customer_selected);return!1}var d={user_id:c,type_to_load:"billing",action:"woocommerce_get_customer_details",security:woocommerce_writepanel_params.get_customer_details_nonce};a(this).closest(".edit_address").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_writepanel_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:.6}});a.ajax({url:woocommerce_writepanel_params.ajax_url,data:d,type:"POST",success:function(b){var c=jQuery.parseJSON(b);if(c){a("input#_billing_first_name").val(c.billing_first_name);a("input#_billing_last_name").val(c.billing_last_name);a("input#_billing_company").val(c.billing_company);a("input#_billing_address_1").val(c.billing_address_1);a("input#_billing_address_2").val(c.billing_address_2);a("input#_billing_city").val(c.billing_city);a("input#_billing_postcode").val(c.billing_postcode);a("input#_billing_country").val(c.billing_country);a("input#_billing_state").val(c.billing_state);a("input#_billing_email").val(c.billing_email);a("input#_billing_phone").val(c.billing_phone)}a(".edit_address").unblock()}})}return!1});a("button.load_customer_shipping").live("click",function(){var b=confirm(woocommerce_writepanel_params.load_shipping);if(b){var c=a("#customer_user").val();if(!c){alert(woocommerce_writepanel_params.no_customer_selected);return!1}var d={user_id:c,type_to_load:"shipping",action:"woocommerce_get_customer_details",security:woocommerce_writepanel_params.get_customer_details_nonce};a(this).closest(".edit_address").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_writepanel_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:.6}});a.ajax({url:woocommerce_writepanel_params.ajax_url,data:d,type:"POST",success:function(b){var c=jQuery.parseJSON(b);if(c){a("input#_shipping_first_name").val(c.shipping_first_name);a("input#_shipping_last_name").val(c.shipping_last_name);a("input#_shipping_company").val(c.shipping_company);a("input#_shipping_address_1").val(c.shipping_address_1);a("input#_shipping_address_2").val(c.shipping_address_2);a("input#_shipping_city").val(c.shipping_city);a("input#_shipping_postcode").val(c.shipping_postcode);a("input#_shipping_country").val(c.shipping_country);a("input#_shipping_state").val(c.shipping_state)}a(".edit_address").unblock()}})}return!1});a("button.billing-same-as-shipping").live("click",function(){var b=confirm(woocommerce_writepanel_params.copy_billing);if(b){a("input#_shipping_first_name").val(a("input#_billing_first_name").val());a("input#_shipping_last_name").val(a("input#_billing_last_name").val());a("input#_shipping_company").val(a("input#_billing_company").val());a("input#_shipping_address_1").val(a("input#_billing_address_1").val());a("input#_shipping_address_2").val(a("input#_billing_address_2").val());a("input#_shipping_city").val(a("input#_billing_city").val());a("input#_shipping_postcode").val(a("input#_billing_postcode").val());a("input#_shipping_country").val(a("input#_billing_country").val());a("input#_shipping_state").val(a("input#_billing_state").val())}return!1});a("a.add_tax_row").live("click",function(){var b=a("#tax_rows .tax_row").size();a("#tax_rows").append('
\t\t\t

\t\t\t\t\t\t\t\t\t\t\t

\t\t\t

\t\t\t\t\t\t\t

\t\t\t

\t\t\t\t\t\t\t\t\t\t\t

\t\t\t

\t\t\t\t\t\t\t\t\t\t\t

\t\t\t×\t\t\t
\t\t
');return!1});a("a.delete_tax_row").live("click",function(){$tax_row=a(this).closest(".tax_row");$tax_row.find("input").val("");$tax_row.hide();return!1});a("select#product-type").change(function(){var b=a(this).val();a(".hide_if_grouped").show();a(".show_if_simple, .show_if_variable, .show_if_grouped, .show_if_external").hide();if(b=="simple"){a(".show_if_simple").show();a("input#_manage_stock").change()}else if(b=="variable"){a(".show_if_variable").show();a("input#_manage_stock").change();a("input#_downloadable").prop("checked",!1).change();a("input#_virtual").removeAttr("checked").change()}else if(b=="grouped"){a(".show_if_grouped").show();a("input#_downloadable").prop("checked",!1).change();a("input#_virtual").removeAttr("checked").change();a(".hide_if_grouped").hide()}else if(b=="external"){a(".show_if_external").show();a("input#_downloadable").prop("checked",!1).change();a("input#_virtual").removeAttr("checked").change()}a("ul.tabs li:visible").eq(0).find("a").click();a("body").trigger("woocommerce-product-type-change",b,a(this))}).change();a("input#_downloadable").change(function(){a(".show_if_downloadable").hide();a("input#_downloadable").is(":checked")&&a(".show_if_downloadable").show();a(".downloads_tab").is(".active")&&a("ul.tabs li:visible").eq(0).find("a").click()}).change();a("input#_virtual").change(function(){a(".show_if_virtual").hide();a(".hide_if_virtual").show();if(a("input#_virtual").is(":checked")){a(".show_if_virtual").show();a(".hide_if_virtual").hide()}}).change();var b=!1;a(".sale_price_dates_fields input").each(function(){a(this).val()!=""&&(b=!0)});if(b){a(".sale_schedule").hide();a(".sale_price_dates_fields").show()}else{a(".sale_schedule").show();a(".sale_price_dates_fields").hide()}a(".sale_schedule").click(function(){a(this).hide();a(".sale_price_dates_fields").show();return!1});a(".cancel_sale_schedule").click(function(){a(this).closest("p").find("input").val("");a(".sale_schedule").show();a(".sale_price_dates_fields").hide();return!1});a("input#_manage_stock").change(function(){a(this).is(":checked")?a("div.stock_fields").show():a("div.stock_fields").hide()}).change();var c=a("#_sale_price_dates_from, #_sale_price_dates_to").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,showButtonPanel:!0,showOn:"button",buttonImage:woocommerce_writepanel_params.calendar_image,buttonImageOnly:!0,onSelect:function(b){var d=this.id=="_sale_price_dates_from"?"minDate":"maxDate",e=a(this).data("datepicker"),f=a.datepicker.parseDate(e.settings.dateFormat||a.datepicker._defaults.dateFormat,b,e.settings);c.not(this).datepicker("option",d,f)}});a(".date-picker").datepicker({dateFormat:"yy-mm-dd",numberOfMonths:1,showButtonPanel:!0,showOn:"button",buttonImage:woocommerce_writepanel_params.calendar_image,buttonImageOnly:!0});jQuery(".expand_all").click(function(){jQuery(this).closest(".wc-metaboxes-wrapper").find(".wc-metabox table").show();return!1});jQuery(".close_all").click(function(){jQuery(this).closest(".wc-metaboxes-wrapper").find(".wc-metabox table").hide();return!1});jQuery(".wc-metaboxes-wrapper").on("click",".wc-metabox h3",function(){jQuery(this).next(".wc-metabox-content").toggle()});jQuery(".wc-metabox.closed").each(function(){jQuery(this).find(".wc-metabox-content").hide()});a(".woocommerce_attributes select.multiselect").chosen();var d=a(".woocommerce_attributes").find(".woocommerce_attribute").get();d.sort(function(b,c){var d=parseInt(a(b).attr("rel")),e=parseInt(a(c).attr("rel"));return de?1:0});a(d).each(function(b,c){a(".woocommerce_attributes").append(c)});a("button.add_attribute").on("click",function(){var b=a(".woocommerce_attributes .woocommerce_attribute").size(),c=a("select.attribute_taxonomy").val();if(!c){var d=a("select#product-type").val();d!="variable"?enable_variation='style="display:none;"':enable_variation="";a(".woocommerce_attributes").append('
\t\t\t\t\t\t

\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t\t

\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t
\t\t\t\t\t
")}else{var f=a(".woocommerce_attributes .woocommerce_attribute."+c);a(".woocommerce_attributes").append(a(f));a(f).show().find(".woocommerce_attribute_data").show();e()}a("select.attribute_taxonomy").val("")});a(".woocommerce_attributes").on("blur","input.attribute_name",function(){a(this).closest(".woocommerce_attribute").find("strong.attribute_name").text(a(this).val())});a(".woocommerce_attributes").on("click","button.select_all_attributes",function(){a(this).closest("td").find("select option").attr("selected","selected");a(this).closest("td").find("select").trigger("liszt:updated");return!1});a(".woocommerce_attributes").on("click","button.select_no_attributes",function(){a(this).closest("td").find("select option").removeAttr("selected");a(this).closest("td").find("select").trigger("liszt:updated");return!1});a(".woocommerce_attributes").on("click","button.remove_row",function(){var b=confirm(woocommerce_writepanel_params.remove_attribute);if(b){var c=a(this).parent().parent();if(c.is(".taxonomy")){c.find("select, input[type=text]").val("");c.hide()}else{c.find("select, input[type=text]").val("");c.hide();e()}}return!1});a(".woocommerce_attributes").sortable({items:".woocommerce_attribute",cursor:"move",axis:"y",handle:"h3",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(a,b){b.item.css("background-color","#f6f6f6")},stop:function(a,b){b.item.removeAttr("style");e()}});a(".multi_select_products button").live("click",function(){var b=a(this).parent().parent().parent().parent(),c=a(this),d=c.parent().parent();if(d.is(".multi_select_products_target_upsell")||d.is(".multi_select_products_target_crosssell"))c.parent().remove();else{if(c.is(".add_upsell"))var e=a(".multi_select_products_target_upsell",a(b)),f="upsell_ids[]";else var e=a(".multi_select_products_target_crosssell",a(b)),f="crosssell_ids[]";var g=a("li[rel="+c.parent().attr("rel")+"]",e);if(a(g).size()>0)return!1;var h=c.parent().clone();h.find("button:eq(0)").html("×");h.find("button:eq(1)").remove();h.find("input").val(c.parent().attr("rel"));h.find(".product_id").attr("name",f);h.appendTo(e)}});var f;a(".multi_select_products #product_search").bind("keyup click",function(){a(".multi_select_products_source").addClass("loading");a(".multi_select_products_source li:not(.product_search)").remove();f&&f.abort();var b=a(this).val(),c=this,d=a(this).attr("rel");if(b.length<3){a(".multi_select_products_source").removeClass("loading");return}var e={name:d,search:encodeURI(b),action:"woocommerce_upsell_crosssell_search_products",security:woocommerce_writepanel_params.upsell_crosssell_search_products_nonce};f=a.ajax({url:woocommerce_writepanel_params.ajax_url,data:e,type:"POST",success:function(b){a(".multi_select_products_source").removeClass("loading");a(".multi_select_products_source li:not(.product_search)").remove();a(c).parent().parent().append(b)}})});var g;window.send_to_editor_default=window.send_to_editor;jQuery(".upload_file_button").live("click",function(){g=jQuery(this).parent().find(".file_path");formfield=jQuery(g).attr("name");window.send_to_editor=window.send_to_download_url;tb_show("","media-upload.php?post_id="+woocommerce_writepanel_params.post_id+"&type=downloadable_product&from=wc01&TB_iframe=true");return!1});window.send_to_download_url=function(a){file_url=jQuery(a).attr("href");file_url&&jQuery(g).val(file_url);tb_remove();window.send_to_editor=window.send_to_editor_default}}); \ No newline at end of file +jQuery(function(a){function e(){a(".woocommerce_attributes .woocommerce_attribute").each(function(b,c){a(".attribute_position",c).val(parseInt(a(c).index(".woocommerce_attributes .woocommerce_attribute")))})}a("#upsell_product_data").bind("keypress",function(a){if(a.keyCode==13)return!1});a("ul.tabs").show();a("div.panel-wrap").each(function(){a("div.panel:not(div.panel:first)",this).hide()});a("ul.tabs a").click(function(){var b=a(this).closest("div.panel-wrap");a("ul.tabs li",b).removeClass("active");a(this).parent().addClass("active");a("div.panel",b).hide();a(a(this).attr("href")).show();return!1});jQuery("#woocommerce-order-actions input, #woocommerce-order-actions a").click(function(){window.onbeforeunload=""});a("a.edit_address").click(function(b){a(this).hide();a(this).closest(".order_data").find("div.address").hide();a(this).closest(".order_data").find("div.edit_address").show();b.preventDefault()});jQuery("select.chosen_select").chosen();jQuery("select.chosen_select_nostd").chosen({allow_single_deselect:"true"});a("#order_items_list .remove_row").live("click",function(){var b=confirm(woocommerce_writepanel_params.remove_item_notice);if(b){a(this).closest("tr.item").hide();a("input",a(this).closest("tr.item")).val("")}return!1});a("button.calc_line_taxes").live("click",function(){a(".woocommerce_order_items_wrapper").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_writepanel_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:.6}});var b=confirm(woocommerce_writepanel_params.calc_line_taxes);if(b){var c=a("#order_items_list tr.item"),d=a("#_shipping_country").val();if(d)var e=a("#_shipping_state").val(),f=a("#_shipping_postcode").val();else{d=a("#_billing_country").val();var e=a("#_billing_state").val(),f=a("#_billing_postcode").val()}c.each(function(b){var g=a(this),h={action:"woocommerce_calc_line_taxes",item_id:g.find("input.item_id").val(),line_subtotal:g.find("input.line_subtotal").val(),line_total:g.find("input.line_total").val(),tax_class:g.find("select.tax_class").val(),country:d,state:e,postcode:f,security:woocommerce_writepanel_params.calc_totals_nonce};a.post(woocommerce_writepanel_params.ajax_url,h,function(d){result=jQuery.parseJSON(d);g.find("input.line_subtotal_tax").val(result.line_subtotal_tax);g.find("input.line_tax").val(result.line_tax);b==c.size()-1&&a(".woocommerce_order_items_wrapper").unblock()})})}else a(".woocommerce_order_items_wrapper").unblock();return!1}).hover(function(){a("#order_items_list input.line_subtotal_tax, #order_items_list input.line_tax").css("background-color","#d8c8d2")},function(){a("#order_items_list input.line_subtotal_tax, #order_items_list input.line_tax").css("background-color","")});a("button.calc_totals").live("click",function(){a("#woocommerce-order-totals").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_writepanel_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:.6}});var b=confirm(woocommerce_writepanel_params.calc_totals);if(b){var c=0,d=0,e=0,f=0,g=0,h=parseFloat(a("#_order_shipping").val()),i=parseFloat(a("#_order_shipping_tax").val()),j=parseFloat(a("#_order_discount").val());h||(h=0);i||(i=0);j||(j=0);a("#order_items_list tr.item").each(function(){var b=parseFloat(a(this).find("input.line_subtotal").val()),f=parseFloat(a(this).find("input.line_subtotal_tax").val()),h=parseFloat(a(this).find("input.line_total").val()),i=parseFloat(a(this).find("input.line_tax").val());c=parseFloat(c+b);d=parseFloat(d+f);e=parseFloat(e+h);woocommerce_writepanel_params.round_at_subtotal=="no"&&(i=parseFloat(i.toFixed(2)));g=parseFloat(g+i)});woocommerce_writepanel_params.round_at_subtotal=="yes"&&(g=parseFloat(g.toFixed(2)));var f=c+d-(e+g);f<0&&(f=0);f=f.toFixed(2);var k=e+g+h+i-j;k=k.toFixed(2);a("#_cart_discount").val(f);a("#_order_tax").val(g);a("#_order_total").val(k);a("#tax_rows").empty();a("#woocommerce-order-totals").unblock()}else a("#woocommerce-order-totals").unblock();return!1}).hover(function(){a("#woocommerce-order-totals .calculated").css("background-color","#d8c8d2")},function(){a("#woocommerce-order-totals .calculated").css("background-color","")});a("button.add_shop_order_item").click(function(){var b=a("select.add_item_id").val();if(b){a("table.woocommerce_order_items").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_writepanel_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:.6}});var c=a("table.woocommerce_order_items tbody tr.item").size(),d={action:"woocommerce_add_order_item",item_to_add:a("select.add_item_id").val(),index:c,security:woocommerce_writepanel_params.add_order_item_nonce};a.post(woocommerce_writepanel_params.ajax_url,d,function(b){a("table.woocommerce_order_items tbody#order_items_list").append(b);a("table.woocommerce_order_items").unblock();a("select.add_item_id").css("border-color","").val("");jQuery(".tips").tipTip({attribute:"tip",fadeIn:50,fadeOut:50})})}else a("select.add_item_id").css("border-color","red")});a("button.add_meta").live("click",function(){var b=a(this).closest("tr.item").attr("rel");a(this).closest("table.meta").find(".meta_items").append('');return!1});a("button.remove_meta").live("click",function(){var b=confirm("Remove this meta key?");b&&a(this).closest("tr").remove();return!1});a("button.load_customer_billing").live("click",function(){var b=confirm(woocommerce_writepanel_params.load_billing);if(b){var c=a("#customer_user").val();if(!c){alert(woocommerce_writepanel_params.no_customer_selected);return!1}var d={user_id:c,type_to_load:"billing",action:"woocommerce_get_customer_details",security:woocommerce_writepanel_params.get_customer_details_nonce};a(this).closest(".edit_address").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_writepanel_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:.6}});a.ajax({url:woocommerce_writepanel_params.ajax_url,data:d,type:"POST",success:function(b){var c=jQuery.parseJSON(b);if(c){a("input#_billing_first_name").val(c.billing_first_name);a("input#_billing_last_name").val(c.billing_last_name);a("input#_billing_company").val(c.billing_company);a("input#_billing_address_1").val(c.billing_address_1);a("input#_billing_address_2").val(c.billing_address_2);a("input#_billing_city").val(c.billing_city);a("input#_billing_postcode").val(c.billing_postcode);a("input#_billing_country").val(c.billing_country);a("input#_billing_state").val(c.billing_state);a("input#_billing_email").val(c.billing_email);a("input#_billing_phone").val(c.billing_phone)}a(".edit_address").unblock()}})}return!1});a("button.load_customer_shipping").live("click",function(){var b=confirm(woocommerce_writepanel_params.load_shipping);if(b){var c=a("#customer_user").val();if(!c){alert(woocommerce_writepanel_params.no_customer_selected);return!1}var d={user_id:c,type_to_load:"shipping",action:"woocommerce_get_customer_details",security:woocommerce_writepanel_params.get_customer_details_nonce};a(this).closest(".edit_address").block({message:null,overlayCSS:{background:"#fff url("+woocommerce_writepanel_params.plugin_url+"/assets/images/ajax-loader.gif) no-repeat center",opacity:.6}});a.ajax({url:woocommerce_writepanel_params.ajax_url,data:d,type:"POST",success:function(b){var c=jQuery.parseJSON(b);if(c){a("input#_shipping_first_name").val(c.shipping_first_name);a("input#_shipping_last_name").val(c.shipping_last_name);a("input#_shipping_company").val(c.shipping_company);a("input#_shipping_address_1").val(c.shipping_address_1);a("input#_shipping_address_2").val(c.shipping_address_2);a("input#_shipping_city").val(c.shipping_city);a("input#_shipping_postcode").val(c.shipping_postcode);a("input#_shipping_country").val(c.shipping_country);a("input#_shipping_state").val(c.shipping_state)}a(".edit_address").unblock()}})}return!1});a("button.billing-same-as-shipping").live("click",function(){var b=confirm(woocommerce_writepanel_params.copy_billing);if(b){a("input#_shipping_first_name").val(a("input#_billing_first_name").val());a("input#_shipping_last_name").val(a("input#_billing_last_name").val());a("input#_shipping_company").val(a("input#_billing_company").val());a("input#_shipping_address_1").val(a("input#_billing_address_1").val());a("input#_shipping_address_2").val(a("input#_billing_address_2").val());a("input#_shipping_city").val(a("input#_billing_city").val());a("input#_shipping_postcode").val(a("input#_billing_postcode").val());a("input#_shipping_country").val(a("input#_billing_country").val());a("input#_shipping_state").val(a("input#_billing_state").val())}return!1});a("a.add_tax_row").live("click",function(){var b=a("#tax_rows .tax_row").size();a("#tax_rows").append('
\t\t\t

\t\t\t\t\t\t\t\t\t\t\t

\t\t\t

\t\t\t\t\t\t\t

\t\t\t

\t\t\t\t\t\t\t\t\t\t\t

\t\t\t

\t\t\t\t\t\t\t\t\t\t\t

\t\t\t×\t\t\t
\t\t
');return!1});a("a.delete_tax_row").live("click",function(){$tax_row=a(this).closest(".tax_row");$tax_row.find("input").val("");$tax_row.hide();return!1});a("select#product-type").change(function(){var b=a(this).val();a(".hide_if_grouped").show();a(".show_if_simple, .show_if_variable, .show_if_grouped, .show_if_external").hide();if(b=="simple"){a(".show_if_simple").show();a("input#_manage_stock").change()}else if(b=="variable"){a(".show_if_variable").show();a("input#_manage_stock").change();a("input#_downloadable").prop("checked",!1).change();a("input#_virtual").removeAttr("checked").change()}else if(b=="grouped"){a(".show_if_grouped").show();a("input#_downloadable").prop("checked",!1).change();a("input#_virtual").removeAttr("checked").change();a(".hide_if_grouped").hide()}else if(b=="external"){a(".show_if_external").show();a("input#_downloadable").prop("checked",!1).change();a("input#_virtual").removeAttr("checked").change()}a("ul.tabs li:visible").eq(0).find("a").click();a("body").trigger("woocommerce-product-type-change",b,a(this))}).change();a("input#_downloadable").change(function(){a(".show_if_downloadable").hide();a("input#_downloadable").is(":checked")&&a(".show_if_downloadable").show();a(".downloads_tab").is(".active")&&a("ul.tabs li:visible").eq(0).find("a").click()}).change();a("input#_virtual").change(function(){a(".show_if_virtual").hide();a(".hide_if_virtual").show();if(a("input#_virtual").is(":checked")){a(".show_if_virtual").show();a(".hide_if_virtual").hide()}}).change();var b=!1;a(".sale_price_dates_fields input").each(function(){a(this).val()!=""&&(b=!0)});if(b){a(".sale_schedule").hide();a(".sale_price_dates_fields").show()}else{a(".sale_schedule").show();a(".sale_price_dates_fields").hide()}a(".sale_schedule").click(function(){a(this).hide();a(".sale_price_dates_fields").show();return!1});a(".cancel_sale_schedule").click(function(){a(this).closest("p").find("input").val("");a(".sale_schedule").show();a(".sale_price_dates_fields").hide();return!1});a("input#_manage_stock").change(function(){a(this).is(":checked")?a("div.stock_fields").show():a("div.stock_fields").hide()}).change();var c=a("#_sale_price_dates_from, #_sale_price_dates_to").datepicker({defaultDate:"",dateFormat:"yy-mm-dd",numberOfMonths:1,showButtonPanel:!0,showOn:"button",buttonImage:woocommerce_writepanel_params.calendar_image,buttonImageOnly:!0,onSelect:function(b){var d=this.id=="_sale_price_dates_from"?"minDate":"maxDate",e=a(this).data("datepicker"),f=a.datepicker.parseDate(e.settings.dateFormat||a.datepicker._defaults.dateFormat,b,e.settings);c.not(this).datepicker("option",d,f)}});a(".date-picker").datepicker({dateFormat:"yy-mm-dd",numberOfMonths:1,showButtonPanel:!0,showOn:"button",buttonImage:woocommerce_writepanel_params.calendar_image,buttonImageOnly:!0});jQuery(".expand_all").click(function(){jQuery(this).closest(".wc-metaboxes-wrapper").find(".wc-metabox table").show();return!1});jQuery(".close_all").click(function(){jQuery(this).closest(".wc-metaboxes-wrapper").find(".wc-metabox table").hide();return!1});jQuery(".wc-metaboxes-wrapper").on("click",".wc-metabox h3",function(){jQuery(this).next(".wc-metabox-content").toggle()});jQuery(".wc-metabox.closed").each(function(){jQuery(this).find(".wc-metabox-content").hide()});a(".woocommerce_attributes select.multiselect").chosen();var d=a(".woocommerce_attributes").find(".woocommerce_attribute").get();d.sort(function(b,c){var d=parseInt(a(b).attr("rel")),e=parseInt(a(c).attr("rel"));return de?1:0});a(d).each(function(b,c){a(".woocommerce_attributes").append(c)});a("button.add_attribute").on("click",function(){var b=a(".woocommerce_attributes .woocommerce_attribute").size(),c=a("select.attribute_taxonomy").val();if(!c){var d=a("select#product-type").val();d!="variable"?enable_variation='style="display:none;"':enable_variation="";a(".woocommerce_attributes").append('
\t\t\t\t\t\t

\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t\t

\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\t\t\t\t\t\t\t\t\t
\t\t\t\t\t
")}else{var f=a(".woocommerce_attributes .woocommerce_attribute."+c);a(".woocommerce_attributes").append(a(f));a(f).show().find(".woocommerce_attribute_data").show();e()}a("select.attribute_taxonomy").val("")});a(".woocommerce_attributes").on("blur","input.attribute_name",function(){a(this).closest(".woocommerce_attribute").find("strong.attribute_name").text(a(this).val())});a(".woocommerce_attributes").on("click","button.select_all_attributes",function(){a(this).closest("td").find("select option").attr("selected","selected");a(this).closest("td").find("select").trigger("liszt:updated");return!1});a(".woocommerce_attributes").on("click","button.select_no_attributes",function(){a(this).closest("td").find("select option").removeAttr("selected");a(this).closest("td").find("select").trigger("liszt:updated");return!1});a(".woocommerce_attributes").on("click","button.remove_row",function(){var b=confirm(woocommerce_writepanel_params.remove_attribute);if(b){var c=a(this).parent().parent();if(c.is(".taxonomy")){c.find("select, input[type=text]").val("");c.hide()}else{c.find("select, input[type=text]").val("");c.hide();e()}}return!1});a(".woocommerce_attributes").sortable({items:".woocommerce_attribute",cursor:"move",axis:"y",handle:"h3",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(a,b){b.item.css("background-color","#f6f6f6")},stop:function(a,b){b.item.removeAttr("style");e()}});a(".multi_select_products button").live("click",function(){var b=a(this).parent().parent().parent().parent(),c=a(this),d=c.parent().parent();if(d.is(".multi_select_products_target_upsell")||d.is(".multi_select_products_target_crosssell"))c.parent().remove();else{if(c.is(".add_upsell"))var e=a(".multi_select_products_target_upsell",a(b)),f="upsell_ids[]";else var e=a(".multi_select_products_target_crosssell",a(b)),f="crosssell_ids[]";var g=a("li[rel="+c.parent().attr("rel")+"]",e);if(a(g).size()>0)return!1;var h=c.parent().clone();h.find("button:eq(0)").html("×");h.find("button:eq(1)").remove();h.find("input").val(c.parent().attr("rel"));h.find(".product_id").attr("name",f);h.appendTo(e)}});var f;a(".multi_select_products #product_search").bind("keyup click",function(){a(".multi_select_products_source").addClass("loading");a(".multi_select_products_source li:not(.product_search)").remove();f&&f.abort();var b=a(this).val(),c=this,d=a(this).attr("rel");if(b.length<3){a(".multi_select_products_source").removeClass("loading");return}var e={name:d,search:encodeURI(b),action:"woocommerce_upsell_crosssell_search_products",security:woocommerce_writepanel_params.upsell_crosssell_search_products_nonce};f=a.ajax({url:woocommerce_writepanel_params.ajax_url,data:e,type:"POST",success:function(b){a(".multi_select_products_source").removeClass("loading");a(".multi_select_products_source li:not(.product_search)").remove();a(c).parent().parent().append(b)}})});var g;window.send_to_editor_default=window.send_to_editor;jQuery(".upload_file_button").live("click",function(){g=jQuery(this).parent().find(".file_path");formfield=jQuery(g).attr("name");window.send_to_editor=window.send_to_download_url;tb_show("","media-upload.php?post_id="+woocommerce_writepanel_params.post_id+"&type=downloadable_product&from=wc01&TB_iframe=true");return!1});window.send_to_download_url=function(a){file_url=jQuery(a).attr("href");file_url&&jQuery(g).val(file_url);tb_remove();window.send_to_editor=window.send_to_editor_default}}); \ No newline at end of file diff --git a/readme.txt b/readme.txt index 5b32f8c097e..121006a31d9 100644 --- a/readme.txt +++ b/readme.txt @@ -151,6 +151,7 @@ Yes you can! Join in on our [GitHub repository](http://github.com/woothemes/wooc * Layered nav for attribute pages (thanks helgatheviking) * Fixed dates in dashboard stats * Download expiry was backwards +* Fix styling of new attribute = 1.5 - 01/03/2012 = * Quick edit products