diff --git a/CHANGELOG.txt b/CHANGELOG.txt index a7a57476294..037704dd9d6 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,5 +1,84 @@ == Changelog == += 2.5.1 - 25/01/2016 = +* Fix - Remove usage of get_currentuserinfo() which is deprecated in WordPress 4.5. +* Fix - Fix responsive product sizes when the columns class is missing. +* Fix - Fix function exists check for woocommerce_template_loop_category_title. +* Fix - check_version on all requests so that the installer runs after remote plugin updates. +* Fix - Only show the "add payment method" button when needed, and check for required fields on the add payment method page. +* Fix - Correctly block UI to prevent attribute issues in backend when adding multiple attributes in quick succession. +* Fix - Show SKU in admin emails. +* Fix - Don't show downloads in admin emails. +* Fix - Fix query/missing variable in validate_user_usage_limit function. +* Fix - Prevent endless loading on checkout when reload_checkout session variable was used. +* Fix - Correctly display html entities in tax screen autocomplete. +* Fix - Do sales reports based on refund line items rather than fully refunded orders to prevent double refunds being reported. +* Fix - Qty button can be hidden for variable products sold individually. +* Fix - Show the taxable country rather than base country in "estimated for" text during checkout. +* Fix - Prevent select2 gaining focus on IOS7 scroll. +* Fix - API - Fix indexes on decimal and thousand values. +* Tweak - Clear cron jobs on uninstall
. +* Tweak - Don't disable place order button on checkout if a weak password is used. +* Tweak - Added password strength meter in lost password and edit accout pages. +* Tweak - Pass $args to woocommerce_dropdown_variation_attribute_options_html hook. + += 2.5.0 - 18/01/2016 = +* Feature - New default session handler. Uses custom table to store data rather than the options table for performance and scalability reasons. https://woocommerce.wordpress.com/2015/10/07/new-session-handler-in-2-5/ +* Feature - New tax settings UI - faster, enhanced with ajax, searchable. +* Feature - WP CLI Support. https://woocommerce.wordpress.com/2015/10/01/sneak-peek-wp-cli-support-in-woocommerce/ +* Feature - Added terms and conditions checkbox to pay page. +* Feature - Password strength indicators. +* Feature - Added 'pay' link to order screen. +* Feature - Added admin order/payment failed notification. +* Fix - Check for existence of global attribute when you get_attributes() for a product. +* Fix - Show order by template on product search. +* Fix - Search variation skus in backend search. +* Tweak - For coupons with category restrictions, respect the category hierarchy. +* Tweak - Added wc_array_cartesian function to generate variations in a logical order. +* Tweak - Revised email settings screens to show emails in a table and avoid a long sub-nav. +* Tweak - Default customer role capabilities. +* Tweak - Expire mini-cart cache after 24 hours. +* Tweak - Improved refund error messages in PayPal standard. +* Tweak - Removed language pack downloader in favour of translate.wordpress.org. +* Tweak - Added onboarding wizard button to the contextual help so it can be accessed again. +* Tweak - When a WordPress user is deleted, turn any orders they have into Guest orders. +* Tweak - When calculating order taxes, respect tax settings and default to base country. +* Tweak - Fade in variation images to avoid flicker during load. +* Tweak - Display 2 averages on report (net and gross). +* Tweak - Improve product search and use WPDB instead of several get_posts queries for performance. +* Tweak - Use SKU for stock order notes. +* Tweak - Added order notes for manual email sends. +* Tweak - Sanitize shipping method labels/titles. +* Tweak - Only display the coupon form on the checkout if a coupon hasn't been applied. +* Tweak - Added billing address column to order screen (off for new users). +* Tweak - Created function to disable author archives for customers. +* Tweak - When updating cart hash, refresh all open tabs. +* Tweak - Use new "question" mark icon font for help tips. +* Tweak - Improved review verification status retrieval. +* Tweak - Improve appearance when only 1 gateway is active. +* Tweak - Aligned terms box left and added required asterisk. +* Tweak - Removed dropdown display mode for cart shipping methods - radios are more flexible. +* Dev - API - Added /products/shipping_classes endpoint. +* Dev - API - Added support to POST, PUT, and DELETE categories and tags. +* Dev - API - Added support to filter products by tag, category, shipping class, and attribute. +* Dev - API - Added tax and tax_class endpoints. +* Dev - Template - New star ratings. The old one was 5 separate buttons. This new one consolidates the 5 options into one element making it leaner visually and more intuitive. Works in IE9+ with a graceful degradation for IE8. +* Dev - Template - Added `data-title` attribute to cart table. +* Dev - Template - Product archive anchors are now hooked into templates rather than hard coded. +* Dev - Template - Added template files for the customer details list in emails. emails/email-customer-details.php +* Dev - Template - Revised single variation cart template. Template files now exist for variations, and the cart button will display (disabled) when no selections are made. +* Dev - Template - Made "my orders" columns fully customizable with filters. +* Dev - Template - Unified email template order details tables to use a single template. +* Dev - Allow wc_clean to support arrays. +* Dev - Added a manual update trigger for checkout. +* Dev - Added woocommerce_is_price_filter_active filter to Query class. +* Dev - Replaced some cart methods with dedicated functions. e.g. wc_ship_to_billing_address_only(). +* Localisation - Add Kenyan currency and symbol. + += 2.4.13 - 11/01/2016 = +* Fix - Potential redirect loop when using 'unforce ssl' setting and a https home URL. +* Fix - Escape option names when cleaning up sessions. + = 2.4.12 - 9/12/2015 = * Fix - 4.4 - Permission error when editing attribute terms. * Fix - 4.4 - Missing variation images when wp_get_attachment_image_srcset() returns false instead of a string. diff --git a/Gruntfile.js b/Gruntfile.js index 9b68e9972f7..06a7706b63a 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -235,6 +235,12 @@ module.exports = function( grunt ) { 'css' ]); + grunt.registerTask( 'js', [ + 'jshint', + 'uglify:admin', + 'uglify:frontend' + ]); + grunt.registerTask( 'css', [ 'sass', 'cssmin' diff --git a/assets/css/admin.css b/assets/css/admin.css index dc3a041e4fa..33c89f1060d 100644 --- a/assets/css/admin.css +++ b/assets/css/admin.css @@ -1 +1 @@ -@charset "UTF-8";.chosen-container,.select2-container .select2-choice,.select2-results .select2-result-label{-webkit-user-select:none;-moz-user-select:none}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.woocommerce-checkout .form-row .chosen-container{width:100%!important}.woocommerce-checkout .form-row .chosen-container-single .chosen-single{height:28px;line-height:29px}.woocommerce-checkout .form-row .chosen-container-single .chosen-single div b{background:url(../images/chosen-sprite.png) 0 3px no-repeat!important}.woocommerce-checkout .form-row .chosen-container-active .chosen-single-with-drop div b{background-position:-18px 4px!important}.woocommerce-checkout .form-row .chosen-container-single .chosen-search input{line-height:13px;width:100%!important;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.woocommerce-checkout .form-row .chosen-container .chosen-drop{width:100%!important;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-resolution:144dpi){.woocommerce-checkout .form-row .chosen-container-single .chosen-single div b{background-image:url(../images/chosen-sprite@2x.png)!important;background-position:0 5px!important;background-repeat:no-repeat!important;background-size:52px 37px!important}.woocommerce-checkout .form-row .chosen-container-active .chosen-single-with-drop div b{background-position:-18px 5px!important}}.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;zoom:1;user-select:none}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15)}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:26px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#fff),color-stop(50%,#f6f6f6),color-stop(52%,#eee),color-stop(100%,#f4f4f4));background:-webkit-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-moz-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-o-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:26px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;background:url(../images/chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-single .chosen-single abbr:hover,.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url(../images/chosen-sprite.png) 0 2px no-repeat}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:url(../images/chosen-sprite.png) 100% -20px no-repeat #fff;background:url(../images/chosen-sprite.png) 100% -20px no-repeat,-webkit-gradient(linear,50% 0,50% 100%,color-stop(1%,#eee),color-stop(15%,#fff));background:url(../images/chosen-sprite.png) 100% -20px no-repeat,-webkit-linear-gradient(#eee 1%,#fff 15%);background:url(../images/chosen-sprite.png) 100% -20px no-repeat,-moz-linear-gradient(#eee 1%,#fff 15%);background:url(../images/chosen-sprite.png) 100% -20px no-repeat,-o-linear-gradient(#eee 1%,#fff 15%);background:url(../images/chosen-sprite.png) 100% -20px no-repeat,linear-gradient(#eee 1%,#fff 15%);font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#3875d7),color-stop(90%,#2a62bc));background-image:-webkit-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-moz-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-o-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;width:100%;height:auto!important;height:1%;border:1px solid #aaa;background-color:#fff;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(1%,#eee),color-stop(15%,#fff));background-image:-webkit-linear-gradient(#eee 1%,#fff 15%);background-image:-moz-linear-gradient(#eee 1%,#fff 15%);background-image:-o-linear-gradient(#eee 1%,#fff 15%);background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:5px;height:15px;outline:0;border:0!important;background:0 0!important;box-shadow:none;color:#666;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-multi .chosen-choices li.search-field .default{color:#999}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 0 3px 5px;padding:3px 20px 3px 5px;border:1px solid #aaa;border-radius:3px;background-color:#e4e4e4;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:4px;right:3px;display:block;width:12px;height:12px;background:url(../images/chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{background-position:-42px -10px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#eee),color-stop(80%,#fff));background-image:-webkit-linear-gradient(#eee 20%,#fff 80%);background-image:-moz-linear-gradient(#eee 20%,#fff 80%);background-image:-o-linear-gradient(#eee 20%,#fff 80%);background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#111!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close,.chosen-disabled .chosen-single{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl .chosen-drop,.chosen-rtl.chosen-container-single-nosearch .chosen-search{left:9999px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;background:url(../images/chosen-sprite.png) -30px -20px no-repeat #fff;background:url(../images/chosen-sprite.png) -30px -20px no-repeat,-webkit-gradient(linear,50% 0,50% 100%,color-stop(1%,#eee),color-stop(15%,#fff));background:url(../images/chosen-sprite.png) -30px -20px no-repeat,-webkit-linear-gradient(#eee 1%,#fff 15%);background:url(../images/chosen-sprite.png) -30px -20px no-repeat,-moz-linear-gradient(#eee 1%,#fff 15%);background:url(../images/chosen-sprite.png) -30px -20px no-repeat,-o-linear-gradient(#eee 1%,#fff 15%);background:url(../images/chosen-sprite.png) -30px -20px no-repeat,linear-gradient(#eee 1%,#fff 15%);direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-resolution:144dpi){.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span,.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container-single .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-rtl .chosen-search input[type=text]{background-image:url(../images/chosen-sprite@2x.png)!important;background-size:52px 37px!important;background-repeat:no-repeat!important}}.select2-container{margin:0;position:relative;display:block!important;zoom:1;vertical-align:middle}.select2-container,.select2-drop,.select2-search,.select2-search input{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.select2-container .select2-choice{display:block;padding:0 0 0 8px;overflow:hidden;position:relative;border:1px solid #ccc;white-space:nowrap;color:#444;text-decoration:none;border-radius:3px;background-clip:padding-box;-webkit-touch-callout:none;-ms-user-select:none;user-select:none;background-color:#fff;font-weight:400}html[dir=rtl] .select2-container .select2-choice{padding:0 8px 0 0}.select2-container.select2-drop-above .select2-choice{border-bottom-color:#ccc;border-radius:0 0 4px 4px}.select2-container.select2-allowclear .select2-choice .select2-chosen{margin-right:42px}.select2-container .select2-choice>.select2-chosen{margin-right:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;float:none;width:auto}html[dir=rtl] .select2-container .select2-choice>.select2-chosen{margin-left:26px;margin-right:0}.select2-container .select2-choice abbr{display:none;width:12px;height:12px;position:absolute;right:24px;top:5px;font-size:1px;text-decoration:none;border:0;background:url(../images/select2.png) right top no-repeat;cursor:pointer;outline:0}.select2-container.select2-allowclear .select2-choice abbr{display:inline-block}.select2-container .select2-choice abbr:hover{background-position:right -11px;cursor:pointer}.select2-drop-mask{border:0;margin:0;padding:0;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:9998;background-color:#fff;filter:alpha(opacity=0)}.select2-drop{width:100%;margin-top:-1px;position:absolute;top:100%;background:#fff;color:#000;border:1px solid #ccc;border-top:0;border-radius:0 0 3px 3px}.select2-drop.select2-drop-above{margin-top:1px;border-top:1px solid #ccc;border-bottom:0;border-radius:3px 3px 0 0}.select2-drop-active{border:1px solid #666;border-top:none}.select2-drop.select2-drop-above.select2-drop-active{border-top:1px solid #666}.select2-drop-auto-width{border-top:1px solid #ccc;width:auto}.select2-drop-auto-width .select2-search{padding-top:4px}.select2-container .select2-choice .select2-arrow{display:inline-block;width:18px;height:100%;position:absolute;right:0;top:0;border-radius:0 3px 3px 0;background-clip:padding-box}html[dir=rtl] .select2-container .select2-choice .select2-arrow{left:0;right:auto;border-radius:3px 0 0 3px}.select2-container .select2-choice .select2-arrow b{display:block;width:100%;height:100%;position:relative}.select2-container .select2-choice .select2-arrow b:after{position:absolute;display:block;content:"";top:50%;left:50%;border:4px solid transparent;border-top-color:#666;margin-left:-7px;margin-top:-2px}.select2-search{display:inline-block;width:100%;margin:0;padding-left:4px;padding-right:4px;position:relative;z-index:10000;white-space:nowrap;padding-bottom:4px}.select2-search input{width:100%;height:auto!important;padding:4px 20px 4px 5px!important;margin:0;outline:0;font-family:sans-serif;font-size:1em;border:1px solid #ccc;-webkit-box-shadow:none;box-shadow:none;background:url(../images/select2.png) 100% -22px no-repeat #fff}html[dir=rtl] .select2-search input{padding:4px 5px 4px 20px;background:url(../images/select2.png) -37px -22px no-repeat #fff}.select2-drop.select2-drop-above .select2-search input{margin-top:4px}.select2-search input.select2-active{background:url(../images/select2-spinner.gif) 100% no-repeat #fff}.select2-container-active .select2-choice,.select2-container-active .select2-choices{border:1px solid #666;outline:0}.select2-dropdown-open .select2-choice{border-bottom-color:transparent;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-dropdown-open .select2-choice .select2-arrow b:after{border-top-color:transparent;border-bottom-color:#666;margin-top:-6px}.select2-dropdown-open.select2-drop-above .select2-choice,.select2-dropdown-open.select2-drop-above .select2-choices{border:1px solid #666;border-top-color:transparent}.select2-dropdown-open .select2-choice .select2-arrow{background:0 0;border-left:none;filter:none}html[dir=rtl] .select2-dropdown-open .select2-choice .select2-arrow{border-right:none}.select2-dropdown-open .select2-choice .select2-arrow b{background-position:-18px 1px}html[dir=rtl] .select2-dropdown-open .select2-choice .select2-arrow b{background-position:-16px 1px}.select2-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.select2-results{max-height:200px;padding:4px;margin:0;position:relative;overflow-x:hidden;overflow-y:auto;-webkit-tap-highlight-color:transparent;background:#fafafa}html[dir=rtl] .select2-results{padding:0 4px 0 0;margin:4px 0 4px 4px}.select2-results ul.select2-result-sub{margin:0;padding-left:0}.select2-results li{list-style:none;display:list-item;background-image:none;margin:3px 0}.select2-results li.select2-result-with-children>.select2-result-label{font-weight:700}.select2-results .select2-result-label{padding:5px 7px;margin:0;cursor:pointer;min-height:1em;-webkit-touch-callout:none;-ms-user-select:none;user-select:none}.select2-results-dept-1 .select2-result-label{padding-left:20px}.select2-results-dept-2 .select2-result-label{padding-left:40px}.select2-results-dept-3 .select2-result-label{padding-left:60px}.select2-results-dept-4 .select2-result-label{padding-left:80px}.select2-results-dept-5 .select2-result-label{padding-left:100px}.select2-results-dept-6 .select2-result-label{padding-left:110px}.select2-results-dept-7 .select2-result-label{padding-left:120px}.select2-results .select2-highlighted{background:#f1f1f1;color:#000;border-radius:3px}.select2-results li em{background:#feffde;font-style:normal}.select2-results .select2-highlighted em{background:0 0}.select2-results .select2-highlighted ul{background:#fff;color:#000}.select2-results .select2-ajax-error,.select2-results .select2-no-results,.select2-results .select2-searching,.select2-results .select2-selection-limit{background:#f4f4f4;display:list-item;padding-left:5px}.select2-results .select2-disabled.select2-highlighted{color:#666;background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-disabled{background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-selected{display:none}.select2-more-results.select2-active{background:url(../images/select2-spinner.gif) 100% no-repeat #f4f4f4}.select2-results .select2-ajax-error{background:rgba(255,50,50,.2)}.select2-more-results{background:#f4f4f4;display:list-item}.select2-container.select2-container-disabled .select2-choice{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container.select2-container-disabled .select2-choice .select2-arrow{background-color:#f4f4f4;background-image:none;border-left:0}.select2-container.select2-container-disabled .select2-choice abbr{display:none}.select2-container-multi .select2-choices{height:auto!important;height:1%;margin:0;padding:0 5px 0 0;position:relative;border:1px solid #ccc;cursor:text;overflow:hidden;background-color:#fff;min-height:26px}html[dir=rtl] .select2-container-multi .select2-choices{padding:0 0 0 5px}.select2-locked{padding:3px 5px!important}.select2-container-multi.select2-container-active .select2-choices{border:1px solid #666;outline:0}.select2-container-multi .select2-choices li{float:left;list-style:none}html[dir=rtl] .select2-container-multi .select2-choices li{float:right}.select2-container-multi .select2-choices .select2-search-field{margin:0;padding:0;white-space:nowrap}.select2-container-multi .select2-choices .select2-search-field input{margin:1px 0;outline:0;border:0;-webkit-box-shadow:none;box-shadow:none;background:0 0!important}.select2-container-multi .select2-choices .select2-search-field input.select2-active{background:url(../images/select2-spinner.gif) 100% no-repeat #fff!important}.select2-default{color:#999!important}.select2-container-multi .select2-choices .select2-search-choice{padding:5px 8px 5px 24px;margin:3px 0 3px 5px;position:relative;line-height:15px;color:#333;cursor:default;border-radius:2px;background-clip:padding-box;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#e4e4e4}html[dir=rtl] .select2-container-multi .select2-choices .select2-search-choice{margin:3px 5px 3px 0;padding:5px 24px 5px 8px}.select2-container-multi .select2-choices .select2-search-choice .select2-chosen{cursor:default}.select2-container-multi .select2-choices .select2-search-choice-focus{background:#d4d4d4}.select2-search-choice-close{display:block;width:12px;height:13px;position:absolute;right:7px;top:6px;font-size:1px;outline:0;background:url(../images/select2.png) right top no-repeat}html[dir=rtl] .select2-search-choice-close{right:auto;left:7px}.select2-container-multi .select2-search-choice-close{left:7px}html[dir=rtl] .select2-container-multi .select2-search-choice-close{left:auto;right:7px}.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover,.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close{background-position:right -11px}.select2-container-multi.select2-container-disabled .select2-choices{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice{padding:3px 5px;border:1px solid #ddd;background-image:none;background-color:#f4f4f4}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close{display:none;background:0 0}.select2-result-selectable .select2-match,.select2-result-unselectable .select2-match{text-decoration:underline}.select2-offscreen,.select2-offscreen:focus{clip:rect(0 0 0 0)!important;width:1px!important;height:1px!important;border:0!important;margin:0!important;padding:0!important;overflow:hidden!important;position:absolute!important;outline:0!important;left:0!important;top:0!important}.select2-display-none{display:none}.select2-measure-scrollbar{position:absolute;top:-10000px;left:-10000px;width:100px;height:100px;overflow:scroll}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:2dppx){.select2-search input{background-image:url(../images/select2x2.png)!important;background-repeat:no-repeat!important;background-size:60px 40px!important;background-position:100% -21px!important}}@font-face{font-family:star;src:url(../fonts/star.eot);src:url(../fonts/star.eot?#iefix) format("embedded-opentype"),url(../fonts/star.woff) format("woff"),url(../fonts/star.ttf) format("truetype"),url(../fonts/star.svg#star) format("svg");font-weight:400;font-style:normal}@font-face{font-family:WooCommerce;src:url(../fonts/WooCommerce.eot);src:url(../fonts/WooCommerce.eot?#iefix) format("embedded-opentype"),url(../fonts/WooCommerce.woff) format("woff"),url(../fonts/WooCommerce.ttf) format("truetype"),url(../fonts/WooCommerce.svg#WooCommerce) format("svg");font-weight:400;font-style:normal}.blockUI.blockOverlay:before{height:1em;width:1em;position:absolute;top:50%;left:50%;margin-left:-.5em;margin-top:-.5em;display:block;content:"";-webkit-animation:spin 1s ease-in-out infinite;-moz-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite;background:url(../images/icons/loader.svg) center center;background-size:cover;line-height:1;text-align:center;font-size:2em;color:rgba(0,0,0,.75)}.button.wc-reload:after,.woocommerce-help-tip:after{top:0;left:0;-webkit-font-smoothing:antialiased;text-align:center}.wc_addons_wrap .products{overflow:hidden}.wc_addons_wrap .products li{float:left;margin:0 1em 1em 0!important;padding:0;vertical-align:top;width:300px}.wc_addons_wrap .products li a{text-decoration:none;color:inherit;border:1px solid #ddd;display:block;min-height:220px;overflow:hidden;background:#f5f5f5;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.1)}.wc_addons_wrap .products li a img{max-width:258px;max-height:24px;padding:17px 20px;display:block;margin:0;background:#fff;border-right:260px solid #fff}.wc_addons_wrap .products li a .price,.wc_addons_wrap .products li a img.extension-thumb+h3{display:none}.wc_addons_wrap .products li a h3{margin:0!important;padding:20px!important;background:#fff}.wc_addons_wrap .products li a p{padding:20px!important;margin:0!important;border-top:1px solid #f1f1f1}.wc_addons_wrap .products li a:focus,.wc_addons_wrap .products li a:hover{background-color:#fff}.wc_addons_wrap .storefront{background:url(../images/storefront-bg.jpg) bottom right #f6f6f6;border:1px solid #ddd;padding:20px;overflow:hidden;zoom:1}.wc_addons_wrap .storefront img{width:278px;height:auto;float:left;margin:0 20px 0 0;box-shadow:0 1px 6px rgba(0,0,0,.1)}.wc_addons_wrap .storefront p{max-width:750px}.woocommerce-message{position:relative;border-left-color:#cc99c2!important;overflow:hidden}.woocommerce-message a.button-primary,.woocommerce-message button.button-primary{background:#bb77ae;border-color:#aa559a;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 rgba(0,0,0,.15);color:#fff;text-decoration:none!important;text-shadow:0 -1px 1px #8a4f7f,1px 0 1px #8a4f7f,0 1px 1px #8a4f7f,-1px 0 1px #8a4f7f}.woocommerce-message a.button-primary:hover,.woocommerce-message button.button-primary:hover{background:#c480b7;border-color:#aa559a;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 rgba(0,0,0,.15)}.woocommerce-message a.button-primary:active,.woocommerce-message button.button-primary:active{background:#aa559a;border-color:#873A79;-webkit-box-shadow:inset 0 2px 0 #873A79;box-shadow:inset 0 2px 0 #873A79}.woocommerce-message a.button-primary:focus,.woocommerce-message button.button-primary:focus{background:#bb77ae;border-color:#aa559a;-webkit-box-shadow:0 1px 0 #bb77ae,0 0 2px 1px #aa559a;box-shadow:0 1px 0 #bb77ae,0 0 2px 1px #aa559a}.woocommerce-message a.docs,.woocommerce-message a.skip{opacity:.5;text-decoration:none!important}.woocommerce-message .twitter-share-button{margin-top:-3px;margin-left:3px;vertical-align:middle}#variable_product_options #message,#variable_product_options .notice{margin:10px}.clear{clear:both}#woocommerce-fields-bulk.inline-edit-col label,#woocommerce-fields.inline-edit-col{clear:left}.wrap.woocommerce div.error,.wrap.woocommerce div.updated{margin-top:10px}mark.amount{background:0 0;color:inherit}.postbox,.woocommerce{input:invalid;input-border:1px solid #cc010b;input-background:#ffebe8}.simplify-commerce-banner{overflow:hidden}.simplify-commerce-banner img{float:right;padding:15px 0;margin-left:1em;width:200px}.woocommerce-help-tip{color:#666;display:inline-block;font-size:13px;font-style:normal;height:16px;line-height:16px;position:relative;vertical-align:middle;width:16px}.woocommerce-help-tip:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:"";cursor:help}table.wc_status_table{margin-bottom:1em}table.wc_status_table tr:nth-child(2n) td,table.wc_status_table tr:nth-child(2n) th{background:#fcfcfc}table.wc_status_table th{font-weight:700;padding:9px}table.wc_status_table td:first-child{width:33%}table.wc_status_table td.help{width:1em}table.wc_status_table td{padding:9px;font-size:1.1em}table.wc_status_table td mark{background:0 0}table.wc_status_table td mark.yes{color:#7ad03a}table.wc_status_table td mark.no{color:#999}table.wc_status_table td mark.error{color:#a00}table.wc_status_table td ul{margin:0}table.wc_status_table .help_tip{cursor:help}#debug-report{display:none;margin:10px 0;padding:0;position:relative}#debug-report textarea{font-family:monospace;width:100%;margin:0;height:300px;padding:20px;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;resize:none;font-size:12px;line-height:20px;outline:0}#log-viewer-select{padding:10px 0 8px;line-height:180%}#log-viewer textarea{width:100%;resize:vertical}.inline-edit-product.quick-edit-row .inline-edit-col-center,.inline-edit-product.quick-edit-row .inline-edit-col-right{float:right!important}#woocommerce-fields.inline-edit-col label.featured,#woocommerce-fields.inline-edit-col label.manage_stock{margin-left:10px}#woocommerce-fields.inline-edit-col .dimensions div{display:block;margin:.2em 0}#woocommerce-fields.inline-edit-col .dimensions div span.title{display:block;float:left;width:5em}#woocommerce-fields.inline-edit-col .dimensions div span.input-text-wrap{display:block;margin-left:5em}#woocommerce-fields.inline-edit-col .text{box-sizing:border-box;width:99%;float:left;margin:1px 1% 1px 1px}#woocommerce-fields.inline-edit-col .height,#woocommerce-fields.inline-edit-col .length,#woocommerce-fields.inline-edit-col .width{width:32.33%}#woocommerce-fields.inline-edit-col .height{margin-right:0}#woocommerce-fields-bulk.inline-edit-col .inline-edit-group label{clear:none;width:49%;margin:.2em 0}#woocommerce-fields-bulk.inline-edit-col .inline-edit-group.dimensions label{width:75%;max-width:75%}#woocommerce-fields-bulk.inline-edit-col .length,#woocommerce-fields-bulk.inline-edit-col .regular_price,#woocommerce-fields-bulk.inline-edit-col .sale_price,#woocommerce-fields-bulk.inline-edit-col .stock,#woocommerce-fields-bulk.inline-edit-col .weight{box-sizing:border-box;width:100%;margin-left:4.4em}#woocommerce-fields-bulk.inline-edit-col .height,#woocommerce-fields-bulk.inline-edit-col .length,#woocommerce-fields-bulk.inline-edit-col .width{box-sizing:border-box;width:25%}.column-coupon_code{line-height:2.25em}.column-coupon_code,ul.wc_coupon_list{margin:0;overflow:hidden;zoom:1;clear:both}ul.wc_coupon_list li{margin:0}ul.wc_coupon_list li.code{display:inline-block}ul.wc_coupon_list li.code:after{content:", "}ul.wc_coupon_list li.code:last-of-type:after{display:none}ul.wc_coupon_list li.code .tips{cursor:pointer}ul.wc_coupon_list_block{margin:0;padding-bottom:2px}ul.wc_coupon_list_block li{border-top:1px solid #fff;border-bottom:1px solid #ccc;line-height:2.5em;margin:0;padding:.5em 0}ul.wc_coupon_list_block li:first-child{border-top:0;padding-top:0}ul.wc_coupon_list_block li:last-child{border-bottom:0;padding-bottom:0}.button.wc-reload{text-indent:-9999px;position:relative;padding:0;-webkit-border-radius:100%;border-radius:100%;height:24px;width:24px!important;display:inline-block}.button.wc-reload:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:"";line-height:22px}#order_data h2,#order_data p.order_number{font-family:HelveticaNeue-Light,"Helvetica Neue Light","Helvetica Neue",sans-serif;font-weight:400}.tablenav .actions{overflow:visible}.tablenav .select2-container{float:left;max-width:200px;font-size:14px;vertical-align:middle;margin:1px 6px 1px 1px}#woocommerce-order-data .handlediv,#woocommerce-order-data .hndle{display:none}#woocommerce-order-data .inside{display:block!important}#order_data{padding:23px 24px 12px}#order_data h2{margin:0;font-size:21px;line-height:1.2;text-shadow:1px 1px 1px #fff;padding:0}#order_data h4{color:#333;margin:1.33em 0 0}#order_data p{color:#777}#order_data p.order_number{margin:0;line-height:1.6em;font-size:16px}#order_data .order_data_column_container{clear:both}#order_data .order_data_column{width:32%;padding:0 2% 0 0;float:left}#order_data .order_data_column:last-child{padding-right:0}#order_data .order_data_column p{padding:0!important}#order_data .order_data_column .address strong{display:block}#order_data .order_data_column .form-field{float:left;width:48%;padding:0;margin:9px 0 0}#order_data .order_data_column .form-field label{display:block;padding:0 0 3px}#order_data .order_data_column .form-field input,#order_data .order_data_column .form-field select,#order_data .order_data_column .form-field textarea{width:100%}#order_data .order_data_column .form-field .select2-container{width:100%!important}#order_data .order_data_column .form-field .date-picker{width:50%}#order_data .order_data_column .form-field .hour,#order_data .order_data_column .form-field .minute{width:2.5em}#order_data .order_data_column .form-field small{display:block;margin:5px 0 0;color:#999}#order_data .order_data_column .form-field.last{float:right}#order_data .order_data_column .form-field-wide{width:100%;clear:both}#order_data .order_data_column .form-field-wide .wc-customer-search,#order_data .order_data_column .form-field-wide .wc-enhanced-select,#order_data .order_data_column .form-field-wide input,#order_data .order_data_column .form-field-wide select,#order_data .order_data_column .form-field-wide textarea{width:100%}#order_data .order_data_column p.none_set{color:#999}#order_data .order_data_column ._billing_address_1_field,#order_data .order_data_column ._billing_city_field,#order_data .order_data_column ._billing_country_field,#order_data .order_data_column ._billing_email_field,#order_data .order_data_column ._billing_first_name_field,#order_data .order_data_column ._shipping_address_1_field,#order_data .order_data_column ._shipping_city_field,#order_data .order_data_column ._shipping_country_field,#order_data .order_data_column ._shipping_first_name_field{float:left}#order_data .order_data_column ._billing_address_2_field,#order_data .order_data_column ._billing_last_name_field,#order_data .order_data_column ._billing_phone_field,#order_data .order_data_column ._billing_postcode_field,#order_data .order_data_column ._billing_state_field,#order_data .order_data_column ._shipping_address_2_field,#order_data .order_data_column ._shipping_last_name_field,#order_data .order_data_column ._shipping_postcode_field,#order_data .order_data_column ._shipping_state_field,#order_data .order_data_column .wc-customer-user label a,#order_data .order_data_column .wc-order-status label a{float:right}#order_data .order_data_column ._billing_company_field,#order_data .order_data_column ._shipping_company_field,#order_data .order_data_column ._transaction_id_field{clear:both;width:100%}#order_data .order_data_column ._billing_email_field{clear:left}#order_data .order_data_column div.edit_address{display:none;zoom:1;padding-right:1px}#order_data .order_data_column .billing-same-as-shipping,#order_data .order_data_column .load_customer_billing,#order_data .order_data_column .load_customer_shipping,#order_data .order_data_column a.edit_address{width:14px;height:0;padding:14px 0 0;margin:0 0 0 6px;overflow:hidden;position:relative;color:#999;border:0;float:right}#order_data .order_data_column .billing-same-as-shipping:focus,#order_data .order_data_column .billing-same-as-shipping:hover,#order_data .order_data_column .load_customer_billing:focus,#order_data .order_data_column .load_customer_billing:hover,#order_data .order_data_column .load_customer_shipping:focus,#order_data .order_data_column .load_customer_shipping:hover,#order_data .order_data_column a.edit_address:focus,#order_data .order_data_column a.edit_address:hover{color:#000}#order_data .order_data_column .billing-same-as-shipping:after,#order_data .order_data_column .load_customer_billing:after,#order_data .order_data_column .load_customer_shipping:after,#order_data .order_data_column a.edit_address:after{font-family:WooCommerce;position:absolute;top:0;left:0;text-align:center;vertical-align:top;line-height:14px;font-size:14px;font-weight:400;-webkit-font-smoothing:antialiased}#order_data .order_data_column .billing-same-as-shipping:after{content:"\e008"}#order_data .order_data_column .load_customer_billing:after,#order_data .order_data_column .load_customer_shipping:after{content:"\e03a"}#order_data .order_data_column a.edit_address:after{content:"\e603"}.order_actions{margin:0;overflow:hidden;zoom:1}.order_actions li{border-top:1px solid #fff;border-bottom:1px solid #ddd;padding:6px 0;margin:0;line-height:1.6em;float:left;width:50%;text-align:center}.order_actions li a{float:none;text-align:center;text-decoration:underline}.order_actions li.wide{width:auto;float:none;clear:both;padding:6px;text-align:left;overflow:hidden}.order_actions li #delete-action{line-height:25px;vertical-align:middle;text-align:left;float:left}.order_actions li .save_order{float:right}.order_actions li#actions{overflow:hidden}.order_actions li#actions .button{width:24px;box-sizing:border-box;float:right}.order_actions li#actions select{width:225px;box-sizing:border-box;float:left}#woocommerce-order-items .inside{margin:0;padding:0;background:#fefefe}#woocommerce-order-items .wc-order-data-row{border-bottom:1px solid #DFDFDF;padding:12px;background:#f8f8f8;line-height:2em;text-align:right}#woocommerce-order-items .wc-order-data-row:after,#woocommerce-order-items .wc-order-data-row:before{content:" ";display:table}#woocommerce-order-items .wc-order-data-row:after{clear:both}#woocommerce-order-items .wc-order-data-row p{margin:0;line-height:2em}#woocommerce-order-items .wc-order-data-row .wc-used-coupons{text-align:left}#woocommerce-order-items .wc-order-data-row .wc-used-coupons .tips{display:inline-block}#woocommerce-order-items .wc-order-bulk-actions{background:#fefefe;vertical-align:top;border-top:0}#woocommerce-order-items .wc-order-bulk-actions select{vertical-align:top}#woocommerce-order-items .wc-order-bulk-actions p.bulk-actions{float:left}#woocommerce-order-items .wc-order-add-item{background:#fff;vertical-align:top;border-top:none}#woocommerce-order-items .wc-order-add-item .add_item_id,#woocommerce-order-items .wc-order-add-item .select2-container{vertical-align:top}#woocommerce-order-items .wc-order-add-item .add_item_id .search-field input,#woocommerce-order-items .wc-order-add-item .select2-container .search-field input{min-width:100px}#woocommerce-order-items .wc-order-add-item .select2-container{width:400px!important;text-align:left}#woocommerce-order-items .wc-order-add-item .calculate-action,#woocommerce-order-items .wc-order-add-item .cancel-action,#woocommerce-order-items .wc-order-add-item .save-action{float:left;margin-right:2px}#woocommerce-order-items .wc-used-coupons{float:left;width:50%}#woocommerce-order-items .wc-order-totals{float:right;width:50%;margin:0;padding:0}#woocommerce-order-items .wc-order-totals .amount{font-weight:700}#woocommerce-order-items .wc-order-totals .label{vertical-align:top}#woocommerce-order-items .wc-order-totals .total{font-size:1em!important;width:10em;margin:0 0 0 .5em;box-sizing:border-box}#woocommerce-order-items .wc-order-totals .total input[type=text]{width:96%;float:right}#woocommerce-order-items .wc-order-totals .refunded-total{color:#a00}#woocommerce-order-items .refund-actions{margin-top:5px;padding-top:12px;border-top:1px solid #DFDFDF}#woocommerce-order-items .refund-actions .button{float:right;margin-left:4px}#woocommerce-order-items .refund-actions .cancel-action{float:left;margin-left:0}#woocommerce-order-items .add_meta{margin-left:0!important}#woocommerce-order-items h3 small{color:#999}#woocommerce-order-items .amount{white-space:nowrap}#woocommerce-order-items .add-items .description{margin-right:10px}.woocommerce_order_items_wrapper{margin:0;overflow:auto}.woocommerce_order_items_wrapper table.woocommerce_order_items{width:100%;background:#fff}.woocommerce_order_items_wrapper table.woocommerce_order_items thead th{background:#f8f8f8;padding:8px;font-size:11px;text-align:left;color:#555;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.woocommerce_order_items_wrapper table.woocommerce_order_items thead th:last-child{padding-right:12px}.woocommerce_order_items_wrapper table.woocommerce_order_items thead th:first-child{padding-left:12px}.woocommerce_order_items_wrapper table.woocommerce_order_items thead th.sortable{cursor:pointer}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody th,.woocommerce_order_items_wrapper table.woocommerce_order_items td{padding:8px;text-align:left;line-height:26px;vertical-align:top;border-bottom:1px dotted #ececec}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody th textarea,.woocommerce_order_items_wrapper table.woocommerce_order_items td textarea{width:100%}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody th select,.woocommerce_order_items_wrapper table.woocommerce_order_items td select{width:50%}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody th input,.woocommerce_order_items_wrapper table.woocommerce_order_items tbody th textarea,.woocommerce_order_items_wrapper table.woocommerce_order_items td input,.woocommerce_order_items_wrapper table.woocommerce_order_items td textarea{font-size:14px;padding:4px;color:#555}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody th:last-child,.woocommerce_order_items_wrapper table.woocommerce_order_items td:last-child{padding-right:12px}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody th:first-child,.woocommerce_order_items_wrapper table.woocommerce_order_items td:first-child{padding-left:12px}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody tr:last-child td{border-bottom:1px solid #dfdfdf}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody tr:first-child td{border-top:8px solid #f8f8f8}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody#order_line_items tr:first-child td{border-top:none}.woocommerce_order_items_wrapper table.woocommerce_order_items td.check-column{padding:8px 8px 8px 12px;width:1%}.woocommerce_order_items_wrapper table.woocommerce_order_items .item{min-width:200px}.woocommerce_order_items_wrapper table.woocommerce_order_items .center,.woocommerce_order_items_wrapper table.woocommerce_order_items .variation-id{text-align:center}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class{text-align:right}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost label,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost label,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost label,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax label,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity label,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax label,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class label{white-space:nowrap;color:#999;font-size:.833em}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost label input,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost label input,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost label input,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax label input,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity label input,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax label input,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class label input{display:inline}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost input,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost input,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost input,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax input,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity input,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax input,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class input{width:70px;vertical-align:middle;text-align:right}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost select,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost select,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost select,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax select,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity select,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax select,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class select{width:85px;height:26px;vertical-align:middle;font-size:1em}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost .split-input,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .split-input,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .split-input,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .split-input,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .split-input,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax .split-input,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .split-input{display:block;background:#fff;border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);margin:1px;width:70px}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost .split-input input,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .split-input input,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .split-input input,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .split-input input,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .split-input input,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax .split-input input,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .split-input input{width:100%;box-sizing:border-box;border:0;box-shadow:none;margin:0;color:#555;background:0 0}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost .split-input input:last-child,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .split-input input:last-child,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .split-input input:last-child,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .split-input input:last-child,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .split-input input:last-child,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax .split-input input:last-child,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .split-input input:last-child{color:#bbb;border-top:1px dashed #ddd}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost .view,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .view,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .view,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .view,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .view,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax .view,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .view{white-space:nowrap}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost del,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost del,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost del,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax del,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity del,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax del,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class del{color:#ccc}.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity{text-align:center}.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity input{text-align:center;width:50px}.woocommerce_order_items_wrapper table.woocommerce_order_items span.subtotal{opacity:.5}.woocommerce_order_items_wrapper table.woocommerce_order_items td.tax_class,.woocommerce_order_items_wrapper table.woocommerce_order_items th.tax_class{text-align:left}.woocommerce_order_items_wrapper table.woocommerce_order_items .calculated{border-color:#ae8ca2;border-style:dotted}.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta{width:100%}.woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta,.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta{margin:.5em 0 0}.woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr th,.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr th{border:0;padding:0 4px .5em 0;line-height:1.5em;width:20%}.woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td,.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td{padding:0 4px .5em 0;border:0;line-height:1.5em}.woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td input,.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td input{width:100%;margin:0;position:relative;border-bottom:0;box-shadow:none}.woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td textarea,.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td textarea{width:100%;height:4em;margin:0;box-shadow:none}.woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td input:focus+textarea,.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td input:focus+textarea{border-top-color:#999}.woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td p,.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td p{margin:0 0 .5em;line-height:1.5em}.woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td p:last-child,.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td p:last-child{margin:0}.woocommerce_order_items_wrapper table.woocommerce_order_items .thumb{text-align:left;width:27px}.wc-order-items-editable .delete-order-item:before,.wc-order-items-editable .delete_refund:before,.wc-order-items-editable .edit-order-item:before,.woocommerce_order_items_wrapper table.woocommerce_order_items tr.fee .thumb div:before,.woocommerce_order_items_wrapper table.woocommerce_order_items tr.refund .thumb div:before,.woocommerce_order_items_wrapper table.woocommerce_order_items tr.shipping .thumb div:before{-webkit-font-smoothing:antialiased;top:0;left:0;text-align:center;font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1}.woocommerce_order_items_wrapper table.woocommerce_order_items .thumb a{display:block}.woocommerce_order_items_wrapper table.woocommerce_order_items .thumb img{padding:1px;margin:0;border:1px solid #dfdfdf;vertical-align:middle;width:21px;height:21px}.woocommerce_order_items_wrapper table.woocommerce_order_items .refund_by,ul.order_notes li p.meta .exact-date{border-bottom:1px dotted #999}.woocommerce_order_items_wrapper table.woocommerce_order_items tr.fee .thumb div{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:14px;margin:6px}.woocommerce_order_items_wrapper table.woocommerce_order_items tr.fee .thumb div:before{margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:"";color:#bbb}.woocommerce_order_items_wrapper table.woocommerce_order_items tr.refund .thumb div{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:14px;margin:6px}.woocommerce_order_items_wrapper table.woocommerce_order_items tr.refund .thumb div:before{margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:"";color:#bbb}.woocommerce_order_items_wrapper table.woocommerce_order_items tr.shipping .thumb div{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:14px;margin:6px}.woocommerce_order_items_wrapper table.woocommerce_order_items tr.shipping .thumb div:before{margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:"";color:#bbb}.woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax{white-space:nowrap}.woocommerce_order_items_wrapper table.woocommerce_order_items td.line_tax,.woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax{padding:8px 16px 8px 8px}.woocommerce_order_items_wrapper table.woocommerce_order_items td.line_tax .delete-order-tax,.woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax .delete-order-tax{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:12px;visibility:hidden;float:right;margin:2px -16px 0 0}.woocommerce_order_items_wrapper table.woocommerce_order_items td.line_tax .delete-order-tax:before,.woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax .delete-order-tax:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";color:#fff;background-color:#000;-webkit-border-radius:100%;border-radius:100%;border:1px solid #000;box-shadow:0 1px 2px rgba(0,0,0,.2)}.woocommerce_order_items_wrapper table.woocommerce_order_items td.line_tax .delete-order-tax:hover:before,.woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax .delete-order-tax:hover:before{border-color:#a00;background-color:#a00}.woocommerce_order_items_wrapper table.woocommerce_order_items td.line_tax:hover .delete-order-tax,.woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax:hover .delete-order-tax{visibility:visible}.woocommerce_order_items_wrapper table.woocommerce_order_items small.refunded{display:block;color:#a00;white-space:nowrap}.wc-order-items-editable .edit-order-item{text-indent:-9999px;position:relative;height:1em;width:1em;display:inline-block;margin:0 .5em 0 0}.wc-order-items-editable .edit-order-item:before{margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:"";content:"\e603";color:#999}.wc-order-items-editable .edit-order-item:hover:before{color:#555}.wc-order-items-editable .delete-order-item,.wc-order-items-editable .delete_refund{text-indent:-9999px;position:relative;height:1em;width:1em;display:inline-block;margin:0}.wc-order-items-editable .delete-order-item:before,.wc-order-items-editable .delete_refund:before{margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:"";content:"\e013";color:#999}.wc-order-items-editable .delete-order-item:hover:before,.wc-order-items-editable .delete_refund:hover:before{color:#a00}.wc-order-items-editable .wc-order-edit-line-item-actions{width:2.5em;text-align:right}.wc-order-items-editable .wc-order-totals .wc-order-edit-line-item-actions{width:1.5em}.wc-order-items-editable .wc-order-totals .edit-order-item{margin:0}#woocommerce-order-downloads .buttons{float:left;padding:0;margin:0;vertical-align:top}#woocommerce-order-downloads .buttons .add_item_id,#woocommerce-order-downloads .buttons .select2-container{width:400px!important;margin-right:9px;vertical-align:top;float:left}#woocommerce-order-downloads .buttons button{margin:2px 0 0}#woocommerce-order-downloads h3 small{color:#999}#poststuff #woocommerce-order-actions .inside{margin:0;padding:0}#poststuff #woocommerce-order-actions .inside ul.order_actions li{padding:6px 10px;box-sizing:border-box}#poststuff #woocommerce-order-actions .inside ul.order_actions li:last-child{border-bottom:0}#poststuff #woocommerce-order-notes .inside{margin:0;padding:0}#poststuff #woocommerce-order-notes .inside ul.order_notes li{padding:0 10px}#woocommerce_customers p.search-box{margin:6px 0 4px;float:left}#woocommerce_customers .tablenav{float:right;clear:none}.widefat.customers td{vertical-align:middle;padding:4px 7px}.widefat .column-order_title{width:15%}.widefat .column-order_title time{display:block;color:#999;margin:3px 0}.widefat .column-orders,.widefat .column-paying,.widefat .column-spent{text-align:center;width:8%}.widefat .column-last_order{width:11%}.widefat .column-order_actions,.widefat .column-user_actions,.widefat .column-wc_actions{width:110px}.widefat .column-order_actions a.button,.widefat .column-user_actions a.button,.widefat .column-wc_actions a.button{float:left;margin:0 4px 2px 0;cursor:pointer;padding:3px 4px;height:auto}.widefat .column-order_actions a.button img,.widefat .column-user_actions a.button img,.widefat .column-wc_actions a.button img{display:block;width:12px;height:auto}.widefat small.meta{display:block;color:#999;font-size:inherit;margin:3px 0}.widefat .column-order_date,.widefat .column-order_total{width:9%}.widefat .column-order_status{width:45px;text-align:center}.widefat .column-order_status mark{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;background:0 0;font-size:1.4em;margin:0 auto}.widefat .column-order_status mark.cancelled:after,.widefat .column-order_status mark.completed:after,.widefat .column-order_status mark.failed:after,.widefat .column-order_status mark.on-hold:after,.widefat .column-order_status mark.pending:after,.widefat .column-order_status mark.processing:after,.widefat .column-order_status mark.refunded:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}.column-customer_message .note-on:after,.column-order_notes .note-on:after{speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;top:0;left:0;text-align:center;line-height:16px;font-family:WooCommerce}.widefat .column-order_status mark.pending:after{content:"\e012";color:#ffba00}.widefat .column-order_status mark.completed:after{content:"\e015";color:#2ea2cc}.widefat .column-order_status mark.on-hold:after{content:"\e033";color:#999}.widefat .column-order_status mark.failed:after{content:"\e016";color:#d0c21f}.widefat .column-order_status mark.cancelled:after{content:"\e013";color:#a00}.widefat .column-order_status mark.processing:after{content:"\e011";color:#73a724}.widefat .column-order_status mark.refunded:after{content:"\e014";color:#999}.widefat td.column-order_status{padding-top:9px}.column-customer_message .note-on{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;margin:0 auto;color:#999}.column-customer_message .note-on:after{margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:""}.column-order_notes .note-on{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;margin:0 auto;color:#999}.column-order_notes .note-on:after{margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:""}.attributes-table .attribute-actions .configure-terms:after,.order_actions .complete:after,.order_actions .processing:after,.order_actions .view:after,.user_actions .edit:after,.user_actions .link:after,.user_actions .refresh:after,.user_actions .view:after{speak:none;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;top:0;left:0;line-height:1.85;margin:0;text-align:center;font-weight:400}.order_actions .complete,.order_actions .processing,.order_actions .view{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}.order_actions .complete:after,.order_actions .processing:after,.order_actions .view:after{font-family:WooCommerce;text-indent:0;position:absolute;width:100%;height:100%}.order_actions .processing:after{content:"\e00f"}.order_actions .complete:after{content:"\e017"}.order_actions .view:after{content:"\e010"}.user_actions .edit,.user_actions .link,.user_actions .refresh,.user_actions .view{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}.user_actions .edit:after,.user_actions .link:after,.user_actions .refresh:after,.user_actions .view:after{font-family:WooCommerce;text-indent:0;position:absolute;width:100%;height:100%}.user_actions .edit:after{content:"\e603"}.user_actions .link:after{content:"\e00d"}.user_actions .view:after{content:"\e010"}.user_actions .refresh:after{content:"\e031"}.attributes-table td,.attributes-table th{width:15%;vertical-align:top}.attributes-table .attribute-terms{width:32%}.attributes-table .attribute-actions{width:2em}.attributes-table .attribute-actions .configure-terms{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}.attributes-table .attribute-actions .configure-terms:after{text-indent:0;position:absolute;width:100%;height:100%;content:"";font-family:Dashicons}ul.order_notes{padding:2px 0 0}ul.order_notes li .note_content{padding:10px;background:#efefef;position:relative}ul.order_notes li .note_content p{margin:0;padding:0;word-wrap:break-word}ul.order_notes li p.meta{padding:10px;color:#999;margin:0;font-size:11px}ul.order_notes li a.delete_note{color:#a00}table.wp-list-table .row-actions,table.wp-list-table span.na{color:#999}ul.order_notes li .note_content:after{content:"";display:block;position:absolute;bottom:-10px;left:20px;width:0;height:0;border-width:10px 10px 0 0;border-style:solid;border-color:#efefef transparent}ul.order_notes li.customer-note .note_content{background:#d7cad2}ul.order_notes li.customer-note .note_content:after{border-color:#d7cad2 transparent}.add_note{border-top:1px solid #ddd;padding:10px 10px 0}.add_note h4{margin-top:5px!important}.add_note #add_order_note{width:100%;height:50px}table.wp-list-table .column-thumb{width:52px;text-align:center;white-space:nowrap}table.wp-list-table .column-name{width:22%}table.wp-list-table .column-product_cat,table.wp-list-table .column-product_tag{width:11%!important}table.wp-list-table .column-featured,table.wp-list-table .column-product_type{width:48px;text-align:left!important}table.wp-list-table .column-customer_message,table.wp-list-table .column-order_notes{width:48px;text-align:center}table.wp-list-table .column-customer_message img,table.wp-list-table .column-order_notes img{margin:0 auto;padding-top:0!important}table.wp-list-table .manage-column.column-featured img,table.wp-list-table .manage-column.column-product_type img{padding-left:2px}table.wp-list-table .column-price .woocommerce-price-suffix{display:none}table.wp-list-table img{margin:1px 2px}table.wp-list-table td.column-thumb img{margin:0;width:auto;height:auto;max-width:40px;max-height:40px;vertical-align:middle}table.wp-list-table .column-is_in_stock{text-align:left!important}table.wp-list-table .notes_head:after,table.wp-list-table .order-notes_head:after,table.wp-list-table .status_head:after,table.wp-list-table span.product-type:before,table.wp-list-table span.wc-featured:before,table.wp-list-table span.wc-image:before,table.wp-list-table span.wc-type:before{text-align:center;line-height:1;font-family:WooCommerce;speak:none;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;top:0;left:0}table.wp-list-table span.wc-featured,table.wp-list-table span.wc-image,table.wp-list-table span.wc-type{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;margin:0 auto}table.wp-list-table span.wc-featured:before,table.wp-list-table span.wc-image:before,table.wp-list-table span.wc-type:before{font-weight:400;margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:""}table.wp-list-table span.wc-featured{margin:0;cursor:pointer}table.wp-list-table span.wc-featured:before{content:"\e020"}table.wp-list-table span.wc-featured.not-featured:before{content:"\e021"}table.wp-list-table td.column-featured span.wc-featured{font-size:1.2em}table.wp-list-table span.wc-type{margin:0}table.wp-list-table span.wc-type:before{content:"\e01d"}table.wp-list-table span.product-type{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:1.2em}table.wp-list-table span.product-type:before{font-weight:400;margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:""}table.wp-list-table span.product-type.grouped:before{content:"\e002"}table.wp-list-table span.product-type.external:before{content:"\e034"}table.wp-list-table span.product-type.variable:before{content:"\e003"}table.wp-list-table span.product-type.downloadable:before{content:"\e001"}table.wp-list-table span.product-type.virtual:before{content:"\e000"}table.wp-list-table mark.instock{font-weight:700;color:#7ad03a;background:0 0;line-height:1}table.wp-list-table mark.outofstock{font-weight:700;color:#a44;background:0 0;line-height:1}table.wp-list-table .notes_head,table.wp-list-table .order-notes_head,table.wp-list-table .status_head{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;margin:0 auto}table.wp-list-table .notes_head:after,table.wp-list-table .order-notes_head:after,table.wp-list-table .status_head:after{font-weight:400;margin:0;text-indent:0;position:absolute;width:100%;height:100%}table.wc_emails .wc-email-settings-table-name,table.wc_emails td.name,table.wc_gateways .wc-email-settings-table-name,table.wc_gateways td.name,table.wc_shipping .wc-email-settings-table-name,table.wc_shipping td.name{font-weight:700}table.wp-list-table .order-notes_head:after{content:"\e028"}table.wp-list-table .notes_head:after{content:"\e026"}table.wp-list-table .status_head:after{content:"\e011"}table.wp-list-table .column-order_items{width:12%}table.wp-list-table .column-order_items table.order_items{width:100%;margin:3px 0 0;padding:0;display:none}table.wp-list-table .column-order_items table.order_items td{border:0;margin:0;padding:0 0 3px}table.wp-list-table .column-order_items table.order_items td.qty{color:#999;padding-right:6px;text-align:left}mark.notice{background:#fff;color:#a00;margin:0 0 0 10px}a.export_rates,a.import_rates{float:right;margin-left:9px;margin-top:-2px;margin-bottom:0}#rates-search{float:right}#rates-search input.wc-tax-rates-search-field{padding:4px 8px;font-size:1.2em}table.wc_input_table,table.wc_tax_rates{width:100%}table.wc_input_table span.tips,table.wc_tax_rates span.tips{color:#2ea2cc}table.wc_input_table td,table.wc_tax_rates td{padding:0;border-right:1px solid #DFDFDF;border-bottom:1px solid #DFDFDF;border-top:0;background:#fff}table.wc_input_table td input[type=text],table.wc_input_table td input[type=number],table.wc_tax_rates td input[type=text],table.wc_tax_rates td input[type=number]{width:100%;padding:5px 7px;margin:0;border:0;background:0 0}table.wc_input_table td.apply_to_shipping,table.wc_input_table td.compound,table.wc_tax_rates td.apply_to_shipping,table.wc_tax_rates td.compound{padding:5px 7px;vertical-align:middle}table.wc_input_table td.apply_to_shipping input,table.wc_input_table td.compound input,table.wc_tax_rates td.apply_to_shipping input,table.wc_tax_rates td.compound input{width:auto;padding:0}table.wc_input_table td:last-child,table.wc_tax_rates td:last-child{border-right:0}table.wc_input_table tr.current td,table.wc_tax_rates tr.current td{background-color:#fefbcc}table.wc_input_table .cost,table.wc_input_table .cost input,table.wc_input_table .item_cost,table.wc_input_table .item_cost input,table.wc_tax_rates .cost,table.wc_tax_rates .cost input,table.wc_tax_rates .item_cost,table.wc_tax_rates .item_cost input{text-align:right}table.wc_input_table th.sort,table.wc_tax_rates th.sort{width:17px;padding:0 4px}table.wc_input_table td.sort,table.wc_tax_rates td.sort{padding:0 4px}table.wc_input_table .ui-sortable:not(.ui-sortable-disabled) td.sort,table.wc_tax_rates .ui-sortable:not(.ui-sortable-disabled) td.sort{cursor:move;background:#f9f9f9;text-align:center;vertical-align:middle}table.wc_input_table .ui-sortable:not(.ui-sortable-disabled) td.sort:before,table.wc_tax_rates .ui-sortable:not(.ui-sortable-disabled) td.sort:before{content:"\e032";font-family:WooCommerce;text-align:center;line-height:1;color:#999;display:block;width:17px;float:left;height:100%}table.wc_input_table .ui-sortable:not(.ui-sortable-disabled) td.sort:hover:before,table.wc_tax_rates .ui-sortable:not(.ui-sortable-disabled) td.sort:hover:before{color:#333}table.wc_input_table .button,table.wc_tax_rates .button{float:left;margin-right:5px}table.wc_input_table .export,table.wc_input_table .import,table.wc_tax_rates .export,table.wc_tax_rates .import{float:right;margin-right:0;margin-left:5px}table.wc_input_table span.tips,table.wc_tax_rates span.tips{padding:0 3px}table.wc_input_table .pagination,table.wc_tax_rates .pagination{float:right}table.wc_input_table .pagination .button,table.wc_tax_rates .pagination .button{margin-left:5px;margin-right:0}table.wc_input_table .pagination .current,table.wc_tax_rates .pagination .current{background:#bbb;text-shadow:none}table.wc_input_table tfoot th,table.wc_tax_rates tfoot th{padding-left:20px;padding-right:20px}table.wc_input_table tr:last-child td,table.wc_tax_rates tr:last-child td{border-bottom:0}table.wc_emails,table.wc_gateways,table.wc_shipping{position:relative}table.wc_emails td,table.wc_gateways td,table.wc_shipping td{vertical-align:middle;padding:7px;line-height:2em}table.wc_emails tr:nth-child(odd) td,table.wc_gateways tr:nth-child(odd) td,table.wc_shipping tr:nth-child(odd) td{background:#f9f9f9}table.wc_emails th,table.wc_gateways th,table.wc_shipping th{padding:9px 7px!important;vertical-align:middle}table.wc_emails .settings,table.wc_gateways .settings,table.wc_shipping .settings{text-align:right}table.wc_emails .default,table.wc_emails .radio,table.wc_emails .status,table.wc_gateways .default,table.wc_gateways .radio,table.wc_gateways .status,table.wc_shipping .default,table.wc_shipping .radio,table.wc_shipping .status{text-align:center}table.wc_emails .default .tips,table.wc_emails .radio .tips,table.wc_emails .status .tips,table.wc_gateways .default .tips,table.wc_gateways .radio .tips,table.wc_gateways .status .tips,table.wc_shipping .default .tips,table.wc_shipping .radio .tips,table.wc_shipping .status .tips{margin:0 auto}table.wc_emails .default input,table.wc_emails .radio input,table.wc_emails .status input,table.wc_gateways .default input,table.wc_gateways .radio input,table.wc_gateways .status input,table.wc_shipping .default input,table.wc_shipping .radio input,table.wc_shipping .status input{margin:0}table.wc_emails th.sort,table.wc_gateways th.sort,table.wc_shipping th.sort{width:28px;padding:0}table.wc_emails td.sort,table.wc_gateways td.sort,table.wc_shipping td.sort{padding:0 7px;cursor:move;text-align:center;vertical-align:middle}table.wc_emails td.sort:before,table.wc_gateways td.sort:before,table.wc_shipping td.sort:before{content:"\e032";font-family:WooCommerce;text-align:center;line-height:1;color:#ccc;display:block;width:17px;float:left;height:100%}table.wc_emails .wc-email-settings-table-name span,table.wc_gateways .wc-email-settings-table-name span,table.wc_shipping .wc-email-settings-table-name span{font-weight:400;color:#999;margin:0 0 0 4px!important}table.wc_emails .wc-email-settings-table-status,table.wc_gateways .wc-email-settings-table-status,table.wc_shipping .wc-email-settings-table-status{text-align:center;width:1em}table.wc_emails .wc-email-settings-table-status .tips,table.wc_gateways .wc-email-settings-table-status .tips,table.wc_shipping .wc-email-settings-table-status .tips{margin:0 auto}table.wc_emails .wc-email-settings-table-actions a,table.wc_gateways .wc-email-settings-table-actions a,table.wc_shipping .wc-email-settings-table-actions a{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}table.wc_emails .wc-email-settings-table-actions a:after,table.wc_gateways .wc-email-settings-table-actions a:after,table.wc_shipping .wc-email-settings-table-actions a:after{speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";font-family:Dashicons;line-height:1.85}img.help_tip{margin:0 0 0 9px;vertical-align:middle}.postbox img.help_tip{margin-top:0}.postbox .woocommerce-help-tip{margin:0 0 0 9px}.status-enabled,.status-manual{font-size:1.4em;display:block;text-indent:-9999px;position:relative;height:1em;width:1em}.status-enabled:before,.status-manual:before{line-height:1;margin:0;position:absolute;width:100%;height:100%;font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;text-indent:0;top:0;left:0;text-align:center}.status-manual:before{content:"";color:#999}.status-enabled:before{content:"";color:#a46497}.woocommerce .woo-nav-tab-wrapper{margin-bottom:16px!important}.woocommerce .subsubsub{margin:-8px 0 0}.woocommerce #template div{margin:0}.woocommerce #template div p .button{float:right;margin-left:10px;margin-top:-4px}.woocommerce #template div .editor textarea{margin-bottom:8px}.woocommerce textarea[disabled=disabled]{background:#DFDFDF!important}.woocommerce table.form-table{margin:0;position:relative}.woocommerce table.form-table .forminp-radio ul{margin:0}.woocommerce table.form-table .forminp-radio ul li{line-height:1.4em}.woocommerce table.form-table textarea.input-text{height:100%;min-width:150px;display:block}.woocommerce table.form-table input.regular-input{width:25em}.woocommerce table.form-table textarea.wide-input{width:100%}.woocommerce table.form-table .woocommerce-help-tip,.woocommerce table.form-table img.help_tip{padding:0;margin:-4px 0 0 5px;vertical-align:middle;cursor:help;line-height:1}.woocommerce table.form-table span.help_tip{cursor:help;color:#2ea2cc}.woocommerce table.form-table th{position:relative;padding-right:24px}.woocommerce table.form-table .select2-container{display:block;max-width:350px;vertical-align:top;margin-bottom:3px}.woocommerce table.form-table table.widefat th{padding-right:inherit}.woocommerce table.form-table th .woocommerce-help-tip,.woocommerce table.form-table th img.help_tip{margin:0 -24px 0 0;float:right}.woocommerce table.form-table .wp-list-table .woocommerce-help-tip{float:none}.woocommerce table.form-table fieldset{margin-top:4px}.woocommerce table.form-table fieldset .woocommerce-help-tip,.woocommerce table.form-table fieldset img.help_tip{margin:-3px 0 0 5px}.woocommerce table.form-table fieldset p.description{margin-bottom:8px}.woocommerce table.form-table fieldset:first-child{margin-top:0}.woocommerce table.form-table .iris-picker{z-index:100;display:none;position:absolute;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.2)}.woocommerce table.form-table .iris-picker .ui-slider{border:0!important;margin:0!important;width:auto!important;height:auto!important;background:none!important}.woocommerce table.form-table .iris-picker .ui-slider .ui-slider-handle{margin-bottom:0!important}.woocommerce table.form-table .colorpickpreview{padding:3px 3px 3px 20px;border:1px solid #ddd;border-right:0}.woocommerce table.form-table .colorpick{border-left:0}.woocommerce table.form-table .image_width_settings{vertical-align:middle}.woocommerce table.form-table .image_width_settings label{margin-left:10px}.woocommerce table.form-table .wc_emails_wrapper{padding:0 15px 10px 0}.woocommerce #tabs-wrap table a.remove{margin-left:4px}.woocommerce #tabs-wrap table p{margin:0 0 4px!important;overflow:hidden;zoom:1}.woocommerce #tabs-wrap table p a.add{float:left}#wp-excerpt-editor-container{background:#fff}#product_variation-parent #parent_id{width:100%}#postimagediv img{border:1px solid #d5d5d5;max-width:100%}#woocommerce-product-images .inside{margin:0;padding:0}#woocommerce-product-images .inside .add_product_images{padding:0 12px 12px}#woocommerce-product-images .inside #product_images_container{padding:0 0 0 9px}#woocommerce-product-images .inside #product_images_container ul{margin:0;padding:0}#woocommerce-product-images .inside #product_images_container ul:after,#woocommerce-product-images .inside #product_images_container ul:before{content:" ";display:table}#woocommerce-product-images .inside #product_images_container ul:after{clear:both}#woocommerce-product-images .inside #product_images_container ul li.add,#woocommerce-product-images .inside #product_images_container ul li.image,#woocommerce-product-images .inside #product_images_container ul li.wc-metabox-sortable-placeholder{width:80px;float:left;cursor:move;border:1px solid #d5d5d5;margin:9px 9px 0 0;background:#f7f7f7;border-radius:2px;position:relative;box-sizing:border-box}#woocommerce-product-images .inside #product_images_container ul li.add img,#woocommerce-product-images .inside #product_images_container ul li.image img,#woocommerce-product-images .inside #product_images_container ul li.wc-metabox-sortable-placeholder img{width:100%;height:auto;display:block}#woocommerce-product-images .inside #product_images_container ul li.wc-metabox-sortable-placeholder{border:3px dashed #ddd;position:relative}#woocommerce-product-images .inside #product_images_container ul li.wc-metabox-sortable-placeholder:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";font-size:2.618em;line-height:72px;color:#ddd}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.delete:before,#woocommerce-product-images .inside #product_images_container ul ul.actions li a.view:before{line-height:1;color:#fff;background-color:#000;font-family:WooCommerce;font-weight:400;font-variant:normal;-webkit-font-smoothing:antialiased;text-align:center;left:0;speak:none;text-transform:none}#woocommerce-product-images .inside #product_images_container ul ul.actions{position:absolute;top:-8px;right:-8px;padding:2px;display:none}#woocommerce-product-images .inside #product_images_container ul ul.actions li{float:right;margin:0 0 0 2px}#woocommerce-product-images .inside #product_images_container ul ul.actions li a{width:1em;margin:0;height:0;display:block;overflow:hidden}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.tips{cursor:pointer}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.view{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:1.4em}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.view:before{margin:0;text-indent:0;position:absolute;top:0;width:100%;height:100%;content:""}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.delete{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:1.4em}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.delete:before{margin:0;text-indent:0;position:absolute;top:0;width:100%;height:100%;content:"";border-radius:100%;box-shadow:0 1px 2px rgba(0,0,0,.2)}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.delete:hover before{background-color:#a00}#woocommerce-product-images .inside #product_images_container ul li:hover ul.actions{display:block}#woocommerce-product-data .hndle{padding:10px}#woocommerce-product-data .hndle span{display:block;vertical-align:middle;line-height:24px}#woocommerce-product-data .hndle span span{display:inline;line-height:inherit;vertical-align:baseline}#woocommerce-product-data .hndle label{padding-right:1em;font-size:12px;vertical-align:baseline}#woocommerce-product-data .hndle label:first-child{margin-right:1em;border-right:1px solid #dfdfdf}#woocommerce-product-data .hndle input,#woocommerce-product-data .hndle select{margin:-3px 0 0 .5em;vertical-align:middle}#woocommerce-product-data>.handlediv{margin-top:4px}#woocommerce-product-data .wrap{margin:0}#woocommerce-coupon-description{padding:3px 8px;font-size:1.7em;line-height:1.42em;height:auto;width:100%;outline:0;margin:10px 0;display:block}#woocommerce-coupon-description::-webkit-input-placeholder{line-height:1.42em;color:#bbb}#woocommerce-coupon-description::-moz-placeholder{line-height:1.42em;color:#bbb}#woocommerce-coupon-description:-ms-input-placeholder{line-height:1.42em;color:#bbb}#woocommerce-coupon-description:-moz-placeholder{line-height:1.42em;color:#bbb}#woocommerce-coupon-data .panel-wrap,#woocommerce-product-data .panel-wrap{background:#fff}#woocommerce-coupon-data .wc-metaboxes-wrapper,#woocommerce-coupon-data .woocommerce_options_panel,#woocommerce-product-data .wc-metaboxes-wrapper,#woocommerce-product-data .woocommerce_options_panel{float:left;width:80%}#woocommerce-coupon-data .wc-metaboxes-wrapper .wc-radios,#woocommerce-coupon-data .woocommerce_options_panel .wc-radios,#woocommerce-product-data .wc-metaboxes-wrapper .wc-radios,#woocommerce-product-data .woocommerce_options_panel .wc-radios{display:block;float:left;margin:0}#woocommerce-coupon-data .wc-metaboxes-wrapper .wc-radios li,#woocommerce-coupon-data .woocommerce_options_panel .wc-radios li,#woocommerce-product-data .wc-metaboxes-wrapper .wc-radios li,#woocommerce-product-data .woocommerce_options_panel .wc-radios li{display:block;padding:0 0 10px}#woocommerce-coupon-data .wc-metaboxes-wrapper .wc-radios li input,#woocommerce-coupon-data .woocommerce_options_panel .wc-radios li input,#woocommerce-product-data .wc-metaboxes-wrapper .wc-radios li input,#woocommerce-product-data .woocommerce_options_panel .wc-radios li input{width:auto}#woocommerce-coupon-data .panel-wrap,#woocommerce-product-data .panel-wrap,.woocommerce .panel-wrap{overflow:hidden}#woocommerce-coupon-data ul.wc-tabs,#woocommerce-product-data ul.wc-tabs,.woocommerce ul.wc-tabs{margin:0;width:20%;float:left;line-height:1em;padding:0 0 10px;position:relative;background-color:#fafafa;border-right:1px solid #eee;box-sizing:border-box}#woocommerce-coupon-data ul.wc-tabs:after,#woocommerce-product-data ul.wc-tabs:after,.woocommerce ul.wc-tabs:after{content:"";display:block;width:100%;height:9999em;position:absolute;bottom:-9999em;left:0;background-color:#fafafa;border-right:1px solid #eee}#woocommerce-coupon-data ul.wc-tabs li,#woocommerce-product-data ul.wc-tabs li,.woocommerce ul.wc-tabs li{margin:0;padding:0;display:block;position:relative}#woocommerce-coupon-data ul.wc-tabs li a,#woocommerce-product-data ul.wc-tabs li a,.woocommerce ul.wc-tabs li a{margin:0;padding:10px;display:block;box-shadow:none;text-decoration:none;line-height:20px!important;border-bottom:1px solid #eee}#woocommerce-coupon-data ul.wc-tabs li a:before,#woocommerce-product-data ul.wc-tabs li a:before,.woocommerce ul.wc-tabs li a:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-right:.618em;content:"";text-decoration:none}#woocommerce-coupon-data ul.wc-tabs li.general_options a:before,#woocommerce-product-data ul.wc-tabs li.general_options a:before,.woocommerce ul.wc-tabs li.general_options a:before{content:"\e006"}#woocommerce-coupon-data ul.wc-tabs li.inventory_options a:before,#woocommerce-product-data ul.wc-tabs li.inventory_options a:before,.woocommerce ul.wc-tabs li.inventory_options a:before{content:"\e02c"}#woocommerce-coupon-data ul.wc-tabs li.shipping_options a:before,#woocommerce-product-data ul.wc-tabs li.shipping_options a:before,.woocommerce ul.wc-tabs li.shipping_options a:before{content:"\e01a"}#woocommerce-coupon-data ul.wc-tabs li.linked_product_options a:before,#woocommerce-product-data ul.wc-tabs li.linked_product_options a:before,.woocommerce ul.wc-tabs li.linked_product_options a:before{content:"\e00d"}#woocommerce-coupon-data ul.wc-tabs li.attribute_options a:before,#woocommerce-product-data ul.wc-tabs li.attribute_options a:before,.woocommerce ul.wc-tabs li.attribute_options a:before{content:"\e02b"}#woocommerce-coupon-data ul.wc-tabs li.advanced_options a:before,#woocommerce-product-data ul.wc-tabs li.advanced_options a:before,.woocommerce ul.wc-tabs li.advanced_options a:before{content:"\f111";font-family:Dashicons}#woocommerce-coupon-data ul.wc-tabs li.variation_options a:before,#woocommerce-product-data ul.wc-tabs li.variation_options a:before,.woocommerce ul.wc-tabs li.variation_options a:before{content:"\e003"}#woocommerce-coupon-data ul.wc-tabs li.usage_restriction_options a:before,#woocommerce-product-data ul.wc-tabs li.usage_restriction_options a:before,.woocommerce ul.wc-tabs li.usage_restriction_options a:before{content:"\e602"}#woocommerce-coupon-data ul.wc-tabs li.usage_limit_options a:before,#woocommerce-product-data ul.wc-tabs li.usage_limit_options a:before,.woocommerce ul.wc-tabs li.usage_limit_options a:before{content:"\e601"}#woocommerce-coupon-data ul.wc-tabs li.general_coupon_data a:before,#woocommerce-product-data ul.wc-tabs li.general_coupon_data a:before,.woocommerce ul.wc-tabs li.general_coupon_data a:before{content:"\e600"}#woocommerce-coupon-data ul.wc-tabs li.active a,#woocommerce-product-data ul.wc-tabs li.active a,.woocommerce ul.wc-tabs li.active a{color:#555;position:relative;background-color:#eee}.woocommerce_page_wc-settings .shippingrows th.check-column{padding-top:20px}.woocommerce_page_wc-settings .shippingrows tfoot th{padding-left:10px}.woocommerce_page_wc-settings .shippingrows .add.button:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-right:.618em;content:"";text-decoration:none}.woocommerce_page_wc-settings h3.wc-settings-sub-title{font-size:1.2em}#woocommerce-coupon-data .inside,#woocommerce-order-data .inside,#woocommerce-order-downloads .inside,#woocommerce-product-data .inside,#woocommerce-product-type-options .inside{margin:0;padding:0}.panel,.woocommerce_options_panel{padding:9px;color:#555}.panel,.woocommerce_page_settings .woocommerce_options_panel{padding:0}#woocommerce-product-specs .inside,#woocommerce-product-type-options .panel{margin:0;padding:9px}#woocommerce-product-type-options .panel p,.woocommerce_options_panel fieldset.form-field,.woocommerce_options_panel p{margin:0 0 9px;font-size:12px;padding:5px 9px;line-height:24px}#woocommerce-product-type-options .panel p:after,.woocommerce_options_panel fieldset.form-field:after,.woocommerce_options_panel p:after{content:".";display:block;height:0;clear:both;visibility:hidden}.woocommerce_options_panel .checkbox,.woocommerce_variable_attributes .checkbox{width:auto;margin:3px 0;vertical-align:middle}.woocommerce_options_panel .downloadable_files table,.woocommerce_variations .downloadable_files table{width:100%;padding:0!important}.woocommerce_options_panel .downloadable_files table th,.woocommerce_variations .downloadable_files table th{padding:7px 0 7px 7px!important}.woocommerce_options_panel .downloadable_files table td,.woocommerce_variations .downloadable_files table td{vertical-align:middle!important;padding:4px 0 4px 7px!important;position:relative}.woocommerce_options_panel .downloadable_files table td:last-child,.woocommerce_variations .downloadable_files table td:last-child{padding-right:7px!important}.woocommerce_options_panel .downloadable_files table td input.input_text,.woocommerce_variations .downloadable_files table td input.input_text{width:100%;float:none;margin:1px 0;min-width:0}.woocommerce_options_panel .downloadable_files table td .upload_file_button,.woocommerce_variations .downloadable_files table td .upload_file_button{float:right;width:auto;cursor:pointer}.woocommerce_options_panel .downloadable_files table td .delete,.woocommerce_variations .downloadable_files table td .delete{display:block;text-indent:-9999px;position:relative;height:1em;width:1em}.woocommerce_options_panel .downloadable_files table td .delete:before,.woocommerce_variations .downloadable_files table td .delete:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";content:"\e013";color:#999}.woocommerce_options_panel .downloadable_files table td .delete:hover:before,.woocommerce_variations .downloadable_files table td .delete:hover:before{color:#a00}.woocommerce_options_panel .downloadable_files table th.sort,.woocommerce_variations .downloadable_files table th.sort{width:17px;padding:0}.woocommerce_options_panel .downloadable_files table td.sort,.woocommerce_variations .downloadable_files table td.sort{padding:0 8px;cursor:move;background:#f9f9f9;text-align:center;vertical-align:middle}.woocommerce_options_panel .downloadable_files table td.sort:before,.woocommerce_variations .downloadable_files table td.sort:before{content:"\e032";font-family:WooCommerce;text-align:center;line-height:1;color:#999;display:block;width:17px;float:left;height:100%}.woocommerce_options_panel .downloadable_files table td.sort:hover:before,.woocommerce_variations .downloadable_files table td.sort:hover:before{color:#333}.woocommerce_variation h3 .sort{cursor:move;text-align:center;float:right;height:26px;width:17px;visibility:hidden;vertical-align:middle;margin-right:.5em;color:#a0a5aa}.woocommerce_variation h3 .sort:before{content:"\e032";font-family:WooCommerce;text-align:center;cursor:move;display:block;width:17px;line-height:28px}.woocommerce_variation h3 .sort:hover{color:#777}.woocommerce_variation h3:hover .sort,.woocommerce_variation.ui-sortable-helper .sort{visibility:visible}.woocommerce_options_panel{min-height:175px;box-sizing:border-box}.woocommerce_options_panel .downloadable_files{padding:0 9px 0 162px;position:relative;margin:9px 0}.woocommerce_options_panel .downloadable_files label{position:absolute;left:0;margin:0 0 0 12px;line-height:24px}.woocommerce_options_panel p{margin:9px 0}.woocommerce_options_panel fieldset.form-field,.woocommerce_options_panel p.form-field{padding:5px 20px 5px 162px!important}.woocommerce_options_panel .sale_price_dates_fields .short:first-of-type{margin-bottom:1em}.woocommerce_options_panel .sale_price_dates_fields .short:nth-of-type(2){clear:left}.woocommerce_options_panel label,.woocommerce_options_panel legend{float:left;width:150px;padding:0;margin:0 0 0 -150px}.woocommerce_options_panel label .req,.woocommerce_options_panel legend .req{font-weight:700;font-style:normal;color:#a00}.woocommerce_options_panel .description{padding:0;margin:0 0 0 7px;clear:none;display:inline}.woocommerce_options_panel .description-block{margin-left:0;display:block}.woocommerce_options_panel input,.woocommerce_options_panel select,.woocommerce_options_panel textarea{margin:0}.woocommerce_options_panel textarea{height:3.5em;line-height:1.5em;vertical-align:top}.woocommerce_options_panel input[type=text],.woocommerce_options_panel input[type=number],.woocommerce_options_panel input[type=email]{width:50%;float:left}.woocommerce_options_panel input.button{width:auto;margin-left:8px}.woocommerce_options_panel select{float:left}.woocommerce_options_panel .short,.woocommerce_options_panel input[type=text].short,.woocommerce_options_panel input[type=number].short,.woocommerce_options_panel input[type=email].short{width:50%}.woocommerce_options_panel .sized{width:auto!important;margin-right:6px}.woocommerce_options_panel .options_group{border-top:1px solid #fff;border-bottom:1px solid #eee}.woocommerce_options_panel .options_group:first-child{border-top:0}.woocommerce_options_panel .options_group:last-child{border-bottom:0}.woocommerce_options_panel .options_group fieldset{margin:9px 0;font-size:12px;padding:5px 9px;line-height:24px}.woocommerce_options_panel .options_group fieldset label{width:auto;float:none}.woocommerce_options_panel .options_group fieldset ul{float:left;width:50%;margin:0;padding:0}.woocommerce_options_panel .options_group fieldset ul li{margin:0;width:auto}.woocommerce_options_panel .options_group fieldset ul li input{width:auto;float:none;margin-right:4px}.woocommerce_options_panel .options_group fieldset ul.wc-radios label{margin-left:0}.woocommerce_options_panel .dimensions_field .wrap{display:block;width:50%}.woocommerce_options_panel .dimensions_field .wrap input{width:30.75%;margin-right:3.8%}.woocommerce_options_panel .dimensions_field .wrap .last{margin-right:0}.woocommerce_options_panel.padded{padding:1em}#woocommerce-product-data input.dp-applied,.woocommerce_options_panel .select2-container{float:left}#grouped_product_options,#simple_product_options,#virtual_product_options{padding:12px;font-style:italic;color:#666}.wc-metaboxes-wrapper .toolbar{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #eee;padding:9px 12px!important}.wc-metaboxes-wrapper .toolbar:first-child{border-top:0}.wc-metaboxes-wrapper .toolbar:last-child{border-bottom:0}.wc-metaboxes-wrapper .toolbar .add_variation{float:right;margin-left:5px}.wc-metaboxes-wrapper .toolbar .cancel-variation-changes,.wc-metaboxes-wrapper .toolbar .save-variation-changes{float:left;margin-right:5px}.wc-metaboxes-wrapper p.toolbar{overflow:hidden;zoom:1}.wc-metaboxes-wrapper .expand-close{margin-right:2px;color:#777;font-size:12px;font-style:italic}.wc-metaboxes-wrapper .expand-close a{background:0 0;padding:0;font-size:12px;text-decoration:none}.wc-metaboxes-wrapper#product_attributes .expand-close{float:right;line-height:28px}.wc-metaboxes-wrapper .fr,.wc-metaboxes-wrapper button.add_variable_attribute{float:right;margin:0 0 0 6px}.wc-metaboxes-wrapper .wc-metaboxes{border-bottom:1px solid #eee}.wc-metaboxes-wrapper .wc-metabox-sortable-placeholder{border-color:#bbb;background-color:#f5f5f5;margin-bottom:9px;border-width:1px;border-style:dashed}.wc-metaboxes-wrapper .wc-metabox{background:#fff;border-bottom:1px solid #eee;margin:0!important}.wc-metaboxes-wrapper .wc-metabox select{font-weight:400}.wc-metaboxes-wrapper .wc-metabox:last-of-type{border-bottom:0}.wc-metaboxes-wrapper .wc-metabox .handlediv{width:27px}.wc-metaboxes-wrapper .wc-metabox .handlediv:before{content:"\f142"!important;cursor:pointer;display:inline-block;font:400 20px/1 Dashicons;line-height:.5!important;padding:8px 10px;position:relative;right:12px;top:0}.wc-metaboxes-wrapper .wc-metabox.closed{border-radius:3px}.wc-metaboxes-wrapper .wc-metabox.closed .handlediv:before{content:"\f140"!important}.wc-metaboxes-wrapper .wc-metabox.closed h3{border:0}.wc-metaboxes-wrapper .wc-metabox h3{margin:0!important;padding:.75em .75em .75em 1em!important;font-size:1em!important;overflow:hidden;zoom:1;cursor:move}.wc-metaboxes-wrapper .wc-metabox h3 a.delete,.wc-metaboxes-wrapper .wc-metabox h3 button{float:right}.wc-metaboxes-wrapper .wc-metabox h3 a.delete{color:red;font-weight:400;line-height:26px;text-decoration:none;position:relative;visibility:hidden}.wc-metaboxes-wrapper .wc-metabox h3 strong{line-height:26px;font-weight:700}.wc-metaboxes-wrapper .wc-metabox h3 select{font-family:sans-serif;max-width:20%;margin:.25em .25em .25em 0}.wc-metaboxes-wrapper .wc-metabox h3 .handlediv{background-position:6px 5px!important;visibility:hidden;height:26px}.wc-metaboxes-wrapper .wc-metabox h3.fixed{cursor:pointer!important}.wc-metaboxes-wrapper .wc-metabox.woocommerce_variation h3{cursor:pointer;padding:.5em .75em .5em 1em!important}.wc-metaboxes-wrapper .wc-metabox.woocommerce_variation h3 .handlediv,.wc-metaboxes-wrapper .wc-metabox.woocommerce_variation h3 .sort,.wc-metaboxes-wrapper .wc-metabox.woocommerce_variation h3 a.delete{margin-top:.25em}.wc-metaboxes-wrapper .wc-metabox h3:hover .handlediv,.wc-metaboxes-wrapper .wc-metabox h3:hover a.delete,.wc-metaboxes-wrapper .wc-metabox.ui-sortable-helper .handlediv,.wc-metaboxes-wrapper .wc-metabox.ui-sortable-helper a.delete{visibility:visible}.wc-metaboxes-wrapper .wc-metabox table{width:100%;position:relative;background-color:#fdfdfd;padding:1em;border-top:1px solid #eee}.wc-metaboxes-wrapper .wc-metabox table td{text-align:left;padding:0 6px 1em 0;vertical-align:top;border:0}.wc-metaboxes-wrapper .wc-metabox table td label{text-align:left;display:block;line-height:21px}.wc-metaboxes-wrapper .wc-metabox table td input{float:left;min-width:200px}.wc-metaboxes-wrapper .wc-metabox table td input,.wc-metaboxes-wrapper .wc-metabox table td textarea{width:100%;margin:0;display:block;font-size:14px;padding:4px;color:#555}.wc-metaboxes-wrapper .wc-metabox table td .select2-container,.wc-metaboxes-wrapper .wc-metabox table td select{width:100%!important}.wc-metaboxes-wrapper .wc-metabox table td input.short{width:200px}.wc-metaboxes-wrapper .wc-metabox table td input.checkbox{width:16px;min-width:inherit;vertical-align:text-bottom;display:inline-block;float:none}.wc-metaboxes-wrapper .wc-metabox table td.attribute_name{width:200px}.wc-metaboxes-wrapper .wc-metabox table .minus,.wc-metaboxes-wrapper .wc-metabox table .plus{margin-top:6px}.wc-metaboxes-wrapper .wc-metabox table .fl{float:left}.wc-metaboxes-wrapper .wc-metabox table .fr{float:right}.variations-pagenav{float:right;line-height:24px}.variations-pagenav .displaying-num{color:#777;font-size:12px;font-style:italic}.variations-pagenav a{padding:0 10px 3px;background:rgba(0,0,0,.05);font-size:16px;font-weight:400;text-decoration:none}.variations-pagenav a.disabled,.variations-pagenav a.disabled:active,.variations-pagenav a.disabled:focus,.variations-pagenav a.disabled:hover{color:#A0A5AA;background:rgba(0,0,0,.05)}.variations-defaults{float:left}.variations-defaults select{margin:.25em .25em .25em 0}.woocommerce_variable_attributes{background-color:#fdfdfd;border-top:1px solid #eee}.woocommerce_variable_attributes .data{padding:1em 2em}.woocommerce_variable_attributes .data:after,.woocommerce_variable_attributes .data:before{content:" ";display:table}.woocommerce_variable_attributes .data:after{clear:both}.woocommerce_variable_attributes .upload_image_button{display:block;width:48px;height:48px;float:left;margin-right:20px;position:relative;cursor:pointer}.woocommerce_variable_attributes .upload_image_button img{width:100%;height:auto;display:none}.woocommerce_variable_attributes .upload_image_button:before{content:"\f128";font-family:Dashicons;position:absolute;top:0;left:0;right:0;bottom:0;text-align:center;line-height:48px;font-size:48px;font-weight:400;-webkit-font-smoothing:antialiased}.woocommerce_variable_attributes .upload_image_button.remove img{display:block}.woocommerce_variable_attributes .upload_image_button.remove:before{content:"\f335";display:none}.woocommerce_variable_attributes .upload_image_button.remove:hover:before{display:block}.woocommerce_variable_attributes .options{border:1px solid #eee;border-width:1px 0;padding:.25em 0}.woocommerce_variable_attributes .options label{display:inline-block;padding:4px 1em 2px 0}.woocommerce_variable_attributes .options input[type=checkbox]{margin-top:5px;margin-right:3px}.form-row label{display:block}.form-row input[type=number],.form-row input[type=text],.form-row select{width:100%}.form-row.dimensions_field input{width:25%;float:left;margin-right:1%}.form-row.dimensions_field input:last-of-type{margin-right:0}.form-row-first,.form-row-last{width:48%;float:right}.form-row-first{clear:both;float:left}.form-row-full{clear:both}.tips{cursor:help;text-decoration:none}img.tips{padding:5px 0 0}#tiptip_holder{display:none;position:absolute;top:0;left:0;z-index:9999999}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-7px;margin-left:-6px;border-top-color:#333}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-5px;margin-left:-6px;border-bottom-color:#333}#tiptip_holder.tip_right{padding-left:5px}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-left:-5px;border-right-color:#333}#tiptip_holder.tip_left{padding-right:5px}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-left:-7px;border-left-color:#333}#tiptip_content,.chart-tooltip,.wc_error_tip{color:#fff;font-size:.8em;max-width:150px;background:#333;text-align:center;border-radius:3px;padding:.618em 1em;box-shadow:0 1px 3px rgba(0,0,0,.2)}#tiptip_content code,.chart-tooltip code,.wc_error_tip code{padding:1px;background:#888}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border-color:transparent;border-style:solid;border-width:6px;height:0;width:0}.wc_error_tip{max-width:20em;line-height:1.8em;position:absolute;white-space:normal;background:#d82223;margin:1.5em 1px 0 -1em;z-index:9999999}.wc_error_tip:after{content:"";display:block;border:8px solid #d82223;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent;position:absolute;top:-3px;left:50%;margin:-1em 0 0 -3px}img.ui-datepicker-trigger{vertical-align:middle;margin-top:-1px;cursor:pointer}.wc-metabox-content img.ui-datepicker-trigger,.woocommerce_options_panel img.ui-datepicker-trigger{float:left;margin-right:8px;margin-top:4px;margin-left:4px}#ui-datepicker-div{display:none}.woocommerce-reports-wide.woocommerce-reports-wrap,.woocommerce-reports-wrap.woocommerce-reports-wrap{margin-left:300px;padding-top:18px}.woocommerce-reports-wide.halved,.woocommerce-reports-wrap.halved{margin:0;overflow:hidden;zoom:1}.woocommerce-reports-wide .widefat td,.woocommerce-reports-wrap .widefat td{vertical-align:top;padding:7px}.woocommerce-reports-wide .widefat td .description,.woocommerce-reports-wrap .widefat td .description{margin:4px 0 0}.woocommerce-reports-wide .postbox:after,.woocommerce-reports-wrap .postbox:after{content:".";display:block;height:0;clear:both;visibility:hidden}.woocommerce-reports-wide .postbox h3,.woocommerce-reports-wrap .postbox h3{cursor:default!important}.woocommerce-reports-wide .postbox .inside,.woocommerce-reports-wrap .postbox .inside{padding:10px;margin:0!important}.woocommerce-reports-wide .postbox h3.stats_range,.woocommerce-reports-wrap .postbox h3.stats_range{border-bottom-color:#dfdfdf;margin:0;padding:0!important}.woocommerce-reports-wide .postbox h3.stats_range .export_csv,.woocommerce-reports-wrap .postbox h3.stats_range .export_csv{float:right;line-height:26px;border-left:1px solid #dfdfdf;padding:10px;display:block;text-decoration:none}.woocommerce-reports-wide .postbox h3.stats_range .export_csv:before,.woocommerce-reports-wrap .postbox h3.stats_range .export_csv:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;content:"";text-decoration:none;margin-right:4px}.woocommerce-reports-wide .postbox h3.stats_range ul,.woocommerce-reports-wrap .postbox h3.stats_range ul{list-style:none;margin:0;padding:0;zoom:1;background:#f5f5f5}.woocommerce-reports-wide .postbox h3.stats_range ul:after,.woocommerce-reports-wide .postbox h3.stats_range ul:before,.woocommerce-reports-wrap .postbox h3.stats_range ul:after,.woocommerce-reports-wrap .postbox h3.stats_range ul:before{content:" ";display:table}.woocommerce-reports-wide .postbox h3.stats_range ul:after,.woocommerce-reports-wrap .postbox h3.stats_range ul:after{clear:both}.woocommerce-reports-wide .postbox h3.stats_range ul li,.woocommerce-reports-wrap .postbox h3.stats_range ul li{float:left;margin:0;padding:0;line-height:26px}.woocommerce-reports-wide .postbox h3.stats_range ul li a,.woocommerce-reports-wrap .postbox h3.stats_range ul li a{border-right:1px solid #dfdfdf;padding:10px;display:block;text-decoration:none}.woocommerce-reports-wide .postbox h3.stats_range ul li.active,.woocommerce-reports-wrap .postbox h3.stats_range ul li.active{background:#fff;-webkit-box-shadow:0 4px 0 0 #fff;box-shadow:0 4px 0 0 #fff}.woocommerce-reports-wide .postbox h3.stats_range ul li.active a,.woocommerce-reports-wrap .postbox h3.stats_range ul li.active a{color:#777}.woocommerce-reports-wide .postbox h3.stats_range ul li.custom,.woocommerce-reports-wrap .postbox h3.stats_range ul li.custom{padding:9px 10px;vertical-align:middle}.woocommerce-reports-wide .postbox h3.stats_range ul li.custom div,.woocommerce-reports-wide .postbox h3.stats_range ul li.custom form,.woocommerce-reports-wrap .postbox h3.stats_range ul li.custom div,.woocommerce-reports-wrap .postbox h3.stats_range ul li.custom form{display:inline;margin:0}.woocommerce-reports-wide .postbox h3.stats_range ul li.custom div input.range_datepicker,.woocommerce-reports-wide .postbox h3.stats_range ul li.custom form input.range_datepicker,.woocommerce-reports-wrap .postbox h3.stats_range ul li.custom div input.range_datepicker,.woocommerce-reports-wrap .postbox h3.stats_range ul li.custom form input.range_datepicker{padding:0;margin:0 10px 0 0;background:0 0;border:0;color:#777;text-align:center;-webkit-box-shadow:none;box-shadow:none}.woocommerce-reports-wide .postbox .chart-with-sidebar,.woocommerce-reports-wrap .postbox .chart-with-sidebar{padding:12px 12px 12px 249px;margin:0!important}.woocommerce-reports-wide .postbox .chart-with-sidebar .chart-sidebar,.woocommerce-reports-wrap .postbox .chart-with-sidebar .chart-sidebar{width:225px;margin-left:-237px;float:left}.woocommerce-reports-wide .postbox .chart-widgets,.woocommerce-reports-wrap .postbox .chart-widgets{margin:0;padding:0}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget{margin:0 0 1em;background:#fafafa;border:1px solid #dfdfdf}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget:after,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget:after{content:".";display:block;height:0;clear:both;visibility:hidden}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget h4,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget h4{background:#fff;border:1px solid #dfdfdf;border-left-width:0;border-right-width:0;padding:10px;margin:0;color:#2ea2cc;border-top-width:0;background-image:-webkit-gradient(linear,left bottom,left top,from(#ececec),to(#f9f9f9));background-image:-webkit-linear-gradient(bottom,#ececec,#f9f9f9);background-image:-moz-linear-gradient(bottom,#ececec,#f9f9f9);background-image:-o-linear-gradient(bottom,#ececec,#f9f9f9);background-image:linear-gradient(to top,#ececec,#f9f9f9)}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table td.count,.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table tr.active td,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table td.count,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table tr.active td{background:#f5f5f5}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget h4.section_title:hover,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget h4.section_title:hover{color:#a00}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section_title,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section_title{cursor:pointer}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section_title span,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section_title span{display:block}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section_title span:after,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section_title span:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin-left:.618em;content:"";text-decoration:none;float:right;font-size:.9em;line-height:1.618}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section_title.open,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section_title.open{color:#333}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section_title.open span:after,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section_title.open span:after{display:none}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section{border-bottom:1px solid #dfdfdf}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section .select2-container,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section .select2-container{width:100%!important}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section:last-of-type,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section:last-of-type{border-radius:0 0 3px 3px}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table{width:100%}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table td,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table td{padding:7px 10px;vertical-align:top;border-top:1px solid #e5e5e5;line-height:1.4em}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table td.sparkline,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table td.sparkline,form.report_filters div,form.report_filters input,form.report_filters label,form.report_filters p{vertical-align:middle}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table tr:first-child td,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table tr:first-child td{border-top:0}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table td.name,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table td.name{max-width:175px}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table td.name a,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table td.name a{word-wrap:break-word}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table .wc_sparkline,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table .wc_sparkline{width:32px;height:1em;display:block;float:right}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget form,.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget p,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget form,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget p{margin:0;padding:10px}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget form .submit,.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget p .submit,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget form .submit,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget p .submit{margin-top:10px}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget #product_ids,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget #product_ids{width:100%}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .select_all,.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .select_none,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .select_all,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .select_none{float:right;color:#999;margin-left:4px;margin-top:10px}.woocommerce-reports-wide .postbox .chart-legend,.woocommerce-reports-wrap .postbox .chart-legend{list-style:none;margin:0 0 1em;padding:0;border:1px solid #dfdfdf;border-right-width:0;border-bottom-width:0;background:#fff}.woocommerce-reports-wide .postbox .chart-legend li,.woocommerce-reports-wrap .postbox .chart-legend li{border-right:5px solid #aaa;color:#aaa;padding:1em;display:block;margin:0;-webkit-transition:all ease .5s;box-shadow:inset 0 -1px 0 0 #dfdfdf}.woocommerce-reports-wide .postbox .chart-legend li strong,.woocommerce-reports-wrap .postbox .chart-legend li strong{font-size:1.618em;line-height:1.2em;color:#464646;font-weight:400;display:block;font-family:HelveticaNeue-Light,"Helvetica Neue Light","Helvetica Neue",sans-serif}.woocommerce-reports-wide .postbox .chart-legend li strong del,.woocommerce-reports-wrap .postbox .chart-legend li strong del{color:#e74c3c;font-weight:400}.woocommerce-reports-wide .postbox .chart-legend li:hover,.woocommerce-reports-wrap .postbox .chart-legend li:hover{box-shadow:inset 0 -1px 0 0 #dfdfdf,inset 300px 0 0 rgba(156,93,144,.1);border-right:5px solid #9c5d90!important;padding-left:1.5em;color:#9c5d90}.woocommerce-reports-wide .postbox .pie-chart-legend,.woocommerce-reports-wrap .postbox .pie-chart-legend{margin:12px 0 0;overflow:hidden}.woocommerce-reports-wide .postbox .pie-chart-legend li,.woocommerce-reports-wrap .postbox .pie-chart-legend li{float:left;margin:0;padding:6px 0 0;border-top:4px solid #999;text-align:center;box-sizing:border-box;width:50%}.woocommerce-reports-wide .postbox .stat,.woocommerce-reports-wrap .postbox .stat{font-size:1.5em!important;font-weight:700;text-align:center}.woocommerce-reports-wide .postbox .chart-placeholder,.woocommerce-reports-wrap .postbox .chart-placeholder{width:100%;height:650px;overflow:hidden;position:relative}.woocommerce-reports-wide .postbox .chart-prompt,.woocommerce-reports-wrap .postbox .chart-prompt{line-height:650px;margin:0;color:#999;font-size:1.2em;font-style:italic;text-align:center}.woocommerce-reports-wide .postbox .chart-container,.woocommerce-reports-wrap .postbox .chart-container{background:#fff;padding:12px;position:relative;border:1px solid #dfdfdf;border-radius:3px}.woocommerce-reports-wide .postbox .main .chart-legend,.woocommerce-reports-wrap .postbox .main .chart-legend{margin-top:12px}.woocommerce-reports-wide .postbox .main .chart-legend li,.woocommerce-reports-wrap .postbox .main .chart-legend li{border-right:0;margin:0 8px 0 0;float:left;border-top:4px solid #aaa}.woocommerce-reports-wide .woocommerce-reports-main,.woocommerce-reports-wrap .woocommerce-reports-main{float:left;min-width:100%}.woocommerce-reports-wide .woocommerce-reports-main table td,.woocommerce-reports-wrap .woocommerce-reports-main table td{padding:9px}.woocommerce-reports-wide .woocommerce-reports-sidebar,.woocommerce-reports-wrap .woocommerce-reports-sidebar{display:inline;width:281px;margin-left:-300px;clear:both;float:left}.woocommerce-reports-wide .woocommerce-reports-left,.woocommerce-reports-wrap .woocommerce-reports-left{width:49.5%;float:left}.woocommerce-reports-wide .woocommerce-reports-right,.woocommerce-reports-wrap .woocommerce-reports-right{width:49.5%;float:right}.woocommerce-reports-wide .column-wc_actions a.edit,.woocommerce-reports-wide .column-wc_actions a.view,.woocommerce-reports-wrap .column-wc_actions a.edit,.woocommerce-reports-wrap .column-wc_actions a.view{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}.woocommerce-reports-wide .column-wc_actions a.edit:after,.woocommerce-reports-wide .column-wc_actions a.view:after,.woocommerce-reports-wrap .column-wc_actions a.edit:after,.woocommerce-reports-wrap .column-wc_actions a.view:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;line-height:1.85}.woocommerce-reports-wide .column-wc_actions a.edit:after,.woocommerce-reports-wrap .column-wc_actions a.edit:after{content:"\e01c"}.woocommerce-reports-wide .column-wc_actions a.view:after,.woocommerce-reports-wrap .column-wc_actions a.view:after{content:"\e010"}.woocommerce-wide-reports-wrap{padding-bottom:11px}.woocommerce-wide-reports-wrap .widefat .export-data{float:right}.woocommerce-wide-reports-wrap .widefat td,.woocommerce-wide-reports-wrap .widefat th{vertical-align:middle;padding:7px}.chart-tooltip{position:absolute;display:none;line-height:1}table.bar_chart{width:100%}table.bar_chart thead th{text-align:left;color:#ccc;padding:6px 0}table.bar_chart tbody th{padding:6px 0;width:25%;text-align:left!important;font-weight:400!important;border-bottom:1px solid #fee}table.bar_chart tbody td{text-align:right;line-height:24px;padding:6px 6px 6px 0;border-bottom:1px solid #fee}table.bar_chart tbody td span{color:#8a4b75;display:block}table.bar_chart tbody td span.alt{color:#47a03e;margin-top:6px}table.bar_chart tbody td.bars{position:relative;text-align:left;padding:6px 6px 6px 0;border-bottom:1px solid #fee}table.bar_chart tbody td.bars a,table.bar_chart tbody td.bars span{text-decoration:none;clear:both;background:#8a4b75;float:left;display:block;line-height:24px;height:24px;-moz-border-radius:3px;-webkit-border-radius:3px;-o-border-radius:3px;-khtml-border-radius:3px;border-radius:3px}table.bar_chart tbody td.bars span.alt{clear:both;background:#47a03e}table.bar_chart tbody td.bars span.alt span{margin:0;color:#c5dec2!important;text-shadow:0 1px 0 #47a03e;background:0 0}@media only screen and (max-width:1280px){#order_data .order_data_column{width:48%}#order_data .order_data_column:first-child{width:100%}.woocommerce_options_panel .description{display:block;clear:both;margin-left:0}.woocommerce_options_panel .dimensions_field .wrap,.woocommerce_options_panel .short,.woocommerce_options_panel input[type=email].short,.woocommerce_options_panel input[type=number].short,.woocommerce_options_panel input[type=text].short{width:80%}.woocommerce_options_panel .downloadable_files,.woocommerce_variations .downloadable_files{padding:0;clear:both}.woocommerce_options_panel .downloadable_files label,.woocommerce_variations .downloadable_files label{position:static}.woocommerce_options_panel .downloadable_files table,.woocommerce_variations .downloadable_files table{margin:0 12px 24px;width:94%}.woocommerce_options_panel .downloadable_files table .sort,.woocommerce_variations .downloadable_files table .sort{visibility:hidden}.woocommerce_options_panel .woocommerce_variable_attributes .downloadable_files table,.woocommerce_variations .woocommerce_variable_attributes .downloadable_files table{margin:0 0 1em;width:100%}}@media only screen and (max-width:900px){#woocommerce-coupon-data ul.coupon_data_tabs,#woocommerce-product-data .wc-tabs-back,#woocommerce-product-data ul.product_data_tabs{width:10%}#woocommerce-coupon-data .wc-metaboxes-wrapper,#woocommerce-coupon-data .woocommerce_options_panel,#woocommerce-product-data .wc-metaboxes-wrapper,#woocommerce-product-data .woocommerce_options_panel{width:90%}#woocommerce-coupon-data ul.coupon_data_tabs li a,#woocommerce-product-data ul.product_data_tabs li a{position:relative;text-indent:-999px;padding:10px}#woocommerce-coupon-data ul.coupon_data_tabs li a:before,#woocommerce-product-data ul.product_data_tabs li a:before{position:absolute;top:0;right:0;bottom:0;left:0;text-indent:0;text-align:center;line-height:40px;width:100%;height:40px}}@media only screen and (max-width:782px){#wp-excerpt-media-buttons a{font-size:16px;line-height:37px;height:39px;padding:0 20px 0 15px}#wp-excerpt-editor-tools{padding-top:20px;padding-right:15px;overflow:hidden;margin-bottom:-1px}.post-type-product .wp-list-table .is-expanded td:not(.hidden),.post-type-shop_order .wp-list-table .is-expanded td:not(.hidden){overflow:visible}#woocommerce-product-data .checkbox{width:25px}.variations-pagenav{float:none;text-align:center;font-size:18px}.variations-pagenav .displaying-num{font-size:16px}.variations-pagenav a{padding:8px 20px 11px;font-size:18px}.variations-pagenav select{padding:0 20px}.variations-defaults{float:none;text-align:center;margin-top:10px}.post-type-product .wp-list-table .column-thumb{display:none;text-align:left;padding-bottom:0}.post-type-product .wp-list-table .column-thumb:before{display:none!important}.post-type-product .wp-list-table .column-thumb img{max-width:32px}.post-type-product .wp-list-table .toggle-row{top:-28px}.post-type-shop_order .wp-list-table .column-order_status{display:none;text-align:left;padding-bottom:0}.post-type-shop_order .wp-list-table .column-order_status mark{margin:0}.post-type-shop_order .wp-list-table .column-order_status:before{display:none!important}.post-type-shop_order .wp-list-table .column-customer_message,.post-type-shop_order .wp-list-table .column-order_notes{text-align:inherit}.post-type-shop_order .wp-list-table .column-order_notes .note-on{font-size:1.3em;margin:0}.post-type-shop_order .wp-list-table .toggle-row{top:-15px}}@media only screen and (max-width:500px){.woocommerce_options_panel label,.woocommerce_options_panel legend{float:none;width:auto;display:block;margin:0}.woocommerce_options_panel fieldset.form-field,.woocommerce_options_panel p.form-field{padding:5px 20px!important}}.wc-backbone-modal *{box-sizing:border-box}.wc-backbone-modal .wc-backbone-modal-content{position:fixed;top:50%;left:50%;width:500px;background:#fff;z-index:100000}.wc-backbone-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:99900}.wc-backbone-modal-main{padding-bottom:51px}.wc-backbone-modal-main article,.wc-backbone-modal-main header{display:block;position:relative}.wc-backbone-modal-main .wc-backbone-modal-header{height:50px;background:#fcfcfc;padding:0 50px 0 16px;border-bottom:1px solid #ddd}.wc-backbone-modal-main .wc-backbone-modal-header h1{margin:0;font-size:18px;font-weight:700;line-height:50px}.wc-backbone-modal-main .wc-backbone-modal-header .modal-close-link{cursor:pointer;color:#777;height:50px;width:50px;padding:0;position:absolute;top:0;right:0;text-align:center;border:0;border-left:1px solid #ddd;background-color:transparent;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.wc-backbone-modal-main .wc-backbone-modal-header .modal-close-link:before{font:400 22px/50px dashicons!important;color:#666;display:block;content:'\f335';font-weight:300}.wc-backbone-modal-main .wc-backbone-modal-header .modal-close-link:focus,.wc-backbone-modal-main .wc-backbone-modal-header .modal-close-link:hover{background:#ddd;border-color:#ccc;color:#000}.wc-backbone-modal-main .wc-backbone-modal-header .modal-close-link:focus{outline:0}.wc-backbone-modal-main article{padding:10px 16px}.wc-backbone-modal-main article .pagination{padding:10px 0 0;text-align:center}.wc-backbone-modal-main footer{position:absolute;left:0;right:0;bottom:0;z-index:100;padding:10px 16px;background:#fcfcfc;border-top:1px solid #dfdfdf;box-shadow:0 -4px 4px -4px rgba(0,0,0,.1)}.wc-backbone-modal-main footer .inner{float:right;line-height:23px}.wc-backbone-modal-main footer .inner .button{margin-bottom:0}.select2-drop{z-index:999999!important}.select2-container-multi .select2-choices .select2-search-field input{font-family:inherit;font-size:inherit;font-weight:inherit;padding:3px 5px}.select2-container{line-height:1.85em;font-size:14px} \ No newline at end of file +@charset "UTF-8";.chosen-container,.select2-container .select2-choice,.select2-results .select2-result-label{-webkit-user-select:none;-moz-user-select:none}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.woocommerce-checkout .form-row .chosen-container{width:100%!important}.woocommerce-checkout .form-row .chosen-container-single .chosen-single{height:28px;line-height:29px}.woocommerce-checkout .form-row .chosen-container-single .chosen-single div b{background:url(../images/chosen-sprite.png) 0 3px no-repeat!important}.woocommerce-checkout .form-row .chosen-container-active .chosen-single-with-drop div b{background-position:-18px 4px!important}.woocommerce-checkout .form-row .chosen-container-single .chosen-search input{line-height:13px;width:100%!important;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.woocommerce-checkout .form-row .chosen-container .chosen-drop{width:100%!important;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-resolution:144dpi){.woocommerce-checkout .form-row .chosen-container-single .chosen-single div b{background-image:url(../images/chosen-sprite@2x.png)!important;background-position:0 5px!important;background-repeat:no-repeat!important;background-size:52px 37px!important}.woocommerce-checkout .form-row .chosen-container-active .chosen-single-with-drop div b{background-position:-18px 5px!important}}.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;zoom:1;user-select:none}.chosen-container .chosen-drop{position:absolute;top:100%;left:-9999px;z-index:1010;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15)}.chosen-container.chosen-with-drop .chosen-drop{left:0}.chosen-container a{cursor:pointer}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:26px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#fff),color-stop(50%,#f6f6f6),color-stop(52%,#eee),color-stop(100%,#f4f4f4));background:-webkit-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-moz-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:-o-linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background:linear-gradient(top,#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:26px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;background:url(../images/chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-single .chosen-single abbr:hover,.chosen-container-single.chosen-disabled .chosen-single abbr:hover{background-position:-42px -10px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%;background:url(../images/chosen-sprite.png) 0 2px no-repeat}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;background:url(../images/chosen-sprite.png) 100% -20px no-repeat #fff;background:url(../images/chosen-sprite.png) 100% -20px no-repeat,-webkit-gradient(linear,50% 0,50% 100%,color-stop(1%,#eee),color-stop(15%,#fff));background:url(../images/chosen-sprite.png) 100% -20px no-repeat,-webkit-linear-gradient(#eee 1%,#fff 15%);background:url(../images/chosen-sprite.png) 100% -20px no-repeat,-moz-linear-gradient(#eee 1%,#fff 15%);background:url(../images/chosen-sprite.png) 100% -20px no-repeat,-o-linear-gradient(#eee 1%,#fff 15%);background:url(../images/chosen-sprite.png) 100% -20px no-repeat,linear-gradient(#eee 1%,#fff 15%);font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;left:-9999px}.chosen-container .chosen-results{position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#3875d7),color-stop(90%,#2a62bc));background-image:-webkit-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-moz-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:-o-linear-gradient(#3875d7 20%,#2a62bc 90%);background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;width:100%;height:auto!important;height:1%;border:1px solid #aaa;background-color:#fff;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(1%,#eee),color-stop(15%,#fff));background-image:-webkit-linear-gradient(#eee 1%,#fff 15%);background-image:-moz-linear-gradient(#eee 1%,#fff 15%);background-image:-o-linear-gradient(#eee 1%,#fff 15%);background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:5px;height:15px;outline:0;border:0!important;background:0 0!important;box-shadow:none;color:#666;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-multi .chosen-choices li.search-field .default{color:#999}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 0 3px 5px;padding:3px 20px 3px 5px;border:1px solid #aaa;border-radius:3px;background-color:#e4e4e4;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:4px;right:3px;display:block;width:12px;height:12px;background:url(../images/chosen-sprite.png) -42px 1px no-repeat;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{background-position:-42px -10px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),color-stop(100%,#eee));background-image:-webkit-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-moz-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:-o-linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-image:linear-gradient(top,#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close{background-position:-42px -10px}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;background-image:-webkit-gradient(linear,50% 0,50% 100%,color-stop(20%,#eee),color-stop(80%,#fff));background-image:-webkit-linear-gradient(#eee 20%,#fff 80%);background-image:-moz-linear-gradient(#eee 20%,#fff 80%);background-image:-o-linear-gradient(#eee 20%,#fff 80%);background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#111!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close,.chosen-disabled .chosen-single{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl .chosen-drop,.chosen-rtl.chosen-container-single-nosearch .chosen-search{left:9999px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;background:url(../images/chosen-sprite.png) -30px -20px no-repeat #fff;background:url(../images/chosen-sprite.png) -30px -20px no-repeat,-webkit-gradient(linear,50% 0,50% 100%,color-stop(1%,#eee),color-stop(15%,#fff));background:url(../images/chosen-sprite.png) -30px -20px no-repeat,-webkit-linear-gradient(#eee 1%,#fff 15%);background:url(../images/chosen-sprite.png) -30px -20px no-repeat,-moz-linear-gradient(#eee 1%,#fff 15%);background:url(../images/chosen-sprite.png) -30px -20px no-repeat,-o-linear-gradient(#eee 1%,#fff 15%);background:url(../images/chosen-sprite.png) -30px -20px no-repeat,linear-gradient(#eee 1%,#fff 15%);direction:rtl}.chosen-rtl.chosen-container-single .chosen-single div b{background-position:6px 2px}.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b{background-position:-12px 2px}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-resolution:144dpi){.chosen-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span,.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container-single .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-rtl .chosen-search input[type=text]{background-image:url(../images/chosen-sprite@2x.png)!important;background-size:52px 37px!important;background-repeat:no-repeat!important}}.select2-container{margin:0;position:relative;display:block!important;zoom:1;vertical-align:middle}.select2-container,.select2-drop,.select2-search,.select2-search input{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.select2-container .select2-choice{display:block;padding:0 0 0 8px;overflow:hidden;position:relative;border:1px solid #ccc;white-space:nowrap;color:#444;text-decoration:none;border-radius:3px;background-clip:padding-box;-webkit-touch-callout:none;-ms-user-select:none;user-select:none;background-color:#fff;font-weight:400}html[dir=rtl] .select2-container .select2-choice{padding:0 8px 0 0}.select2-container.select2-drop-above .select2-choice{border-bottom-color:#ccc;border-radius:0 0 4px 4px}.select2-container.select2-allowclear .select2-choice .select2-chosen{margin-right:42px}.select2-container .select2-choice>.select2-chosen{margin-right:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;float:none;width:auto}html[dir=rtl] .select2-container .select2-choice>.select2-chosen{margin-left:26px;margin-right:0}.select2-container .select2-choice abbr{display:none;width:12px;height:12px;position:absolute;right:24px;top:5px;font-size:1px;text-decoration:none;border:0;background:url(../images/select2.png) right top no-repeat;cursor:pointer;outline:0}.select2-container.select2-allowclear .select2-choice abbr{display:inline-block}.select2-container .select2-choice abbr:hover{background-position:right -11px;cursor:pointer}.select2-drop-mask{border:0;margin:0;padding:0;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:9998;background-color:#fff;filter:alpha(opacity=0)}.select2-drop{width:100%;margin-top:-1px;position:absolute;top:100%;background:#fff;color:#000;border:1px solid #ccc;border-top:0;border-radius:0 0 3px 3px}.select2-drop.select2-drop-above{margin-top:1px;border-top:1px solid #ccc;border-bottom:0;border-radius:3px 3px 0 0}.select2-drop-active{border:1px solid #666;border-top:none}.select2-drop.select2-drop-above.select2-drop-active{border-top:1px solid #666}.select2-drop-auto-width{border-top:1px solid #ccc;width:auto}.select2-drop-auto-width .select2-search{padding-top:4px}.select2-container .select2-choice .select2-arrow{display:inline-block;width:18px;height:100%;position:absolute;right:0;top:0;border-radius:0 3px 3px 0;background-clip:padding-box}html[dir=rtl] .select2-container .select2-choice .select2-arrow{left:0;right:auto;border-radius:3px 0 0 3px}.select2-container .select2-choice .select2-arrow b{display:block;width:100%;height:100%;position:relative}.select2-container .select2-choice .select2-arrow b:after{position:absolute;display:block;content:"";top:50%;left:50%;border:4px solid transparent;border-top-color:#666;margin-left:-7px;margin-top:-2px}.select2-search{display:inline-block;width:100%;margin:0;padding-left:4px;padding-right:4px;position:relative;z-index:10000;white-space:nowrap;padding-bottom:4px}.select2-search input{width:100%;height:auto!important;padding:4px 20px 4px 5px!important;margin:0;outline:0;font-family:sans-serif;font-size:1em;border:1px solid #ccc;-webkit-box-shadow:none;box-shadow:none;background:url(../images/select2.png) 100% -22px no-repeat #fff}html[dir=rtl] .select2-search input{padding:4px 5px 4px 20px;background:url(../images/select2.png) -37px -22px no-repeat #fff}.select2-drop.select2-drop-above .select2-search input{margin-top:4px}.select2-search input.select2-active{background:url(../images/select2-spinner.gif) 100% no-repeat #fff}.select2-container-active .select2-choice,.select2-container-active .select2-choices{border:1px solid #666;outline:0}.select2-dropdown-open .select2-choice{border-bottom-color:transparent;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-dropdown-open .select2-choice .select2-arrow b:after{border-top-color:transparent;border-bottom-color:#666;margin-top:-6px}.select2-dropdown-open.select2-drop-above .select2-choice,.select2-dropdown-open.select2-drop-above .select2-choices{border:1px solid #666;border-top-color:transparent}.select2-dropdown-open .select2-choice .select2-arrow{background:0 0;border-left:none;filter:none}html[dir=rtl] .select2-dropdown-open .select2-choice .select2-arrow{border-right:none}.select2-dropdown-open .select2-choice .select2-arrow b{background-position:-18px 1px}html[dir=rtl] .select2-dropdown-open .select2-choice .select2-arrow b{background-position:-16px 1px}.select2-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.select2-results{max-height:200px;padding:4px;margin:0;position:relative;overflow-x:hidden;overflow-y:auto;-webkit-tap-highlight-color:transparent;background:#fafafa}html[dir=rtl] .select2-results{padding:0 4px 0 0;margin:4px 0 4px 4px}.select2-results ul.select2-result-sub{margin:0;padding-left:0}.select2-results li{list-style:none;display:list-item;background-image:none;margin:3px 0}.select2-results li.select2-result-with-children>.select2-result-label{font-weight:700}.select2-results .select2-result-label{padding:5px 7px;margin:0;cursor:pointer;min-height:1em;-webkit-touch-callout:none;-ms-user-select:none;user-select:none}.select2-results-dept-1 .select2-result-label{padding-left:20px}.select2-results-dept-2 .select2-result-label{padding-left:40px}.select2-results-dept-3 .select2-result-label{padding-left:60px}.select2-results-dept-4 .select2-result-label{padding-left:80px}.select2-results-dept-5 .select2-result-label{padding-left:100px}.select2-results-dept-6 .select2-result-label{padding-left:110px}.select2-results-dept-7 .select2-result-label{padding-left:120px}.select2-results .select2-highlighted{background:#f1f1f1;color:#000;border-radius:3px}.select2-results li em{background:#feffde;font-style:normal}.select2-results .select2-highlighted em{background:0 0}.select2-results .select2-highlighted ul{background:#fff;color:#000}.select2-results .select2-ajax-error,.select2-results .select2-no-results,.select2-results .select2-searching,.select2-results .select2-selection-limit{background:#f4f4f4;display:list-item;padding-left:5px}.select2-results .select2-disabled.select2-highlighted{color:#666;background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-disabled{background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-selected{display:none}.select2-more-results.select2-active{background:url(../images/select2-spinner.gif) 100% no-repeat #f4f4f4}.select2-results .select2-ajax-error{background:rgba(255,50,50,.2)}.select2-more-results{background:#f4f4f4;display:list-item}.select2-container.select2-container-disabled .select2-choice{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container.select2-container-disabled .select2-choice .select2-arrow{background-color:#f4f4f4;background-image:none;border-left:0}.select2-container.select2-container-disabled .select2-choice abbr{display:none}.select2-container-multi .select2-choices{height:auto!important;height:1%;margin:0;padding:0 5px 0 0;position:relative;border:1px solid #ccc;cursor:text;overflow:hidden;background-color:#fff;min-height:26px}html[dir=rtl] .select2-container-multi .select2-choices{padding:0 0 0 5px}.select2-locked{padding:3px 5px!important}.select2-container-multi.select2-container-active .select2-choices{border:1px solid #666;outline:0}.select2-container-multi .select2-choices li{float:left;list-style:none}html[dir=rtl] .select2-container-multi .select2-choices li{float:right}.select2-container-multi .select2-choices .select2-search-field{margin:0;padding:0;white-space:nowrap}.select2-container-multi .select2-choices .select2-search-field input{margin:1px 0;outline:0;border:0;-webkit-box-shadow:none;box-shadow:none;background:0 0!important}.select2-container-multi .select2-choices .select2-search-field input.select2-active{background:url(../images/select2-spinner.gif) 100% no-repeat #fff!important}.select2-default{color:#999!important}.select2-container-multi .select2-choices .select2-search-choice{padding:5px 8px 5px 24px;margin:3px 0 3px 5px;position:relative;line-height:15px;color:#333;cursor:default;border-radius:2px;background-clip:padding-box;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#e4e4e4}html[dir=rtl] .select2-container-multi .select2-choices .select2-search-choice{margin:3px 5px 3px 0;padding:5px 24px 5px 8px}.select2-container-multi .select2-choices .select2-search-choice .select2-chosen{cursor:default}.select2-container-multi .select2-choices .select2-search-choice-focus{background:#d4d4d4}.select2-search-choice-close{display:block;width:12px;height:13px;position:absolute;right:7px;top:6px;font-size:1px;outline:0;background:url(../images/select2.png) right top no-repeat}html[dir=rtl] .select2-search-choice-close{right:auto;left:7px}.select2-container-multi .select2-search-choice-close{left:7px}html[dir=rtl] .select2-container-multi .select2-search-choice-close{left:auto;right:7px}.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover,.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close{background-position:right -11px}.select2-container-multi.select2-container-disabled .select2-choices{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice{padding:3px 5px;border:1px solid #ddd;background-image:none;background-color:#f4f4f4}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close{display:none;background:0 0}.select2-result-selectable .select2-match,.select2-result-unselectable .select2-match{text-decoration:underline}.select2-offscreen,.select2-offscreen:focus{clip:rect(0 0 0 0)!important;width:1px!important;height:1px!important;border:0!important;margin:0!important;padding:0!important;overflow:hidden!important;position:absolute!important;outline:0!important;left:0!important;top:0!important}.select2-display-none{display:none}.select2-measure-scrollbar{position:absolute;top:-10000px;left:-10000px;width:100px;height:100px;overflow:scroll}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:2dppx){.select2-search input{background-image:url(../images/select2x2.png)!important;background-repeat:no-repeat!important;background-size:60px 40px!important;background-position:100% -21px!important}}@font-face{font-family:star;src:url(../fonts/star.eot);src:url(../fonts/star.eot?#iefix) format("embedded-opentype"),url(../fonts/star.woff) format("woff"),url(../fonts/star.ttf) format("truetype"),url(../fonts/star.svg#star) format("svg");font-weight:400;font-style:normal}@font-face{font-family:WooCommerce;src:url(../fonts/WooCommerce.eot);src:url(../fonts/WooCommerce.eot?#iefix) format("embedded-opentype"),url(../fonts/WooCommerce.woff) format("woff"),url(../fonts/WooCommerce.ttf) format("truetype"),url(../fonts/WooCommerce.svg#WooCommerce) format("svg");font-weight:400;font-style:normal}.blockUI.blockOverlay:before{height:1em;width:1em;position:absolute;top:50%;left:50%;margin-left:-.5em;margin-top:-.5em;display:block;content:"";-webkit-animation:spin 1s ease-in-out infinite;-moz-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite;background:url(../images/icons/loader.svg) center center;background-size:cover;line-height:1;text-align:center;font-size:2em;color:rgba(0,0,0,.75)}.button.wc-reload:after,.woocommerce-help-tip:after{top:0;left:0;-webkit-font-smoothing:antialiased;text-align:center}.wc_addons_wrap .products{overflow:hidden}.wc_addons_wrap .products li{float:left;margin:0 1em 1em 0!important;padding:0;vertical-align:top;width:300px}.wc_addons_wrap .products li a{text-decoration:none;color:inherit;border:1px solid #ddd;display:block;min-height:220px;overflow:hidden;background:#f5f5f5;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.1)}.wc_addons_wrap .products li a img{max-width:258px;max-height:24px;padding:17px 20px;display:block;margin:0;background:#fff;border-right:260px solid #fff}.wc_addons_wrap .products li a .price,.wc_addons_wrap .products li a img.extension-thumb+h3{display:none}.wc_addons_wrap .products li a h3{margin:0!important;padding:20px!important;background:#fff}.wc_addons_wrap .products li a p{padding:20px!important;margin:0!important;border-top:1px solid #f1f1f1}.wc_addons_wrap .products li a:focus,.wc_addons_wrap .products li a:hover{background-color:#fff}.wc_addons_wrap .storefront{background:url(../images/storefront-bg.jpg) bottom right #f6f6f6;border:1px solid #ddd;padding:20px;overflow:hidden;zoom:1}.wc_addons_wrap .storefront img{width:278px;height:auto;float:left;margin:0 20px 0 0;box-shadow:0 1px 6px rgba(0,0,0,.1)}.wc_addons_wrap .storefront p{max-width:750px}.woocommerce-message{position:relative;border-left-color:#cc99c2!important;overflow:hidden}.woocommerce-message a.button-primary,.woocommerce-message button.button-primary{background:#bb77ae;border-color:#aa559a;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 rgba(0,0,0,.15);color:#fff;text-decoration:none!important;text-shadow:0 -1px 1px #8a4f7f,1px 0 1px #8a4f7f,0 1px 1px #8a4f7f,-1px 0 1px #8a4f7f}.woocommerce-message a.button-primary:hover,.woocommerce-message button.button-primary:hover{background:#c480b7;border-color:#aa559a;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 rgba(0,0,0,.15);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 0 rgba(0,0,0,.15)}.woocommerce-message a.button-primary:active,.woocommerce-message button.button-primary:active{background:#aa559a;border-color:#873A79;-webkit-box-shadow:inset 0 2px 0 #873A79;box-shadow:inset 0 2px 0 #873A79}.woocommerce-message a.button-primary:focus,.woocommerce-message button.button-primary:focus{background:#bb77ae;border-color:#aa559a;-webkit-box-shadow:0 1px 0 #bb77ae,0 0 2px 1px #aa559a;box-shadow:0 1px 0 #bb77ae,0 0 2px 1px #aa559a}.woocommerce-message a.docs,.woocommerce-message a.skip{opacity:.5;text-decoration:none!important}.woocommerce-message .twitter-share-button{margin-top:-3px;margin-left:3px;vertical-align:middle}#variable_product_options #message,#variable_product_options .notice{margin:10px}.clear{clear:both}#woocommerce-fields-bulk.inline-edit-col label,#woocommerce-fields.inline-edit-col{clear:left}.wrap.woocommerce div.error,.wrap.woocommerce div.updated{margin-top:10px}mark.amount{background:0 0;color:inherit}.postbox,.woocommerce{input:invalid;input-border:1px solid #cc010b;input-background:#ffebe8}.simplify-commerce-banner{overflow:hidden}.simplify-commerce-banner img{float:right;padding:15px 0;margin-left:1em;width:200px}.woocommerce-help-tip{color:#666;display:inline-block;font-size:13px;font-style:normal;height:16px;line-height:16px;position:relative;vertical-align:middle;width:16px}.woocommerce-help-tip:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:"";cursor:help}table.wc_status_table{margin-bottom:1em}table.wc_status_table tr:nth-child(2n) td,table.wc_status_table tr:nth-child(2n) th{background:#fcfcfc}table.wc_status_table th{font-weight:700;padding:9px}table.wc_status_table td:first-child{width:33%}table.wc_status_table td.help{width:1em}table.wc_status_table td{padding:9px;font-size:1.1em}table.wc_status_table td mark{background:0 0}table.wc_status_table td mark.yes{color:#7ad03a}table.wc_status_table td mark.no{color:#999}table.wc_status_table td mark.error{color:#a00}table.wc_status_table td ul{margin:0}table.wc_status_table .help_tip{cursor:help}#debug-report{display:none;margin:10px 0;padding:0;position:relative}#debug-report textarea{font-family:monospace;width:100%;margin:0;height:300px;padding:20px;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;resize:none;font-size:12px;line-height:20px;outline:0}#log-viewer-select{padding:10px 0 8px;line-height:180%}#log-viewer textarea{width:100%;resize:vertical}.inline-edit-product.quick-edit-row .inline-edit-col-center,.inline-edit-product.quick-edit-row .inline-edit-col-right{float:right!important}#woocommerce-fields.inline-edit-col label.featured,#woocommerce-fields.inline-edit-col label.manage_stock{margin-left:10px}#woocommerce-fields.inline-edit-col .dimensions div{display:block;margin:.2em 0}#woocommerce-fields.inline-edit-col .dimensions div span.title{display:block;float:left;width:5em}#woocommerce-fields.inline-edit-col .dimensions div span.input-text-wrap{display:block;margin-left:5em}#woocommerce-fields.inline-edit-col .text{box-sizing:border-box;width:99%;float:left;margin:1px 1% 1px 1px}#woocommerce-fields.inline-edit-col .height,#woocommerce-fields.inline-edit-col .length,#woocommerce-fields.inline-edit-col .width{width:32.33%}#woocommerce-fields.inline-edit-col .height{margin-right:0}#woocommerce-fields-bulk.inline-edit-col .inline-edit-group label{clear:none;width:49%;margin:.2em 0}#woocommerce-fields-bulk.inline-edit-col .inline-edit-group.dimensions label{width:75%;max-width:75%}#woocommerce-fields-bulk.inline-edit-col .length,#woocommerce-fields-bulk.inline-edit-col .regular_price,#woocommerce-fields-bulk.inline-edit-col .sale_price,#woocommerce-fields-bulk.inline-edit-col .stock,#woocommerce-fields-bulk.inline-edit-col .weight{box-sizing:border-box;width:100%;margin-left:4.4em}#woocommerce-fields-bulk.inline-edit-col .height,#woocommerce-fields-bulk.inline-edit-col .length,#woocommerce-fields-bulk.inline-edit-col .width{box-sizing:border-box;width:25%}.column-coupon_code{line-height:2.25em}.column-coupon_code,ul.wc_coupon_list{margin:0;overflow:hidden;zoom:1;clear:both}ul.wc_coupon_list li{margin:0}ul.wc_coupon_list li.code{display:inline-block}ul.wc_coupon_list li.code:after{content:", "}ul.wc_coupon_list li.code:last-of-type:after{display:none}ul.wc_coupon_list li.code .tips{cursor:pointer}ul.wc_coupon_list_block{margin:0;padding-bottom:2px}ul.wc_coupon_list_block li{border-top:1px solid #fff;border-bottom:1px solid #ccc;line-height:2.5em;margin:0;padding:.5em 0}ul.wc_coupon_list_block li:first-child{border-top:0;padding-top:0}ul.wc_coupon_list_block li:last-child{border-bottom:0;padding-bottom:0}.button.wc-reload{text-indent:-9999px;position:relative;padding:0;-webkit-border-radius:100%;border-radius:100%;height:24px;width:24px!important;display:inline-block}.button.wc-reload:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:"";line-height:22px}#order_data h2,#order_data p.order_number{font-family:HelveticaNeue-Light,"Helvetica Neue Light","Helvetica Neue",sans-serif;font-weight:400}.tablenav .actions{overflow:visible}.tablenav .select2-container{float:left;max-width:200px;font-size:14px;vertical-align:middle;margin:1px 6px 1px 1px}#woocommerce-order-data .handlediv,#woocommerce-order-data .hndle{display:none}#woocommerce-order-data .inside{display:block!important}#order_data{padding:23px 24px 12px}#order_data h2{margin:0;font-size:21px;line-height:1.2;text-shadow:1px 1px 1px #fff;padding:0}#order_data h4{color:#333;margin:1.33em 0 0}#order_data p{color:#777}#order_data p.order_number{margin:0;line-height:1.6em;font-size:16px}#order_data .order_data_column_container{clear:both}#order_data .order_data_column{width:32%;padding:0 2% 0 0;float:left}#order_data .order_data_column:last-child{padding-right:0}#order_data .order_data_column p{padding:0!important}#order_data .order_data_column .address strong{display:block}#order_data .order_data_column .form-field{float:left;width:48%;padding:0;margin:9px 0 0}#order_data .order_data_column .form-field label{display:block;padding:0 0 3px}#order_data .order_data_column .form-field input,#order_data .order_data_column .form-field select,#order_data .order_data_column .form-field textarea{width:100%}#order_data .order_data_column .form-field .select2-container{width:100%!important}#order_data .order_data_column .form-field .date-picker{width:50%}#order_data .order_data_column .form-field .hour,#order_data .order_data_column .form-field .minute{width:2.5em}#order_data .order_data_column .form-field small{display:block;margin:5px 0 0;color:#999}#order_data .order_data_column .form-field.last{float:right}#order_data .order_data_column .form-field-wide{width:100%;clear:both}#order_data .order_data_column .form-field-wide .wc-customer-search,#order_data .order_data_column .form-field-wide .wc-enhanced-select,#order_data .order_data_column .form-field-wide input,#order_data .order_data_column .form-field-wide select,#order_data .order_data_column .form-field-wide textarea{width:100%}#order_data .order_data_column p.none_set{color:#999}#order_data .order_data_column ._billing_address_1_field,#order_data .order_data_column ._billing_city_field,#order_data .order_data_column ._billing_country_field,#order_data .order_data_column ._billing_email_field,#order_data .order_data_column ._billing_first_name_field,#order_data .order_data_column ._shipping_address_1_field,#order_data .order_data_column ._shipping_city_field,#order_data .order_data_column ._shipping_country_field,#order_data .order_data_column ._shipping_first_name_field{float:left}#order_data .order_data_column ._billing_address_2_field,#order_data .order_data_column ._billing_last_name_field,#order_data .order_data_column ._billing_phone_field,#order_data .order_data_column ._billing_postcode_field,#order_data .order_data_column ._billing_state_field,#order_data .order_data_column ._shipping_address_2_field,#order_data .order_data_column ._shipping_last_name_field,#order_data .order_data_column ._shipping_postcode_field,#order_data .order_data_column ._shipping_state_field,#order_data .order_data_column .wc-customer-user label a,#order_data .order_data_column .wc-order-status label a{float:right}#order_data .order_data_column ._billing_company_field,#order_data .order_data_column ._shipping_company_field,#order_data .order_data_column ._transaction_id_field{clear:both;width:100%}#order_data .order_data_column ._billing_email_field{clear:left}#order_data .order_data_column div.edit_address{display:none;zoom:1;padding-right:1px}#order_data .order_data_column .billing-same-as-shipping,#order_data .order_data_column .load_customer_billing,#order_data .order_data_column .load_customer_shipping,#order_data .order_data_column a.edit_address{width:14px;height:0;padding:14px 0 0;margin:0 0 0 6px;overflow:hidden;position:relative;color:#999;border:0;float:right}#order_data .order_data_column .billing-same-as-shipping:focus,#order_data .order_data_column .billing-same-as-shipping:hover,#order_data .order_data_column .load_customer_billing:focus,#order_data .order_data_column .load_customer_billing:hover,#order_data .order_data_column .load_customer_shipping:focus,#order_data .order_data_column .load_customer_shipping:hover,#order_data .order_data_column a.edit_address:focus,#order_data .order_data_column a.edit_address:hover{color:#000}#order_data .order_data_column .billing-same-as-shipping:after,#order_data .order_data_column .load_customer_billing:after,#order_data .order_data_column .load_customer_shipping:after,#order_data .order_data_column a.edit_address:after{font-family:WooCommerce;position:absolute;top:0;left:0;text-align:center;vertical-align:top;line-height:14px;font-size:14px;font-weight:400;-webkit-font-smoothing:antialiased}#order_data .order_data_column .billing-same-as-shipping:after{content:"\e008"}#order_data .order_data_column .load_customer_billing:after,#order_data .order_data_column .load_customer_shipping:after{content:"\e03a"}#order_data .order_data_column a.edit_address:after{content:"\e603"}.order_actions{margin:0;overflow:hidden;zoom:1}.order_actions li{border-top:1px solid #fff;border-bottom:1px solid #ddd;padding:6px 0;margin:0;line-height:1.6em;float:left;width:50%;text-align:center}.order_actions li a{float:none;text-align:center;text-decoration:underline}.order_actions li.wide{width:auto;float:none;clear:both;padding:6px;text-align:left;overflow:hidden}.order_actions li #delete-action{line-height:25px;vertical-align:middle;text-align:left;float:left}.order_actions li .save_order{float:right}.order_actions li#actions{overflow:hidden}.order_actions li#actions .button{width:24px;box-sizing:border-box;float:right}.order_actions li#actions select{width:225px;box-sizing:border-box;float:left}#woocommerce-order-items .inside{margin:0;padding:0;background:#fefefe}#woocommerce-order-items .wc-order-data-row{border-bottom:1px solid #DFDFDF;padding:12px;background:#f8f8f8;line-height:2em;text-align:right}#woocommerce-order-items .wc-order-data-row:after,#woocommerce-order-items .wc-order-data-row:before{content:" ";display:table}#woocommerce-order-items .wc-order-data-row:after{clear:both}#woocommerce-order-items .wc-order-data-row p{margin:0;line-height:2em}#woocommerce-order-items .wc-order-data-row .wc-used-coupons{text-align:left}#woocommerce-order-items .wc-order-data-row .wc-used-coupons .tips{display:inline-block}#woocommerce-order-items .wc-order-bulk-actions{background:#fefefe;vertical-align:top;border-top:0}#woocommerce-order-items .wc-order-bulk-actions select{vertical-align:top}#woocommerce-order-items .wc-order-bulk-actions p.bulk-actions{float:left}#woocommerce-order-items .wc-order-add-item{background:#fff;vertical-align:top;border-top:none}#woocommerce-order-items .wc-order-add-item .add_item_id,#woocommerce-order-items .wc-order-add-item .select2-container{vertical-align:top}#woocommerce-order-items .wc-order-add-item .add_item_id .search-field input,#woocommerce-order-items .wc-order-add-item .select2-container .search-field input{min-width:100px}#woocommerce-order-items .wc-order-add-item .select2-container{width:400px!important;text-align:left}#woocommerce-order-items .wc-order-add-item .calculate-action,#woocommerce-order-items .wc-order-add-item .cancel-action,#woocommerce-order-items .wc-order-add-item .save-action{float:left;margin-right:2px}#woocommerce-order-items .wc-used-coupons{float:left;width:50%}#woocommerce-order-items .wc-order-totals{float:right;width:50%;margin:0;padding:0}#woocommerce-order-items .wc-order-totals .amount{font-weight:700}#woocommerce-order-items .wc-order-totals .label{vertical-align:top}#woocommerce-order-items .wc-order-totals .total{font-size:1em!important;width:10em;margin:0 0 0 .5em;box-sizing:border-box}#woocommerce-order-items .wc-order-totals .total input[type=text]{width:96%;float:right}#woocommerce-order-items .wc-order-totals .refunded-total{color:#a00}#woocommerce-order-items .refund-actions{margin-top:5px;padding-top:12px;border-top:1px solid #DFDFDF}#woocommerce-order-items .refund-actions .button{float:right;margin-left:4px}#woocommerce-order-items .refund-actions .cancel-action{float:left;margin-left:0}#woocommerce-order-items .add_meta{margin-left:0!important}#woocommerce-order-items h3 small{color:#999}#woocommerce-order-items .amount{white-space:nowrap}#woocommerce-order-items .add-items .description{margin-right:10px}.woocommerce_order_items_wrapper{margin:0;overflow:auto}.woocommerce_order_items_wrapper table.woocommerce_order_items{width:100%;background:#fff}.woocommerce_order_items_wrapper table.woocommerce_order_items thead th{background:#f8f8f8;padding:8px;font-size:11px;text-align:left;color:#555;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.woocommerce_order_items_wrapper table.woocommerce_order_items thead th:last-child{padding-right:12px}.woocommerce_order_items_wrapper table.woocommerce_order_items thead th:first-child{padding-left:12px}.woocommerce_order_items_wrapper table.woocommerce_order_items thead th.sortable{cursor:pointer}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody th,.woocommerce_order_items_wrapper table.woocommerce_order_items td{padding:8px;text-align:left;line-height:26px;vertical-align:top;border-bottom:1px dotted #ececec}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody th textarea,.woocommerce_order_items_wrapper table.woocommerce_order_items td textarea{width:100%}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody th select,.woocommerce_order_items_wrapper table.woocommerce_order_items td select{width:50%}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody th input,.woocommerce_order_items_wrapper table.woocommerce_order_items tbody th textarea,.woocommerce_order_items_wrapper table.woocommerce_order_items td input,.woocommerce_order_items_wrapper table.woocommerce_order_items td textarea{font-size:14px;padding:4px;color:#555}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody th:last-child,.woocommerce_order_items_wrapper table.woocommerce_order_items td:last-child{padding-right:12px}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody th:first-child,.woocommerce_order_items_wrapper table.woocommerce_order_items td:first-child{padding-left:12px}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody tr:last-child td{border-bottom:1px solid #dfdfdf}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody tr:first-child td{border-top:8px solid #f8f8f8}.woocommerce_order_items_wrapper table.woocommerce_order_items tbody#order_line_items tr:first-child td{border-top:none}.woocommerce_order_items_wrapper table.woocommerce_order_items td.check-column{padding:8px 8px 8px 12px;width:1%}.woocommerce_order_items_wrapper table.woocommerce_order_items .item{min-width:200px}.woocommerce_order_items_wrapper table.woocommerce_order_items .center,.woocommerce_order_items_wrapper table.woocommerce_order_items .variation-id{text-align:center}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class{text-align:right}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost label,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost label,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost label,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax label,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity label,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax label,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class label{white-space:nowrap;color:#999;font-size:.833em}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost label input,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost label input,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost label input,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax label input,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity label input,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax label input,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class label input{display:inline}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost input,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost input,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost input,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax input,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity input,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax input,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class input{width:70px;vertical-align:middle;text-align:right}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost select,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost select,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost select,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax select,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity select,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax select,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class select{width:85px;height:26px;vertical-align:middle;font-size:1em}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost .split-input,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .split-input,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .split-input,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .split-input,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .split-input,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax .split-input,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .split-input{display:block;background:#fff;border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);margin:1px;width:70px}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost .split-input input,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .split-input input,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .split-input input,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .split-input input,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .split-input input,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax .split-input input,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .split-input input{width:100%;box-sizing:border-box;border:0;box-shadow:none;margin:0;color:#555;background:0 0}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost .split-input input:last-child,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .split-input input:last-child,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .split-input input:last-child,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .split-input input:last-child,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .split-input input:last-child,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax .split-input input:last-child,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .split-input input:last-child{color:#bbb;border-top:1px dashed #ddd}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost .view,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost .view,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost .view,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax .view,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity .view,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax .view,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class .view{white-space:nowrap}.woocommerce_order_items_wrapper table.woocommerce_order_items .cost del,.woocommerce_order_items_wrapper table.woocommerce_order_items .item_cost del,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_cost del,.woocommerce_order_items_wrapper table.woocommerce_order_items .line_tax del,.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity del,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax del,.woocommerce_order_items_wrapper table.woocommerce_order_items .tax_class del{color:#ccc}.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity{text-align:center}.woocommerce_order_items_wrapper table.woocommerce_order_items .quantity input{text-align:center;width:50px}.woocommerce_order_items_wrapper table.woocommerce_order_items span.subtotal{opacity:.5}.woocommerce_order_items_wrapper table.woocommerce_order_items td.tax_class,.woocommerce_order_items_wrapper table.woocommerce_order_items th.tax_class{text-align:left}.woocommerce_order_items_wrapper table.woocommerce_order_items .calculated{border-color:#ae8ca2;border-style:dotted}.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta{width:100%}.woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta,.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta{margin:.5em 0 0}.woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr th,.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr th{border:0;padding:0 4px .5em 0;line-height:1.5em;width:20%}.woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td,.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td{padding:0 4px .5em 0;border:0;line-height:1.5em}.woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td input,.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td input{width:100%;margin:0;position:relative;border-bottom:0;box-shadow:none}.woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td textarea,.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td textarea{width:100%;height:4em;margin:0;box-shadow:none}.woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td input:focus+textarea,.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td input:focus+textarea{border-top-color:#999}.woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td p,.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td p{margin:0 0 .5em;line-height:1.5em}.woocommerce_order_items_wrapper table.woocommerce_order_items table.display_meta tr td p:last-child,.woocommerce_order_items_wrapper table.woocommerce_order_items table.meta tr td p:last-child{margin:0}.woocommerce_order_items_wrapper table.woocommerce_order_items .thumb{text-align:left;width:27px}.wc-order-items-editable .delete-order-item:before,.wc-order-items-editable .delete_refund:before,.wc-order-items-editable .edit-order-item:before,.woocommerce_order_items_wrapper table.woocommerce_order_items tr.fee .thumb div:before,.woocommerce_order_items_wrapper table.woocommerce_order_items tr.refund .thumb div:before,.woocommerce_order_items_wrapper table.woocommerce_order_items tr.shipping .thumb div:before{-webkit-font-smoothing:antialiased;top:0;left:0;text-align:center;font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1}.woocommerce_order_items_wrapper table.woocommerce_order_items .thumb a{display:block}.woocommerce_order_items_wrapper table.woocommerce_order_items .thumb img{padding:1px;margin:0;border:1px solid #dfdfdf;vertical-align:middle;width:21px;height:21px}.woocommerce_order_items_wrapper table.woocommerce_order_items .refund_by,ul.order_notes li p.meta .exact-date{border-bottom:1px dotted #999}.woocommerce_order_items_wrapper table.woocommerce_order_items tr.fee .thumb div{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:14px;margin:6px}.woocommerce_order_items_wrapper table.woocommerce_order_items tr.fee .thumb div:before{margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:"";color:#bbb}.woocommerce_order_items_wrapper table.woocommerce_order_items tr.refund .thumb div{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:14px;margin:6px}.woocommerce_order_items_wrapper table.woocommerce_order_items tr.refund .thumb div:before{margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:"";color:#bbb}.woocommerce_order_items_wrapper table.woocommerce_order_items tr.shipping .thumb div{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:14px;margin:6px}.woocommerce_order_items_wrapper table.woocommerce_order_items tr.shipping .thumb div:before{margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:"";color:#bbb}.woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax{white-space:nowrap}.woocommerce_order_items_wrapper table.woocommerce_order_items td.line_tax,.woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax{padding:8px 16px 8px 8px}.woocommerce_order_items_wrapper table.woocommerce_order_items td.line_tax .delete-order-tax,.woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax .delete-order-tax{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:12px;visibility:hidden;float:right;margin:2px -16px 0 0}.woocommerce_order_items_wrapper table.woocommerce_order_items td.line_tax .delete-order-tax:before,.woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax .delete-order-tax:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";color:#fff;background-color:#000;-webkit-border-radius:100%;border-radius:100%;border:1px solid #000;box-shadow:0 1px 2px rgba(0,0,0,.2)}.woocommerce_order_items_wrapper table.woocommerce_order_items td.line_tax .delete-order-tax:hover:before,.woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax .delete-order-tax:hover:before{border-color:#a00;background-color:#a00}.woocommerce_order_items_wrapper table.woocommerce_order_items td.line_tax:hover .delete-order-tax,.woocommerce_order_items_wrapper table.woocommerce_order_items th.line_tax:hover .delete-order-tax{visibility:visible}.woocommerce_order_items_wrapper table.woocommerce_order_items small.refunded{display:block;color:#a00;white-space:nowrap}.wc-order-items-editable .edit-order-item{text-indent:-9999px;position:relative;height:1em;width:1em;display:inline-block;margin:0 .5em 0 0}.wc-order-items-editable .edit-order-item:before{margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:"";content:"\e603";color:#999}.wc-order-items-editable .edit-order-item:hover:before{color:#555}.wc-order-items-editable .delete-order-item,.wc-order-items-editable .delete_refund{text-indent:-9999px;position:relative;height:1em;width:1em;display:inline-block;margin:0}.wc-order-items-editable .delete-order-item:before,.wc-order-items-editable .delete_refund:before{margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:"";content:"\e013";color:#999}.wc-order-items-editable .delete-order-item:hover:before,.wc-order-items-editable .delete_refund:hover:before{color:#a00}.wc-order-items-editable .wc-order-edit-line-item-actions{width:2.5em;text-align:right}.wc-order-items-editable .wc-order-totals .wc-order-edit-line-item-actions{width:1.5em}.wc-order-items-editable .wc-order-totals .edit-order-item{margin:0}#woocommerce-order-downloads .buttons{float:left;padding:0;margin:0;vertical-align:top}#woocommerce-order-downloads .buttons .add_item_id,#woocommerce-order-downloads .buttons .select2-container{width:400px!important;margin-right:9px;vertical-align:top;float:left}#woocommerce-order-downloads .buttons button{margin:2px 0 0}#woocommerce-order-downloads h3 small{color:#999}#poststuff #woocommerce-order-actions .inside{margin:0;padding:0}#poststuff #woocommerce-order-actions .inside ul.order_actions li{padding:6px 10px;box-sizing:border-box}#poststuff #woocommerce-order-actions .inside ul.order_actions li:last-child{border-bottom:0}#poststuff #woocommerce-order-notes .inside{margin:0;padding:0}#poststuff #woocommerce-order-notes .inside ul.order_notes li{padding:0 10px}#woocommerce_customers p.search-box{margin:6px 0 4px;float:left}#woocommerce_customers .tablenav{float:right;clear:none}.widefat.customers td{vertical-align:middle;padding:4px 7px}.widefat .column-order_title{width:15%}.widefat .column-order_title time{display:block;color:#999;margin:3px 0}.widefat .column-orders,.widefat .column-paying,.widefat .column-spent{text-align:center;width:8%}.widefat .column-last_order{width:11%}.widefat .column-order_actions,.widefat .column-user_actions,.widefat .column-wc_actions{width:110px}.widefat .column-order_actions a.button,.widefat .column-user_actions a.button,.widefat .column-wc_actions a.button{float:left;margin:0 4px 2px 0;cursor:pointer;padding:3px 4px;height:auto}.widefat .column-order_actions a.button img,.widefat .column-user_actions a.button img,.widefat .column-wc_actions a.button img{display:block;width:12px;height:auto}.widefat small.meta{display:block;color:#999;font-size:inherit;margin:3px 0}.widefat .column-order_date,.widefat .column-order_total{width:9%}.widefat .column-order_status{width:45px;text-align:center}.widefat .column-order_status mark{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;background:0 0;font-size:1.4em;margin:0 auto}.widefat .column-order_status mark.cancelled:after,.widefat .column-order_status mark.completed:after,.widefat .column-order_status mark.failed:after,.widefat .column-order_status mark.on-hold:after,.widefat .column-order_status mark.pending:after,.widefat .column-order_status mark.processing:after,.widefat .column-order_status mark.refunded:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}.column-customer_message .note-on:after,.column-order_notes .note-on:after{speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;top:0;left:0;text-align:center;line-height:16px;font-family:WooCommerce}.widefat .column-order_status mark.pending:after{content:"\e012";color:#ffba00}.widefat .column-order_status mark.completed:after{content:"\e015";color:#2ea2cc}.widefat .column-order_status mark.on-hold:after{content:"\e033";color:#999}.widefat .column-order_status mark.failed:after{content:"\e016";color:#d0c21f}.widefat .column-order_status mark.cancelled:after{content:"\e013";color:#a00}.widefat .column-order_status mark.processing:after{content:"\e011";color:#73a724}.widefat .column-order_status mark.refunded:after{content:"\e014";color:#999}.widefat td.column-order_status{padding-top:9px}.column-customer_message .note-on{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;margin:0 auto;color:#999}.column-customer_message .note-on:after{margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:""}.column-order_notes .note-on{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;margin:0 auto;color:#999}.column-order_notes .note-on:after{margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:""}.attributes-table .attribute-actions .configure-terms:after,.order_actions .complete:after,.order_actions .processing:after,.order_actions .view:after,.user_actions .edit:after,.user_actions .link:after,.user_actions .refresh:after,.user_actions .view:after{speak:none;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;top:0;left:0;line-height:1.85;margin:0;text-align:center;font-weight:400}.order_actions .complete,.order_actions .processing,.order_actions .view{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}.order_actions .complete:after,.order_actions .processing:after,.order_actions .view:after{font-family:WooCommerce;text-indent:0;position:absolute;width:100%;height:100%}.order_actions .processing:after{content:"\e00f"}.order_actions .complete:after{content:"\e017"}.order_actions .view:after{content:"\e010"}.user_actions .edit,.user_actions .link,.user_actions .refresh,.user_actions .view{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}.user_actions .edit:after,.user_actions .link:after,.user_actions .refresh:after,.user_actions .view:after{font-family:WooCommerce;text-indent:0;position:absolute;width:100%;height:100%}.user_actions .edit:after{content:"\e603"}.user_actions .link:after{content:"\e00d"}.user_actions .view:after{content:"\e010"}.user_actions .refresh:after{content:"\e031"}.attributes-table td,.attributes-table th{width:15%;vertical-align:top}.attributes-table .attribute-terms{width:32%}.attributes-table .attribute-actions{width:2em}.attributes-table .attribute-actions .configure-terms{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}.attributes-table .attribute-actions .configure-terms:after{text-indent:0;position:absolute;width:100%;height:100%;content:"";font-family:Dashicons}ul.order_notes{padding:2px 0 0}ul.order_notes li .note_content{padding:10px;background:#efefef;position:relative}ul.order_notes li .note_content p{margin:0;padding:0;word-wrap:break-word}ul.order_notes li p.meta{padding:10px;color:#999;margin:0;font-size:11px}ul.order_notes li a.delete_note{color:#a00}table.wp-list-table .row-actions,table.wp-list-table span.na{color:#999}ul.order_notes li .note_content:after{content:"";display:block;position:absolute;bottom:-10px;left:20px;width:0;height:0;border-width:10px 10px 0 0;border-style:solid;border-color:#efefef transparent}ul.order_notes li.customer-note .note_content{background:#d7cad2}ul.order_notes li.customer-note .note_content:after{border-color:#d7cad2 transparent}.add_note{border-top:1px solid #ddd;padding:10px 10px 0}.add_note h4{margin-top:5px!important}.add_note #add_order_note{width:100%;height:50px}table.wp-list-table .column-thumb{width:52px;text-align:center;white-space:nowrap}table.wp-list-table .column-name{width:22%}table.wp-list-table .column-product_cat,table.wp-list-table .column-product_tag{width:11%!important}table.wp-list-table .column-featured,table.wp-list-table .column-product_type{width:48px;text-align:left!important}table.wp-list-table .column-customer_message,table.wp-list-table .column-order_notes{width:48px;text-align:center}table.wp-list-table .column-customer_message img,table.wp-list-table .column-order_notes img{margin:0 auto;padding-top:0!important}table.wp-list-table .manage-column.column-featured img,table.wp-list-table .manage-column.column-product_type img{padding-left:2px}table.wp-list-table .column-price .woocommerce-price-suffix{display:none}table.wp-list-table img{margin:1px 2px}table.wp-list-table td.column-thumb img{margin:0;width:auto;height:auto;max-width:40px;max-height:40px;vertical-align:middle}table.wp-list-table .column-is_in_stock{text-align:left!important}table.wp-list-table .notes_head:after,table.wp-list-table .order-notes_head:after,table.wp-list-table .status_head:after,table.wp-list-table span.product-type:before,table.wp-list-table span.wc-featured:before,table.wp-list-table span.wc-image:before,table.wp-list-table span.wc-type:before{text-align:center;line-height:1;font-family:WooCommerce;speak:none;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;top:0;left:0}table.wp-list-table span.wc-featured,table.wp-list-table span.wc-image,table.wp-list-table span.wc-type{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;margin:0 auto}table.wp-list-table span.wc-featured:before,table.wp-list-table span.wc-image:before,table.wp-list-table span.wc-type:before{font-weight:400;margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:""}table.wp-list-table span.wc-featured{margin:0;cursor:pointer}table.wp-list-table span.wc-featured:before{content:"\e020"}table.wp-list-table span.wc-featured.not-featured:before{content:"\e021"}table.wp-list-table td.column-featured span.wc-featured{font-size:1.2em}table.wp-list-table span.wc-type{margin:0}table.wp-list-table span.wc-type:before{content:"\e01d"}table.wp-list-table span.product-type{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:1.2em}table.wp-list-table span.product-type:before{font-weight:400;margin:0;text-indent:0;position:absolute;width:100%;height:100%;content:""}table.wp-list-table span.product-type.grouped:before{content:"\e002"}table.wp-list-table span.product-type.external:before{content:"\e034"}table.wp-list-table span.product-type.variable:before{content:"\e003"}table.wp-list-table span.product-type.downloadable:before{content:"\e001"}table.wp-list-table span.product-type.virtual:before{content:"\e000"}table.wp-list-table mark.instock{font-weight:700;color:#7ad03a;background:0 0;line-height:1}table.wp-list-table mark.outofstock{font-weight:700;color:#a44;background:0 0;line-height:1}table.wp-list-table .notes_head,table.wp-list-table .order-notes_head,table.wp-list-table .status_head{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;margin:0 auto}table.wp-list-table .notes_head:after,table.wp-list-table .order-notes_head:after,table.wp-list-table .status_head:after{font-weight:400;margin:0;text-indent:0;position:absolute;width:100%;height:100%}table.wc_emails .wc-email-settings-table-name,table.wc_emails td.name,table.wc_gateways .wc-email-settings-table-name,table.wc_gateways td.name,table.wc_shipping .wc-email-settings-table-name,table.wc_shipping td.name{font-weight:700}table.wp-list-table .order-notes_head:after{content:"\e028"}table.wp-list-table .notes_head:after{content:"\e026"}table.wp-list-table .status_head:after{content:"\e011"}table.wp-list-table .column-order_items{width:12%}table.wp-list-table .column-order_items table.order_items{width:100%;margin:3px 0 0;padding:0;display:none}table.wp-list-table .column-order_items table.order_items td{border:0;margin:0;padding:0 0 3px}table.wp-list-table .column-order_items table.order_items td.qty{color:#999;padding-right:6px;text-align:left}mark.notice{background:#fff;color:#a00;margin:0 0 0 10px}a.export_rates,a.import_rates{float:right;margin-left:9px;margin-top:-2px;margin-bottom:0}#rates-search{float:right}#rates-search input.wc-tax-rates-search-field{padding:4px 8px;font-size:1.2em}#rates-pagination{float:right;margin-right:.5em}#rates-pagination .tablenav{margin:0}table.wc_input_table,table.wc_tax_rates{width:100%}table.wc_input_table span.tips,table.wc_tax_rates span.tips{color:#2ea2cc}table.wc_input_table td,table.wc_tax_rates td{padding:0;border-right:1px solid #DFDFDF;border-bottom:1px solid #DFDFDF;border-top:0;background:#fff}table.wc_input_table td input[type=text],table.wc_input_table td input[type=number],table.wc_tax_rates td input[type=text],table.wc_tax_rates td input[type=number]{width:100%;padding:5px 7px;margin:0;border:0;background:0 0}table.wc_input_table td.apply_to_shipping,table.wc_input_table td.compound,table.wc_tax_rates td.apply_to_shipping,table.wc_tax_rates td.compound{padding:5px 7px;vertical-align:middle}table.wc_input_table td.apply_to_shipping input,table.wc_input_table td.compound input,table.wc_tax_rates td.apply_to_shipping input,table.wc_tax_rates td.compound input{width:auto;padding:0}table.wc_input_table td:last-child,table.wc_tax_rates td:last-child{border-right:0}table.wc_input_table tr.current td,table.wc_tax_rates tr.current td{background-color:#fefbcc}table.wc_input_table .cost,table.wc_input_table .cost input,table.wc_input_table .item_cost,table.wc_input_table .item_cost input,table.wc_tax_rates .cost,table.wc_tax_rates .cost input,table.wc_tax_rates .item_cost,table.wc_tax_rates .item_cost input{text-align:right}table.wc_input_table th.sort,table.wc_tax_rates th.sort{width:17px;padding:0 4px}table.wc_input_table td.sort,table.wc_tax_rates td.sort{padding:0 4px}table.wc_input_table .ui-sortable:not(.ui-sortable-disabled) td.sort,table.wc_tax_rates .ui-sortable:not(.ui-sortable-disabled) td.sort{cursor:move;background:#f9f9f9;text-align:center;vertical-align:middle}table.wc_input_table .ui-sortable:not(.ui-sortable-disabled) td.sort:before,table.wc_tax_rates .ui-sortable:not(.ui-sortable-disabled) td.sort:before{content:"\e032";font-family:WooCommerce;text-align:center;line-height:1;color:#999;display:block;width:17px;float:left;height:100%}table.wc_input_table .ui-sortable:not(.ui-sortable-disabled) td.sort:hover:before,table.wc_tax_rates .ui-sortable:not(.ui-sortable-disabled) td.sort:hover:before{color:#333}table.wc_input_table .button,table.wc_tax_rates .button{float:left;margin-right:5px}table.wc_input_table .export,table.wc_input_table .import,table.wc_tax_rates .export,table.wc_tax_rates .import{float:right;margin-right:0;margin-left:5px}table.wc_input_table span.tips,table.wc_tax_rates span.tips{padding:0 3px}table.wc_input_table .pagination,table.wc_tax_rates .pagination{float:right}table.wc_input_table .pagination .button,table.wc_tax_rates .pagination .button{margin-left:5px;margin-right:0}table.wc_input_table .pagination .current,table.wc_tax_rates .pagination .current{background:#bbb;text-shadow:none}table.wc_input_table tfoot th,table.wc_tax_rates tfoot th{padding-left:20px;padding-right:20px}table.wc_input_table tr:last-child td,table.wc_tax_rates tr:last-child td{border-bottom:0}table.wc_emails,table.wc_gateways,table.wc_shipping{position:relative}table.wc_emails td,table.wc_gateways td,table.wc_shipping td{vertical-align:middle;padding:7px;line-height:2em}table.wc_emails tr:nth-child(odd) td,table.wc_gateways tr:nth-child(odd) td,table.wc_shipping tr:nth-child(odd) td{background:#f9f9f9}table.wc_emails th,table.wc_gateways th,table.wc_shipping th{padding:9px 7px!important;vertical-align:middle}table.wc_emails .settings,table.wc_gateways .settings,table.wc_shipping .settings{text-align:right}table.wc_emails .default,table.wc_emails .radio,table.wc_emails .status,table.wc_gateways .default,table.wc_gateways .radio,table.wc_gateways .status,table.wc_shipping .default,table.wc_shipping .radio,table.wc_shipping .status{text-align:center}table.wc_emails .default .tips,table.wc_emails .radio .tips,table.wc_emails .status .tips,table.wc_gateways .default .tips,table.wc_gateways .radio .tips,table.wc_gateways .status .tips,table.wc_shipping .default .tips,table.wc_shipping .radio .tips,table.wc_shipping .status .tips{margin:0 auto}table.wc_emails .default input,table.wc_emails .radio input,table.wc_emails .status input,table.wc_gateways .default input,table.wc_gateways .radio input,table.wc_gateways .status input,table.wc_shipping .default input,table.wc_shipping .radio input,table.wc_shipping .status input{margin:0}table.wc_emails th.sort,table.wc_gateways th.sort,table.wc_shipping th.sort{width:28px;padding:0}table.wc_emails td.sort,table.wc_gateways td.sort,table.wc_shipping td.sort{padding:0 7px;cursor:move;text-align:center;vertical-align:middle}table.wc_emails td.sort:before,table.wc_gateways td.sort:before,table.wc_shipping td.sort:before{content:"\e032";font-family:WooCommerce;text-align:center;line-height:1;color:#ccc;display:block;width:17px;float:left;height:100%}table.wc_emails .wc-email-settings-table-name span,table.wc_gateways .wc-email-settings-table-name span,table.wc_shipping .wc-email-settings-table-name span{font-weight:400;color:#999;margin:0 0 0 4px!important}table.wc_emails .wc-email-settings-table-status,table.wc_gateways .wc-email-settings-table-status,table.wc_shipping .wc-email-settings-table-status{text-align:center;width:1em}table.wc_emails .wc-email-settings-table-status .tips,table.wc_gateways .wc-email-settings-table-status .tips,table.wc_shipping .wc-email-settings-table-status .tips{margin:0 auto}table.wc_emails .wc-email-settings-table-actions a,table.wc_gateways .wc-email-settings-table-actions a,table.wc_shipping .wc-email-settings-table-actions a{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}table.wc_emails .wc-email-settings-table-actions a:after,table.wc_gateways .wc-email-settings-table-actions a:after,table.wc_shipping .wc-email-settings-table-actions a:after{speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";font-family:Dashicons;line-height:1.85}img.help_tip{margin:0 0 0 9px;vertical-align:middle}.postbox img.help_tip{margin-top:0}.postbox .woocommerce-help-tip{margin:0 0 0 9px}.status-enabled,.status-manual{font-size:1.4em;display:block;text-indent:-9999px;position:relative;height:1em;width:1em}.status-enabled:before,.status-manual:before{line-height:1;margin:0;position:absolute;width:100%;height:100%;font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;text-indent:0;top:0;left:0;text-align:center}.status-manual:before{content:"";color:#999}.status-enabled:before{content:"";color:#a46497}.woocommerce .woo-nav-tab-wrapper{margin-bottom:16px!important}.woocommerce .subsubsub{margin:-8px 0 0}.woocommerce #template div{margin:0}.woocommerce #template div p .button{float:right;margin-left:10px;margin-top:-4px}.woocommerce #template div .editor textarea{margin-bottom:8px}.woocommerce textarea[disabled=disabled]{background:#DFDFDF!important}.woocommerce table.form-table{margin:0;position:relative}.woocommerce table.form-table .forminp-radio ul{margin:0}.woocommerce table.form-table .forminp-radio ul li{line-height:1.4em}.woocommerce table.form-table textarea.input-text{height:100%;min-width:150px;display:block}.woocommerce table.form-table input.regular-input{width:25em}.woocommerce table.form-table textarea.wide-input{width:100%}.woocommerce table.form-table .woocommerce-help-tip,.woocommerce table.form-table img.help_tip{padding:0;margin:-4px 0 0 5px;vertical-align:middle;cursor:help;line-height:1}.woocommerce table.form-table span.help_tip{cursor:help;color:#2ea2cc}.woocommerce table.form-table th{position:relative;padding-right:24px}.woocommerce table.form-table .select2-container{display:block;max-width:350px;vertical-align:top;margin-bottom:3px}.woocommerce table.form-table table.widefat th{padding-right:inherit}.woocommerce table.form-table th .woocommerce-help-tip,.woocommerce table.form-table th img.help_tip{margin:0 -24px 0 0;float:right}.woocommerce table.form-table .wp-list-table .woocommerce-help-tip{float:none}.woocommerce table.form-table fieldset{margin-top:4px}.woocommerce table.form-table fieldset .woocommerce-help-tip,.woocommerce table.form-table fieldset img.help_tip{margin:-3px 0 0 5px}.woocommerce table.form-table fieldset p.description{margin-bottom:8px}.woocommerce table.form-table fieldset:first-child{margin-top:0}.woocommerce table.form-table .iris-picker{z-index:100;display:none;position:absolute;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.2)}.woocommerce table.form-table .iris-picker .ui-slider{border:0!important;margin:0!important;width:auto!important;height:auto!important;background:none!important}.woocommerce table.form-table .iris-picker .ui-slider .ui-slider-handle{margin-bottom:0!important}.woocommerce table.form-table .colorpickpreview{padding:3px 3px 3px 20px;border:1px solid #ddd;border-right:0}.woocommerce table.form-table .colorpick{border-left:0}.woocommerce table.form-table .image_width_settings{vertical-align:middle}.woocommerce table.form-table .image_width_settings label{margin-left:10px}.woocommerce table.form-table .wc_emails_wrapper{padding:0 15px 10px 0}.woocommerce #tabs-wrap table a.remove{margin-left:4px}.woocommerce #tabs-wrap table p{margin:0 0 4px!important;overflow:hidden;zoom:1}.woocommerce #tabs-wrap table p a.add{float:left}#wp-excerpt-editor-container{background:#fff}#product_variation-parent #parent_id{width:100%}#postimagediv img{border:1px solid #d5d5d5;max-width:100%}#woocommerce-product-images .inside{margin:0;padding:0}#woocommerce-product-images .inside .add_product_images{padding:0 12px 12px}#woocommerce-product-images .inside #product_images_container{padding:0 0 0 9px}#woocommerce-product-images .inside #product_images_container ul{margin:0;padding:0}#woocommerce-product-images .inside #product_images_container ul:after,#woocommerce-product-images .inside #product_images_container ul:before{content:" ";display:table}#woocommerce-product-images .inside #product_images_container ul:after{clear:both}#woocommerce-product-images .inside #product_images_container ul li.add,#woocommerce-product-images .inside #product_images_container ul li.image,#woocommerce-product-images .inside #product_images_container ul li.wc-metabox-sortable-placeholder{width:80px;float:left;cursor:move;border:1px solid #d5d5d5;margin:9px 9px 0 0;background:#f7f7f7;border-radius:2px;position:relative;box-sizing:border-box}#woocommerce-product-images .inside #product_images_container ul li.add img,#woocommerce-product-images .inside #product_images_container ul li.image img,#woocommerce-product-images .inside #product_images_container ul li.wc-metabox-sortable-placeholder img{width:100%;height:auto;display:block}#woocommerce-product-images .inside #product_images_container ul li.wc-metabox-sortable-placeholder{border:3px dashed #ddd;position:relative}#woocommerce-product-images .inside #product_images_container ul li.wc-metabox-sortable-placeholder:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";font-size:2.618em;line-height:72px;color:#ddd}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.delete:before,#woocommerce-product-images .inside #product_images_container ul ul.actions li a.view:before{line-height:1;color:#fff;background-color:#000;font-family:WooCommerce;font-weight:400;font-variant:normal;-webkit-font-smoothing:antialiased;text-align:center;left:0;speak:none;text-transform:none}#woocommerce-product-images .inside #product_images_container ul ul.actions{position:absolute;top:-8px;right:-8px;padding:2px;display:none}#woocommerce-product-images .inside #product_images_container ul ul.actions li{float:right;margin:0 0 0 2px}#woocommerce-product-images .inside #product_images_container ul ul.actions li a{width:1em;margin:0;height:0;display:block;overflow:hidden}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.tips{cursor:pointer}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.view{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:1.4em}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.view:before{margin:0;text-indent:0;position:absolute;top:0;width:100%;height:100%;content:""}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.delete{display:block;text-indent:-9999px;position:relative;height:1em;width:1em;font-size:1.4em}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.delete:before{margin:0;text-indent:0;position:absolute;top:0;width:100%;height:100%;content:"";border-radius:100%;box-shadow:0 1px 2px rgba(0,0,0,.2)}#woocommerce-product-images .inside #product_images_container ul ul.actions li a.delete:hover before{background-color:#a00}#woocommerce-product-images .inside #product_images_container ul li:hover ul.actions{display:block}#woocommerce-product-data .hndle{padding:10px}#woocommerce-product-data .hndle span{display:block;vertical-align:middle;line-height:24px}#woocommerce-product-data .hndle span span{display:inline;line-height:inherit;vertical-align:baseline}#woocommerce-product-data .hndle label{padding-right:1em;font-size:12px;vertical-align:baseline}#woocommerce-product-data .hndle label:first-child{margin-right:1em;border-right:1px solid #dfdfdf}#woocommerce-product-data .hndle input,#woocommerce-product-data .hndle select{margin:-3px 0 0 .5em;vertical-align:middle}#woocommerce-product-data>.handlediv{margin-top:4px}#woocommerce-product-data .wrap{margin:0}#woocommerce-coupon-description{padding:3px 8px;font-size:1.7em;line-height:1.42em;height:auto;width:100%;outline:0;margin:10px 0;display:block}#woocommerce-coupon-description::-webkit-input-placeholder{line-height:1.42em;color:#bbb}#woocommerce-coupon-description::-moz-placeholder{line-height:1.42em;color:#bbb}#woocommerce-coupon-description:-ms-input-placeholder{line-height:1.42em;color:#bbb}#woocommerce-coupon-description:-moz-placeholder{line-height:1.42em;color:#bbb}#woocommerce-coupon-data .panel-wrap,#woocommerce-product-data .panel-wrap{background:#fff}#woocommerce-coupon-data .wc-metaboxes-wrapper,#woocommerce-coupon-data .woocommerce_options_panel,#woocommerce-product-data .wc-metaboxes-wrapper,#woocommerce-product-data .woocommerce_options_panel{float:left;width:80%}#woocommerce-coupon-data .wc-metaboxes-wrapper .wc-radios,#woocommerce-coupon-data .woocommerce_options_panel .wc-radios,#woocommerce-product-data .wc-metaboxes-wrapper .wc-radios,#woocommerce-product-data .woocommerce_options_panel .wc-radios{display:block;float:left;margin:0}#woocommerce-coupon-data .wc-metaboxes-wrapper .wc-radios li,#woocommerce-coupon-data .woocommerce_options_panel .wc-radios li,#woocommerce-product-data .wc-metaboxes-wrapper .wc-radios li,#woocommerce-product-data .woocommerce_options_panel .wc-radios li{display:block;padding:0 0 10px}#woocommerce-coupon-data .wc-metaboxes-wrapper .wc-radios li input,#woocommerce-coupon-data .woocommerce_options_panel .wc-radios li input,#woocommerce-product-data .wc-metaboxes-wrapper .wc-radios li input,#woocommerce-product-data .woocommerce_options_panel .wc-radios li input{width:auto}#woocommerce-coupon-data .panel-wrap,#woocommerce-product-data .panel-wrap,.woocommerce .panel-wrap{overflow:hidden}#woocommerce-coupon-data ul.wc-tabs,#woocommerce-product-data ul.wc-tabs,.woocommerce ul.wc-tabs{margin:0;width:20%;float:left;line-height:1em;padding:0 0 10px;position:relative;background-color:#fafafa;border-right:1px solid #eee;box-sizing:border-box}#woocommerce-coupon-data ul.wc-tabs:after,#woocommerce-product-data ul.wc-tabs:after,.woocommerce ul.wc-tabs:after{content:"";display:block;width:100%;height:9999em;position:absolute;bottom:-9999em;left:0;background-color:#fafafa;border-right:1px solid #eee}#woocommerce-coupon-data ul.wc-tabs li,#woocommerce-product-data ul.wc-tabs li,.woocommerce ul.wc-tabs li{margin:0;padding:0;display:block;position:relative}#woocommerce-coupon-data ul.wc-tabs li a,#woocommerce-product-data ul.wc-tabs li a,.woocommerce ul.wc-tabs li a{margin:0;padding:10px;display:block;box-shadow:none;text-decoration:none;line-height:20px!important;border-bottom:1px solid #eee}#woocommerce-coupon-data ul.wc-tabs li a:before,#woocommerce-product-data ul.wc-tabs li a:before,.woocommerce ul.wc-tabs li a:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-right:.618em;content:"";text-decoration:none}#woocommerce-coupon-data ul.wc-tabs li.general_options a:before,#woocommerce-product-data ul.wc-tabs li.general_options a:before,.woocommerce ul.wc-tabs li.general_options a:before{content:"\e006"}#woocommerce-coupon-data ul.wc-tabs li.inventory_options a:before,#woocommerce-product-data ul.wc-tabs li.inventory_options a:before,.woocommerce ul.wc-tabs li.inventory_options a:before{content:"\e02c"}#woocommerce-coupon-data ul.wc-tabs li.shipping_options a:before,#woocommerce-product-data ul.wc-tabs li.shipping_options a:before,.woocommerce ul.wc-tabs li.shipping_options a:before{content:"\e01a"}#woocommerce-coupon-data ul.wc-tabs li.linked_product_options a:before,#woocommerce-product-data ul.wc-tabs li.linked_product_options a:before,.woocommerce ul.wc-tabs li.linked_product_options a:before{content:"\e00d"}#woocommerce-coupon-data ul.wc-tabs li.attribute_options a:before,#woocommerce-product-data ul.wc-tabs li.attribute_options a:before,.woocommerce ul.wc-tabs li.attribute_options a:before{content:"\e02b"}#woocommerce-coupon-data ul.wc-tabs li.advanced_options a:before,#woocommerce-product-data ul.wc-tabs li.advanced_options a:before,.woocommerce ul.wc-tabs li.advanced_options a:before{content:"\f111";font-family:Dashicons}#woocommerce-coupon-data ul.wc-tabs li.variation_options a:before,#woocommerce-product-data ul.wc-tabs li.variation_options a:before,.woocommerce ul.wc-tabs li.variation_options a:before{content:"\e003"}#woocommerce-coupon-data ul.wc-tabs li.usage_restriction_options a:before,#woocommerce-product-data ul.wc-tabs li.usage_restriction_options a:before,.woocommerce ul.wc-tabs li.usage_restriction_options a:before{content:"\e602"}#woocommerce-coupon-data ul.wc-tabs li.usage_limit_options a:before,#woocommerce-product-data ul.wc-tabs li.usage_limit_options a:before,.woocommerce ul.wc-tabs li.usage_limit_options a:before{content:"\e601"}#woocommerce-coupon-data ul.wc-tabs li.general_coupon_data a:before,#woocommerce-product-data ul.wc-tabs li.general_coupon_data a:before,.woocommerce ul.wc-tabs li.general_coupon_data a:before{content:"\e600"}#woocommerce-coupon-data ul.wc-tabs li.active a,#woocommerce-product-data ul.wc-tabs li.active a,.woocommerce ul.wc-tabs li.active a{color:#555;position:relative;background-color:#eee}.woocommerce_page_wc-settings .shippingrows th.check-column{padding-top:20px}.woocommerce_page_wc-settings .shippingrows tfoot th{padding-left:10px}.woocommerce_page_wc-settings .shippingrows .add.button:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-right:.618em;content:"";text-decoration:none}.woocommerce_page_wc-settings h3.wc-settings-sub-title{font-size:1.2em}#woocommerce-coupon-data .inside,#woocommerce-order-data .inside,#woocommerce-order-downloads .inside,#woocommerce-product-data .inside,#woocommerce-product-type-options .inside{margin:0;padding:0}.panel,.woocommerce_options_panel{padding:9px;color:#555}.panel,.woocommerce_page_settings .woocommerce_options_panel{padding:0}#woocommerce-product-specs .inside,#woocommerce-product-type-options .panel{margin:0;padding:9px}#woocommerce-product-type-options .panel p,.woocommerce_options_panel fieldset.form-field,.woocommerce_options_panel p{margin:0 0 9px;font-size:12px;padding:5px 9px;line-height:24px}#woocommerce-product-type-options .panel p:after,.woocommerce_options_panel fieldset.form-field:after,.woocommerce_options_panel p:after{content:".";display:block;height:0;clear:both;visibility:hidden}.woocommerce_options_panel .checkbox,.woocommerce_variable_attributes .checkbox{width:auto;margin:3px 0;vertical-align:middle}.woocommerce_options_panel .downloadable_files table,.woocommerce_variations .downloadable_files table{width:100%;padding:0!important}.woocommerce_options_panel .downloadable_files table th,.woocommerce_variations .downloadable_files table th{padding:7px 0 7px 7px!important}.woocommerce_options_panel .downloadable_files table td,.woocommerce_variations .downloadable_files table td{vertical-align:middle!important;padding:4px 0 4px 7px!important;position:relative}.woocommerce_options_panel .downloadable_files table td:last-child,.woocommerce_variations .downloadable_files table td:last-child{padding-right:7px!important}.woocommerce_options_panel .downloadable_files table td input.input_text,.woocommerce_variations .downloadable_files table td input.input_text{width:100%;float:none;margin:1px 0;min-width:0}.woocommerce_options_panel .downloadable_files table td .upload_file_button,.woocommerce_variations .downloadable_files table td .upload_file_button{float:right;width:auto;cursor:pointer}.woocommerce_options_panel .downloadable_files table td .delete,.woocommerce_variations .downloadable_files table td .delete{display:block;text-indent:-9999px;position:relative;height:1em;width:1em}.woocommerce_options_panel .downloadable_files table td .delete:before,.woocommerce_variations .downloadable_files table td .delete:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;content:"";content:"\e013";color:#999}.woocommerce_options_panel .downloadable_files table td .delete:hover:before,.woocommerce_variations .downloadable_files table td .delete:hover:before{color:#a00}.woocommerce_options_panel .downloadable_files table th.sort,.woocommerce_variations .downloadable_files table th.sort{width:17px;padding:0}.woocommerce_options_panel .downloadable_files table td.sort,.woocommerce_variations .downloadable_files table td.sort{padding:0 8px;cursor:move;background:#f9f9f9;text-align:center;vertical-align:middle}.woocommerce_options_panel .downloadable_files table td.sort:before,.woocommerce_variations .downloadable_files table td.sort:before{content:"\e032";font-family:WooCommerce;text-align:center;line-height:1;color:#999;display:block;width:17px;float:left;height:100%}.woocommerce_options_panel .downloadable_files table td.sort:hover:before,.woocommerce_variations .downloadable_files table td.sort:hover:before{color:#333}.woocommerce_variation h3 .sort{cursor:move;text-align:center;float:right;height:26px;width:17px;visibility:hidden;vertical-align:middle;margin-right:.5em;color:#a0a5aa}.woocommerce_variation h3 .sort:before{content:"\e032";font-family:WooCommerce;text-align:center;cursor:move;display:block;width:17px;line-height:28px}.woocommerce_variation h3 .sort:hover{color:#777}.woocommerce_variation h3:hover .sort,.woocommerce_variation.ui-sortable-helper .sort{visibility:visible}.woocommerce_options_panel{min-height:175px;box-sizing:border-box}.woocommerce_options_panel .downloadable_files{padding:0 9px 0 162px;position:relative;margin:9px 0}.woocommerce_options_panel .downloadable_files label{position:absolute;left:0;margin:0 0 0 12px;line-height:24px}.woocommerce_options_panel p{margin:9px 0}.woocommerce_options_panel fieldset.form-field,.woocommerce_options_panel p.form-field{padding:5px 20px 5px 162px!important}.woocommerce_options_panel .sale_price_dates_fields .short:first-of-type{margin-bottom:1em}.woocommerce_options_panel .sale_price_dates_fields .short:nth-of-type(2){clear:left}.woocommerce_options_panel label,.woocommerce_options_panel legend{float:left;width:150px;padding:0;margin:0 0 0 -150px}.woocommerce_options_panel label .req,.woocommerce_options_panel legend .req{font-weight:700;font-style:normal;color:#a00}.woocommerce_options_panel .description{padding:0;margin:0 0 0 7px;clear:none;display:inline}.woocommerce_options_panel .description-block{margin-left:0;display:block}.woocommerce_options_panel input,.woocommerce_options_panel select,.woocommerce_options_panel textarea{margin:0}.woocommerce_options_panel textarea{height:3.5em;line-height:1.5em;vertical-align:top}.woocommerce_options_panel input[type=text],.woocommerce_options_panel input[type=number],.woocommerce_options_panel input[type=email],.woocommerce_options_panel input[type=password]{width:50%;float:left}.woocommerce_options_panel input.button{width:auto;margin-left:8px}.woocommerce_options_panel select{float:left}.woocommerce_options_panel .short,.woocommerce_options_panel input[type=text].short,.woocommerce_options_panel input[type=number].short,.woocommerce_options_panel input[type=email].short,.woocommerce_options_panel input[type=password].short{width:50%}.woocommerce_options_panel .sized{width:auto!important;margin-right:6px}.woocommerce_options_panel .options_group{border-top:1px solid #fff;border-bottom:1px solid #eee}.woocommerce_options_panel .options_group:first-child{border-top:0}.woocommerce_options_panel .options_group:last-child{border-bottom:0}.woocommerce_options_panel .options_group fieldset{margin:9px 0;font-size:12px;padding:5px 9px;line-height:24px}.woocommerce_options_panel .options_group fieldset label{width:auto;float:none}.woocommerce_options_panel .options_group fieldset ul{float:left;width:50%;margin:0;padding:0}.woocommerce_options_panel .options_group fieldset ul li{margin:0;width:auto}.woocommerce_options_panel .options_group fieldset ul li input{width:auto;float:none;margin-right:4px}.woocommerce_options_panel .options_group fieldset ul.wc-radios label{margin-left:0}.woocommerce_options_panel .dimensions_field .wrap{display:block;width:50%}.woocommerce_options_panel .dimensions_field .wrap input{width:30.75%;margin-right:3.8%}.woocommerce_options_panel .dimensions_field .wrap .last{margin-right:0}.woocommerce_options_panel.padded{padding:1em}#woocommerce-product-data input.dp-applied,.woocommerce_options_panel .select2-container{float:left}#grouped_product_options,#simple_product_options,#virtual_product_options{padding:12px;font-style:italic;color:#666}.wc-metaboxes-wrapper .toolbar{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #eee;padding:9px 12px!important}.wc-metaboxes-wrapper .toolbar:first-child{border-top:0}.wc-metaboxes-wrapper .toolbar:last-child{border-bottom:0}.wc-metaboxes-wrapper .toolbar .add_variation{float:right;margin-left:5px}.wc-metaboxes-wrapper .toolbar .cancel-variation-changes,.wc-metaboxes-wrapper .toolbar .save-variation-changes{float:left;margin-right:5px}.wc-metaboxes-wrapper p.toolbar{overflow:hidden;zoom:1}.wc-metaboxes-wrapper .expand-close{margin-right:2px;color:#777;font-size:12px;font-style:italic}.wc-metaboxes-wrapper .expand-close a{background:0 0;padding:0;font-size:12px;text-decoration:none}.wc-metaboxes-wrapper#product_attributes .expand-close{float:right;line-height:28px}.wc-metaboxes-wrapper .fr,.wc-metaboxes-wrapper button.add_variable_attribute{float:right;margin:0 0 0 6px}.wc-metaboxes-wrapper .wc-metaboxes{border-bottom:1px solid #eee}.wc-metaboxes-wrapper .wc-metabox-sortable-placeholder{border-color:#bbb;background-color:#f5f5f5;margin-bottom:9px;border-width:1px;border-style:dashed}.wc-metaboxes-wrapper .wc-metabox{background:#fff;border-bottom:1px solid #eee;margin:0!important}.wc-metaboxes-wrapper .wc-metabox select{font-weight:400}.wc-metaboxes-wrapper .wc-metabox:last-of-type{border-bottom:0}.wc-metaboxes-wrapper .wc-metabox .handlediv{width:27px}.wc-metaboxes-wrapper .wc-metabox .handlediv:before{content:"\f142"!important;cursor:pointer;display:inline-block;font:400 20px/1 Dashicons;line-height:.5!important;padding:8px 10px;position:relative;right:12px;top:0}.wc-metaboxes-wrapper .wc-metabox.closed{border-radius:3px}.wc-metaboxes-wrapper .wc-metabox.closed .handlediv:before{content:"\f140"!important}.wc-metaboxes-wrapper .wc-metabox.closed h3{border:0}.wc-metaboxes-wrapper .wc-metabox h3{margin:0!important;padding:.75em .75em .75em 1em!important;font-size:1em!important;overflow:hidden;zoom:1;cursor:move}.wc-metaboxes-wrapper .wc-metabox h3 a.delete,.wc-metaboxes-wrapper .wc-metabox h3 button{float:right}.wc-metaboxes-wrapper .wc-metabox h3 a.delete{color:red;font-weight:400;line-height:26px;text-decoration:none;position:relative;visibility:hidden}.wc-metaboxes-wrapper .wc-metabox h3 strong{line-height:26px;font-weight:700}.wc-metaboxes-wrapper .wc-metabox h3 select{font-family:sans-serif;max-width:20%;margin:.25em .25em .25em 0}.wc-metaboxes-wrapper .wc-metabox h3 .handlediv{background-position:6px 5px!important;visibility:hidden;height:26px}.wc-metaboxes-wrapper .wc-metabox h3.fixed{cursor:pointer!important}.wc-metaboxes-wrapper .wc-metabox.woocommerce_variation h3{cursor:pointer;padding:.5em .75em .5em 1em!important}.wc-metaboxes-wrapper .wc-metabox.woocommerce_variation h3 .handlediv,.wc-metaboxes-wrapper .wc-metabox.woocommerce_variation h3 .sort,.wc-metaboxes-wrapper .wc-metabox.woocommerce_variation h3 a.delete{margin-top:.25em}.wc-metaboxes-wrapper .wc-metabox h3:hover .handlediv,.wc-metaboxes-wrapper .wc-metabox h3:hover a.delete,.wc-metaboxes-wrapper .wc-metabox.ui-sortable-helper .handlediv,.wc-metaboxes-wrapper .wc-metabox.ui-sortable-helper a.delete{visibility:visible}.wc-metaboxes-wrapper .wc-metabox table{width:100%;position:relative;background-color:#fdfdfd;padding:1em;border-top:1px solid #eee}.wc-metaboxes-wrapper .wc-metabox table td{text-align:left;padding:0 6px 1em 0;vertical-align:top;border:0}.wc-metaboxes-wrapper .wc-metabox table td label{text-align:left;display:block;line-height:21px}.wc-metaboxes-wrapper .wc-metabox table td input{float:left;min-width:200px}.wc-metaboxes-wrapper .wc-metabox table td input,.wc-metaboxes-wrapper .wc-metabox table td textarea{width:100%;margin:0;display:block;font-size:14px;padding:4px;color:#555}.wc-metaboxes-wrapper .wc-metabox table td .select2-container,.wc-metaboxes-wrapper .wc-metabox table td select{width:100%!important}.wc-metaboxes-wrapper .wc-metabox table td input.short{width:200px}.wc-metaboxes-wrapper .wc-metabox table td input.checkbox{width:16px;min-width:inherit;vertical-align:text-bottom;display:inline-block;float:none}.wc-metaboxes-wrapper .wc-metabox table td.attribute_name{width:200px}.wc-metaboxes-wrapper .wc-metabox table .minus,.wc-metaboxes-wrapper .wc-metabox table .plus{margin-top:6px}.wc-metaboxes-wrapper .wc-metabox table .fl{float:left}.wc-metaboxes-wrapper .wc-metabox table .fr{float:right}.variations-pagenav{float:right;line-height:24px}.variations-pagenav .displaying-num{color:#777;font-size:12px;font-style:italic}.variations-pagenav a{padding:0 10px 3px;background:rgba(0,0,0,.05);font-size:16px;font-weight:400;text-decoration:none}.variations-pagenav a.disabled,.variations-pagenav a.disabled:active,.variations-pagenav a.disabled:focus,.variations-pagenav a.disabled:hover{color:#A0A5AA;background:rgba(0,0,0,.05)}.variations-defaults{float:left}.variations-defaults select{margin:.25em .25em .25em 0}.woocommerce_variable_attributes{background-color:#fdfdfd;border-top:1px solid #eee}.woocommerce_variable_attributes .data{padding:1em 2em}.woocommerce_variable_attributes .data:after,.woocommerce_variable_attributes .data:before{content:" ";display:table}.woocommerce_variable_attributes .data:after{clear:both}.woocommerce_variable_attributes .upload_image_button{display:block;width:48px;height:48px;float:left;margin-right:20px;position:relative;cursor:pointer}.woocommerce_variable_attributes .upload_image_button img{width:100%;height:auto;display:none}.woocommerce_variable_attributes .upload_image_button:before{content:"\f128";font-family:Dashicons;position:absolute;top:0;left:0;right:0;bottom:0;text-align:center;line-height:48px;font-size:48px;font-weight:400;-webkit-font-smoothing:antialiased}.woocommerce_variable_attributes .upload_image_button.remove img{display:block}.woocommerce_variable_attributes .upload_image_button.remove:before{content:"\f335";display:none}.woocommerce_variable_attributes .upload_image_button.remove:hover:before{display:block}.woocommerce_variable_attributes .options{border:1px solid #eee;border-width:1px 0;padding:.25em 0}.woocommerce_variable_attributes .options label{display:inline-block;padding:4px 1em 2px 0}.woocommerce_variable_attributes .options input[type=checkbox]{margin-top:5px;margin-right:3px}.form-row label{display:block}.form-row input[type=number],.form-row input[type=text],.form-row select{width:100%}.form-row.dimensions_field input{width:25%;float:left;margin-right:1%}.form-row.dimensions_field input:last-of-type{margin-right:0}.form-row-first,.form-row-last{width:48%;float:right}.form-row-first{clear:both;float:left}.form-row-full{clear:both}.tips{cursor:help;text-decoration:none}img.tips{padding:5px 0 0}#tiptip_holder{display:none;position:absolute;top:0;left:0;z-index:9999999}#tiptip_holder.tip_top{padding-bottom:5px}#tiptip_holder.tip_top #tiptip_arrow_inner{margin-top:-7px;margin-left:-6px;border-top-color:#333}#tiptip_holder.tip_bottom{padding-top:5px}#tiptip_holder.tip_bottom #tiptip_arrow_inner{margin-top:-5px;margin-left:-6px;border-bottom-color:#333}#tiptip_holder.tip_right{padding-left:5px}#tiptip_holder.tip_right #tiptip_arrow_inner{margin-top:-6px;margin-left:-5px;border-right-color:#333}#tiptip_holder.tip_left{padding-right:5px}#tiptip_holder.tip_left #tiptip_arrow_inner{margin-top:-6px;margin-left:-7px;border-left-color:#333}#tiptip_content,.chart-tooltip,.wc_error_tip{color:#fff;font-size:.8em;max-width:150px;background:#333;text-align:center;border-radius:3px;padding:.618em 1em;box-shadow:0 1px 3px rgba(0,0,0,.2)}#tiptip_content code,.chart-tooltip code,.wc_error_tip code{padding:1px;background:#888}#tiptip_arrow,#tiptip_arrow_inner{position:absolute;border-color:transparent;border-style:solid;border-width:6px;height:0;width:0}.wc_error_tip{max-width:20em;line-height:1.8em;position:absolute;white-space:normal;background:#d82223;margin:1.5em 1px 0 -1em;z-index:9999999}.wc_error_tip:after{content:"";display:block;border:8px solid #d82223;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent;position:absolute;top:-3px;left:50%;margin:-1em 0 0 -3px}img.ui-datepicker-trigger{vertical-align:middle;margin-top:-1px;cursor:pointer}.wc-metabox-content img.ui-datepicker-trigger,.woocommerce_options_panel img.ui-datepicker-trigger{float:left;margin-right:8px;margin-top:4px;margin-left:4px}#ui-datepicker-div{display:none}.woocommerce-reports-wide.woocommerce-reports-wrap,.woocommerce-reports-wrap.woocommerce-reports-wrap{margin-left:300px;padding-top:18px}.woocommerce-reports-wide.halved,.woocommerce-reports-wrap.halved{margin:0;overflow:hidden;zoom:1}.woocommerce-reports-wide .widefat td,.woocommerce-reports-wrap .widefat td{vertical-align:top;padding:7px}.woocommerce-reports-wide .widefat td .description,.woocommerce-reports-wrap .widefat td .description{margin:4px 0 0}.woocommerce-reports-wide .postbox:after,.woocommerce-reports-wrap .postbox:after{content:".";display:block;height:0;clear:both;visibility:hidden}.woocommerce-reports-wide .postbox h3,.woocommerce-reports-wrap .postbox h3{cursor:default!important}.woocommerce-reports-wide .postbox .inside,.woocommerce-reports-wrap .postbox .inside{padding:10px;margin:0!important}.woocommerce-reports-wide .postbox h3.stats_range,.woocommerce-reports-wrap .postbox h3.stats_range{border-bottom-color:#dfdfdf;margin:0;padding:0!important}.woocommerce-reports-wide .postbox h3.stats_range .export_csv,.woocommerce-reports-wrap .postbox h3.stats_range .export_csv{float:right;line-height:26px;border-left:1px solid #dfdfdf;padding:10px;display:block;text-decoration:none}.woocommerce-reports-wide .postbox h3.stats_range .export_csv:before,.woocommerce-reports-wrap .postbox h3.stats_range .export_csv:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;content:"";text-decoration:none;margin-right:4px}.woocommerce-reports-wide .postbox h3.stats_range ul,.woocommerce-reports-wrap .postbox h3.stats_range ul{list-style:none;margin:0;padding:0;zoom:1;background:#f5f5f5}.woocommerce-reports-wide .postbox h3.stats_range ul:after,.woocommerce-reports-wide .postbox h3.stats_range ul:before,.woocommerce-reports-wrap .postbox h3.stats_range ul:after,.woocommerce-reports-wrap .postbox h3.stats_range ul:before{content:" ";display:table}.woocommerce-reports-wide .postbox h3.stats_range ul:after,.woocommerce-reports-wrap .postbox h3.stats_range ul:after{clear:both}.woocommerce-reports-wide .postbox h3.stats_range ul li,.woocommerce-reports-wrap .postbox h3.stats_range ul li{float:left;margin:0;padding:0;line-height:26px}.woocommerce-reports-wide .postbox h3.stats_range ul li a,.woocommerce-reports-wrap .postbox h3.stats_range ul li a{border-right:1px solid #dfdfdf;padding:10px;display:block;text-decoration:none}.woocommerce-reports-wide .postbox h3.stats_range ul li.active,.woocommerce-reports-wrap .postbox h3.stats_range ul li.active{background:#fff;-webkit-box-shadow:0 4px 0 0 #fff;box-shadow:0 4px 0 0 #fff}.woocommerce-reports-wide .postbox h3.stats_range ul li.active a,.woocommerce-reports-wrap .postbox h3.stats_range ul li.active a{color:#777}.woocommerce-reports-wide .postbox h3.stats_range ul li.custom,.woocommerce-reports-wrap .postbox h3.stats_range ul li.custom{padding:9px 10px;vertical-align:middle}.woocommerce-reports-wide .postbox h3.stats_range ul li.custom div,.woocommerce-reports-wide .postbox h3.stats_range ul li.custom form,.woocommerce-reports-wrap .postbox h3.stats_range ul li.custom div,.woocommerce-reports-wrap .postbox h3.stats_range ul li.custom form{display:inline;margin:0}.woocommerce-reports-wide .postbox h3.stats_range ul li.custom div input.range_datepicker,.woocommerce-reports-wide .postbox h3.stats_range ul li.custom form input.range_datepicker,.woocommerce-reports-wrap .postbox h3.stats_range ul li.custom div input.range_datepicker,.woocommerce-reports-wrap .postbox h3.stats_range ul li.custom form input.range_datepicker{padding:0;margin:0 10px 0 0;background:0 0;border:0;color:#777;text-align:center;-webkit-box-shadow:none;box-shadow:none}.woocommerce-reports-wide .postbox .chart-with-sidebar,.woocommerce-reports-wrap .postbox .chart-with-sidebar{padding:12px 12px 12px 249px;margin:0!important}.woocommerce-reports-wide .postbox .chart-with-sidebar .chart-sidebar,.woocommerce-reports-wrap .postbox .chart-with-sidebar .chart-sidebar{width:225px;margin-left:-237px;float:left}.woocommerce-reports-wide .postbox .chart-widgets,.woocommerce-reports-wrap .postbox .chart-widgets{margin:0;padding:0}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget{margin:0 0 1em;background:#fafafa;border:1px solid #dfdfdf}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget:after,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget:after{content:".";display:block;height:0;clear:both;visibility:hidden}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget h4,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget h4{background:#fff;border:1px solid #dfdfdf;border-left-width:0;border-right-width:0;padding:10px;margin:0;color:#2ea2cc;border-top-width:0;background-image:-webkit-gradient(linear,left bottom,left top,from(#ececec),to(#f9f9f9));background-image:-webkit-linear-gradient(bottom,#ececec,#f9f9f9);background-image:-moz-linear-gradient(bottom,#ececec,#f9f9f9);background-image:-o-linear-gradient(bottom,#ececec,#f9f9f9);background-image:linear-gradient(to top,#ececec,#f9f9f9)}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table td.count,.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table tr.active td,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table td.count,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table tr.active td{background:#f5f5f5}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget h4.section_title:hover,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget h4.section_title:hover{color:#a00}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section_title,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section_title{cursor:pointer}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section_title span,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section_title span{display:block}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section_title span:after,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section_title span:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin-left:.618em;content:"";text-decoration:none;float:right;font-size:.9em;line-height:1.618}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section_title.open,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section_title.open{color:#333}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section_title.open span:after,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section_title.open span:after{display:none}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section{border-bottom:1px solid #dfdfdf}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section .select2-container,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section .select2-container{width:100%!important}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .section:last-of-type,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .section:last-of-type{border-radius:0 0 3px 3px}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table{width:100%}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table td,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table td{padding:7px 10px;vertical-align:top;border-top:1px solid #e5e5e5;line-height:1.4em}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table td.sparkline,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table td.sparkline,form.report_filters div,form.report_filters input,form.report_filters label,form.report_filters p{vertical-align:middle}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table tr:first-child td,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table tr:first-child td{border-top:0}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table td.name,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table td.name{max-width:175px}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table td.name a,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table td.name a{word-wrap:break-word}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget table .wc_sparkline,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget table .wc_sparkline{width:32px;height:1em;display:block;float:right}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget form,.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget p,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget form,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget p{margin:0;padding:10px}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget form .submit,.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget p .submit,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget form .submit,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget p .submit{margin-top:10px}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget #product_ids,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget #product_ids{width:100%}.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .select_all,.woocommerce-reports-wide .postbox .chart-widgets li.chart-widget .select_none,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .select_all,.woocommerce-reports-wrap .postbox .chart-widgets li.chart-widget .select_none{float:right;color:#999;margin-left:4px;margin-top:10px}.woocommerce-reports-wide .postbox .chart-legend,.woocommerce-reports-wrap .postbox .chart-legend{list-style:none;margin:0 0 1em;padding:0;border:1px solid #dfdfdf;border-right-width:0;border-bottom-width:0;background:#fff}.woocommerce-reports-wide .postbox .chart-legend li,.woocommerce-reports-wrap .postbox .chart-legend li{border-right:5px solid #aaa;color:#aaa;padding:1em;display:block;margin:0;-webkit-transition:all ease .5s;box-shadow:inset 0 -1px 0 0 #dfdfdf}.woocommerce-reports-wide .postbox .chart-legend li strong,.woocommerce-reports-wrap .postbox .chart-legend li strong{font-size:1.618em;line-height:1.2em;color:#464646;font-weight:400;display:block;font-family:HelveticaNeue-Light,"Helvetica Neue Light","Helvetica Neue",sans-serif}.woocommerce-reports-wide .postbox .chart-legend li strong del,.woocommerce-reports-wrap .postbox .chart-legend li strong del{color:#e74c3c;font-weight:400}.woocommerce-reports-wide .postbox .chart-legend li:hover,.woocommerce-reports-wrap .postbox .chart-legend li:hover{box-shadow:inset 0 -1px 0 0 #dfdfdf,inset 300px 0 0 rgba(156,93,144,.1);border-right:5px solid #9c5d90!important;padding-left:1.5em;color:#9c5d90}.woocommerce-reports-wide .postbox .pie-chart-legend,.woocommerce-reports-wrap .postbox .pie-chart-legend{margin:12px 0 0;overflow:hidden}.woocommerce-reports-wide .postbox .pie-chart-legend li,.woocommerce-reports-wrap .postbox .pie-chart-legend li{float:left;margin:0;padding:6px 0 0;border-top:4px solid #999;text-align:center;box-sizing:border-box;width:50%}.woocommerce-reports-wide .postbox .stat,.woocommerce-reports-wrap .postbox .stat{font-size:1.5em!important;font-weight:700;text-align:center}.woocommerce-reports-wide .postbox .chart-placeholder,.woocommerce-reports-wrap .postbox .chart-placeholder{width:100%;height:650px;overflow:hidden;position:relative}.woocommerce-reports-wide .postbox .chart-prompt,.woocommerce-reports-wrap .postbox .chart-prompt{line-height:650px;margin:0;color:#999;font-size:1.2em;font-style:italic;text-align:center}.woocommerce-reports-wide .postbox .chart-container,.woocommerce-reports-wrap .postbox .chart-container{background:#fff;padding:12px;position:relative;border:1px solid #dfdfdf;border-radius:3px}.woocommerce-reports-wide .postbox .main .chart-legend,.woocommerce-reports-wrap .postbox .main .chart-legend{margin-top:12px}.woocommerce-reports-wide .postbox .main .chart-legend li,.woocommerce-reports-wrap .postbox .main .chart-legend li{border-right:0;margin:0 8px 0 0;float:left;border-top:4px solid #aaa}.woocommerce-reports-wide .woocommerce-reports-main,.woocommerce-reports-wrap .woocommerce-reports-main{float:left;min-width:100%}.woocommerce-reports-wide .woocommerce-reports-main table td,.woocommerce-reports-wrap .woocommerce-reports-main table td{padding:9px}.woocommerce-reports-wide .woocommerce-reports-sidebar,.woocommerce-reports-wrap .woocommerce-reports-sidebar{display:inline;width:281px;margin-left:-300px;clear:both;float:left}.woocommerce-reports-wide .woocommerce-reports-left,.woocommerce-reports-wrap .woocommerce-reports-left{width:49.5%;float:left}.woocommerce-reports-wide .woocommerce-reports-right,.woocommerce-reports-wrap .woocommerce-reports-right{width:49.5%;float:right}.woocommerce-reports-wide .column-wc_actions a.edit,.woocommerce-reports-wide .column-wc_actions a.view,.woocommerce-reports-wrap .column-wc_actions a.edit,.woocommerce-reports-wrap .column-wc_actions a.view{display:block;text-indent:-9999px;position:relative;padding:0!important;height:2em!important;width:2em}.woocommerce-reports-wide .column-wc_actions a.edit:after,.woocommerce-reports-wide .column-wc_actions a.view:after,.woocommerce-reports-wrap .column-wc_actions a.edit:after,.woocommerce-reports-wrap .column-wc_actions a.view:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;margin:0;text-indent:0;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;line-height:1.85}.woocommerce-reports-wide .column-wc_actions a.edit:after,.woocommerce-reports-wrap .column-wc_actions a.edit:after{content:"\e01c"}.woocommerce-reports-wide .column-wc_actions a.view:after,.woocommerce-reports-wrap .column-wc_actions a.view:after{content:"\e010"}.woocommerce-wide-reports-wrap{padding-bottom:11px}.woocommerce-wide-reports-wrap .widefat .export-data{float:right}.woocommerce-wide-reports-wrap .widefat td,.woocommerce-wide-reports-wrap .widefat th{vertical-align:middle;padding:7px}.chart-tooltip{position:absolute;display:none;line-height:1}table.bar_chart{width:100%}table.bar_chart thead th{text-align:left;color:#ccc;padding:6px 0}table.bar_chart tbody th{padding:6px 0;width:25%;text-align:left!important;font-weight:400!important;border-bottom:1px solid #fee}table.bar_chart tbody td{text-align:right;line-height:24px;padding:6px 6px 6px 0;border-bottom:1px solid #fee}table.bar_chart tbody td span{color:#8a4b75;display:block}table.bar_chart tbody td span.alt{color:#47a03e;margin-top:6px}table.bar_chart tbody td.bars{position:relative;text-align:left;padding:6px 6px 6px 0;border-bottom:1px solid #fee}table.bar_chart tbody td.bars a,table.bar_chart tbody td.bars span{text-decoration:none;clear:both;background:#8a4b75;float:left;display:block;line-height:24px;height:24px;-moz-border-radius:3px;-webkit-border-radius:3px;-o-border-radius:3px;-khtml-border-radius:3px;border-radius:3px}table.bar_chart tbody td.bars span.alt{clear:both;background:#47a03e}table.bar_chart tbody td.bars span.alt span{margin:0;color:#c5dec2!important;text-shadow:0 1px 0 #47a03e;background:0 0}@media only screen and (max-width:1280px){#order_data .order_data_column{width:48%}#order_data .order_data_column:first-child{width:100%}.woocommerce_options_panel .description{display:block;clear:both;margin-left:0}.woocommerce_options_panel .dimensions_field .wrap,.woocommerce_options_panel .short,.woocommerce_options_panel input[type=email].short,.woocommerce_options_panel input[type=number].short,.woocommerce_options_panel input[type=text].short{width:80%}.woocommerce_options_panel .downloadable_files,.woocommerce_variations .downloadable_files{padding:0;clear:both}.woocommerce_options_panel .downloadable_files label,.woocommerce_variations .downloadable_files label{position:static}.woocommerce_options_panel .downloadable_files table,.woocommerce_variations .downloadable_files table{margin:0 12px 24px;width:94%}.woocommerce_options_panel .downloadable_files table .sort,.woocommerce_variations .downloadable_files table .sort{visibility:hidden}.woocommerce_options_panel .woocommerce_variable_attributes .downloadable_files table,.woocommerce_variations .woocommerce_variable_attributes .downloadable_files table{margin:0 0 1em;width:100%}}@media only screen and (max-width:900px){#woocommerce-coupon-data ul.coupon_data_tabs,#woocommerce-product-data .wc-tabs-back,#woocommerce-product-data ul.product_data_tabs{width:10%}#woocommerce-coupon-data .wc-metaboxes-wrapper,#woocommerce-coupon-data .woocommerce_options_panel,#woocommerce-product-data .wc-metaboxes-wrapper,#woocommerce-product-data .woocommerce_options_panel{width:90%}#woocommerce-coupon-data ul.coupon_data_tabs li a,#woocommerce-product-data ul.product_data_tabs li a{position:relative;text-indent:-999px;padding:10px}#woocommerce-coupon-data ul.coupon_data_tabs li a:before,#woocommerce-product-data ul.product_data_tabs li a:before{position:absolute;top:0;right:0;bottom:0;left:0;text-indent:0;text-align:center;line-height:40px;width:100%;height:40px}}@media only screen and (max-width:782px){#wp-excerpt-media-buttons a{font-size:16px;line-height:37px;height:39px;padding:0 20px 0 15px}#wp-excerpt-editor-tools{padding-top:20px;padding-right:15px;overflow:hidden;margin-bottom:-1px}.post-type-product .wp-list-table .is-expanded td:not(.hidden),.post-type-shop_order .wp-list-table .is-expanded td:not(.hidden){overflow:visible}#woocommerce-product-data .checkbox{width:25px}.variations-pagenav{float:none;text-align:center;font-size:18px}.variations-pagenav .displaying-num{font-size:16px}.variations-pagenav a{padding:8px 20px 11px;font-size:18px}.variations-pagenav select{padding:0 20px}.variations-defaults{float:none;text-align:center;margin-top:10px}.post-type-product .wp-list-table .column-thumb{display:none;text-align:left;padding-bottom:0}.post-type-product .wp-list-table .column-thumb:before{display:none!important}.post-type-product .wp-list-table .column-thumb img{max-width:32px}.post-type-product .wp-list-table .toggle-row{top:-28px}.post-type-shop_order .wp-list-table .column-order_status{display:none;text-align:left;padding-bottom:0}.post-type-shop_order .wp-list-table .column-order_status mark{margin:0}.post-type-shop_order .wp-list-table .column-order_status:before{display:none!important}.post-type-shop_order .wp-list-table .column-customer_message,.post-type-shop_order .wp-list-table .column-order_notes{text-align:inherit}.post-type-shop_order .wp-list-table .column-order_notes .note-on{font-size:1.3em;margin:0}.post-type-shop_order .wp-list-table .toggle-row{top:-15px}}@media only screen and (max-width:500px){.woocommerce_options_panel label,.woocommerce_options_panel legend{float:none;width:auto;display:block;margin:0}.woocommerce_options_panel fieldset.form-field,.woocommerce_options_panel p.form-field{padding:5px 20px!important}}.wc-backbone-modal *{box-sizing:border-box}.wc-backbone-modal .wc-backbone-modal-content{position:fixed;top:50%;left:50%;width:500px;background:#fff;z-index:100000}.wc-backbone-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:99900}.wc-backbone-modal-main{padding-bottom:51px}.wc-backbone-modal-main article,.wc-backbone-modal-main header{display:block;position:relative}.wc-backbone-modal-main .wc-backbone-modal-header{height:50px;background:#fcfcfc;padding:0 50px 0 16px;border-bottom:1px solid #ddd}.wc-backbone-modal-main .wc-backbone-modal-header h1{margin:0;font-size:18px;font-weight:700;line-height:50px}.wc-backbone-modal-main .wc-backbone-modal-header .modal-close-link{cursor:pointer;color:#777;height:50px;width:50px;padding:0;position:absolute;top:0;right:0;text-align:center;border:0;border-left:1px solid #ddd;background-color:transparent;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.wc-backbone-modal-main .wc-backbone-modal-header .modal-close-link:before{font:400 22px/50px dashicons!important;color:#666;display:block;content:'\f335';font-weight:300}.wc-backbone-modal-main .wc-backbone-modal-header .modal-close-link:focus,.wc-backbone-modal-main .wc-backbone-modal-header .modal-close-link:hover{background:#ddd;border-color:#ccc;color:#000}.wc-backbone-modal-main .wc-backbone-modal-header .modal-close-link:focus{outline:0}.wc-backbone-modal-main article{padding:10px 16px}.wc-backbone-modal-main article .pagination{padding:10px 0 0;text-align:center}.wc-backbone-modal-main footer{position:absolute;left:0;right:0;bottom:0;z-index:100;padding:10px 16px;background:#fcfcfc;border-top:1px solid #dfdfdf;box-shadow:0 -4px 4px -4px rgba(0,0,0,.1)}.wc-backbone-modal-main footer .inner{float:right;line-height:23px}.wc-backbone-modal-main footer .inner .button{margin-bottom:0}.select2-drop{z-index:999999!important}.select2-container-multi .select2-choices .select2-search-field input{font-family:inherit;font-size:inherit;font-weight:inherit;padding:3px 5px}.select2-container{line-height:1.85em;font-size:14px} \ No newline at end of file diff --git a/assets/css/admin.scss b/assets/css/admin.scss index d1d86850377..01e476ce863 100644 --- a/assets/css/admin.scss +++ b/assets/css/admin.scss @@ -1880,6 +1880,13 @@ a.import_rates { font-size: 1.2em; } } +#rates-pagination { + float: right; + margin-right: .5em; + .tablenav { + margin: 0; + } +} table.wc_tax_rates, table.wc_input_table { @@ -2943,7 +2950,8 @@ img.help_tip { input[type="text"], input[type="email"], - input[type="number"] { + input[type="number"], + input[type="password"] { width: 50%; float: left; } @@ -2960,6 +2968,7 @@ img.help_tip { input[type="text"].short, input[type="email"].short, input[type="number"].short, + input[type="password"].short, .short { width: 50%; } diff --git a/assets/css/woocommerce-smallscreen.css b/assets/css/woocommerce-smallscreen.css index bdaffbfa3c2..b95032a90ea 100644 --- a/assets/css/woocommerce-smallscreen.css +++ b/assets/css/woocommerce-smallscreen.css @@ -1 +1 @@ -.woocommerce table.shop_table_responsive tbody th,.woocommerce table.shop_table_responsive thead,.woocommerce-page table.shop_table_responsive tbody th,.woocommerce-page table.shop_table_responsive thead{display:none}.woocommerce table.shop_table_responsive tbody tr:first-child td:first-child,.woocommerce-page table.shop_table_responsive tbody tr:first-child td:first-child{border-top:0}.woocommerce table.shop_table_responsive tr,.woocommerce-page table.shop_table_responsive tr{display:block}.woocommerce table.shop_table_responsive tr td,.woocommerce-page table.shop_table_responsive tr td{display:block;text-align:right!important}.woocommerce #content table.cart .product-thumbnail,.woocommerce table.cart .product-thumbnail,.woocommerce table.my_account_orders tr td.order-actions:before,.woocommerce table.shop_table_responsive tr td.actions:before,.woocommerce table.shop_table_responsive tr td.product-remove:before,.woocommerce-page #content table.cart .product-thumbnail,.woocommerce-page table.cart .product-thumbnail,.woocommerce-page table.my_account_orders tr td.order-actions:before,.woocommerce-page table.shop_table_responsive tr td.actions:before,.woocommerce-page table.shop_table_responsive tr td.product-remove:before{display:none}.woocommerce table.shop_table_responsive tr td.order-actions,.woocommerce-page table.shop_table_responsive tr td.order-actions{text-align:left!important}.woocommerce table.shop_table_responsive tr td:before,.woocommerce-page table.shop_table_responsive tr td:before{content:attr(data-title) ": ";font-weight:700;float:left}.woocommerce table.shop_table_responsive tr:nth-child(2n) td,.woocommerce-page table.shop_table_responsive tr:nth-child(2n) td{background-color:rgba(0,0,0,.025)}.woocommerce table.my_account_orders tr td.order-actions,.woocommerce-page table.my_account_orders tr td.order-actions{text-align:left}.woocommerce table.my_account_orders tr td.order-actions .button,.woocommerce-page table.my_account_orders tr td.order-actions .button{float:none;margin:.125em .25em .125em 0}.woocommerce .col2-set .col-1,.woocommerce .col2-set .col-2,.woocommerce-page .col2-set .col-1,.woocommerce-page .col2-set .col-2{float:none;width:100%}.woocommerce-page[class*=columns-] ul.products li.product,.woocommerce[class*=columns-] ul.products li.product{width:48%;float:left;clear:both;margin:0 0 2.992em}.woocommerce-page[class*=columns-] ul.products li.product:nth-child(2n),.woocommerce[class*=columns-] ul.products li.product:nth-child(2n){float:right;clear:none!important}.woocommerce #content div.product div.images,.woocommerce #content div.product div.summary,.woocommerce div.product div.images,.woocommerce div.product div.summary,.woocommerce-page #content div.product div.images,.woocommerce-page #content div.product div.summary,.woocommerce-page div.product div.images,.woocommerce-page div.product div.summary{float:none;width:100%}.woocommerce #content table.cart td.actions,.woocommerce table.cart td.actions,.woocommerce-page #content table.cart td.actions,.woocommerce-page table.cart td.actions{text-align:left}.woocommerce #content table.cart td.actions .coupon,.woocommerce table.cart td.actions .coupon,.woocommerce-page #content table.cart td.actions .coupon,.woocommerce-page table.cart td.actions .coupon{float:none;padding-bottom:.5em}.woocommerce #content table.cart td.actions .coupon:after,.woocommerce #content table.cart td.actions .coupon:before,.woocommerce table.cart td.actions .coupon:after,.woocommerce table.cart td.actions .coupon:before,.woocommerce-page #content table.cart td.actions .coupon:after,.woocommerce-page #content table.cart td.actions .coupon:before,.woocommerce-page table.cart td.actions .coupon:after,.woocommerce-page table.cart td.actions .coupon:before{content:" ";display:table}.woocommerce #content table.cart td.actions .coupon:after,.woocommerce table.cart td.actions .coupon:after,.woocommerce-page #content table.cart td.actions .coupon:after,.woocommerce-page table.cart td.actions .coupon:after{clear:both}.woocommerce #content table.cart td.actions .button,.woocommerce #content table.cart td.actions .input-text,.woocommerce #content table.cart td.actions input,.woocommerce table.cart td.actions .button,.woocommerce table.cart td.actions .input-text,.woocommerce table.cart td.actions input,.woocommerce-page #content table.cart td.actions .button,.woocommerce-page #content table.cart td.actions .input-text,.woocommerce-page #content table.cart td.actions input,.woocommerce-page table.cart td.actions .button,.woocommerce-page table.cart td.actions .input-text,.woocommerce-page table.cart td.actions input{width:48%;box-sizing:border-box}.woocommerce #content table.cart td.actions .button.alt,.woocommerce #content table.cart td.actions .input-text+.button,.woocommerce table.cart td.actions .button.alt,.woocommerce table.cart td.actions .input-text+.button,.woocommerce-page #content table.cart td.actions .button.alt,.woocommerce-page #content table.cart td.actions .input-text+.button,.woocommerce-page table.cart td.actions .button.alt,.woocommerce-page table.cart td.actions .input-text+.button{float:right}.woocommerce .cart-collaterals .cart_totals,.woocommerce .cart-collaterals .cross-sells,.woocommerce .cart-collaterals .shipping_calculator,.woocommerce-page .cart-collaterals .cart_totals,.woocommerce-page .cart-collaterals .cross-sells,.woocommerce-page .cart-collaterals .shipping_calculator{width:100%;float:none;text-align:left}.woocommerce-page.woocommerce-checkout form.login .form-row,.woocommerce.woocommerce-checkout form.login .form-row{width:100%;float:none}.woocommerce #payment .terms,.woocommerce-page #payment .terms{text-align:left;padding:0}.woocommerce #payment #place_order,.woocommerce-page #payment #place_order{float:none;width:100%;box-sizing:border-box;margin-bottom:1em}.woocommerce .lost_reset_password .form-row-first,.woocommerce .lost_reset_password .form-row-last,.woocommerce-page .lost_reset_password .form-row-first,.woocommerce-page .lost_reset_password .form-row-last{width:100%;float:none;margin-right:0}.single-product .twentythirteen .panel{padding-left:20px!important;padding-right:20px!important} \ No newline at end of file +.woocommerce table.shop_table_responsive tbody th,.woocommerce table.shop_table_responsive thead,.woocommerce-page table.shop_table_responsive tbody th,.woocommerce-page table.shop_table_responsive thead{display:none}.woocommerce table.shop_table_responsive tbody tr:first-child td:first-child,.woocommerce-page table.shop_table_responsive tbody tr:first-child td:first-child{border-top:0}.woocommerce table.shop_table_responsive tr,.woocommerce-page table.shop_table_responsive tr{display:block}.woocommerce table.shop_table_responsive tr td,.woocommerce-page table.shop_table_responsive tr td{display:block;text-align:right!important}.woocommerce #content table.cart .product-thumbnail,.woocommerce table.cart .product-thumbnail,.woocommerce table.my_account_orders tr td.order-actions:before,.woocommerce table.shop_table_responsive tr td.actions:before,.woocommerce table.shop_table_responsive tr td.product-remove:before,.woocommerce-page #content table.cart .product-thumbnail,.woocommerce-page table.cart .product-thumbnail,.woocommerce-page table.my_account_orders tr td.order-actions:before,.woocommerce-page table.shop_table_responsive tr td.actions:before,.woocommerce-page table.shop_table_responsive tr td.product-remove:before{display:none}.woocommerce table.shop_table_responsive tr td.order-actions,.woocommerce-page table.shop_table_responsive tr td.order-actions{text-align:left!important}.woocommerce table.shop_table_responsive tr td:before,.woocommerce-page table.shop_table_responsive tr td:before{content:attr(data-title) ": ";font-weight:700;float:left}.woocommerce table.shop_table_responsive tr:nth-child(2n) td,.woocommerce-page table.shop_table_responsive tr:nth-child(2n) td{background-color:rgba(0,0,0,.025)}.woocommerce table.my_account_orders tr td.order-actions,.woocommerce-page table.my_account_orders tr td.order-actions{text-align:left}.woocommerce table.my_account_orders tr td.order-actions .button,.woocommerce-page table.my_account_orders tr td.order-actions .button{float:none;margin:.125em .25em .125em 0}.woocommerce .col2-set .col-1,.woocommerce .col2-set .col-2,.woocommerce-page .col2-set .col-1,.woocommerce-page .col2-set .col-2{float:none;width:100%}.woocommerce ul.products li.product,.woocommerce-page ul.products li.product,.woocommerce-page[class*=columns-] ul.products li.product,.woocommerce[class*=columns-] ul.products li.product{width:48%;float:left;clear:both;margin:0 0 2.992em}.woocommerce ul.products li.product:nth-child(2n),.woocommerce-page ul.products li.product:nth-child(2n),.woocommerce-page[class*=columns-] ul.products li.product:nth-child(2n),.woocommerce[class*=columns-] ul.products li.product:nth-child(2n){float:right;clear:none!important}.woocommerce #content div.product div.images,.woocommerce #content div.product div.summary,.woocommerce div.product div.images,.woocommerce div.product div.summary,.woocommerce-page #content div.product div.images,.woocommerce-page #content div.product div.summary,.woocommerce-page div.product div.images,.woocommerce-page div.product div.summary{float:none;width:100%}.woocommerce #content table.cart td.actions,.woocommerce table.cart td.actions,.woocommerce-page #content table.cart td.actions,.woocommerce-page table.cart td.actions{text-align:left}.woocommerce #content table.cart td.actions .coupon,.woocommerce table.cart td.actions .coupon,.woocommerce-page #content table.cart td.actions .coupon,.woocommerce-page table.cart td.actions .coupon{float:none;padding-bottom:.5em}.woocommerce #content table.cart td.actions .coupon:after,.woocommerce #content table.cart td.actions .coupon:before,.woocommerce table.cart td.actions .coupon:after,.woocommerce table.cart td.actions .coupon:before,.woocommerce-page #content table.cart td.actions .coupon:after,.woocommerce-page #content table.cart td.actions .coupon:before,.woocommerce-page table.cart td.actions .coupon:after,.woocommerce-page table.cart td.actions .coupon:before{content:" ";display:table}.woocommerce #content table.cart td.actions .coupon:after,.woocommerce table.cart td.actions .coupon:after,.woocommerce-page #content table.cart td.actions .coupon:after,.woocommerce-page table.cart td.actions .coupon:after{clear:both}.woocommerce #content table.cart td.actions .button,.woocommerce #content table.cart td.actions .input-text,.woocommerce #content table.cart td.actions input,.woocommerce table.cart td.actions .button,.woocommerce table.cart td.actions .input-text,.woocommerce table.cart td.actions input,.woocommerce-page #content table.cart td.actions .button,.woocommerce-page #content table.cart td.actions .input-text,.woocommerce-page #content table.cart td.actions input,.woocommerce-page table.cart td.actions .button,.woocommerce-page table.cart td.actions .input-text,.woocommerce-page table.cart td.actions input{width:48%;box-sizing:border-box}.woocommerce #content table.cart td.actions .button.alt,.woocommerce #content table.cart td.actions .input-text+.button,.woocommerce table.cart td.actions .button.alt,.woocommerce table.cart td.actions .input-text+.button,.woocommerce-page #content table.cart td.actions .button.alt,.woocommerce-page #content table.cart td.actions .input-text+.button,.woocommerce-page table.cart td.actions .button.alt,.woocommerce-page table.cart td.actions .input-text+.button{float:right}.woocommerce .cart-collaterals .cart_totals,.woocommerce .cart-collaterals .cross-sells,.woocommerce .cart-collaterals .shipping_calculator,.woocommerce-page .cart-collaterals .cart_totals,.woocommerce-page .cart-collaterals .cross-sells,.woocommerce-page .cart-collaterals .shipping_calculator{width:100%;float:none;text-align:left}.woocommerce-page.woocommerce-checkout form.login .form-row,.woocommerce.woocommerce-checkout form.login .form-row{width:100%;float:none}.woocommerce #payment .terms,.woocommerce-page #payment .terms{text-align:left;padding:0}.woocommerce #payment #place_order,.woocommerce-page #payment #place_order{float:none;width:100%;box-sizing:border-box;margin-bottom:1em}.woocommerce .lost_reset_password .form-row-first,.woocommerce .lost_reset_password .form-row-last,.woocommerce-page .lost_reset_password .form-row-first,.woocommerce-page .lost_reset_password .form-row-last{width:100%;float:none;margin-right:0}.single-product .twentythirteen .panel{padding-left:20px!important;padding-right:20px!important} \ No newline at end of file diff --git a/assets/css/woocommerce-smallscreen.scss b/assets/css/woocommerce-smallscreen.scss index 1882ebb2b8d..010bafc498f 100644 --- a/assets/css/woocommerce-smallscreen.scss +++ b/assets/css/woocommerce-smallscreen.scss @@ -99,7 +99,7 @@ /** * Products */ - &[class*="columns-"] { + &, &[class*="columns-"] { ul.products { li.product { width: 48%; diff --git a/assets/css/woocommerce.css b/assets/css/woocommerce.css index 8b8c9e1311c..5053ff54830 100644 --- a/assets/css/woocommerce.css +++ b/assets/css/woocommerce.css @@ -1 +1 @@ -@charset "UTF-8";.clear,.woocommerce .woocommerce-breadcrumb:after,.woocommerce .woocommerce-error:after,.woocommerce .woocommerce-info:after,.woocommerce .woocommerce-message:after{clear:both}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}@font-face{font-family:star;src:url(../fonts/star.eot);src:url(../fonts/star.eot?#iefix) format("embedded-opentype"),url(../fonts/star.woff) format("woff"),url(../fonts/star.ttf) format("truetype"),url(../fonts/star.svg#star) format("svg");font-weight:400;font-style:normal}@font-face{font-family:WooCommerce;src:url(../fonts/WooCommerce.eot);src:url(../fonts/WooCommerce.eot?#iefix) format("embedded-opentype"),url(../fonts/WooCommerce.woff) format("woff"),url(../fonts/WooCommerce.ttf) format("truetype"),url(../fonts/WooCommerce.svg#WooCommerce) format("svg");font-weight:400;font-style:normal}p.demo_store{position:fixed;top:0;left:0;right:0;margin:0;width:100%;font-size:1em;padding:1em 0;text-align:center;background-color:#a46497;color:#fff;z-index:99998;box-shadow:0 1px 1em rgba(0,0,0,.2)}p.demo_store a{color:#fff}.admin-bar p.demo_store{top:32px}.woocommerce .blockUI.blockOverlay{position:relative}.woocommerce .blockUI.blockOverlay:before,.woocommerce .loader:before{height:1em;width:1em;position:absolute;top:50%;left:50%;margin-left:-.5em;margin-top:-.5em;display:block;content:"";-webkit-animation:spin 1s ease-in-out infinite;-moz-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite;background:url(../images/icons/loader.svg) center center;background-size:cover;line-height:1;text-align:center;font-size:2em;color:rgba(0,0,0,.75)}.woocommerce a.remove{display:block;font-size:1.5em;height:1em;width:1em;text-align:center;line-height:1;border-radius:100%;color:red!important;text-decoration:none;font-weight:700;border:0}.woocommerce a.remove:hover{color:#fff!important;background:red}.woocommerce .woocommerce-error,.woocommerce .woocommerce-info,.woocommerce .woocommerce-message{padding:1em 2em 1em 3.5em!important;margin:0 0 2em!important;position:relative;background-color:#f7f6f7;color:#515151;border-top:3px solid #a46497;list-style:none!important;width:auto;word-wrap:break-word}.woocommerce .woocommerce-error:after,.woocommerce .woocommerce-error:before,.woocommerce .woocommerce-info:after,.woocommerce .woocommerce-info:before,.woocommerce .woocommerce-message:after,.woocommerce .woocommerce-message:before{content:" ";display:table}.woocommerce .woocommerce-error:before,.woocommerce .woocommerce-info:before,.woocommerce .woocommerce-message:before{font-family:WooCommerce;content:"\e028";display:inline-block;position:absolute;top:1em;left:1.5em}.woocommerce .woocommerce-error .button,.woocommerce .woocommerce-info .button,.woocommerce .woocommerce-message .button{float:right}.woocommerce .woocommerce-error li,.woocommerce .woocommerce-info li,.woocommerce .woocommerce-message li{list-style:none!important;padding-left:0!important;margin-left:0!important}.woocommerce .woocommerce-message{border-top-color:#8fae1b}.woocommerce .woocommerce-message:before{content:"\e015";color:#8fae1b}.woocommerce .woocommerce-info{border-top-color:#1e85be}.woocommerce .woocommerce-info:before{color:#1e85be}.woocommerce .woocommerce-error{border-top-color:#b81c23}.woocommerce .woocommerce-error:before{content:"\e016";color:#b81c23}.woocommerce small.note{display:block;color:#777;font-size:.857em;margin-top:10px}.woocommerce .woocommerce-breadcrumb{margin:0 0 1em;padding:0;font-size:.92em;color:#777}.woocommerce .woocommerce-breadcrumb:after,.woocommerce .woocommerce-breadcrumb:before{content:" ";display:table}.woocommerce .woocommerce-breadcrumb a{color:#777}.woocommerce .quantity .qty{width:3.631em;text-align:center}.woocommerce div.product{margin-bottom:0;position:relative}.woocommerce div.product .product_title{clear:none;margin-top:0;padding:0}.woocommerce #reviews #comments .add_review:after,.woocommerce .products ul:after,.woocommerce div.product form.cart:after,.woocommerce div.product p.cart:after,.woocommerce nav.woocommerce-pagination ul,.woocommerce ul.products:after{clear:both}.woocommerce div.product p.price,.woocommerce div.product span.price{color:#77a464;font-size:1.25em}.woocommerce div.product p.price ins,.woocommerce div.product span.price ins{background:inherit;font-weight:700}.woocommerce div.product p.price del,.woocommerce div.product span.price del{opacity:.5}.woocommerce div.product p.stock{font-size:.92em}.woocommerce div.product .stock{color:#77a464}.woocommerce div.product .out-of-stock{color:red}.woocommerce div.product .woocommerce-product-rating{margin-bottom:1.618em}.woocommerce div.product div.images,.woocommerce div.product div.summary{margin-bottom:2em}.woocommerce div.product div.images img{display:block;width:100%;height:auto;box-shadow:none}.woocommerce div.product div.images div.thumbnails{padding-top:1em}.woocommerce div.product div.social{text-align:right;margin:0 0 1em}.woocommerce div.product div.social span{margin:0 0 0 2px}.woocommerce div.product div.social span span{margin:0}.woocommerce div.product div.social span .stButton .chicklets{padding-left:16px;width:0}.woocommerce div.product div.social iframe{float:left;margin-top:3px}.woocommerce div.product .woocommerce-tabs ul.tabs{list-style:none;padding:0 0 0 1em;margin:0 0 1.618em;overflow:hidden;position:relative}.woocommerce div.product .woocommerce-tabs ul.tabs li{border:1px solid #d3ced2;background-color:#ebe9eb;display:inline-block;position:relative;z-index:0;border-radius:4px 4px 0 0;margin:0 -5px;padding:0 1em}.woocommerce div.product .woocommerce-tabs ul.tabs li a{display:inline-block;padding:.5em 0;font-weight:700;color:#515151;text-decoration:none}.woocommerce div.product form.cart:after,.woocommerce div.product form.cart:before,.woocommerce div.product p.cart:after,.woocommerce div.product p.cart:before{display:table;content:" "}.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover{text-decoration:none;color:#6b6b6b}.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:#fff;z-index:2;border-bottom-color:#fff}.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:inherit;text-shadow:inherit}.woocommerce div.product .woocommerce-tabs ul.tabs li.active:before{box-shadow:2px 2px 0 #fff}.woocommerce div.product .woocommerce-tabs ul.tabs li.active:after{box-shadow:-2px 2px 0 #fff}.woocommerce div.product .woocommerce-tabs ul.tabs li:after,.woocommerce div.product .woocommerce-tabs ul.tabs li:before{border:1px solid #d3ced2;position:absolute;bottom:-1px;width:5px;height:5px;content:" "}.woocommerce div.product .woocommerce-tabs ul.tabs li:before{left:-6px;-webkit-border-bottom-right-radius:4px;-moz-border-bottom-right-radius:4px;border-bottom-right-radius:4px;border-width:0 1px 1px 0;box-shadow:2px 2px 0 #ebe9eb}.woocommerce div.product .woocommerce-tabs ul.tabs li:after{right:-6px;-webkit-border-bottom-left-radius:4px;-moz-border-bottom-left-radius:4px;border-bottom-left-radius:4px;border-width:0 0 1px 1px;box-shadow:-2px 2px 0 #ebe9eb}.woocommerce div.product .woocommerce-tabs ul.tabs:before{position:absolute;content:" ";width:100%;bottom:0;left:0;border-bottom:1px solid #d3ced2;z-index:1}.woocommerce div.product .woocommerce-tabs .panel{margin:0 0 2em;padding:0}.woocommerce div.product form.cart,.woocommerce div.product p.cart{margin-bottom:2em}.woocommerce div.product form.cart div.quantity{float:left;margin:0 4px 0 0}.woocommerce div.product form.cart table{border-width:0 0 1px}.woocommerce div.product form.cart table td{padding-left:0}.woocommerce div.product form.cart table div.quantity{float:none;margin:0}.woocommerce div.product form.cart table small.stock{display:block;float:none}.woocommerce div.product form.cart .variations{margin-bottom:1em;border:0;width:100%}.woocommerce div.product form.cart .variations td,.woocommerce div.product form.cart .variations th{border:0;vertical-align:top;line-height:2em}.woocommerce div.product form.cart .variations label{font-weight:700}.woocommerce div.product form.cart .variations select{max-width:100%;min-width:75%;display:inline-block;margin-right:1em}.woocommerce div.product form.cart .variations td.label{padding-right:1em}.woocommerce div.product form.cart .woocommerce-variation-description p{margin-bottom:1em}.woocommerce div.product form.cart .reset_variations{visibility:hidden;font-size:.83em}.woocommerce div.product form.cart .wc-no-matching-variations{display:none}.woocommerce div.product form.cart .button{vertical-align:middle;float:left}.woocommerce div.product form.cart .group_table td.label{padding-right:1em;padding-left:1em}.woocommerce div.product form.cart .group_table td{vertical-align:top;padding-bottom:.5em;border:0}.woocommerce span.onsale{min-height:3.236em;min-width:3.236em;padding:.202em;font-weight:700;position:absolute;text-align:center;line-height:3.236;top:-.5em;left:-.5em;margin:0;border-radius:100%;background-color:#77a464;color:#fff;font-size:.857em;-webkit-font-smoothing:antialiased}.woocommerce .products ul,.woocommerce ul.products{margin:0 0 1em;padding:0;list-style:none;clear:both}.woocommerce .products ul:after,.woocommerce .products ul:before,.woocommerce ul.products:after,.woocommerce ul.products:before{content:" ";display:table}.woocommerce .products ul li,.woocommerce ul.products li{list-style:none}.woocommerce ul.products li.product .onsale{top:0;right:0;left:auto;margin:-.5em -.5em 0 0}.woocommerce ul.products li.product h3{padding:.5em 0;margin:0;font-size:1em}.woocommerce ul.products li.product a{text-decoration:none}.woocommerce ul.products li.product a img{width:100%;height:auto;display:block;margin:0 0 1em;box-shadow:none}.woocommerce ul.products li.product strong{display:block}.woocommerce ul.products li.product .star-rating{font-size:.857em}.woocommerce ul.products li.product .button{margin-top:1em}.woocommerce ul.products li.product .price{color:#77a464;display:block;font-weight:400;margin-bottom:.5em;font-size:.857em}.woocommerce ul.products li.product .price del{color:inherit;opacity:.5;display:block}.woocommerce ul.products li.product .price ins{background:0 0;font-weight:700}.woocommerce ul.products li.product .price .from{font-size:.67em;margin:-2px 0 0;text-transform:uppercase;color:rgba(132,132,132,.5)}.woocommerce .woocommerce-ordering,.woocommerce .woocommerce-result-count{margin:0 0 1em}.woocommerce .woocommerce-ordering select{vertical-align:top}.woocommerce nav.woocommerce-pagination{text-align:center}.woocommerce nav.woocommerce-pagination ul{display:inline-block;white-space:nowrap;padding:0;border:1px solid #d3ced2;border-right:0;margin:1px}.woocommerce nav.woocommerce-pagination ul li{border-right:1px solid #d3ced2;padding:0;margin:0;float:left;display:inline;overflow:hidden}.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{margin:0;text-decoration:none;line-height:1;font-size:1em;font-weight:400;padding:.5em;min-width:1em;display:block}.woocommerce nav.woocommerce-pagination ul li a:focus,.woocommerce nav.woocommerce-pagination ul li a:hover,.woocommerce nav.woocommerce-pagination ul li span.current{background:#ebe9eb;color:#8a7e88}.woocommerce #respond input#submit,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{font-size:100%;margin:0;line-height:1;cursor:pointer;position:relative;font-family:inherit;text-decoration:none;overflow:visible;padding:.618em 1em;font-weight:700;border-radius:3px;left:auto;color:#515151;background-color:#ebe9eb;border:0;white-space:nowrap;display:inline-block;background-image:none;box-shadow:none;-webkit-box-shadow:none;text-shadow:none}.woocommerce #respond input#submit.loading,.woocommerce a.button.loading,.woocommerce button.button.loading,.woocommerce input.button.loading{opacity:.25;padding-right:2.618em}.woocommerce #respond input#submit.loading:after,.woocommerce a.button.loading:after,.woocommerce button.button.loading:after,.woocommerce input.button.loading:after{font-family:WooCommerce;content:"\e01c";vertical-align:top;-webkit-font-smoothing:antialiased;font-weight:400;position:absolute;top:.618em;right:1em;-webkit-animation:spin 2s linear infinite;-moz-animation:spin 2s linear infinite;animation:spin 2s linear infinite}.woocommerce #respond input#submit.added:after,.woocommerce a.button.added:after,.woocommerce button.button.added:after,.woocommerce input.button.added:after{font-family:WooCommerce;content:"\e017";margin-left:.53em;vertical-align:bottom}.woocommerce #respond input#submit:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover{background-color:#dad8da;text-decoration:none;background-image:none;color:#515151}.woocommerce #respond input#submit.alt,.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt{background-color:#a46497;color:#fff;-webkit-font-smoothing:antialiased}.woocommerce #respond input#submit.alt:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,.woocommerce input.button.alt:hover{background-color:#935386;color:#fff}.woocommerce #respond input#submit.alt.disabled,.woocommerce #respond input#submit.alt.disabled:hover,.woocommerce #respond input#submit.alt:disabled,.woocommerce #respond input#submit.alt:disabled:hover,.woocommerce #respond input#submit.alt:disabled[disabled],.woocommerce #respond input#submit.alt:disabled[disabled]:hover,.woocommerce a.button.alt.disabled,.woocommerce a.button.alt.disabled:hover,.woocommerce a.button.alt:disabled,.woocommerce a.button.alt:disabled:hover,.woocommerce a.button.alt:disabled[disabled],.woocommerce a.button.alt:disabled[disabled]:hover,.woocommerce button.button.alt.disabled,.woocommerce button.button.alt.disabled:hover,.woocommerce button.button.alt:disabled,.woocommerce button.button.alt:disabled:hover,.woocommerce button.button.alt:disabled[disabled],.woocommerce button.button.alt:disabled[disabled]:hover,.woocommerce input.button.alt.disabled,.woocommerce input.button.alt.disabled:hover,.woocommerce input.button.alt:disabled,.woocommerce input.button.alt:disabled:hover,.woocommerce input.button.alt:disabled[disabled],.woocommerce input.button.alt:disabled[disabled]:hover{background-color:#a46497;color:#fff}.woocommerce #respond input#submit.disabled,.woocommerce #respond input#submit:disabled,.woocommerce #respond input#submit:disabled[disabled],.woocommerce a.button.disabled,.woocommerce a.button:disabled,.woocommerce a.button:disabled[disabled],.woocommerce button.button.disabled,.woocommerce button.button:disabled,.woocommerce button.button:disabled[disabled],.woocommerce input.button.disabled,.woocommerce input.button:disabled,.woocommerce input.button:disabled[disabled]{color:inherit;cursor:not-allowed;opacity:.5}.woocommerce #respond input#submit.disabled:hover,.woocommerce #respond input#submit:disabled:hover,.woocommerce #respond input#submit:disabled[disabled]:hover,.woocommerce a.button.disabled:hover,.woocommerce a.button:disabled:hover,.woocommerce a.button:disabled[disabled]:hover,.woocommerce button.button.disabled:hover,.woocommerce button.button:disabled:hover,.woocommerce button.button:disabled[disabled]:hover,.woocommerce input.button.disabled:hover,.woocommerce input.button:disabled:hover,.woocommerce input.button:disabled[disabled]:hover{color:inherit;background-color:#ebe9eb}.woocommerce .cart .button,.woocommerce .cart input.button{float:none}.woocommerce a.added_to_cart{padding-top:.5em;white-space:nowrap;display:inline-block}.woocommerce #reviews #comments .add_review:after,.woocommerce #reviews #comments .add_review:before,.woocommerce #reviews #comments ol.commentlist li .comment-text:after,.woocommerce #reviews #comments ol.commentlist li .comment-text:before,.woocommerce #reviews #comments ol.commentlist:after,.woocommerce #reviews #comments ol.commentlist:before{content:" ";display:table}.woocommerce #reviews h2 small{float:right;color:#777;font-size:15px;margin:10px 0 0}.woocommerce #reviews h2 small a{text-decoration:none;color:#777}.woocommerce #reviews h3{margin:0}.woocommerce #reviews #respond{margin:0;border:0;padding:0}.woocommerce #reviews #comment{height:75px}.woocommerce #reviews #comments h2{clear:none}.woocommerce #review_form #respond:after,.woocommerce #reviews #comments ol.commentlist li .comment-text:after,.woocommerce #reviews #comments ol.commentlist:after,.woocommerce .woocommerce-product-rating:after,.woocommerce td.product-name dl.variation:after{clear:both}.woocommerce #reviews #comments ol.commentlist{margin:0;width:100%;background:0 0;list-style:none}.woocommerce #reviews #comments ol.commentlist li{padding:0;margin:0 0 20px;position:relative;background:0;border:0}.woocommerce #reviews #comments ol.commentlist li .meta{color:#777;font-size:.75em}.woocommerce #reviews #comments ol.commentlist li img.avatar{float:left;position:absolute;top:0;left:0;padding:3px;width:32px;height:auto;background:#ebe9eb;border:1px solid #e4e1e3;margin:0;box-shadow:none}.woocommerce #reviews #comments ol.commentlist li .comment-text{margin:0 0 0 50px;border:1px solid #e4e1e3;border-radius:4px;padding:1em 1em 0}.woocommerce #reviews #comments ol.commentlist li .comment-text p{margin:0 0 1em}.woocommerce #reviews #comments ol.commentlist li .comment-text p.meta{font-size:.83em}.woocommerce #reviews #comments ol.commentlist ul.children{list-style:none;margin:20px 0 0 50px}.woocommerce #reviews #comments ol.commentlist ul.children .star-rating{display:none}.woocommerce #reviews #comments ol.commentlist #respond{border:1px solid #e4e1e3;border-radius:4px;padding:1em 1em 0;margin:20px 0 0 50px}.woocommerce #reviews #comments .commentlist>li:before{content:""}.woocommerce .star-rating{float:right;overflow:hidden;position:relative;height:1em;line-height:1;font-size:1em;width:5.4em;font-family:star}.woocommerce .star-rating:before{content:"\73\73\73\73\73";color:#d3ced2;float:left;top:0;left:0;position:absolute}.woocommerce .star-rating span{overflow:hidden;float:left;top:0;left:0;position:absolute;padding-top:1.5em}.woocommerce .star-rating span:before{content:"\53\53\53\53\53";top:0;position:absolute;left:0}.woocommerce .woocommerce-product-rating{line-height:2;display:block}.woocommerce .woocommerce-product-rating:after,.woocommerce .woocommerce-product-rating:before{content:" ";display:table}.woocommerce .woocommerce-product-rating .star-rating{margin:.5em 4px 0 0;float:left}.woocommerce .products .star-rating{display:block;margin:0 0 .5em;float:none}.woocommerce .hreview-aggregate .star-rating{margin:10px 0 0}.woocommerce #review_form #respond{position:static;margin:0;width:auto;padding:0;background:0 0;border:0}.woocommerce #review_form #respond:after,.woocommerce #review_form #respond:before{content:" ";display:table}.woocommerce p.stars a:before,.woocommerce p.stars a:hover~a:before{content:"\e021"}.woocommerce #review_form #respond p{margin:0 0 10px}.woocommerce #review_form #respond .form-submit input{left:auto}.woocommerce #review_form #respond textarea{box-sizing:border-box;width:100%}.woocommerce p.stars a{position:relative;height:1em;width:1em;text-indent:-999em;display:inline-block;text-decoration:none}.woocommerce p.stars a:before{display:block;position:absolute;top:0;left:0;width:1em;height:1em;line-height:1;font-family:WooCommerce;text-indent:0}.woocommerce table.shop_attributes td,.woocommerce table.shop_attributes th{line-height:1.5;border-bottom:1px dotted rgba(0,0,0,.1);border-top:0;margin:0}.woocommerce p.stars.selected a.active:before,.woocommerce p.stars:hover a:before{content:"\e020"}.woocommerce p.stars.selected a.active~a:before{content:"\e021"}.woocommerce p.stars.selected a:not(.active):before{content:"\e020"}.woocommerce table.shop_attributes{border:0;border-top:1px dotted rgba(0,0,0,.1);margin-bottom:1.618em;width:100%}.woocommerce table.shop_attributes th{width:150px;font-weight:700;padding:8px}.woocommerce table.shop_attributes td{font-style:italic;padding:0}.woocommerce table.shop_attributes td p{margin:0;padding:8px 0}.woocommerce table.shop_attributes .alt td,.woocommerce table.shop_attributes .alt th{background:rgba(0,0,0,.025)}.woocommerce table.shop_table{border:1px solid rgba(0,0,0,.1);margin:0 -1px 24px 0;text-align:left;width:100%;border-collapse:separate;border-radius:5px}.woocommerce table.shop_table th{font-weight:700;padding:9px 12px}.woocommerce table.shop_table td{border-top:1px solid rgba(0,0,0,.1);padding:6px 12px;vertical-align:middle}.woocommerce table.shop_table td small{font-weight:400}.woocommerce table.shop_table tbody:first-child tr:first-child td,.woocommerce table.shop_table tbody:first-child tr:first-child th{border-top:0}.woocommerce table.shop_table tbody th,.woocommerce table.shop_table tfoot td,.woocommerce table.shop_table tfoot th{font-weight:700;border-top:1px solid rgba(0,0,0,.1)}.woocommerce table.my_account_orders{font-size:.85em}.woocommerce table.my_account_orders td,.woocommerce table.my_account_orders th{padding:4px 8px;vertical-align:middle}.woocommerce table.my_account_orders .button{white-space:nowrap}.woocommerce table.my_account_orders .order-actions{text-align:right}.woocommerce table.my_account_orders .order-actions .button{margin:.125em 0 .125em .25em}.woocommerce td.product-name dl.variation{margin:.25em 0}.woocommerce td.product-name dl.variation:after,.woocommerce td.product-name dl.variation:before{content:" ";display:table}.woocommerce td.product-name dl.variation dd,.woocommerce td.product-name dl.variation dt{display:inline-block;float:left;margin-bottom:1em}.woocommerce td.product-name dl.variation dt{font-weight:700;padding:0 0 .25em;margin:0 4px 0 0;clear:left}.woocommerce ul.cart_list li dl:after,.woocommerce ul.cart_list li:after,.woocommerce ul.product_list_widget li dl:after,.woocommerce ul.product_list_widget li:after{clear:both}.woocommerce td.product-name dl.variation dd{padding:0 0 .25em}.woocommerce td.product-name dl.variation dd p:last-child{margin-bottom:0}.woocommerce td.product-name p.backorder_notification{font-size:.83em}.woocommerce td.product-quantity{min-width:80px}.woocommerce ul.cart_list,.woocommerce ul.product_list_widget{list-style:none;padding:0;margin:0}.woocommerce ul.cart_list li,.woocommerce ul.product_list_widget li{padding:4px 0;margin:0;list-style:none}.woocommerce ul.cart_list li:after,.woocommerce ul.cart_list li:before,.woocommerce ul.product_list_widget li:after,.woocommerce ul.product_list_widget li:before{content:" ";display:table}.woocommerce ul.cart_list li a,.woocommerce ul.product_list_widget li a{display:block;font-weight:700}.woocommerce ul.cart_list li img,.woocommerce ul.product_list_widget li img{float:right;margin-left:4px;width:32px;height:auto;box-shadow:none}.woocommerce ul.cart_list li dl,.woocommerce ul.product_list_widget li dl{margin:0;padding-left:1em;border-left:2px solid rgba(0,0,0,.1)}.woocommerce ul.cart_list li dl:after,.woocommerce ul.cart_list li dl:before,.woocommerce ul.product_list_widget li dl:after,.woocommerce ul.product_list_widget li dl:before{content:" ";display:table}.woocommerce ul.cart_list li dl dd,.woocommerce ul.cart_list li dl dt,.woocommerce ul.product_list_widget li dl dd,.woocommerce ul.product_list_widget li dl dt{display:inline-block;float:left;margin-bottom:1em}.woocommerce ul.cart_list li dl dt,.woocommerce ul.product_list_widget li dl dt{font-weight:700;padding:0 0 .25em;margin:0 4px 0 0;clear:left}.woocommerce .order_details:after,.woocommerce .widget_layered_nav ul li:after,.woocommerce .widget_shopping_cart .buttons:after,.woocommerce-account .addresses .title:after,.woocommerce-cart .wc-proceed-to-checkout:after,.woocommerce.widget_shopping_cart .buttons:after{clear:both}.woocommerce ul.cart_list li dl dd,.woocommerce ul.product_list_widget li dl dd{padding:0 0 .25em}.woocommerce ul.cart_list li dl dd p:last-child,.woocommerce ul.product_list_widget li dl dd p:last-child{margin-bottom:0}.woocommerce ul.cart_list li .star-rating,.woocommerce ul.product_list_widget li .star-rating{float:none}.woocommerce .widget_shopping_cart .total,.woocommerce.widget_shopping_cart .total{border-top:3px double #ebe9eb;padding:4px 0 0}.woocommerce .widget_shopping_cart .total strong,.woocommerce.widget_shopping_cart .total strong{min-width:40px;display:inline-block}.woocommerce .widget_shopping_cart .cart_list li,.woocommerce.widget_shopping_cart .cart_list li{padding-left:2em;position:relative;padding-top:0}.woocommerce .widget_shopping_cart .cart_list li a.remove,.woocommerce.widget_shopping_cart .cart_list li a.remove{position:absolute;top:0;left:0}.woocommerce .widget_shopping_cart .buttons:after,.woocommerce .widget_shopping_cart .buttons:before,.woocommerce.widget_shopping_cart .buttons:after,.woocommerce.widget_shopping_cart .buttons:before{content:" ";display:table}.woocommerce form .form-row{padding:3px;margin:0 0 6px}.woocommerce form .form-row [placeholder]:focus::-webkit-input-placeholder{-webkit-transition:opacity .5s .5s ease;-moz-transition:opacity .5s .5s ease;transition:opacity .5s .5s ease;opacity:0}.woocommerce form .form-row label{line-height:2}.woocommerce form .form-row label.hidden{visibility:hidden}.woocommerce form .form-row label.inline{display:inline}.woocommerce form .form-row select{cursor:pointer;margin:0}.woocommerce form .form-row .required{color:red;font-weight:700;border:0}.woocommerce form .form-row .input-checkbox{display:inline;margin:-2px 8px 0 0;text-align:center;vertical-align:middle}.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea{box-sizing:border-box;width:100%;margin:0;outline:0;line-height:1}.woocommerce form .form-row textarea{height:4em;line-height:1.5;display:block;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.woocommerce form .form-row .select2-container{width:100%;line-height:2em}.woocommerce form .form-row.woocommerce-invalid label{color:#a00}.woocommerce form .form-row.woocommerce-invalid .select2-container,.woocommerce form .form-row.woocommerce-invalid input.input-text,.woocommerce form .form-row.woocommerce-invalid select{border-color:#a00}.woocommerce form .form-row.woocommerce-validated .select2-container,.woocommerce form .form-row.woocommerce-validated input.input-text,.woocommerce form .form-row.woocommerce-validated select{border-color:#69bf29}.woocommerce form .form-row ::-webkit-input-placeholder{line-height:normal}.woocommerce form .form-row :-moz-placeholder{line-height:normal}.woocommerce form .form-row :-ms-input-placeholder{line-height:normal}.woocommerce form.checkout_coupon,.woocommerce form.login,.woocommerce form.register{border:1px solid #d3ced2;padding:20px;margin:2em 0;text-align:left;border-radius:5px}.woocommerce ul#shipping_method{list-style:none;margin:0;padding:0}.woocommerce ul#shipping_method li{margin:0;padding:.25em 0 .25em 22px;text-indent:-22px;list-style:none}.woocommerce ul#shipping_method .amount{font-weight:700}.woocommerce p.woocommerce-shipping-contents{margin:0}.woocommerce .order_details{margin:0 0 1.5em;list-style:none}.woocommerce .order_details:after,.woocommerce .order_details:before{content:" ";display:table}.woocommerce .order_details li{float:left;margin-right:2em;text-transform:uppercase;font-size:.715em;line-height:1;border-right:1px dashed #d3ced2;padding-right:2em;margin-left:0;padding-left:0}.woocommerce .order_details li strong{display:block;font-size:1.4em;text-transform:none;line-height:1.5}.woocommerce .order_details li:last-of-type{border:none}.woocommerce .widget_layered_nav ul{margin:0;padding:0;border:0;list-style:none}.woocommerce .widget_layered_nav ul li{padding:0 0 1px;list-style:none}.woocommerce .widget_layered_nav ul li:after,.woocommerce .widget_layered_nav ul li:before{content:" ";display:table}.woocommerce .widget_layered_nav ul li.chosen a:before,.woocommerce .widget_layered_nav_filters ul li a:before{font-weight:400;line-height:1;content:"";color:#a00;font-family:WooCommerce;speak:none;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;text-decoration:none}.woocommerce .widget_layered_nav ul li a,.woocommerce .widget_layered_nav ul li span{padding:1px 0}.woocommerce .widget_layered_nav ul li.chosen a:before{margin-right:.618em}.woocommerce .widget_layered_nav_filters ul{margin:0;padding:0;border:0;list-style:none;overflow:hidden;zoom:1}.woocommerce .widget_layered_nav_filters ul li{float:left;padding:0 1px 1px 0;list-style:none}.woocommerce .widget_layered_nav_filters ul li a{text-decoration:none}.woocommerce .widget_layered_nav_filters ul li a:before{margin-right:.618em}.woocommerce .widget_price_filter .price_slider{margin-bottom:1em}.woocommerce .widget_price_filter .price_slider_amount{text-align:right;line-height:2.4;font-size:.8751em}.woocommerce .widget_price_filter .price_slider_amount .button{font-size:1.15em;float:left}.woocommerce .widget_price_filter .ui-slider{position:relative;text-align:left;margin-left:.5em;margin-right:.5em}.woocommerce .widget_price_filter .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1em;height:1em;background-color:#a46497;border-radius:1em;cursor:ew-resize;outline:0;top:-.3em;margin-left:-.5em}.woocommerce .widget_price_filter .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;border-radius:1em;background-color:#a46497}.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content{border-radius:1em;background-color:#602053;border:0}.woocommerce .widget_price_filter .ui-slider-horizontal{height:.5em}.woocommerce .widget_price_filter .ui-slider-horizontal .ui-slider-range{top:0;height:100%}.woocommerce .widget_price_filter .ui-slider-horizontal .ui-slider-range-min{left:-1px}.woocommerce .widget_price_filter .ui-slider-horizontal .ui-slider-range-max{right:-1px}.woocommerce-account .addresses .title:after,.woocommerce-account .addresses .title:before{content:" ";display:table}.woocommerce-account .addresses .title h3{float:left}.woocommerce-account .addresses .title .edit,.woocommerce-account ul.digital-downloads li .count{float:right}.woocommerce-account ol.commentlist.notes li.note p.meta{font-weight:700;margin-bottom:0}.woocommerce-account ol.commentlist.notes li.note .description p:last-child{margin-bottom:0}.woocommerce-account ul.digital-downloads{margin-left:0;padding-left:0}.woocommerce-account ul.digital-downloads li{list-style:none;margin-left:0;padding-left:0}.woocommerce-account ul.digital-downloads li:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-right:.618em;content:"";text-decoration:none}.woocommerce-cart table.cart .product-thumbnail{min-width:32px}.woocommerce-cart table.cart img{width:32px;box-shadow:none}.woocommerce-cart table.cart td,.woocommerce-cart table.cart th{vertical-align:middle}.woocommerce-cart table.cart td.actions .coupon .input-text{float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:1px solid #d3ced2;padding:6px 6px 5px;margin:0 4px 0 0;outline:0;line-height:1}.woocommerce-cart table.cart input{margin:0;vertical-align:middle;line-height:1}.woocommerce-cart .wc-proceed-to-checkout{padding:1em 0}.woocommerce-cart .wc-proceed-to-checkout:after,.woocommerce-cart .wc-proceed-to-checkout:before{content:" ";display:table}.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{display:block;text-align:center;margin-bottom:1em;font-size:1.25em;padding:1em}.woocommerce-cart .cart-collaterals .shipping_calculator .button{width:100%;float:none;display:block}.woocommerce-cart .cart-collaterals .shipping_calculator .shipping-calculator-button:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-left:.618em;content:"";text-decoration:none}.woocommerce-checkout #payment ul.payment_methods li:after,.woocommerce-checkout #payment ul.payment_methods li:before,.woocommerce-checkout #payment ul.payment_methods:after,.woocommerce-checkout #payment ul.payment_methods:before{content:" ";display:table}.woocommerce-cart .cart-collaterals .cart_totals p small{color:#777;font-size:.83em}.woocommerce-cart .cart-collaterals .cart_totals table{border-collapse:separate;margin:0 0 6px;padding:0}.woocommerce-cart .cart-collaterals .cart_totals table tr:first-child td,.woocommerce-cart .cart-collaterals .cart_totals table tr:first-child th{border-top:0}.woocommerce-cart .cart-collaterals .cart_totals table th{width:40%}.woocommerce-cart .cart-collaterals .cart_totals table td,.woocommerce-cart .cart-collaterals .cart_totals table th{vertical-align:top;border-left:0;border-right:0;line-height:1.5em}.woocommerce-cart .cart-collaterals .cart_totals table small{color:#777}.woocommerce-cart .cart-collaterals .cart_totals table select{width:100%}.woocommerce-cart .cart-collaterals .cart_totals .discount td{color:#77a464}.woocommerce-cart .cart-collaterals .cart_totals tr td,.woocommerce-cart .cart-collaterals .cart_totals tr th{border-top:1px solid #ebe9eb}.woocommerce-cart .cart-collaterals .cross-sells ul.products li.product{margin-top:0}.woocommerce-checkout .checkout .col-2 h3#ship-to-different-address{float:left;clear:none}.woocommerce-checkout .checkout .col-2 .form-row-first,.woocommerce-checkout .checkout .col-2 .notes{clear:left}.woocommerce-checkout .checkout .create-account small{font-size:11px;color:#777;font-weight:400}.woocommerce-checkout .checkout div.shipping-address{padding:0;clear:left;width:100%}.single-product .twentythirteen p.stars,.woocommerce-checkout #payment ul.payment_methods li:after,.woocommerce-checkout #payment ul.payment_methods:after,.woocommerce-checkout .checkout .shipping_address{clear:both}.woocommerce-checkout #payment{background:#ebe9eb;border-radius:5px}.woocommerce-checkout #payment ul.payment_methods{text-align:left;padding:1em;border-bottom:1px solid #d3ced2;margin:0;list-style:none}.woocommerce-checkout #payment ul.payment_methods li{line-height:2;text-align:left;margin:0;font-weight:400}.woocommerce-checkout #payment ul.payment_methods li input{margin:0 1em 0 0}.woocommerce-checkout #payment ul.payment_methods li img{vertical-align:middle;margin:-2px 0 0 .5em;padding:0;position:relative;box-shadow:none}.woocommerce-checkout #payment ul.payment_methods li img+img{margin-left:2px}.woocommerce-checkout #payment div.form-row{padding:1em}.woocommerce-checkout #payment div.payment_box{position:relative;box-sizing:border-box;width:100%;padding:1em;margin:1em 0;font-size:.92em;border-radius:2px;line-height:1.5;background-color:#dfdcde;color:#515151}.woocommerce-checkout #payment div.payment_box input.input-text,.woocommerce-checkout #payment div.payment_box textarea{border-color:#bbb3b9 #c7c1c6 #c7c1c6}.woocommerce-checkout #payment div.payment_box ::-webkit-input-placeholder{color:#bbb3b9}.woocommerce-checkout #payment div.payment_box :-moz-placeholder{color:#bbb3b9}.woocommerce-checkout #payment div.payment_box :-ms-input-placeholder{color:#bbb3b9}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number{font-size:1.5em;padding:8px;background-repeat:no-repeat;background-position:right}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.visa,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.visa,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.visa{background-image:url(../images/icons/credit-cards/visa.png)}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.mastercard,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.mastercard,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.mastercard{background-image:url(../images/icons/credit-cards/mastercard.png)}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.laser,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.laser,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.laser{background-image:url(../images/icons/credit-cards/laser.png)}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.dinersclub,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.dinersclub,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.dinersclub{background-image:url(../images/icons/credit-cards/diners.png)}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.maestro,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.maestro,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.maestro{background-image:url(../images/icons/credit-cards/maestro.png)}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.jcb,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.jcb,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.jcb{background-image:url(../images/icons/credit-cards/jcb.png)}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.amex,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.amex,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.amex{background-image:url(../images/icons/credit-cards/amex.png)}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.discover,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.discover,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.discover{background-image:url(../images/icons/credit-cards/discover.png)}.woocommerce-checkout #payment div.payment_box span.help{font-size:.857em;color:#777;font-weight:400}.woocommerce-checkout #payment div.payment_box .form-row{margin:0 0 1em}.woocommerce-checkout #payment div.payment_box p:last-child{margin-bottom:0}.woocommerce-checkout #payment div.payment_box:before{content:"";display:block;border:1em solid #dfdcde;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent;position:absolute;top:-.75em;left:0;margin:-1em 0 0 2em}.woocommerce-checkout #payment .payment_method_paypal .about_paypal{float:right;line-height:52px;font-size:.83em}.woocommerce-checkout #payment .payment_method_paypal img{max-height:52px;vertical-align:middle}.woocommerce-password-strength{text-align:center;font-weight:600;padding:3px 0}.woocommerce-password-strength.strong{background-color:#c1e1b9;border-color:#83c373}.woocommerce-password-strength.short{background-color:#f1adad;border-color:#e35b5b}.woocommerce-password-strength.bad{background-color:#fbc5a9;border-color:#f78b53}.woocommerce-password-strength.good{background-color:#ffe399;border-color:#ffc733}.product.has-default-attributes.has-children>.images{opacity:0}#content.twentyeleven .woocommerce-pagination a{font-size:1em;line-height:1}.single-product .twentythirteen #reply-title,.single-product .twentythirteen #respond #commentform,.single-product .twentythirteen .entry-summary{padding:0}.twentythirteen .woocommerce-breadcrumb{padding-top:40px}.twentyfourteen ul.products li.product{margin-top:0!important}body:not(.search-results) .twentysixteen .entry-summary{color:inherit;font-size:inherit;line-height:inherit}.twentysixteen .price ins{background:inherit;color:inherit} \ No newline at end of file +@charset "UTF-8";.clear,.woocommerce .woocommerce-breadcrumb:after,.woocommerce .woocommerce-error:after,.woocommerce .woocommerce-info:after,.woocommerce .woocommerce-message:after{clear:both}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@keyframes spin{100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}@font-face{font-family:star;src:url(../fonts/star.eot);src:url(../fonts/star.eot?#iefix) format("embedded-opentype"),url(../fonts/star.woff) format("woff"),url(../fonts/star.ttf) format("truetype"),url(../fonts/star.svg#star) format("svg");font-weight:400;font-style:normal}@font-face{font-family:WooCommerce;src:url(../fonts/WooCommerce.eot);src:url(../fonts/WooCommerce.eot?#iefix) format("embedded-opentype"),url(../fonts/WooCommerce.woff) format("woff"),url(../fonts/WooCommerce.ttf) format("truetype"),url(../fonts/WooCommerce.svg#WooCommerce) format("svg");font-weight:400;font-style:normal}p.demo_store{position:fixed;top:0;left:0;right:0;margin:0;width:100%;font-size:1em;padding:1em 0;text-align:center;background-color:#a46497;color:#fff;z-index:99998;box-shadow:0 1px 1em rgba(0,0,0,.2)}p.demo_store a{color:#fff}.admin-bar p.demo_store{top:32px}.woocommerce .blockUI.blockOverlay{position:relative}.woocommerce .blockUI.blockOverlay:before,.woocommerce .loader:before{height:1em;width:1em;position:absolute;top:50%;left:50%;margin-left:-.5em;margin-top:-.5em;display:block;content:"";-webkit-animation:spin 1s ease-in-out infinite;-moz-animation:spin 1s ease-in-out infinite;animation:spin 1s ease-in-out infinite;background:url(../images/icons/loader.svg) center center;background-size:cover;line-height:1;text-align:center;font-size:2em;color:rgba(0,0,0,.75)}.woocommerce a.remove{display:block;font-size:1.5em;height:1em;width:1em;text-align:center;line-height:1;border-radius:100%;color:red!important;text-decoration:none;font-weight:700;border:0}.woocommerce a.remove:hover{color:#fff!important;background:red}.woocommerce .woocommerce-error,.woocommerce .woocommerce-info,.woocommerce .woocommerce-message{padding:1em 2em 1em 3.5em!important;margin:0 0 2em!important;position:relative;background-color:#f7f6f7;color:#515151;border-top:3px solid #a46497;list-style:none!important;width:auto;word-wrap:break-word}.woocommerce .woocommerce-error:after,.woocommerce .woocommerce-error:before,.woocommerce .woocommerce-info:after,.woocommerce .woocommerce-info:before,.woocommerce .woocommerce-message:after,.woocommerce .woocommerce-message:before{content:" ";display:table}.woocommerce .woocommerce-error:before,.woocommerce .woocommerce-info:before,.woocommerce .woocommerce-message:before{font-family:WooCommerce;content:"\e028";display:inline-block;position:absolute;top:1em;left:1.5em}.woocommerce .woocommerce-error .button,.woocommerce .woocommerce-info .button,.woocommerce .woocommerce-message .button{float:right}.woocommerce .woocommerce-error li,.woocommerce .woocommerce-info li,.woocommerce .woocommerce-message li{list-style:none!important;padding-left:0!important;margin-left:0!important}.woocommerce .woocommerce-message{border-top-color:#8fae1b}.woocommerce .woocommerce-message:before{content:"\e015";color:#8fae1b}.woocommerce .woocommerce-info{border-top-color:#1e85be}.woocommerce .woocommerce-info:before{color:#1e85be}.woocommerce .woocommerce-error{border-top-color:#b81c23}.woocommerce .woocommerce-error:before{content:"\e016";color:#b81c23}.woocommerce small.note{display:block;color:#777;font-size:.857em;margin-top:10px}.woocommerce .woocommerce-breadcrumb{margin:0 0 1em;padding:0;font-size:.92em;color:#777}.woocommerce .woocommerce-breadcrumb:after,.woocommerce .woocommerce-breadcrumb:before{content:" ";display:table}.woocommerce .woocommerce-breadcrumb a{color:#777}.woocommerce .quantity .qty{width:3.631em;text-align:center}.woocommerce div.product{margin-bottom:0;position:relative}.woocommerce div.product .product_title{clear:none;margin-top:0;padding:0}.woocommerce #reviews #comments .add_review:after,.woocommerce .products ul:after,.woocommerce div.product form.cart:after,.woocommerce div.product p.cart:after,.woocommerce nav.woocommerce-pagination ul,.woocommerce ul.products:after{clear:both}.woocommerce div.product p.price,.woocommerce div.product span.price{color:#77a464;font-size:1.25em}.woocommerce div.product p.price ins,.woocommerce div.product span.price ins{background:inherit;font-weight:700}.woocommerce div.product p.price del,.woocommerce div.product span.price del{opacity:.5}.woocommerce div.product p.stock{font-size:.92em}.woocommerce div.product .stock{color:#77a464}.woocommerce div.product .out-of-stock{color:red}.woocommerce div.product .woocommerce-product-rating{margin-bottom:1.618em}.woocommerce div.product div.images,.woocommerce div.product div.summary{margin-bottom:2em}.woocommerce div.product div.images img{display:block;width:100%;height:auto;box-shadow:none}.woocommerce div.product div.images div.thumbnails{padding-top:1em}.woocommerce div.product div.social{text-align:right;margin:0 0 1em}.woocommerce div.product div.social span{margin:0 0 0 2px}.woocommerce div.product div.social span span{margin:0}.woocommerce div.product div.social span .stButton .chicklets{padding-left:16px;width:0}.woocommerce div.product div.social iframe{float:left;margin-top:3px}.woocommerce div.product .woocommerce-tabs ul.tabs{list-style:none;padding:0 0 0 1em;margin:0 0 1.618em;overflow:hidden;position:relative}.woocommerce div.product .woocommerce-tabs ul.tabs li{border:1px solid #d3ced2;background-color:#ebe9eb;display:inline-block;position:relative;z-index:0;border-radius:4px 4px 0 0;margin:0 -5px;padding:0 1em}.woocommerce div.product .woocommerce-tabs ul.tabs li a{display:inline-block;padding:.5em 0;font-weight:700;color:#515151;text-decoration:none}.woocommerce div.product form.cart:after,.woocommerce div.product form.cart:before,.woocommerce div.product p.cart:after,.woocommerce div.product p.cart:before{display:table;content:" "}.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover{text-decoration:none;color:#6b6b6b}.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:#fff;z-index:2;border-bottom-color:#fff}.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:inherit;text-shadow:inherit}.woocommerce div.product .woocommerce-tabs ul.tabs li.active:before{box-shadow:2px 2px 0 #fff}.woocommerce div.product .woocommerce-tabs ul.tabs li.active:after{box-shadow:-2px 2px 0 #fff}.woocommerce div.product .woocommerce-tabs ul.tabs li:after,.woocommerce div.product .woocommerce-tabs ul.tabs li:before{border:1px solid #d3ced2;position:absolute;bottom:-1px;width:5px;height:5px;content:" "}.woocommerce div.product .woocommerce-tabs ul.tabs li:before{left:-6px;-webkit-border-bottom-right-radius:4px;-moz-border-bottom-right-radius:4px;border-bottom-right-radius:4px;border-width:0 1px 1px 0;box-shadow:2px 2px 0 #ebe9eb}.woocommerce div.product .woocommerce-tabs ul.tabs li:after{right:-6px;-webkit-border-bottom-left-radius:4px;-moz-border-bottom-left-radius:4px;border-bottom-left-radius:4px;border-width:0 0 1px 1px;box-shadow:-2px 2px 0 #ebe9eb}.woocommerce div.product .woocommerce-tabs ul.tabs:before{position:absolute;content:" ";width:100%;bottom:0;left:0;border-bottom:1px solid #d3ced2;z-index:1}.woocommerce div.product .woocommerce-tabs .panel{margin:0 0 2em;padding:0}.woocommerce div.product form.cart,.woocommerce div.product p.cart{margin-bottom:2em}.woocommerce div.product form.cart div.quantity{float:left;margin:0 4px 0 0}.woocommerce div.product form.cart table{border-width:0 0 1px}.woocommerce div.product form.cart table td{padding-left:0}.woocommerce div.product form.cart table div.quantity{float:none;margin:0}.woocommerce div.product form.cart table small.stock{display:block;float:none}.woocommerce div.product form.cart .variations{margin-bottom:1em;border:0;width:100%}.woocommerce div.product form.cart .variations td,.woocommerce div.product form.cart .variations th{border:0;vertical-align:top;line-height:2em}.woocommerce div.product form.cart .variations label{font-weight:700}.woocommerce div.product form.cart .variations select{max-width:100%;min-width:75%;display:inline-block;margin-right:1em}.woocommerce div.product form.cart .variations td.label{padding-right:1em}.woocommerce div.product form.cart .woocommerce-variation-description p{margin-bottom:1em}.woocommerce div.product form.cart .reset_variations{visibility:hidden;font-size:.83em}.woocommerce div.product form.cart .wc-no-matching-variations{display:none}.woocommerce div.product form.cart .button{vertical-align:middle;float:left}.woocommerce div.product form.cart .group_table td.label{padding-right:1em;padding-left:1em}.woocommerce div.product form.cart .group_table td{vertical-align:top;padding-bottom:.5em;border:0}.woocommerce span.onsale{min-height:3.236em;min-width:3.236em;padding:.202em;font-weight:700;position:absolute;text-align:center;line-height:3.236;top:-.5em;left:-.5em;margin:0;border-radius:100%;background-color:#77a464;color:#fff;font-size:.857em;-webkit-font-smoothing:antialiased}.woocommerce .products ul,.woocommerce ul.products{margin:0 0 1em;padding:0;list-style:none;clear:both}.woocommerce .products ul:after,.woocommerce .products ul:before,.woocommerce ul.products:after,.woocommerce ul.products:before{content:" ";display:table}.woocommerce .products ul li,.woocommerce ul.products li{list-style:none}.woocommerce ul.products li.product .onsale{top:0;right:0;left:auto;margin:-.5em -.5em 0 0}.woocommerce ul.products li.product h3{padding:.5em 0;margin:0;font-size:1em}.woocommerce ul.products li.product a{text-decoration:none}.woocommerce ul.products li.product a img{width:100%;height:auto;display:block;margin:0 0 1em;box-shadow:none}.woocommerce ul.products li.product strong{display:block}.woocommerce ul.products li.product .star-rating{font-size:.857em}.woocommerce ul.products li.product .button{margin-top:1em}.woocommerce ul.products li.product .price{color:#77a464;display:block;font-weight:400;margin-bottom:.5em;font-size:.857em}.woocommerce ul.products li.product .price del{color:inherit;opacity:.5;display:block}.woocommerce ul.products li.product .price ins{background:0 0;font-weight:700}.woocommerce ul.products li.product .price .from{font-size:.67em;margin:-2px 0 0;text-transform:uppercase;color:rgba(132,132,132,.5)}.woocommerce .woocommerce-ordering,.woocommerce .woocommerce-result-count{margin:0 0 1em}.woocommerce .woocommerce-ordering select{vertical-align:top}.woocommerce nav.woocommerce-pagination{text-align:center}.woocommerce nav.woocommerce-pagination ul{display:inline-block;white-space:nowrap;padding:0;border:1px solid #d3ced2;border-right:0;margin:1px}.woocommerce nav.woocommerce-pagination ul li{border-right:1px solid #d3ced2;padding:0;margin:0;float:left;display:inline;overflow:hidden}.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{margin:0;text-decoration:none;line-height:1;font-size:1em;font-weight:400;padding:.5em;min-width:1em;display:block}.woocommerce nav.woocommerce-pagination ul li a:focus,.woocommerce nav.woocommerce-pagination ul li a:hover,.woocommerce nav.woocommerce-pagination ul li span.current{background:#ebe9eb;color:#8a7e88}.woocommerce #respond input#submit,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{font-size:100%;margin:0;line-height:1;cursor:pointer;position:relative;font-family:inherit;text-decoration:none;overflow:visible;padding:.618em 1em;font-weight:700;border-radius:3px;left:auto;color:#515151;background-color:#ebe9eb;border:0;white-space:nowrap;display:inline-block;background-image:none;box-shadow:none;-webkit-box-shadow:none;text-shadow:none}.woocommerce #respond input#submit.loading,.woocommerce a.button.loading,.woocommerce button.button.loading,.woocommerce input.button.loading{opacity:.25;padding-right:2.618em}.woocommerce #respond input#submit.loading:after,.woocommerce a.button.loading:after,.woocommerce button.button.loading:after,.woocommerce input.button.loading:after{font-family:WooCommerce;content:"\e01c";vertical-align:top;-webkit-font-smoothing:antialiased;font-weight:400;position:absolute;top:.618em;right:1em;-webkit-animation:spin 2s linear infinite;-moz-animation:spin 2s linear infinite;animation:spin 2s linear infinite}.woocommerce #respond input#submit.added:after,.woocommerce a.button.added:after,.woocommerce button.button.added:after,.woocommerce input.button.added:after{font-family:WooCommerce;content:"\e017";margin-left:.53em;vertical-align:bottom}.woocommerce #respond input#submit:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover{background-color:#dad8da;text-decoration:none;background-image:none;color:#515151}.woocommerce #respond input#submit.alt,.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt{background-color:#a46497;color:#fff;-webkit-font-smoothing:antialiased}.woocommerce #respond input#submit.alt:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,.woocommerce input.button.alt:hover{background-color:#935386;color:#fff}.woocommerce #respond input#submit.alt.disabled,.woocommerce #respond input#submit.alt.disabled:hover,.woocommerce #respond input#submit.alt:disabled,.woocommerce #respond input#submit.alt:disabled:hover,.woocommerce #respond input#submit.alt:disabled[disabled],.woocommerce #respond input#submit.alt:disabled[disabled]:hover,.woocommerce a.button.alt.disabled,.woocommerce a.button.alt.disabled:hover,.woocommerce a.button.alt:disabled,.woocommerce a.button.alt:disabled:hover,.woocommerce a.button.alt:disabled[disabled],.woocommerce a.button.alt:disabled[disabled]:hover,.woocommerce button.button.alt.disabled,.woocommerce button.button.alt.disabled:hover,.woocommerce button.button.alt:disabled,.woocommerce button.button.alt:disabled:hover,.woocommerce button.button.alt:disabled[disabled],.woocommerce button.button.alt:disabled[disabled]:hover,.woocommerce input.button.alt.disabled,.woocommerce input.button.alt.disabled:hover,.woocommerce input.button.alt:disabled,.woocommerce input.button.alt:disabled:hover,.woocommerce input.button.alt:disabled[disabled],.woocommerce input.button.alt:disabled[disabled]:hover{background-color:#a46497;color:#fff}.woocommerce #respond input#submit.disabled,.woocommerce #respond input#submit:disabled,.woocommerce #respond input#submit:disabled[disabled],.woocommerce a.button.disabled,.woocommerce a.button:disabled,.woocommerce a.button:disabled[disabled],.woocommerce button.button.disabled,.woocommerce button.button:disabled,.woocommerce button.button:disabled[disabled],.woocommerce input.button.disabled,.woocommerce input.button:disabled,.woocommerce input.button:disabled[disabled]{color:inherit;cursor:not-allowed;opacity:.5}.woocommerce #respond input#submit.disabled:hover,.woocommerce #respond input#submit:disabled:hover,.woocommerce #respond input#submit:disabled[disabled]:hover,.woocommerce a.button.disabled:hover,.woocommerce a.button:disabled:hover,.woocommerce a.button:disabled[disabled]:hover,.woocommerce button.button.disabled:hover,.woocommerce button.button:disabled:hover,.woocommerce button.button:disabled[disabled]:hover,.woocommerce input.button.disabled:hover,.woocommerce input.button:disabled:hover,.woocommerce input.button:disabled[disabled]:hover{color:inherit;background-color:#ebe9eb}.woocommerce .cart .button,.woocommerce .cart input.button{float:none}.woocommerce a.added_to_cart{padding-top:.5em;white-space:nowrap;display:inline-block}.woocommerce #reviews #comments .add_review:after,.woocommerce #reviews #comments .add_review:before,.woocommerce #reviews #comments ol.commentlist li .comment-text:after,.woocommerce #reviews #comments ol.commentlist li .comment-text:before,.woocommerce #reviews #comments ol.commentlist:after,.woocommerce #reviews #comments ol.commentlist:before{content:" ";display:table}.woocommerce #reviews h2 small{float:right;color:#777;font-size:15px;margin:10px 0 0}.woocommerce #reviews h2 small a{text-decoration:none;color:#777}.woocommerce #reviews h3{margin:0}.woocommerce #reviews #respond{margin:0;border:0;padding:0}.woocommerce #reviews #comment{height:75px}.woocommerce #reviews #comments h2{clear:none}.woocommerce #review_form #respond:after,.woocommerce #reviews #comments ol.commentlist li .comment-text:after,.woocommerce #reviews #comments ol.commentlist:after,.woocommerce .woocommerce-product-rating:after,.woocommerce td.product-name dl.variation:after{clear:both}.woocommerce #reviews #comments ol.commentlist{margin:0;width:100%;background:0 0;list-style:none}.woocommerce #reviews #comments ol.commentlist li{padding:0;margin:0 0 20px;position:relative;background:0;border:0}.woocommerce #reviews #comments ol.commentlist li .meta{color:#777;font-size:.75em}.woocommerce #reviews #comments ol.commentlist li img.avatar{float:left;position:absolute;top:0;left:0;padding:3px;width:32px;height:auto;background:#ebe9eb;border:1px solid #e4e1e3;margin:0;box-shadow:none}.woocommerce #reviews #comments ol.commentlist li .comment-text{margin:0 0 0 50px;border:1px solid #e4e1e3;border-radius:4px;padding:1em 1em 0}.woocommerce #reviews #comments ol.commentlist li .comment-text p{margin:0 0 1em}.woocommerce #reviews #comments ol.commentlist li .comment-text p.meta{font-size:.83em}.woocommerce #reviews #comments ol.commentlist ul.children{list-style:none;margin:20px 0 0 50px}.woocommerce #reviews #comments ol.commentlist ul.children .star-rating{display:none}.woocommerce #reviews #comments ol.commentlist #respond{border:1px solid #e4e1e3;border-radius:4px;padding:1em 1em 0;margin:20px 0 0 50px}.woocommerce #reviews #comments .commentlist>li:before{content:""}.woocommerce .star-rating{float:right;overflow:hidden;position:relative;height:1em;line-height:1;font-size:1em;width:5.4em;font-family:star}.woocommerce .star-rating:before{content:"\73\73\73\73\73";color:#d3ced2;float:left;top:0;left:0;position:absolute}.woocommerce .star-rating span{overflow:hidden;float:left;top:0;left:0;position:absolute;padding-top:1.5em}.woocommerce .star-rating span:before{content:"\53\53\53\53\53";top:0;position:absolute;left:0}.woocommerce .woocommerce-product-rating{line-height:2;display:block}.woocommerce .woocommerce-product-rating:after,.woocommerce .woocommerce-product-rating:before{content:" ";display:table}.woocommerce .woocommerce-product-rating .star-rating{margin:.5em 4px 0 0;float:left}.woocommerce .products .star-rating{display:block;margin:0 0 .5em;float:none}.woocommerce .hreview-aggregate .star-rating{margin:10px 0 0}.woocommerce #review_form #respond{position:static;margin:0;width:auto;padding:0;background:0 0;border:0}.woocommerce #review_form #respond:after,.woocommerce #review_form #respond:before{content:" ";display:table}.woocommerce p.stars a:before,.woocommerce p.stars a:hover~a:before{content:"\e021"}.woocommerce #review_form #respond p{margin:0 0 10px}.woocommerce #review_form #respond .form-submit input{left:auto}.woocommerce #review_form #respond textarea{box-sizing:border-box;width:100%}.woocommerce p.stars a{position:relative;height:1em;width:1em;text-indent:-999em;display:inline-block;text-decoration:none}.woocommerce p.stars a:before{display:block;position:absolute;top:0;left:0;width:1em;height:1em;line-height:1;font-family:WooCommerce;text-indent:0}.woocommerce table.shop_attributes td,.woocommerce table.shop_attributes th{line-height:1.5;border-bottom:1px dotted rgba(0,0,0,.1);border-top:0;margin:0}.woocommerce p.stars.selected a.active:before,.woocommerce p.stars:hover a:before{content:"\e020"}.woocommerce p.stars.selected a.active~a:before{content:"\e021"}.woocommerce p.stars.selected a:not(.active):before{content:"\e020"}.woocommerce table.shop_attributes{border:0;border-top:1px dotted rgba(0,0,0,.1);margin-bottom:1.618em;width:100%}.woocommerce table.shop_attributes th{width:150px;font-weight:700;padding:8px}.woocommerce table.shop_attributes td{font-style:italic;padding:0}.woocommerce table.shop_attributes td p{margin:0;padding:8px 0}.woocommerce table.shop_attributes .alt td,.woocommerce table.shop_attributes .alt th{background:rgba(0,0,0,.025)}.woocommerce table.shop_table{border:1px solid rgba(0,0,0,.1);margin:0 -1px 24px 0;text-align:left;width:100%;border-collapse:separate;border-radius:5px}.woocommerce table.shop_table th{font-weight:700;padding:9px 12px}.woocommerce table.shop_table td{border-top:1px solid rgba(0,0,0,.1);padding:6px 12px;vertical-align:middle}.woocommerce table.shop_table td small{font-weight:400}.woocommerce table.shop_table tbody:first-child tr:first-child td,.woocommerce table.shop_table tbody:first-child tr:first-child th{border-top:0}.woocommerce table.shop_table tbody th,.woocommerce table.shop_table tfoot td,.woocommerce table.shop_table tfoot th{font-weight:700;border-top:1px solid rgba(0,0,0,.1)}.woocommerce table.my_account_orders{font-size:.85em}.woocommerce table.my_account_orders td,.woocommerce table.my_account_orders th{padding:4px 8px;vertical-align:middle}.woocommerce table.my_account_orders .button{white-space:nowrap}.woocommerce table.my_account_orders .order-actions{text-align:right}.woocommerce table.my_account_orders .order-actions .button{margin:.125em 0 .125em .25em}.woocommerce td.product-name dl.variation{margin:.25em 0}.woocommerce td.product-name dl.variation:after,.woocommerce td.product-name dl.variation:before{content:" ";display:table}.woocommerce td.product-name dl.variation dd,.woocommerce td.product-name dl.variation dt{display:inline-block;float:left;margin-bottom:1em}.woocommerce td.product-name dl.variation dt{font-weight:700;padding:0 0 .25em;margin:0 4px 0 0;clear:left}.woocommerce ul.cart_list li dl:after,.woocommerce ul.cart_list li:after,.woocommerce ul.product_list_widget li dl:after,.woocommerce ul.product_list_widget li:after{clear:both}.woocommerce td.product-name dl.variation dd{padding:0 0 .25em}.woocommerce td.product-name dl.variation dd p:last-child{margin-bottom:0}.woocommerce td.product-name p.backorder_notification{font-size:.83em}.woocommerce td.product-quantity{min-width:80px}.woocommerce ul.cart_list,.woocommerce ul.product_list_widget{list-style:none;padding:0;margin:0}.woocommerce ul.cart_list li,.woocommerce ul.product_list_widget li{padding:4px 0;margin:0;list-style:none}.woocommerce ul.cart_list li:after,.woocommerce ul.cart_list li:before,.woocommerce ul.product_list_widget li:after,.woocommerce ul.product_list_widget li:before{content:" ";display:table}.woocommerce ul.cart_list li a,.woocommerce ul.product_list_widget li a{display:block;font-weight:700}.woocommerce ul.cart_list li img,.woocommerce ul.product_list_widget li img{float:right;margin-left:4px;width:32px;height:auto;box-shadow:none}.woocommerce ul.cart_list li dl,.woocommerce ul.product_list_widget li dl{margin:0;padding-left:1em;border-left:2px solid rgba(0,0,0,.1)}.woocommerce ul.cart_list li dl:after,.woocommerce ul.cart_list li dl:before,.woocommerce ul.product_list_widget li dl:after,.woocommerce ul.product_list_widget li dl:before{content:" ";display:table}.woocommerce ul.cart_list li dl dd,.woocommerce ul.cart_list li dl dt,.woocommerce ul.product_list_widget li dl dd,.woocommerce ul.product_list_widget li dl dt{display:inline-block;float:left;margin-bottom:1em}.woocommerce ul.cart_list li dl dt,.woocommerce ul.product_list_widget li dl dt{font-weight:700;padding:0 0 .25em;margin:0 4px 0 0;clear:left}.woocommerce .order_details:after,.woocommerce .widget_layered_nav ul li:after,.woocommerce .widget_shopping_cart .buttons:after,.woocommerce-account .addresses .title:after,.woocommerce-cart .wc-proceed-to-checkout:after,.woocommerce.widget_shopping_cart .buttons:after{clear:both}.woocommerce ul.cart_list li dl dd,.woocommerce ul.product_list_widget li dl dd{padding:0 0 .25em}.woocommerce ul.cart_list li dl dd p:last-child,.woocommerce ul.product_list_widget li dl dd p:last-child{margin-bottom:0}.woocommerce ul.cart_list li .star-rating,.woocommerce ul.product_list_widget li .star-rating{float:none}.woocommerce .widget_shopping_cart .total,.woocommerce.widget_shopping_cart .total{border-top:3px double #ebe9eb;padding:4px 0 0}.woocommerce .widget_shopping_cart .total strong,.woocommerce.widget_shopping_cart .total strong{min-width:40px;display:inline-block}.woocommerce .widget_shopping_cart .cart_list li,.woocommerce.widget_shopping_cart .cart_list li{padding-left:2em;position:relative;padding-top:0}.woocommerce .widget_shopping_cart .cart_list li a.remove,.woocommerce.widget_shopping_cart .cart_list li a.remove{position:absolute;top:0;left:0}.woocommerce .widget_shopping_cart .buttons:after,.woocommerce .widget_shopping_cart .buttons:before,.woocommerce.widget_shopping_cart .buttons:after,.woocommerce.widget_shopping_cart .buttons:before{content:" ";display:table}.woocommerce form .form-row{padding:3px;margin:0 0 6px}.woocommerce form .form-row [placeholder]:focus::-webkit-input-placeholder{-webkit-transition:opacity .5s .5s ease;-moz-transition:opacity .5s .5s ease;transition:opacity .5s .5s ease;opacity:0}.woocommerce form .form-row label{line-height:2}.woocommerce form .form-row label.hidden{visibility:hidden}.woocommerce form .form-row label.inline{display:inline}.woocommerce form .form-row select{cursor:pointer;margin:0}.woocommerce form .form-row .required{color:red;font-weight:700;border:0}.woocommerce form .form-row .input-checkbox{display:inline;margin:-2px 8px 0 0;text-align:center;vertical-align:middle}.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea{box-sizing:border-box;width:100%;margin:0;outline:0;line-height:1}.woocommerce form .form-row textarea{height:4em;line-height:1.5;display:block;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.woocommerce form .form-row .select2-container{width:100%;line-height:2em}.woocommerce form .form-row.woocommerce-invalid label{color:#a00}.woocommerce form .form-row.woocommerce-invalid .select2-container,.woocommerce form .form-row.woocommerce-invalid input.input-text,.woocommerce form .form-row.woocommerce-invalid select{border-color:#a00}.woocommerce form .form-row.woocommerce-validated .select2-container,.woocommerce form .form-row.woocommerce-validated input.input-text,.woocommerce form .form-row.woocommerce-validated select{border-color:#69bf29}.woocommerce form .form-row ::-webkit-input-placeholder{line-height:normal}.woocommerce form .form-row :-moz-placeholder{line-height:normal}.woocommerce form .form-row :-ms-input-placeholder{line-height:normal}.woocommerce form.checkout_coupon,.woocommerce form.login,.woocommerce form.register{border:1px solid #d3ced2;padding:20px;margin:2em 0;text-align:left;border-radius:5px}.woocommerce ul#shipping_method{list-style:none;margin:0;padding:0}.woocommerce ul#shipping_method li{margin:0;padding:.25em 0 .25em 22px;text-indent:-22px;list-style:none}.woocommerce ul#shipping_method li input{margin:3px .5ex}.woocommerce ul#shipping_method li label{display:inline}.woocommerce ul#shipping_method .amount{font-weight:700}.woocommerce p.woocommerce-shipping-contents{margin:0}.woocommerce .order_details{margin:0 0 1.5em;list-style:none}.woocommerce .order_details:after,.woocommerce .order_details:before{content:" ";display:table}.woocommerce .order_details li{float:left;margin-right:2em;text-transform:uppercase;font-size:.715em;line-height:1;border-right:1px dashed #d3ced2;padding-right:2em;margin-left:0;padding-left:0}.woocommerce .order_details li strong{display:block;font-size:1.4em;text-transform:none;line-height:1.5}.woocommerce .order_details li:last-of-type{border:none}.woocommerce .widget_layered_nav ul{margin:0;padding:0;border:0;list-style:none}.woocommerce .widget_layered_nav ul li{padding:0 0 1px;list-style:none}.woocommerce .widget_layered_nav ul li:after,.woocommerce .widget_layered_nav ul li:before{content:" ";display:table}.woocommerce .widget_layered_nav ul li.chosen a:before,.woocommerce .widget_layered_nav_filters ul li a:before{font-weight:400;line-height:1;content:"";color:#a00;font-family:WooCommerce;speak:none;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;text-decoration:none}.woocommerce .widget_layered_nav ul li a,.woocommerce .widget_layered_nav ul li span{padding:1px 0}.woocommerce .widget_layered_nav ul li.chosen a:before{margin-right:.618em}.woocommerce .widget_layered_nav_filters ul{margin:0;padding:0;border:0;list-style:none;overflow:hidden;zoom:1}.woocommerce .widget_layered_nav_filters ul li{float:left;padding:0 1px 1px 0;list-style:none}.woocommerce .widget_layered_nav_filters ul li a{text-decoration:none}.woocommerce .widget_layered_nav_filters ul li a:before{margin-right:.618em}.woocommerce .widget_price_filter .price_slider{margin-bottom:1em}.woocommerce .widget_price_filter .price_slider_amount{text-align:right;line-height:2.4;font-size:.8751em}.woocommerce .widget_price_filter .price_slider_amount .button{font-size:1.15em;float:left}.woocommerce .widget_price_filter .ui-slider{position:relative;text-align:left;margin-left:.5em;margin-right:.5em}.woocommerce .widget_price_filter .ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1em;height:1em;background-color:#a46497;border-radius:1em;cursor:ew-resize;outline:0;top:-.3em;margin-left:-.5em}.woocommerce .widget_price_filter .ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;border-radius:1em;background-color:#a46497}.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content{border-radius:1em;background-color:#602053;border:0}.woocommerce .widget_price_filter .ui-slider-horizontal{height:.5em}.woocommerce .widget_price_filter .ui-slider-horizontal .ui-slider-range{top:0;height:100%}.woocommerce .widget_price_filter .ui-slider-horizontal .ui-slider-range-min{left:-1px}.woocommerce .widget_price_filter .ui-slider-horizontal .ui-slider-range-max{right:-1px}.woocommerce-account .addresses .title:after,.woocommerce-account .addresses .title:before{content:" ";display:table}.woocommerce-account .addresses .title h3{float:left}.woocommerce-account .addresses .title .edit,.woocommerce-account ul.digital-downloads li .count{float:right}.woocommerce-account ol.commentlist.notes li.note p.meta{font-weight:700;margin-bottom:0}.woocommerce-account ol.commentlist.notes li.note .description p:last-child{margin-bottom:0}.woocommerce-account ul.digital-downloads{margin-left:0;padding-left:0}.woocommerce-account ul.digital-downloads li{list-style:none;margin-left:0;padding-left:0}.woocommerce-account ul.digital-downloads li:before{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-right:.618em;content:"";text-decoration:none}.woocommerce-cart table.cart .product-thumbnail{min-width:32px}.woocommerce-cart table.cart img{width:32px;box-shadow:none}.woocommerce-cart table.cart td,.woocommerce-cart table.cart th{vertical-align:middle}.woocommerce-cart table.cart td.actions .coupon .input-text{float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:1px solid #d3ced2;padding:6px 6px 5px;margin:0 4px 0 0;outline:0;line-height:1}.woocommerce-cart table.cart input{margin:0;vertical-align:middle;line-height:1}.woocommerce-cart .wc-proceed-to-checkout{padding:1em 0}.woocommerce-cart .wc-proceed-to-checkout:after,.woocommerce-cart .wc-proceed-to-checkout:before{content:" ";display:table}.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{display:block;text-align:center;margin-bottom:1em;font-size:1.25em;padding:1em}.woocommerce-cart .cart-collaterals .shipping_calculator .button{width:100%;float:none;display:block}.woocommerce-cart .cart-collaterals .shipping_calculator .shipping-calculator-button:after{font-family:WooCommerce;speak:none;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;margin-left:.618em;content:"";text-decoration:none}.woocommerce-checkout #payment ul.payment_methods li:after,.woocommerce-checkout #payment ul.payment_methods li:before,.woocommerce-checkout #payment ul.payment_methods:after,.woocommerce-checkout #payment ul.payment_methods:before{content:" ";display:table}.woocommerce-cart .cart-collaterals .cart_totals p small{color:#777;font-size:.83em}.woocommerce-cart .cart-collaterals .cart_totals table{border-collapse:separate;margin:0 0 6px;padding:0}.woocommerce-cart .cart-collaterals .cart_totals table tr:first-child td,.woocommerce-cart .cart-collaterals .cart_totals table tr:first-child th{border-top:0}.woocommerce-cart .cart-collaterals .cart_totals table th{width:40%}.woocommerce-cart .cart-collaterals .cart_totals table td,.woocommerce-cart .cart-collaterals .cart_totals table th{vertical-align:top;border-left:0;border-right:0;line-height:1.5em}.woocommerce-cart .cart-collaterals .cart_totals table small{color:#777}.woocommerce-cart .cart-collaterals .cart_totals table select{width:100%}.woocommerce-cart .cart-collaterals .cart_totals .discount td{color:#77a464}.woocommerce-cart .cart-collaterals .cart_totals tr td,.woocommerce-cart .cart-collaterals .cart_totals tr th{border-top:1px solid #ebe9eb}.woocommerce-cart .cart-collaterals .cross-sells ul.products li.product{margin-top:0}.woocommerce-checkout .checkout .col-2 h3#ship-to-different-address{float:left;clear:none}.woocommerce-checkout .checkout .col-2 .form-row-first,.woocommerce-checkout .checkout .col-2 .notes{clear:left}.woocommerce-checkout .checkout .create-account small{font-size:11px;color:#777;font-weight:400}.woocommerce-checkout .checkout div.shipping-address{padding:0;clear:left;width:100%}.single-product .twentythirteen p.stars,.woocommerce-checkout #payment ul.payment_methods li:after,.woocommerce-checkout #payment ul.payment_methods:after,.woocommerce-checkout .checkout .shipping_address{clear:both}.woocommerce-checkout #payment{background:#ebe9eb;border-radius:5px}.woocommerce-checkout #payment ul.payment_methods{text-align:left;padding:1em;border-bottom:1px solid #d3ced2;margin:0;list-style:none}.woocommerce-checkout #payment ul.payment_methods li{line-height:2;text-align:left;margin:0;font-weight:400}.woocommerce-checkout #payment ul.payment_methods li input{margin:0 1em 0 0}.woocommerce-checkout #payment ul.payment_methods li img{vertical-align:middle;margin:-2px 0 0 .5em;padding:0;position:relative;box-shadow:none}.woocommerce-checkout #payment ul.payment_methods li img+img{margin-left:2px}.woocommerce-checkout #payment div.form-row{padding:1em}.woocommerce-checkout #payment div.payment_box{position:relative;box-sizing:border-box;width:100%;padding:1em;margin:1em 0;font-size:.92em;border-radius:2px;line-height:1.5;background-color:#dfdcde;color:#515151}.woocommerce-checkout #payment div.payment_box input.input-text,.woocommerce-checkout #payment div.payment_box textarea{border-color:#bbb3b9 #c7c1c6 #c7c1c6}.woocommerce-checkout #payment div.payment_box ::-webkit-input-placeholder{color:#bbb3b9}.woocommerce-checkout #payment div.payment_box :-moz-placeholder{color:#bbb3b9}.woocommerce-checkout #payment div.payment_box :-ms-input-placeholder{color:#bbb3b9}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number{font-size:1.5em;padding:8px;background-repeat:no-repeat;background-position:right}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.visa,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.visa,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.visa{background-image:url(../images/icons/credit-cards/visa.png)}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.mastercard,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.mastercard,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.mastercard{background-image:url(../images/icons/credit-cards/mastercard.png)}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.laser,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.laser,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.laser{background-image:url(../images/icons/credit-cards/laser.png)}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.dinersclub,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.dinersclub,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.dinersclub{background-image:url(../images/icons/credit-cards/diners.png)}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.maestro,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.maestro,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.maestro{background-image:url(../images/icons/credit-cards/maestro.png)}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.jcb,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.jcb,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.jcb{background-image:url(../images/icons/credit-cards/jcb.png)}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.amex,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.amex,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.amex{background-image:url(../images/icons/credit-cards/amex.png)}.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-cvc.discover,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-expiry.discover,.woocommerce-checkout #payment div.payment_box .wc-credit-card-form-card-number.discover{background-image:url(../images/icons/credit-cards/discover.png)}.woocommerce-checkout #payment div.payment_box span.help{font-size:.857em;color:#777;font-weight:400}.woocommerce-checkout #payment div.payment_box .form-row{margin:0 0 1em}.woocommerce-checkout #payment div.payment_box p:last-child{margin-bottom:0}.woocommerce-checkout #payment div.payment_box:before{content:"";display:block;border:1em solid #dfdcde;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent;position:absolute;top:-.75em;left:0;margin:-1em 0 0 2em}.woocommerce-checkout #payment .payment_method_paypal .about_paypal{float:right;line-height:52px;font-size:.83em}.woocommerce-checkout #payment .payment_method_paypal img{max-height:52px;vertical-align:middle}.woocommerce-password-strength{text-align:center;font-weight:600;padding:3px 0}.woocommerce-password-strength.strong{background-color:#c1e1b9;border-color:#83c373}.woocommerce-password-strength.short{background-color:#f1adad;border-color:#e35b5b}.woocommerce-password-strength.bad{background-color:#fbc5a9;border-color:#f78b53}.woocommerce-password-strength.good{background-color:#ffe399;border-color:#ffc733}.woocommerce-password-hint{margin:.5em 0 0;display:block}.product.has-default-attributes.has-children>.images{opacity:0}#content.twentyeleven .woocommerce-pagination a{font-size:1em;line-height:1}.single-product .twentythirteen #reply-title,.single-product .twentythirteen #respond #commentform,.single-product .twentythirteen .entry-summary{padding:0}.twentythirteen .woocommerce-breadcrumb{padding-top:40px}.twentyfourteen ul.products li.product{margin-top:0!important}body:not(.search-results) .twentysixteen .entry-summary{color:inherit;font-size:inherit;line-height:inherit}.twentysixteen .price ins{background:inherit;color:inherit} \ No newline at end of file diff --git a/assets/css/woocommerce.scss b/assets/css/woocommerce.scss index 2fd25a29184..fbe3f110fec 100644 --- a/assets/css/woocommerce.scss +++ b/assets/css/woocommerce.scss @@ -1324,6 +1324,12 @@ p.demo_store { padding: .25em 0 .25em 22px; text-indent: -22px; list-style: none outside; + input { + margin: 3px 0.5ex; + } + label { + display: inline; + } } .amount { @@ -1908,6 +1914,11 @@ p.demo_store { } } +.woocommerce-password-hint { + margin: .5em 0 0 0; + display: block; +} + /* added to get around variation image flicker issue */ .product.has-default-attributes.has-children { > .images { diff --git a/assets/js/admin/meta-boxes-product.js b/assets/js/admin/meta-boxes-product.js index 7bc6b6b7e2b..d9ced76f872 100644 --- a/assets/js/admin/meta-boxes-product.js +++ b/assets/js/admin/meta-boxes-product.js @@ -131,12 +131,12 @@ jQuery( function( $ ) { // Hide/Show all with rules var hide_classes = '.hide_if_downloadable, .hide_if_virtual'; - var show_classes = '.show_if_downloadable, .show_if_virtual, .show_if_external'; + var show_classes = '.show_if_downloadable, .show_if_virtual'; $.each( woocommerce_admin_meta_boxes.product_types, function( index, value ) { hide_classes = hide_classes + ', .hide_if_' + value; show_classes = show_classes + ', .show_if_' + value; - } ); + }); $( hide_classes ).show(); $( show_classes ).hide(); @@ -270,7 +270,8 @@ jQuery( function( $ ) { $( 'button.add_attribute' ).on( 'click', function() { var size = $( '.product_attributes .woocommerce_attribute' ).size(); var attribute = $( 'select.attribute_taxonomy' ).val(); - var $wrapper = $( this ).closest( '#product_attributes' ).find( '.product_attributes' ); + var $wrapper = $( this ).closest( '#product_attributes' ); + var $attributes = $wrapper.find( '.product_attributes' ); var product_type = $( 'select#product-type' ).val(); var data = { action: 'woocommerce_add_attribute', @@ -288,10 +289,10 @@ jQuery( function( $ ) { }); $.post( woocommerce_admin_meta_boxes.ajax_url, data, function( response ) { - $wrapper.append( response ); + $attributes.append( response ); if ( product_type !== 'variable' ) { - $wrapper.find( '.enable_variation' ).hide(); + $attributes.find( '.enable_variation' ).hide(); } $( document.body ).trigger( 'wc-enhanced-select-init' ); diff --git a/assets/js/admin/meta-boxes-product.min.js b/assets/js/admin/meta-boxes-product.min.js index 550cfd1d571..c1059aaff41 100644 --- a/assets/js/admin/meta-boxes-product.min.js +++ b/assets/js/admin/meta-boxes-product.min.js @@ -1 +1 @@ -jQuery(function(a){function b(){var b=a("select#product-type").val(),c=a("input#_virtual:checked").size(),d=a("input#_downloadable:checked").size(),e=".hide_if_downloadable, .hide_if_virtual",f=".show_if_downloadable, .show_if_virtual, .show_if_external";a.each(woocommerce_admin_meta_boxes.product_types,function(a,b){e=e+", .hide_if_"+b,f=f+", .show_if_"+b}),a(e).show(),a(f).hide(),d&&a(".show_if_downloadable").show(),c&&a(".show_if_virtual").show(),a(".show_if_"+b).show(),d&&a(".hide_if_downloadable").hide(),c&&a(".hide_if_virtual").hide(),a(".hide_if_"+b).hide(),a("input#_manage_stock").change()}function c(){a(".product_attributes .woocommerce_attribute").each(function(b,c){a(".attribute_position",c).val(parseInt(a(c).index(".product_attributes .woocommerce_attribute"),10))})}a(function(){a('[id$="-all"] > ul.categorychecklist').each(function(){var b=a(this),c=b.find(":checked").first();if(c.length){var d=b.find("input").position().top,e=c.position().top;b.closest(".tabs-panel").scrollTop(e-d+5)}})}),a("#upsell_product_data").bind("keypress",function(a){return 13===a.keyCode?!1:void 0}),a(".type_box").appendTo("#woocommerce-product-data .hndle span"),a(function(){a("#woocommerce-product-data").find(".hndle").unbind("click.postboxes"),jQuery("#woocommerce-product-data").on("click",".hndle",function(b){a(b.target).filter("input, option, label, select").length||a("#woocommerce-product-data").toggleClass("closed")})}),a("#catalog-visibility").find(".edit-catalog-visibility").click(function(){return a("#catalog-visibility-select").is(":hidden")&&(a("#catalog-visibility-select").slideDown("fast"),a(this).hide()),!1}),a("#catalog-visibility").find(".save-post-visibility").click(function(){a("#catalog-visibility-select").slideUp("fast"),a("#catalog-visibility").find(".edit-catalog-visibility").show();var b=a("input[name=_visibility]:checked").attr("data-label");return a("input[name=_featured]").is(":checked")&&(b=b+", "+woocommerce_admin_meta_boxes.featured_label,a("input[name=_featured]").attr("checked","checked")),a("#catalog-visibility-display").text(b),!1}),a("#catalog-visibility").find(".cancel-post-visibility").click(function(){a("#catalog-visibility-select").slideUp("fast"),a("#catalog-visibility").find(".edit-catalog-visibility").show();var b=a("#current_visibility").val(),c=a("#current_featured").val();a("input[name=_visibility]").removeAttr("checked"),a("input[name=_visibility][value="+b+"]").attr("checked","checked");var d=a("input[name=_visibility]:checked").attr("data-label");return"yes"===c?(d=d+", "+woocommerce_admin_meta_boxes.featured_label,a("input[name=_featured]").attr("checked","checked")):a("input[name=_featured]").removeAttr("checked"),a("#catalog-visibility-display").text(d),!1}),a("select#product-type").change(function(){var c=a(this).val();"variable"===c?(a("input#_manage_stock").change(),a("input#_downloadable").prop("checked",!1),a("input#_virtual").removeAttr("checked")):"grouped"===c?(a("input#_downloadable").prop("checked",!1),a("input#_virtual").removeAttr("checked")):"external"===c&&(a("input#_downloadable").prop("checked",!1),a("input#_virtual").removeAttr("checked")),b(),a("ul.wc-tabs li:visible").eq(0).find("a").click(),a(document.body).trigger("woocommerce-product-type-change",c,a(this))}).change(),a(document.body).on("woocommerce-product-type-change",function(b,c){"variable"!==c&&0d?-1:d>e?1:0}),a(d).each(function(b,c){a(".product_attributes").append(c)}),a(".product_attributes .woocommerce_attribute").each(function(b,c){"none"!==a(c).css("display")&&a(c).is(".taxonomy")&&a("select.attribute_taxonomy").find('option[value="'+a(c).data("taxonomy")+'"]').attr("disabled","disabled")}),a("button.add_attribute").on("click",function(){var b=a(".product_attributes .woocommerce_attribute").size(),d=a("select.attribute_taxonomy").val(),e=a(this).closest("#product_attributes").find(".product_attributes"),f=a("select#product-type").val(),g={action:"woocommerce_add_attribute",taxonomy:d,i:b,security:woocommerce_admin_meta_boxes.add_attribute_nonce};return e.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),a.post(woocommerce_admin_meta_boxes.ajax_url,g,function(b){e.append(b),"variable"!==f&&e.find(".enable_variation").hide(),a(document.body).trigger("wc-enhanced-select-init"),c(),e.unblock(),a(document.body).trigger("woocommerce_added_attribute")}),d&&(a("select.attribute_taxonomy").find('option[value="'+d+'"]').attr("disabled","disabled"),a("select.attribute_taxonomy").val("")),!1}),a(".product_attributes").on("blur","input.attribute_name",function(){a(this).closest(".woocommerce_attribute").find("strong.attribute_name").text(a(this).val())}),a(".product_attributes").on("click","button.select_all_attributes",function(){return a(this).closest("td").find("select option").attr("selected","selected"),a(this).closest("td").find("select").change(),!1}),a(".product_attributes").on("click","button.select_no_attributes",function(){return a(this).closest("td").find("select option").removeAttr("selected"),a(this).closest("td").find("select").change(),!1}),a(".product_attributes").on("click",".remove_row",function(){if(window.confirm(woocommerce_admin_meta_boxes.remove_attribute)){var b=a(this).parent().parent();b.is(".taxonomy")?(b.find("select, input[type=text]").val(""),b.hide(),a("select.attribute_taxonomy").find('option[value="'+b.data("taxonomy")+'"]').removeAttr("disabled")):(b.find("select, input[type=text]").val(""),b.hide(),c())}return!1}),a(".product_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"),c()}}),a(".product_attributes").on("click","button.add_new_attribute",function(){a(".product_attributes").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var b=a(this).closest(".woocommerce_attribute"),c=b.data("taxonomy"),d=window.prompt(woocommerce_admin_meta_boxes.new_attribute_prompt);if(d){var e={action:"woocommerce_add_new_attribute",taxonomy:c,term:d,security:woocommerce_admin_meta_boxes.add_attribute_nonce};a.post(woocommerce_admin_meta_boxes.ajax_url,e,function(c){c.error?window.alert(c.error):c.slug&&(b.find("select.attribute_values").append('"),b.find("select.attribute_values").change()),a(".product_attributes").unblock()})}else a(".product_attributes").unblock();return!1}),a(".save_attributes").on("click",function(){a("#woocommerce-product-data").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var b={post_id:woocommerce_admin_meta_boxes.post_id,data:a(".product_attributes").find("input, select, textarea").serialize(),action:"woocommerce_save_attributes",security:woocommerce_admin_meta_boxes.save_attributes_nonce};a.post(woocommerce_admin_meta_boxes.ajax_url,b,function(){var b=window.location.toString();b=b.replace("post-new.php?","post.php?post="+woocommerce_admin_meta_boxes.post_id+"&action=edit&"),a("#variable_product_options").load(b+" #variable_product_options_inner",function(){a("#variable_product_options").trigger("reload")})})});var e,f;jQuery(document.body).on("click",".upload_file_button",function(b){var c=a(this);if(f=c.closest("tr").find("td.file_url input"),b.preventDefault(),e)return void e.open();var d=[new wp.media.controller.Library({library:wp.media.query(),multiple:!0,title:c.data("choose"),priority:20,filterable:"uploaded"})];e=wp.media.frames.downloadable_file=wp.media({title:c.data("choose"),library:{type:""},button:{text:c.data("update")},multiple:!0,states:d}),e.on("select",function(){var a="",b=e.state().get("selection");b.map(function(b){b=b.toJSON(),b.url&&(a=b.url)}),f.val(a).change()}),e.on("ready",function(){e.uploader.options.uploader.params={type:"downloadable_product"}}),e.open()}),jQuery(".downloadable_files tbody").sortable({items:"tr",cursor:"move",axis:"y",handle:"td.sort",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65});var g,h=a("#product_image_gallery"),i=a("#product_images_container").find("ul.product_images");jQuery(".add_product_images").on("click","a",function(b){var c=a(this);return b.preventDefault(),g?void g.open():(g=wp.media.frames.product_gallery=wp.media({title:c.data("choose"),button:{text:c.data("update")},states:[new wp.media.controller.Library({title:c.data("choose"),filterable:"all",multiple:!0})]}),g.on("select",function(){var a=g.state().get("selection"),b=h.val();a.map(function(a){if(a=a.toJSON(),a.id){b=b?b+","+a.id:a.id;var d=a.sizes&&a.sizes.thumbnail?a.sizes.thumbnail.url:a.url;i.append('
  • ")}}),h.val(b)}),void g.open())}),i.sortable({items:"li.image",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,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")},update:function(){var b="";a("#product_images_container").find("ul li.image").css("cursor","default").each(function(){var a=jQuery(this).attr("data-attachment_id");b=b+a+","}),h.val(b)}}),a("#product_images_container").on("click","a.delete",function(){a(this).closest("li.image").remove();var b="";return a("#product_images_container").find("ul li.image").css("cursor","default").each(function(){var a=jQuery(this).attr("data-attachment_id");b=b+a+","}),h.val(b),a("#tiptip_holder").removeAttr("style"),a("#tiptip_arrow").removeAttr("style"),!1})}); \ No newline at end of file +jQuery(function(a){function b(){var b=a("select#product-type").val(),c=a("input#_virtual:checked").size(),d=a("input#_downloadable:checked").size(),e=".hide_if_downloadable, .hide_if_virtual",f=".show_if_downloadable, .show_if_virtual";a.each(woocommerce_admin_meta_boxes.product_types,function(a,b){e=e+", .hide_if_"+b,f=f+", .show_if_"+b}),a(e).show(),a(f).hide(),d&&a(".show_if_downloadable").show(),c&&a(".show_if_virtual").show(),a(".show_if_"+b).show(),d&&a(".hide_if_downloadable").hide(),c&&a(".hide_if_virtual").hide(),a(".hide_if_"+b).hide(),a("input#_manage_stock").change()}function c(){a(".product_attributes .woocommerce_attribute").each(function(b,c){a(".attribute_position",c).val(parseInt(a(c).index(".product_attributes .woocommerce_attribute"),10))})}a(function(){a('[id$="-all"] > ul.categorychecklist').each(function(){var b=a(this),c=b.find(":checked").first();if(c.length){var d=b.find("input").position().top,e=c.position().top;b.closest(".tabs-panel").scrollTop(e-d+5)}})}),a("#upsell_product_data").bind("keypress",function(a){return 13===a.keyCode?!1:void 0}),a(".type_box").appendTo("#woocommerce-product-data .hndle span"),a(function(){a("#woocommerce-product-data").find(".hndle").unbind("click.postboxes"),jQuery("#woocommerce-product-data").on("click",".hndle",function(b){a(b.target).filter("input, option, label, select").length||a("#woocommerce-product-data").toggleClass("closed")})}),a("#catalog-visibility").find(".edit-catalog-visibility").click(function(){return a("#catalog-visibility-select").is(":hidden")&&(a("#catalog-visibility-select").slideDown("fast"),a(this).hide()),!1}),a("#catalog-visibility").find(".save-post-visibility").click(function(){a("#catalog-visibility-select").slideUp("fast"),a("#catalog-visibility").find(".edit-catalog-visibility").show();var b=a("input[name=_visibility]:checked").attr("data-label");return a("input[name=_featured]").is(":checked")&&(b=b+", "+woocommerce_admin_meta_boxes.featured_label,a("input[name=_featured]").attr("checked","checked")),a("#catalog-visibility-display").text(b),!1}),a("#catalog-visibility").find(".cancel-post-visibility").click(function(){a("#catalog-visibility-select").slideUp("fast"),a("#catalog-visibility").find(".edit-catalog-visibility").show();var b=a("#current_visibility").val(),c=a("#current_featured").val();a("input[name=_visibility]").removeAttr("checked"),a("input[name=_visibility][value="+b+"]").attr("checked","checked");var d=a("input[name=_visibility]:checked").attr("data-label");return"yes"===c?(d=d+", "+woocommerce_admin_meta_boxes.featured_label,a("input[name=_featured]").attr("checked","checked")):a("input[name=_featured]").removeAttr("checked"),a("#catalog-visibility-display").text(d),!1}),a("select#product-type").change(function(){var c=a(this).val();"variable"===c?(a("input#_manage_stock").change(),a("input#_downloadable").prop("checked",!1),a("input#_virtual").removeAttr("checked")):"grouped"===c?(a("input#_downloadable").prop("checked",!1),a("input#_virtual").removeAttr("checked")):"external"===c&&(a("input#_downloadable").prop("checked",!1),a("input#_virtual").removeAttr("checked")),b(),a("ul.wc-tabs li:visible").eq(0).find("a").click(),a(document.body).trigger("woocommerce-product-type-change",c,a(this))}).change(),a(document.body).on("woocommerce-product-type-change",function(b,c){"variable"!==c&&0d?-1:d>e?1:0}),a(d).each(function(b,c){a(".product_attributes").append(c)}),a(".product_attributes .woocommerce_attribute").each(function(b,c){"none"!==a(c).css("display")&&a(c).is(".taxonomy")&&a("select.attribute_taxonomy").find('option[value="'+a(c).data("taxonomy")+'"]').attr("disabled","disabled")}),a("button.add_attribute").on("click",function(){var b=a(".product_attributes .woocommerce_attribute").size(),d=a("select.attribute_taxonomy").val(),e=a(this).closest("#product_attributes"),f=e.find(".product_attributes"),g=a("select#product-type").val(),h={action:"woocommerce_add_attribute",taxonomy:d,i:b,security:woocommerce_admin_meta_boxes.add_attribute_nonce};return e.block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),a.post(woocommerce_admin_meta_boxes.ajax_url,h,function(b){f.append(b),"variable"!==g&&f.find(".enable_variation").hide(),a(document.body).trigger("wc-enhanced-select-init"),c(),e.unblock(),a(document.body).trigger("woocommerce_added_attribute")}),d&&(a("select.attribute_taxonomy").find('option[value="'+d+'"]').attr("disabled","disabled"),a("select.attribute_taxonomy").val("")),!1}),a(".product_attributes").on("blur","input.attribute_name",function(){a(this).closest(".woocommerce_attribute").find("strong.attribute_name").text(a(this).val())}),a(".product_attributes").on("click","button.select_all_attributes",function(){return a(this).closest("td").find("select option").attr("selected","selected"),a(this).closest("td").find("select").change(),!1}),a(".product_attributes").on("click","button.select_no_attributes",function(){return a(this).closest("td").find("select option").removeAttr("selected"),a(this).closest("td").find("select").change(),!1}),a(".product_attributes").on("click",".remove_row",function(){if(window.confirm(woocommerce_admin_meta_boxes.remove_attribute)){var b=a(this).parent().parent();b.is(".taxonomy")?(b.find("select, input[type=text]").val(""),b.hide(),a("select.attribute_taxonomy").find('option[value="'+b.data("taxonomy")+'"]').removeAttr("disabled")):(b.find("select, input[type=text]").val(""),b.hide(),c())}return!1}),a(".product_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"),c()}}),a(".product_attributes").on("click","button.add_new_attribute",function(){a(".product_attributes").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var b=a(this).closest(".woocommerce_attribute"),c=b.data("taxonomy"),d=window.prompt(woocommerce_admin_meta_boxes.new_attribute_prompt);if(d){var e={action:"woocommerce_add_new_attribute",taxonomy:c,term:d,security:woocommerce_admin_meta_boxes.add_attribute_nonce};a.post(woocommerce_admin_meta_boxes.ajax_url,e,function(c){c.error?window.alert(c.error):c.slug&&(b.find("select.attribute_values").append('"),b.find("select.attribute_values").change()),a(".product_attributes").unblock()})}else a(".product_attributes").unblock();return!1}),a(".save_attributes").on("click",function(){a("#woocommerce-product-data").block({message:null,overlayCSS:{background:"#fff",opacity:.6}});var b={post_id:woocommerce_admin_meta_boxes.post_id,data:a(".product_attributes").find("input, select, textarea").serialize(),action:"woocommerce_save_attributes",security:woocommerce_admin_meta_boxes.save_attributes_nonce};a.post(woocommerce_admin_meta_boxes.ajax_url,b,function(){var b=window.location.toString();b=b.replace("post-new.php?","post.php?post="+woocommerce_admin_meta_boxes.post_id+"&action=edit&"),a("#variable_product_options").load(b+" #variable_product_options_inner",function(){a("#variable_product_options").trigger("reload")})})});var e,f;jQuery(document.body).on("click",".upload_file_button",function(b){var c=a(this);if(f=c.closest("tr").find("td.file_url input"),b.preventDefault(),e)return void e.open();var d=[new wp.media.controller.Library({library:wp.media.query(),multiple:!0,title:c.data("choose"),priority:20,filterable:"uploaded"})];e=wp.media.frames.downloadable_file=wp.media({title:c.data("choose"),library:{type:""},button:{text:c.data("update")},multiple:!0,states:d}),e.on("select",function(){var a="",b=e.state().get("selection");b.map(function(b){b=b.toJSON(),b.url&&(a=b.url)}),f.val(a).change()}),e.on("ready",function(){e.uploader.options.uploader.params={type:"downloadable_product"}}),e.open()}),jQuery(".downloadable_files tbody").sortable({items:"tr",cursor:"move",axis:"y",handle:"td.sort",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65});var g,h=a("#product_image_gallery"),i=a("#product_images_container").find("ul.product_images");jQuery(".add_product_images").on("click","a",function(b){var c=a(this);return b.preventDefault(),g?void g.open():(g=wp.media.frames.product_gallery=wp.media({title:c.data("choose"),button:{text:c.data("update")},states:[new wp.media.controller.Library({title:c.data("choose"),filterable:"all",multiple:!0})]}),g.on("select",function(){var a=g.state().get("selection"),b=h.val();a.map(function(a){if(a=a.toJSON(),a.id){b=b?b+","+a.id:a.id;var d=a.sizes&&a.sizes.thumbnail?a.sizes.thumbnail.url:a.url;i.append('
  • ")}}),h.val(b)}),void g.open())}),i.sortable({items:"li.image",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,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")},update:function(){var b="";a("#product_images_container").find("ul li.image").css("cursor","default").each(function(){var a=jQuery(this).attr("data-attachment_id");b=b+a+","}),h.val(b)}}),a("#product_images_container").on("click","a.delete",function(){a(this).closest("li.image").remove();var b="";return a("#product_images_container").find("ul li.image").css("cursor","default").each(function(){var a=jQuery(this).attr("data-attachment_id");b=b+a+","}),h.val(b),a("#tiptip_holder").removeAttr("style"),a("#tiptip_arrow").removeAttr("style"),!1})}); \ No newline at end of file diff --git a/assets/js/admin/settings-views-html-settings-tax.js b/assets/js/admin/settings-views-html-settings-tax.js index c3f27e496d0..cf8d81e6535 100644 --- a/assets/js/admin/settings-views-html-settings-tax.js +++ b/assets/js/admin/settings-views-html-settings-tax.js @@ -1,8 +1,8 @@ /* global htmlSettingsTaxLocalizeScript, ajaxurl */ + /** * Used by woocommerce/includes/admin/settings/views/html-settings-tax.php */ - ( function( $, data, wp, ajaxurl ) { $( function() { @@ -39,7 +39,9 @@ var changes = this.changes || {}; _.each( changedRows, function( row, id ) { - changes[ id ] = _.extend( changes[ id ] || { tax_rate_id : id }, row ); + changes[ id ] = _.extend( changes[ id ] || { + tax_rate_id : id + }, row ); } ); this.changes = changes; @@ -95,6 +97,9 @@ WCTaxTableModelInstance.changes = {}; WCTaxTableModelInstance.trigger( 'saved:rates' ); + + // Reload view. + WCTaxTableInstance.render(); } self.unblock(); @@ -114,7 +119,7 @@ this.listenTo( this.model, 'change:rates', this.setUnloadConfirmation ); this.listenTo( this.model, 'saved:rates', this.clearUnloadConfirmation ); - $tbody.on( 'change', ':input', { view: this }, this.updateModelOnChange ); + $tbody.on( 'change autocompletechange', ':input', { view: this }, this.updateModelOnChange ); $tbody.on( 'sortupdate', { view: this }, this.updateModelOnSort ); $search_field.on( 'keyup search', { view: this }, this.onSearchField ); $pagination.on( 'click', 'a', { view: this }, this.onPageChange ); @@ -173,6 +178,9 @@ current_page: this.page, qty_pages: qty_pages } ) ); + } else { + $pagination.empty(); + view.page = 1; } // Disable sorting if there is a search term filtering the items. @@ -243,6 +251,8 @@ return parseInt( val, 10 ); } ); + // Move the last page + view.page = view.qty_pages; } rates[ newRow.tax_rate_id ] = newRow; @@ -258,27 +268,13 @@ model = view.model, rates = _.indexBy( model.get( 'rates' ), 'tax_rate_id' ), changes = {}, - $current, current_id, current_order, rates_to_reorder, reordered_rates; + $current, current_id; event.preventDefault(); if ( $current = $tbody.children( '.current' ) ) { $current.each(function(){ current_id = $( this ).data('id'); - current_order = parseInt( rates[ current_id ].tax_rate_order, 10 ); - - rates_to_reorder = _.filter( rates, function( rate ) { - if ( parseInt( rate.tax_rate_order, 10 ) > current_order ) { - return true; - } - return false; - } ); - - reordered_rates = _.map( rates_to_reorder, function( rate ) { - rate.tax_rate_order--; - changes[ rate.tax_rate_id ] = _.extend( changes[ rate.tax_rate_id ] || {}, { tax_rate_order : rate.tax_rate_order } ); - return rate; - } ); delete rates[ current_id ]; @@ -368,53 +364,29 @@ model.setRateAttribute( id, attribute, val ); }, - updateModelOnSort: function( event, ui ) { + updateModelOnSort: function( event ) { var view = event.data.view, model = view.model, - $tr = ui.item, - tax_rate_id = $tr.data( 'id' ), rates = _.indexBy( model.get( 'rates' ), 'tax_rate_id' ), - old_position = rates[ tax_rate_id ].tax_rate_order, - new_position = $tr.index() + ( ( view.page - 1 ) * view.per_page ), - which_way = ( new_position > old_position ) ? 'higher' : 'lower', - changes = {}, - rates_to_reorder, reordered_rates; + changes = {}; - rates_to_reorder = _.filter( rates, function( rate ) { - var order = parseInt( rate.tax_rate_order, 10 ), - limits = [ old_position, new_position ]; + _.each( rates, function( rate ) { + var new_position = 0; + var old_position = parseInt( rate.tax_rate_order, 10 ); - if ( parseInt( rate.tax_rate_id, 10 ) === parseInt( tax_rate_id, 10 ) ) { - return true; - } else if ( order > _.min( limits ) && order < _.max( limits ) ) { - return true; - } else if ( 'higher' === which_way && order === _.max( limits ) ) { - return true; - } else if ( 'lower' === which_way && order === _.min( limits ) ) { - return true; - } - return false; - } ); - - reordered_rates = _.map( rates_to_reorder, function( rate ) { - var order = parseInt( rate.tax_rate_order, 10 ); - - if ( parseInt( rate.tax_rate_id, 10 ) === parseInt( tax_rate_id, 10 ) ) { - rate.tax_rate_order = new_position; - } else if ( 'higher' === which_way ) { - rate.tax_rate_order = order - 1; - } else if ( 'lower' === which_way ) { - rate.tax_rate_order = order + 1; + if ( $table.find( 'tr[data-id="' + rate.tax_rate_id + '"]').size() ) { + new_position = parseInt( $table.find( 'tr[data-id="' + rate.tax_rate_id + '"]').index(), 10 ) + parseInt( ( view.page - 1 ) * view.per_page, 10 ); + } else { + new_position = old_position; } - changes[ rate.tax_rate_id ] = _.extend( changes[ rate.tax_rate_id ] || {}, { tax_rate_order : rate.tax_rate_order } ); - - return rate; + if ( old_position !== new_position ) { + changes[ rate.tax_rate_id ] = _.extend( changes[ rate.tax_rate_id ] || {}, { tax_rate_order : new_position } ); + } } ); - if ( reordered_rates.length ) { + if ( _.size( changes ) ) { model.logChanges( changes ); - view.render(); // temporary, probably should get yanked. } }, sanitizePage: function( page_num ) { @@ -432,8 +404,6 @@ } ), WCTaxTableInstance = new WCTaxTableViewConstructor({ model: WCTaxTableModelInstance, - // page: data.page, // I'd prefer to have these two specified down here in the instance, - // per_page: data.limit, // but it doesn't seem to recognize them in render if I do. :\ el: '#rates' } ); diff --git a/assets/js/admin/settings-views-html-settings-tax.min.js b/assets/js/admin/settings-views-html-settings-tax.min.js index b84d811b8a0..b8ab800fde3 100644 --- a/assets/js/admin/settings-views-html-settings-tax.min.js +++ b/assets/js/admin/settings-views-html-settings-tax.min.js @@ -1 +1 @@ -!function(a,b,c,d){a(function(){String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")});var e=c.template("wc-tax-table-row"),f=c.template("wc-tax-table-row-empty"),g=c.template("wc-tax-table-pagination"),h=a(".wc_tax_rates"),i=a("#rates"),j=a('input[name="save"]'),k=a("#rates-pagination"),l=a("#rates-search .wc-tax-rates-search-field"),m=a(".submit .button-primary[type=submit]"),n=Backbone.Model.extend({changes:{},setRateAttribute:function(a,b,c){var d=_.indexBy(this.get("rates"),"tax_rate_id"),e={};d[a][b]!==c&&(e[a]={},e[a][b]=c,d[a][b]=c),this.logChanges(e)},logChanges:function(a){var b=this.changes||{};_.each(a,function(a,c){b[c]=_.extend(b[c]||{tax_rate_id:c},a)}),this.changes=b,this.trigger("change:rates")},getFilteredRates:function(){var a=this.get("rates"),b=l.val().toLowerCase();return b.length&&(a=_.filter(a,function(a){var c=_.toArray(a).join(" ").toLowerCase();return-1!==c.indexOf(b)})),a=_.sortBy(a,function(a){return parseInt(a.tax_rate_order,10)})},block:function(){a(".wc_tax_rates").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){a(".wc_tax_rates").unblock()},save:function(){var a=this;a.block(),Backbone.ajax({method:"POST",dataType:"json",url:d+"?action=woocommerce_tax_rates_save_changes",data:{current_class:b.current_class,wc_tax_nonce:b.wc_tax_nonce,changes:a.changes},success:function(b,c){"success"===c&&(p.set("rates",b.data.rates),p.trigger("change:rates"),p.changes={},p.trigger("saved:rates")),a.unblock()}})}}),o=Backbone.View.extend({rowTemplate:e,per_page:b.limit,page:b.page,initialize:function(){var c=Math.ceil(_.toArray(this.model.get("rates")).length/this.per_page);this.qty_pages=0===c?1:c,this.page=this.sanitizePage(b.page),this.listenTo(this.model,"change:rates",this.setUnloadConfirmation),this.listenTo(this.model,"saved:rates",this.clearUnloadConfirmation),i.on("change",":input",{view:this},this.updateModelOnChange),i.on("sortupdate",{view:this},this.updateModelOnSort),l.on("keyup search",{view:this},this.onSearchField),k.on("click","a",{view:this},this.onPageChange),k.on("change","input",{view:this},this.onPageChange),a(window).on("beforeunload",{view:this},this.unloadConfirmation),m.on("click",{view:this},this.onSubmit),j.attr("disabled","disabled"),h.find(".insert").on("click",{view:this},this.onAddNewRow),h.find(".remove_tax_rates").on("click",{view:this},this.onDeleteRow),h.find(".export").on("click",{view:this},this.onExport)},render:function(){var c=this.model.getFilteredRates(),d=_.size(c),e=Math.ceil(d/this.per_page),h=0===d?0:this.per_page*(this.page-1),j=this.per_page*this.page,m=_.toArray(c).slice(h,j),n=this;this.$el.empty(),m.length?a.each(m,function(a,b){n.$el.append(n.rowTemplate(b))}):n.$el.append(f()),this.$el.find("td.country input").autocomplete({source:b.countries,minLength:2}),this.$el.find("td.state input").autocomplete({source:b.states,minLength:3}),this.$el.find("td.postcode input, td.city input").change(function(){a(this).attr("name",a(this).data("name"))}),e>1&&k.html(g({qty_rates:d,current_page:this.page,qty_pages:e})),l.val()?i.sortable("disable"):i.sortable("enable")},updateUrl:function(){if(window.history.replaceState){var a=b.base_url,c=l.val();1e?!0:!1}),g=_.map(f,function(a){return a.tax_rate_order++,l[a.tax_rate_id]=_.extend(l[a.tax_rate_id]||{},{tax_rate_order:a.tax_rate_order}),a})):n.tax_rate_order=1+_.max(_.pluck(k,"tax_rate_order"),function(a){return parseInt(a,10)}),k[n.tax_rate_id]=n,l[n.tax_rate_id]=n,j.set("rates",k),j.logChanges(l),h.render()},onDeleteRow:function(c){var d,e,f,g,h,j=c.data.view,k=j.model,l=_.indexBy(k.get("rates"),"tax_rate_id"),m={};c.preventDefault(),(d=i.children(".current"))?(d.each(function(){e=a(this).data("id"),f=parseInt(l[e].tax_rate_order,10),g=_.filter(l,function(a){return parseInt(a.tax_rate_order,10)>f?!0:!1}),h=_.map(g,function(a){return a.tax_rate_order--,m[a.tax_rate_id]=_.extend(m[a.tax_rate_id]||{},{tax_rate_order:a.tax_rate_order}),a}),delete l[e],m[e]=_.extend(m[e]||{},{deleted:"deleted"})}),k.set("rates",l),k.logChanges(m),j.render()):window.alert(b.strings.no_rows_selected)},onSearchField:function(a){a.data.view.updateUrl(),a.data.view.render()},onPageChange:function(b){var c=a(b.currentTarget);b.preventDefault(),b.data.view.page=c.data("goto")?c.data("goto"):c.val(),b.data.view.render(),b.data.view.updateUrl()},onExport:function(c){var d="data:application/csv;charset=utf-8,"+b.strings.csv_data_cols.join(",")+"\n";return a.each(c.data.view.model.getFilteredRates(),function(a,c){var e="";e+=c.tax_rate_country+",",e+=c.tax_rate_state+",",e+=(c.postcode?c.postcode.join("; "):"")+",",e+=(c.city?c.city.join("; "):"")+",",e+=c.tax_rate+",",e+=c.tax_rate_name+",",e+=c.tax_rate_priority+",",e+=c.tax_rate_compound+",",e+=c.tax_rate_shipping+",",e+=b.current_class,d+=e+"\n"}),a(this).attr("href",encodeURI(d)),!0},setUnloadConfirmation:function(){this.needsUnloadConfirm=!0,j.removeAttr("disabled")},clearUnloadConfirmation:function(){this.needsUnloadConfirm=!1,j.attr("disabled","disabled")},unloadConfirmation:function(a){return a.data.view.needsUnloadConfirm?(a.returnValue=b.strings.unload_confirmation_msg,window.event.returnValue=b.strings.unload_confirmation_msg,b.strings.unload_confirmation_msg):void 0},updateModelOnChange:function(b){var c=b.data.view.model,d=a(b.target),e=d.closest("tr").data("id"),f=d.data("attribute"),g=d.val();("city"===f||"postcode"===f)&&(g=g.split(";"),g=a.map(g,function(a){return a.trim()})),("tax_rate_compound"===f||"tax_rate_shipping"===f)&&(g=d.is(":checked")?1:0),c.setRateAttribute(e,f,g)},updateModelOnSort:function(a,b){var c,d,e=a.data.view,f=e.model,g=b.item,h=g.data("id"),i=_.indexBy(f.get("rates"),"tax_rate_id"),j=i[h].tax_rate_order,k=g.index()+(e.page-1)*e.per_page,l=k>j?"higher":"lower",m={};c=_.filter(i,function(a){var b=parseInt(a.tax_rate_order,10),c=[j,k];return parseInt(a.tax_rate_id,10)===parseInt(h,10)?!0:b>_.min(c)&&b<_.max(c)?!0:"higher"===l&&b===_.max(c)?!0:"lower"===l&&b===_.min(c)?!0:!1}),d=_.map(c,function(a){var b=parseInt(a.tax_rate_order,10);return parseInt(a.tax_rate_id,10)===parseInt(h,10)?a.tax_rate_order=k:"higher"===l?a.tax_rate_order=b-1:"lower"===l&&(a.tax_rate_order=b+1),m[a.tax_rate_id]=_.extend(m[a.tax_rate_id]||{},{tax_rate_order:a.tax_rate_order}),a}),d.length&&(f.logChanges(m),e.render())},sanitizePage:function(a){return a=parseInt(a,10),1>a?a=1:a>this.qty_pages&&(a=this.qty_pages),a}}),p=new n({rates:b.rates}),q=new o({model:p,el:"#rates"});q.render()})}(jQuery,htmlSettingsTaxLocalizeScript,wp,ajaxurl); \ No newline at end of file +!function(a,b,c,d){a(function(){String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")});var e=c.template("wc-tax-table-row"),f=c.template("wc-tax-table-row-empty"),g=c.template("wc-tax-table-pagination"),h=a(".wc_tax_rates"),i=a("#rates"),j=a('input[name="save"]'),k=a("#rates-pagination"),l=a("#rates-search .wc-tax-rates-search-field"),m=a(".submit .button-primary[type=submit]"),n=Backbone.Model.extend({changes:{},setRateAttribute:function(a,b,c){var d=_.indexBy(this.get("rates"),"tax_rate_id"),e={};d[a][b]!==c&&(e[a]={},e[a][b]=c,d[a][b]=c),this.logChanges(e)},logChanges:function(a){var b=this.changes||{};_.each(a,function(a,c){b[c]=_.extend(b[c]||{tax_rate_id:c},a)}),this.changes=b,this.trigger("change:rates")},getFilteredRates:function(){var a=this.get("rates"),b=l.val().toLowerCase();return b.length&&(a=_.filter(a,function(a){var c=_.toArray(a).join(" ").toLowerCase();return-1!==c.indexOf(b)})),a=_.sortBy(a,function(a){return parseInt(a.tax_rate_order,10)})},block:function(){a(".wc_tax_rates").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},unblock:function(){a(".wc_tax_rates").unblock()},save:function(){var a=this;a.block(),Backbone.ajax({method:"POST",dataType:"json",url:d+"?action=woocommerce_tax_rates_save_changes",data:{current_class:b.current_class,wc_tax_nonce:b.wc_tax_nonce,changes:a.changes},success:function(b,c){"success"===c&&(p.set("rates",b.data.rates),p.trigger("change:rates"),p.changes={},p.trigger("saved:rates"),q.render()),a.unblock()}})}}),o=Backbone.View.extend({rowTemplate:e,per_page:b.limit,page:b.page,initialize:function(){var c=Math.ceil(_.toArray(this.model.get("rates")).length/this.per_page);this.qty_pages=0===c?1:c,this.page=this.sanitizePage(b.page),this.listenTo(this.model,"change:rates",this.setUnloadConfirmation),this.listenTo(this.model,"saved:rates",this.clearUnloadConfirmation),i.on("change autocompletechange",":input",{view:this},this.updateModelOnChange),i.on("sortupdate",{view:this},this.updateModelOnSort),l.on("keyup search",{view:this},this.onSearchField),k.on("click","a",{view:this},this.onPageChange),k.on("change","input",{view:this},this.onPageChange),a(window).on("beforeunload",{view:this},this.unloadConfirmation),m.on("click",{view:this},this.onSubmit),j.attr("disabled","disabled"),h.find(".insert").on("click",{view:this},this.onAddNewRow),h.find(".remove_tax_rates").on("click",{view:this},this.onDeleteRow),h.find(".export").on("click",{view:this},this.onExport)},render:function(){var c=this.model.getFilteredRates(),d=_.size(c),e=Math.ceil(d/this.per_page),h=0===d?0:this.per_page*(this.page-1),j=this.per_page*this.page,m=_.toArray(c).slice(h,j),n=this;this.$el.empty(),m.length?a.each(m,function(a,b){n.$el.append(n.rowTemplate(b))}):n.$el.append(f()),this.$el.find("td.country input").autocomplete({source:b.countries,minLength:2}),this.$el.find("td.state input").autocomplete({source:b.states,minLength:3}),this.$el.find("td.postcode input, td.city input").change(function(){a(this).attr("name",a(this).data("name"))}),e>1?k.html(g({qty_rates:d,current_page:this.page,qty_pages:e})):(k.empty(),n.page=1),l.val()?i.sortable("disable"):i.sortable("enable")},updateUrl:function(){if(window.history.replaceState){var a=b.base_url,c=l.val();1e?!0:!1}),g=_.map(f,function(a){return a.tax_rate_order++,l[a.tax_rate_id]=_.extend(l[a.tax_rate_id]||{},{tax_rate_order:a.tax_rate_order}),a})):(n.tax_rate_order=1+_.max(_.pluck(k,"tax_rate_order"),function(a){return parseInt(a,10)}),h.page=h.qty_pages),k[n.tax_rate_id]=n,l[n.tax_rate_id]=n,j.set("rates",k),j.logChanges(l),h.render()},onDeleteRow:function(c){var d,e,f=c.data.view,g=f.model,h=_.indexBy(g.get("rates"),"tax_rate_id"),j={};c.preventDefault(),(d=i.children(".current"))?(d.each(function(){e=a(this).data("id"),delete h[e],j[e]=_.extend(j[e]||{},{deleted:"deleted"})}),g.set("rates",h),g.logChanges(j),f.render()):window.alert(b.strings.no_rows_selected)},onSearchField:function(a){a.data.view.updateUrl(),a.data.view.render()},onPageChange:function(b){var c=a(b.currentTarget);b.preventDefault(),b.data.view.page=c.data("goto")?c.data("goto"):c.val(),b.data.view.render(),b.data.view.updateUrl()},onExport:function(c){var d="data:application/csv;charset=utf-8,"+b.strings.csv_data_cols.join(",")+"\n";return a.each(c.data.view.model.getFilteredRates(),function(a,c){var e="";e+=c.tax_rate_country+",",e+=c.tax_rate_state+",",e+=(c.postcode?c.postcode.join("; "):"")+",",e+=(c.city?c.city.join("; "):"")+",",e+=c.tax_rate+",",e+=c.tax_rate_name+",",e+=c.tax_rate_priority+",",e+=c.tax_rate_compound+",",e+=c.tax_rate_shipping+",",e+=b.current_class,d+=e+"\n"}),a(this).attr("href",encodeURI(d)),!0},setUnloadConfirmation:function(){this.needsUnloadConfirm=!0,j.removeAttr("disabled")},clearUnloadConfirmation:function(){this.needsUnloadConfirm=!1,j.attr("disabled","disabled")},unloadConfirmation:function(a){return a.data.view.needsUnloadConfirm?(a.returnValue=b.strings.unload_confirmation_msg,window.event.returnValue=b.strings.unload_confirmation_msg,b.strings.unload_confirmation_msg):void 0},updateModelOnChange:function(b){var c=b.data.view.model,d=a(b.target),e=d.closest("tr").data("id"),f=d.data("attribute"),g=d.val();("city"===f||"postcode"===f)&&(g=g.split(";"),g=a.map(g,function(a){return a.trim()})),("tax_rate_compound"===f||"tax_rate_shipping"===f)&&(g=d.is(":checked")?1:0),c.setRateAttribute(e,f,g)},updateModelOnSort:function(a){var b=a.data.view,c=b.model,d=_.indexBy(c.get("rates"),"tax_rate_id"),e={};_.each(d,function(a){var c=0,d=parseInt(a.tax_rate_order,10);c=h.find('tr[data-id="'+a.tax_rate_id+'"]').size()?parseInt(h.find('tr[data-id="'+a.tax_rate_id+'"]').index(),10)+parseInt((b.page-1)*b.per_page,10):d,d!==c&&(e[a.tax_rate_id]=_.extend(e[a.tax_rate_id]||{},{tax_rate_order:c}))}),_.size(e)&&c.logChanges(e)},sanitizePage:function(a){return a=parseInt(a,10),1>a?a=1:a>this.qty_pages&&(a=this.qty_pages),a}}),p=new n({rates:b.rates}),q=new o({model:p,el:"#rates"});q.render()})}(jQuery,htmlSettingsTaxLocalizeScript,wp,ajaxurl); \ No newline at end of file diff --git a/assets/js/admin/woocommerce_admin.js b/assets/js/admin/woocommerce_admin.js index 3283efb10c6..5831ef7b9df 100644 --- a/assets/js/admin/woocommerce_admin.js +++ b/assets/js/admin/woocommerce_admin.js @@ -53,7 +53,7 @@ jQuery( function ( $ ) { }) .on( 'keyup change', '.wc_input_country_iso[type=text]', function() { var value = $( this ).val(); - var regex = new RegExp( '^([A-Z])?([A-Z])$' ); + var regex = new RegExp( '^([a-zA-Z])?([a-zA-Z])$' ); if ( ! regex.test( value ) ) { $( this ).val( '' ); @@ -222,4 +222,11 @@ jQuery( function ( $ ) { // Attribute term table $( 'table.attributes-table tbody tr:nth-child(odd)' ).addClass( 'alternate' ); + + // Load videos when help button is clicked. + $( '#contextual-help-link' ).on( 'click', function() { + var frame = $( '#tab-panel-woocommerce_101_tab iframe' ); + + frame.attr( 'src', frame.data( 'src' ) ); + }); }); diff --git a/assets/js/admin/woocommerce_admin.min.js b/assets/js/admin/woocommerce_admin.min.js index 22fb56fe0b9..ac532f9f96c 100644 --- a/assets/js/admin/woocommerce_admin.min.js +++ b/assets/js/admin/woocommerce_admin.min.js @@ -1 +1 @@ -jQuery(function(a){a(document.body).on("wc_add_error_tip",function(b,c,d){var e=c.position();0===c.parent().find(".wc_error_tip").size()&&(c.after('
    '+woocommerce_admin[d]+"
    "),c.parent().find(".wc_error_tip").css("left",e.left+c.width()-c.width()/2-a(".wc_error_tip").width()/2).css("top",e.top+c.height()).fadeIn("100"))}).on("wc_remove_error_tip",function(a,b,c){b.parent().find(".wc_error_tip."+c).remove()}).on("click",function(){a(".wc_error_tip").fadeOut("100",function(){a(this).remove()})}).on("blur",".wc_input_decimal[type=text], .wc_input_price[type=text], .wc_input_country_iso[type=text]",function(){a(".wc_error_tip").fadeOut("100",function(){a(this).remove()})}).on("keyup change",".wc_input_price[type=text]",function(){var b=a(this).val(),c=new RegExp("[^-0-9%\\"+woocommerce_admin.mon_decimal_point+"]+","gi"),d=b.replace(c,"");b!==d?(a(this).val(d),a(document.body).triggerHandler("wc_add_error_tip",[a(this),"i18n_mon_decimal_error"])):a(document.body).triggerHandler("wc_remove_error_tip",[a(this),"i18n_mon_decimal_error"])}).on("keyup change",".wc_input_decimal[type=text]",function(){var b=a(this).val(),c=new RegExp("[^-0-9%\\"+woocommerce_admin.decimal_point+"]+","gi"),d=b.replace(c,"");b!==d?(a(this).val(d),a(document.body).triggerHandler("wc_add_error_tip",[a(this),"i18n_decimal_error"])):a(document.body).triggerHandler("wc_remove_error_tip",[a(this),"i18n_decimal_error"])}).on("keyup change",".wc_input_country_iso[type=text]",function(){var b=a(this).val(),c=new RegExp("^([A-Z])?([A-Z])$");c.test(b)?a(document.body).triggerHandler("wc_remove_error_tip",[a(this),"i18n_country_iso_error"]):(a(this).val(""),a(document.body).triggerHandler("wc_add_error_tip",[a(this),"i18n_country_iso_error"]))}).on("keyup change","#_sale_price.wc_input_price[type=text], .wc_input_price[name^=variable_sale_price]",function(){var b,c=a(this);b=-1!==c.attr("name").indexOf("variable")?c.parents(".variable_pricing").find(".wc_input_price[name^=variable_regular_price]"):a("#_regular_price");var d=parseFloat(window.accounting.unformat(c.val(),woocommerce_admin.mon_decimal_point)),e=parseFloat(window.accounting.unformat(b.val(),woocommerce_admin.mon_decimal_point));d>=e?a(document.body).triggerHandler("wc_add_error_tip",[a(this),"i18_sale_less_than_regular_error"]):a(document.body).triggerHandler("wc_remove_error_tip",[a(this),"i18_sale_less_than_regular_error"])});var b={attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200};a(".tips, .help_tip, .woocommerce-help-tip").tipTip(b),a(".parent-tips").each(function(){a(this).closest("a, th").attr("data-tip",a(this).data("tip")).tipTip(b).css("cursor","help")}),a(".wc_input_table.sortable tbody").sortable({items:"tr",cursor:"move",axis:"y",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")}}),a(".wc_input_table .remove_rows").click(function(){var b=a(this).closest(".wc_input_table").find("tbody");if(b.find("tr.current").size()>0){var c=b.find("tr.current");c.each(function(){a(this).remove()})}return!1});var c=!1,d=!1,e=!1;a(document.body).bind("keyup keydown",function(a){d=a.shiftKey,c=a.ctrlKey||a.metaKey}),a(".wc_input_table").on("focus click","input",function(b){var f=a(this).closest("table, tbody"),g=a(this).closest("tr");("focus"===b.type&&e!==g.index()||"click"===b.type&&a(this).is(":focus"))&&(e=g.index(),d||c?d?(a("tr",f).removeClass("current"),g.addClass("selected_now").addClass("current"),a("tr.last_selected",f).size()>0&&(g.index()>a("tr.last_selected",f).index()?a("tr",f).slice(a("tr.last_selected",f).index(),g.index()).addClass("current"):a("tr",f).slice(g.index(),a("tr.last_selected",f).index()+1).addClass("current")),a("tr",f).removeClass("last_selected"),g.addClass("last_selected")):(a("tr",f).removeClass("last_selected"),c&&a(this).closest("tr").is(".current")?g.removeClass("current"):g.addClass("current").addClass("last_selected")):(a("tr",f).removeClass("current").removeClass("last_selected"),g.addClass("current").addClass("last_selected")),a("tr",f).removeClass("selected_now"))}).on("blur","input",function(){e=!1}),a(".woocommerce_page_wc-settings .shippingrows tbody tr:even, table.attributes-table tbody tr:nth-child(odd)").addClass("alternate"),a(document.body).on("click",".show_order_items",function(){return a(this).closest("td").find("table").toggle(),!1}),a("select.availability").change(function(){"all"===a(this).val()?a(this).closest("tr").next("tr").hide():a(this).closest("tr").next("tr").show()}).change(),a(".hide_options_if_checked").each(function(){a(this).find("input:eq(0)").change(function(){a(this).is(":checked")?a(this).closest("fieldset, tr").nextUntil(".hide_options_if_checked, .show_options_if_checked",".hidden_option").hide():a(this).closest("fieldset, tr").nextUntil(".hide_options_if_checked, .show_options_if_checked",".hidden_option").show()}).change()}),a(".show_options_if_checked").each(function(){a(this).find("input:eq(0)").change(function(){a(this).is(":checked")?a(this).closest("fieldset, tr").nextUntil(".hide_options_if_checked, .show_options_if_checked",".hidden_option").show():a(this).closest("fieldset, tr").nextUntil(".hide_options_if_checked, .show_options_if_checked",".hidden_option").hide()}).change()}),a("input#woocommerce_demo_store").change(function(){a(this).is(":checked")?a("#woocommerce_demo_store_notice").closest("tr").show():a("#woocommerce_demo_store_notice").closest("tr").hide()}).change(),a("table.attributes-table tbody tr:nth-child(odd)").addClass("alternate")}); \ No newline at end of file +jQuery(function(a){a(document.body).on("wc_add_error_tip",function(b,c,d){var e=c.position();0===c.parent().find(".wc_error_tip").size()&&(c.after('
    '+woocommerce_admin[d]+"
    "),c.parent().find(".wc_error_tip").css("left",e.left+c.width()-c.width()/2-a(".wc_error_tip").width()/2).css("top",e.top+c.height()).fadeIn("100"))}).on("wc_remove_error_tip",function(a,b,c){b.parent().find(".wc_error_tip."+c).remove()}).on("click",function(){a(".wc_error_tip").fadeOut("100",function(){a(this).remove()})}).on("blur",".wc_input_decimal[type=text], .wc_input_price[type=text], .wc_input_country_iso[type=text]",function(){a(".wc_error_tip").fadeOut("100",function(){a(this).remove()})}).on("keyup change",".wc_input_price[type=text]",function(){var b=a(this).val(),c=new RegExp("[^-0-9%\\"+woocommerce_admin.mon_decimal_point+"]+","gi"),d=b.replace(c,"");b!==d?(a(this).val(d),a(document.body).triggerHandler("wc_add_error_tip",[a(this),"i18n_mon_decimal_error"])):a(document.body).triggerHandler("wc_remove_error_tip",[a(this),"i18n_mon_decimal_error"])}).on("keyup change",".wc_input_decimal[type=text]",function(){var b=a(this).val(),c=new RegExp("[^-0-9%\\"+woocommerce_admin.decimal_point+"]+","gi"),d=b.replace(c,"");b!==d?(a(this).val(d),a(document.body).triggerHandler("wc_add_error_tip",[a(this),"i18n_decimal_error"])):a(document.body).triggerHandler("wc_remove_error_tip",[a(this),"i18n_decimal_error"])}).on("keyup change",".wc_input_country_iso[type=text]",function(){var b=a(this).val(),c=new RegExp("^([a-zA-Z])?([a-zA-Z])$");c.test(b)?a(document.body).triggerHandler("wc_remove_error_tip",[a(this),"i18n_country_iso_error"]):(a(this).val(""),a(document.body).triggerHandler("wc_add_error_tip",[a(this),"i18n_country_iso_error"]))}).on("keyup change","#_sale_price.wc_input_price[type=text], .wc_input_price[name^=variable_sale_price]",function(){var b,c=a(this);b=-1!==c.attr("name").indexOf("variable")?c.parents(".variable_pricing").find(".wc_input_price[name^=variable_regular_price]"):a("#_regular_price");var d=parseFloat(window.accounting.unformat(c.val(),woocommerce_admin.mon_decimal_point)),e=parseFloat(window.accounting.unformat(b.val(),woocommerce_admin.mon_decimal_point));d>=e?a(document.body).triggerHandler("wc_add_error_tip",[a(this),"i18_sale_less_than_regular_error"]):a(document.body).triggerHandler("wc_remove_error_tip",[a(this),"i18_sale_less_than_regular_error"])});var b={attribute:"data-tip",fadeIn:50,fadeOut:50,delay:200};a(".tips, .help_tip, .woocommerce-help-tip").tipTip(b),a(".parent-tips").each(function(){a(this).closest("a, th").attr("data-tip",a(this).data("tip")).tipTip(b).css("cursor","help")}),a(".wc_input_table.sortable tbody").sortable({items:"tr",cursor:"move",axis:"y",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")}}),a(".wc_input_table .remove_rows").click(function(){var b=a(this).closest(".wc_input_table").find("tbody");if(b.find("tr.current").size()>0){var c=b.find("tr.current");c.each(function(){a(this).remove()})}return!1});var c=!1,d=!1,e=!1;a(document.body).bind("keyup keydown",function(a){d=a.shiftKey,c=a.ctrlKey||a.metaKey}),a(".wc_input_table").on("focus click","input",function(b){var f=a(this).closest("table, tbody"),g=a(this).closest("tr");("focus"===b.type&&e!==g.index()||"click"===b.type&&a(this).is(":focus"))&&(e=g.index(),d||c?d?(a("tr",f).removeClass("current"),g.addClass("selected_now").addClass("current"),a("tr.last_selected",f).size()>0&&(g.index()>a("tr.last_selected",f).index()?a("tr",f).slice(a("tr.last_selected",f).index(),g.index()).addClass("current"):a("tr",f).slice(g.index(),a("tr.last_selected",f).index()+1).addClass("current")),a("tr",f).removeClass("last_selected"),g.addClass("last_selected")):(a("tr",f).removeClass("last_selected"),c&&a(this).closest("tr").is(".current")?g.removeClass("current"):g.addClass("current").addClass("last_selected")):(a("tr",f).removeClass("current").removeClass("last_selected"),g.addClass("current").addClass("last_selected")),a("tr",f).removeClass("selected_now"))}).on("blur","input",function(){e=!1}),a(".woocommerce_page_wc-settings .shippingrows tbody tr:even, table.attributes-table tbody tr:nth-child(odd)").addClass("alternate"),a(document.body).on("click",".show_order_items",function(){return a(this).closest("td").find("table").toggle(),!1}),a("select.availability").change(function(){"all"===a(this).val()?a(this).closest("tr").next("tr").hide():a(this).closest("tr").next("tr").show()}).change(),a(".hide_options_if_checked").each(function(){a(this).find("input:eq(0)").change(function(){a(this).is(":checked")?a(this).closest("fieldset, tr").nextUntil(".hide_options_if_checked, .show_options_if_checked",".hidden_option").hide():a(this).closest("fieldset, tr").nextUntil(".hide_options_if_checked, .show_options_if_checked",".hidden_option").show()}).change()}),a(".show_options_if_checked").each(function(){a(this).find("input:eq(0)").change(function(){a(this).is(":checked")?a(this).closest("fieldset, tr").nextUntil(".hide_options_if_checked, .show_options_if_checked",".hidden_option").show():a(this).closest("fieldset, tr").nextUntil(".hide_options_if_checked, .show_options_if_checked",".hidden_option").hide()}).change()}),a("input#woocommerce_demo_store").change(function(){a(this).is(":checked")?a("#woocommerce_demo_store_notice").closest("tr").show():a("#woocommerce_demo_store_notice").closest("tr").hide()}).change(),a("table.attributes-table tbody tr:nth-child(odd)").addClass("alternate"),a("#contextual-help-link").on("click",function(){var b=a("#tab-panel-woocommerce_101_tab iframe");b.attr("src",b.data("src"))})}); \ No newline at end of file diff --git a/assets/js/frontend/add-to-cart-variation.js b/assets/js/frontend/add-to-cart-variation.js index c9e1cd30795..a6451e1a9dd 100644 --- a/assets/js/frontend/add-to-cart-variation.js +++ b/assets/js/frontend/add-to-cart-variation.js @@ -181,13 +181,23 @@ $form.wc_variations_image_update( variation ); // Output correct templates + var $template_html = ''; + if ( ! variation.variation_is_visible ) { - $single_variation.html( unavailable_template ); + $template_html = unavailable_template; + // w3 total cache inline minification adds CDATA tags around our HTML (sigh) + $template_html = $template_html.replace( '/**/', '' ); + $single_variation.html( $template_html ); $form.find( 'input[name="variation_id"], input.variation_id' ).val( '' ).change(); } else { - $single_variation.html( template( { + $template_html = template( { variation: variation - } ) ); + } ); + // w3 total cache inline minification adds CDATA tags around our HTML (sigh) + $template_html = $template_html.replace( '/**/', '' ); + $single_variation.html( $template_html ); $form.find( 'input[name="variation_id"], input.variation_id' ).val( variation.variation_id ).change(); } diff --git a/assets/js/frontend/add-to-cart-variation.min.js b/assets/js/frontend/add-to-cart-variation.min.js index 670af940209..40c29c11be0 100644 --- a/assets/js/frontend/add-to-cart-variation.min.js +++ b/assets/js/frontend/add-to-cart-variation.min.js @@ -1,4 +1,4 @@ /*! * Variations Plugin */ -!function(a,b,c,d){a.fn.wc_variation_form=function(){var c=this,d=c.find(".single_variation"),f=c.closest(".product"),g=parseInt(c.data("product_id"),10),h=c.data("product_variations"),i=h===!1,j=!1,k=c.find(".reset_variations"),l=wp.template("variation-template"),m=wp.template("unavailable-variation-template"),n=c.find(".single_variation_wrap");return n.show(),c.unbind("check_variations update_variation_values found_variation"),c.find(".reset_variations").unbind("click"),c.find(".variations select").unbind("change focusin"),c.on("click",".reset_variations",function(){return c.find(".variations select").val("").change(),c.trigger("reset_data"),!1}).on("hide_variation",function(){return c.find(".single_add_to_cart_button").attr("disabled","disabled").attr("title",wc_add_to_cart_variation_params.i18n_make_a_selection_text),!1}).on("show_variation",function(a,b,d){return d?c.find(".single_add_to_cart_button").removeAttr("disabled").removeAttr("title"):c.find(".single_add_to_cart_button").attr("disabled","disabled").attr("title",wc_add_to_cart_variation_params.i18n_unavailable_text),!1}).on("reload_product_variations",function(){h=c.data("product_variations"),i=h===!1}).on("reset_data",function(){a(".sku").wc_reset_content(),a(".product_weight").wc_reset_content(),a(".product_dimensions").wc_reset_content(),c.trigger("reset_image"),d.slideUp(200).trigger("hide_variation")}).on("reset_image",function(){c.wc_variations_image_update(!1)}).on("change",".variations select",function(){if(c.find('input[name="variation_id"], input.variation_id').val("").change(),c.find(".wc-no-matching-variations").remove(),i){j&&j.abort();var b=!0,d=!1,e={};c.find(".variations select").each(function(){var c=a(this).data("attribute_name")||a(this).attr("name");0===a(this).val().length?b=!1:d=!0,e[c]=a(this).val()}),b?(e.product_id=g,j=a.ajax({url:wc_cart_fragments_params.wc_ajax_url.toString().replace("%%endpoint%%","get_variation"),type:"POST",data:e,success:function(a){a?c.trigger("found_variation",[a]):(c.trigger("reset_data"),c.find(".single_variation").after('

    '+wc_add_to_cart_variation_params.i18n_no_matching_variations_text+"

    "),c.find(".wc-no-matching-variations").slideDown(200))}})):c.trigger("reset_data"),d?"hidden"===k.css("visibility")&&k.css("visibility","visible").hide().fadeIn():k.css("visibility","hidden")}else c.trigger("woocommerce_variation_select_change"),c.trigger("check_variations",["",!1]),a(this).blur();a(".product.has-default-attributes > .images").fadeTo(200,1),c.trigger("woocommerce_variation_has_changed")}).on("focusin touchstart",".variations select",function(){a(this).find("option:selected").attr("selected","selected"),i||(c.trigger("woocommerce_variation_select_focusin"),c.trigger("check_variations",[a(this).data("attribute_name")||a(this).attr("name"),!0]))}).on("found_variation",function(b,e){var g=f.find(".product_meta").find(".sku"),h=f.find(".product_weight"),i=f.find(".product_dimensions"),j=n.find(".quantity"),k=!0;e.sku?g.wc_set_content(e.sku):g.wc_reset_content(),e.weight?h.wc_set_content(e.weight):h.wc_reset_content(),e.dimensions?i.wc_set_content(e.dimensions):i.wc_reset_content(),c.wc_variations_image_update(e),e.variation_is_visible?(d.html(l({variation:e})),c.find('input[name="variation_id"], input.variation_id').val(e.variation_id).change()):(d.html(m),c.find('input[name="variation_id"], input.variation_id').val("").change()),"yes"===e.is_sold_individually?(j.find("input.qty").val("1").attr("min","1").attr("max",""),j.hide()):(j.find("input.qty").attr("min",e.min_qty).attr("max",e.max_qty),j.show()),e.is_purchasable&&e.is_in_stock&&e.variation_is_visible||(k=!1),a.trim(d.text())?d.slideDown(200).trigger("show_variation",[e,k]):d.show().trigger("show_variation",[e,k])}).on("check_variations",function(c,f,g){if(!i){var j=!0,k=!1,l={},m=a(this),n=m.find(".reset_variations");m.find(".variations select").each(function(){var b=a(this).data("attribute_name")||a(this).attr("name");0===a(this).val().length?j=!1:k=!0,f&&b===f?(j=!1,l[b]=""):l[b]=a(this).val()});var o=e.find_matching_variations(h,l);if(j){var p=o.shift();p?m.trigger("found_variation",[p]):(m.find(".variations select").val(""),g||m.trigger("reset_data"),b.alert(wc_add_to_cart_variation_params.i18n_no_matching_variations_text))}else m.trigger("update_variation_values",[o]),g||m.trigger("reset_data"),f||d.slideUp(200).trigger("hide_variation");k?"hidden"===n.css("visibility")&&n.css("visibility","visible").hide().fadeIn():n.css("visibility","hidden")}}).on("update_variation_values",function(b,d){i||(c.find(".variations select").each(function(b,c){var e,f=a(c);f.data("attribute_options")||f.data("attribute_options",f.find("option:gt(0)").get()),f.find("option:gt(0)").remove(),f.append(f.data("attribute_options")),f.find("option:gt(0)").removeClass("attached"),f.find("option:gt(0)").removeClass("enabled"),f.find("option:gt(0)").removeAttr("disabled"),e="undefined"!=typeof f.data("attribute_name")?f.data("attribute_name"):f.attr("name");for(var g in d)if("undefined"!=typeof d[g]){var h=d[g].attributes;for(var i in h)if(h.hasOwnProperty(i)){var j=h[i];if(i===e){var k="";d[g].variation_is_active&&(k="enabled"),j?(j=a("
    ").html(j).text(),j=j.replace(/'/g,"\\'"),j=j.replace(/"/g,'\\"'),f.find('option[value="'+j+'"]').addClass("attached "+k)):f.find("option:gt(0)").addClass("attached "+k)}}}f.find("option:gt(0):not(.attached)").remove(),f.find("option:gt(0):not(.enabled)").attr("disabled","disabled")}),c.trigger("woocommerce_update_variation_values"))}),c.trigger("wc_variation_form"),c};var e={find_matching_variations:function(a,b){for(var c=[],d=0;d1?(d.wc_set_variation_attr("src",a.image_src),d.wc_set_variation_attr("title",a.image_title),d.wc_set_variation_attr("alt",a.image_title),d.wc_set_variation_attr("srcset",a.image_srcset),d.wc_set_variation_attr("sizes",a.image_sizes),e.wc_set_variation_attr("href",a.image_link),e.wc_set_variation_attr("title",a.image_caption)):(d.wc_reset_variation_attr("src"),d.wc_reset_variation_attr("title"),d.wc_reset_variation_attr("alt"),d.wc_reset_variation_attr("srcset"),d.wc_reset_variation_attr("sizes"),e.wc_reset_variation_attr("href"),e.wc_reset_variation_attr("title"))},a(function(){"undefined"!=typeof wc_add_to_cart_variation_params&&a(".variations_form").each(function(){a(this).wc_variation_form().find(".variations select:eq(0)").change()})})}(jQuery,window,document); \ No newline at end of file +!function(a,b,c,d){a.fn.wc_variation_form=function(){var c=this,d=c.find(".single_variation"),f=c.closest(".product"),g=parseInt(c.data("product_id"),10),h=c.data("product_variations"),i=h===!1,j=!1,k=c.find(".reset_variations"),l=wp.template("variation-template"),m=wp.template("unavailable-variation-template"),n=c.find(".single_variation_wrap");return n.show(),c.unbind("check_variations update_variation_values found_variation"),c.find(".reset_variations").unbind("click"),c.find(".variations select").unbind("change focusin"),c.on("click",".reset_variations",function(){return c.find(".variations select").val("").change(),c.trigger("reset_data"),!1}).on("hide_variation",function(){return c.find(".single_add_to_cart_button").attr("disabled","disabled").attr("title",wc_add_to_cart_variation_params.i18n_make_a_selection_text),!1}).on("show_variation",function(a,b,d){return d?c.find(".single_add_to_cart_button").removeAttr("disabled").removeAttr("title"):c.find(".single_add_to_cart_button").attr("disabled","disabled").attr("title",wc_add_to_cart_variation_params.i18n_unavailable_text),!1}).on("reload_product_variations",function(){h=c.data("product_variations"),i=h===!1}).on("reset_data",function(){a(".sku").wc_reset_content(),a(".product_weight").wc_reset_content(),a(".product_dimensions").wc_reset_content(),c.trigger("reset_image"),d.slideUp(200).trigger("hide_variation")}).on("reset_image",function(){c.wc_variations_image_update(!1)}).on("change",".variations select",function(){if(c.find('input[name="variation_id"], input.variation_id').val("").change(),c.find(".wc-no-matching-variations").remove(),i){j&&j.abort();var b=!0,d=!1,e={};c.find(".variations select").each(function(){var c=a(this).data("attribute_name")||a(this).attr("name");0===a(this).val().length?b=!1:d=!0,e[c]=a(this).val()}),b?(e.product_id=g,j=a.ajax({url:wc_cart_fragments_params.wc_ajax_url.toString().replace("%%endpoint%%","get_variation"),type:"POST",data:e,success:function(a){a?c.trigger("found_variation",[a]):(c.trigger("reset_data"),c.find(".single_variation").after('

    '+wc_add_to_cart_variation_params.i18n_no_matching_variations_text+"

    "),c.find(".wc-no-matching-variations").slideDown(200))}})):c.trigger("reset_data"),d?"hidden"===k.css("visibility")&&k.css("visibility","visible").hide().fadeIn():k.css("visibility","hidden")}else c.trigger("woocommerce_variation_select_change"),c.trigger("check_variations",["",!1]),a(this).blur();a(".product.has-default-attributes > .images").fadeTo(200,1),c.trigger("woocommerce_variation_has_changed")}).on("focusin touchstart",".variations select",function(){a(this).find("option:selected").attr("selected","selected"),i||(c.trigger("woocommerce_variation_select_focusin"),c.trigger("check_variations",[a(this).data("attribute_name")||a(this).attr("name"),!0]))}).on("found_variation",function(b,e){var g=f.find(".product_meta").find(".sku"),h=f.find(".product_weight"),i=f.find(".product_dimensions"),j=n.find(".quantity"),k=!0;e.sku?g.wc_set_content(e.sku):g.wc_reset_content(),e.weight?h.wc_set_content(e.weight):h.wc_reset_content(),e.dimensions?i.wc_set_content(e.dimensions):i.wc_reset_content(),c.wc_variations_image_update(e);var o="";e.variation_is_visible?(o=l({variation:e}),o=o.replace("/**/",""),d.html(o),c.find('input[name="variation_id"], input.variation_id').val(e.variation_id).change()):(o=m,o=o.replace("/**/",""),d.html(o),c.find('input[name="variation_id"], input.variation_id').val("").change()),"yes"===e.is_sold_individually?(j.find("input.qty").val("1").attr("min","1").attr("max",""),j.hide()):(j.find("input.qty").attr("min",e.min_qty).attr("max",e.max_qty),j.show()),e.is_purchasable&&e.is_in_stock&&e.variation_is_visible||(k=!1),a.trim(d.text())?d.slideDown(200).trigger("show_variation",[e,k]):d.show().trigger("show_variation",[e,k])}).on("check_variations",function(c,f,g){if(!i){var j=!0,k=!1,l={},m=a(this),n=m.find(".reset_variations");m.find(".variations select").each(function(){var b=a(this).data("attribute_name")||a(this).attr("name");0===a(this).val().length?j=!1:k=!0,f&&b===f?(j=!1,l[b]=""):l[b]=a(this).val()});var o=e.find_matching_variations(h,l);if(j){var p=o.shift();p?m.trigger("found_variation",[p]):(m.find(".variations select").val(""),g||m.trigger("reset_data"),b.alert(wc_add_to_cart_variation_params.i18n_no_matching_variations_text))}else m.trigger("update_variation_values",[o]),g||m.trigger("reset_data"),f||d.slideUp(200).trigger("hide_variation");k?"hidden"===n.css("visibility")&&n.css("visibility","visible").hide().fadeIn():n.css("visibility","hidden")}}).on("update_variation_values",function(b,d){i||(c.find(".variations select").each(function(b,c){var e,f=a(c);f.data("attribute_options")||f.data("attribute_options",f.find("option:gt(0)").get()),f.find("option:gt(0)").remove(),f.append(f.data("attribute_options")),f.find("option:gt(0)").removeClass("attached"),f.find("option:gt(0)").removeClass("enabled"),f.find("option:gt(0)").removeAttr("disabled"),e="undefined"!=typeof f.data("attribute_name")?f.data("attribute_name"):f.attr("name");for(var g in d)if("undefined"!=typeof d[g]){var h=d[g].attributes;for(var i in h)if(h.hasOwnProperty(i)){var j=h[i];if(i===e){var k="";d[g].variation_is_active&&(k="enabled"),j?(j=a("
    ").html(j).text(),j=j.replace(/'/g,"\\'"),j=j.replace(/"/g,'\\"'),f.find('option[value="'+j+'"]').addClass("attached "+k)):f.find("option:gt(0)").addClass("attached "+k)}}}f.find("option:gt(0):not(.attached)").remove(),f.find("option:gt(0):not(.enabled)").attr("disabled","disabled")}),c.trigger("woocommerce_update_variation_values"))}),c.trigger("wc_variation_form"),c};var e={find_matching_variations:function(a,b){for(var c=[],d=0;d1?(d.wc_set_variation_attr("src",a.image_src),d.wc_set_variation_attr("title",a.image_title),d.wc_set_variation_attr("alt",a.image_title),d.wc_set_variation_attr("srcset",a.image_srcset),d.wc_set_variation_attr("sizes",a.image_sizes),e.wc_set_variation_attr("href",a.image_link),e.wc_set_variation_attr("title",a.image_caption)):(d.wc_reset_variation_attr("src"),d.wc_reset_variation_attr("title"),d.wc_reset_variation_attr("alt"),d.wc_reset_variation_attr("srcset"),d.wc_reset_variation_attr("sizes"),e.wc_reset_variation_attr("href"),e.wc_reset_variation_attr("title"))},a(function(){"undefined"!=typeof wc_add_to_cart_variation_params&&a(".variations_form").each(function(){a(this).wc_variation_form().find(".variations select:eq(0)").change()})})}(jQuery,window,document); \ No newline at end of file diff --git a/assets/js/frontend/country-select.js b/assets/js/frontend/country-select.js index 503f02845f0..0055e2c76c4 100644 --- a/assets/js/frontend/country-select.js +++ b/assets/js/frontend/country-select.js @@ -62,7 +62,6 @@ jQuery( function( $ ) { var wc_country_select_select2 = function() { $( 'select.country_select:visible, select.state_select:visible' ).each( function() { var select2_args = $.extend({ - placeholder: $( this ).attr( 'placeholder' ), placeholderOption: 'first', width: '100%' }, getEnhancedSelectFormatString() ); @@ -91,7 +90,7 @@ jQuery( function( $ ) { input_name = $statebox.attr( 'name' ), input_id = $statebox.attr( 'id' ), value = $statebox.val(), - placeholder = $statebox.attr( 'placeholder' ); + placeholder = $statebox.attr( 'placeholder' ) || $statebox.attr( 'data-placeholder' ) || ''; if ( states[ country ] ) { if ( $.isEmptyObject( states[ country ] ) ) { @@ -116,7 +115,7 @@ jQuery( function( $ ) { if ( $statebox.is( 'input' ) ) { // Change for select - $statebox.replaceWith( '' ); + $statebox.replaceWith( '' ); $statebox = $wrapper.find( '#billing_state, #shipping_state, #calc_shipping_state' ); } diff --git a/assets/js/frontend/country-select.min.js b/assets/js/frontend/country-select.min.js index 6b50aee6ceb..b5f9f6b18fe 100644 --- a/assets/js/frontend/country-select.min.js +++ b/assets/js/frontend/country-select.min.js @@ -1 +1 @@ -jQuery(function(a){function b(){var a={formatMatches:function(a){return 1===a?wc_country_select_params.i18n_matches_1:wc_country_select_params.i18n_matches_n.replace("%qty%",a)},formatNoMatches:function(){return wc_country_select_params.i18n_no_matches},formatAjaxError:function(){return wc_country_select_params.i18n_ajax_error},formatInputTooShort:function(a,b){var c=b-a.length;return 1===c?wc_country_select_params.i18n_input_too_short_1:wc_country_select_params.i18n_input_too_short_n.replace("%qty%",c)},formatInputTooLong:function(a,b){var c=a.length-b;return 1===c?wc_country_select_params.i18n_input_too_long_1:wc_country_select_params.i18n_input_too_long_n.replace("%qty%",c)},formatSelectionTooBig:function(a){return 1===a?wc_country_select_params.i18n_selection_too_long_1:wc_country_select_params.i18n_selection_too_long_n.replace("%qty%",a)},formatLoadMore:function(){return wc_country_select_params.i18n_load_more},formatSearching:function(){return wc_country_select_params.i18n_searching}};return a}if("undefined"==typeof wc_country_select_params)return!1;if(a().select2){var c=function(){a("select.country_select:visible, select.state_select:visible").each(function(){var c=a.extend({placeholder:a(this).attr("placeholder"),placeholderOption:"first",width:"100%"},b());a(this).select2(c)})};c(),a(document.body).bind("country_to_state_changed",function(){c()})}var d=wc_country_select_params.countries.replace(/"/g,'"'),e=a.parseJSON(d);a(document.body).on("change","select.country_to_state, input.country_to_state",function(){var b=a(this).val(),c=a(this).closest(".form-row").parent(),d=c.find("#billing_state, #shipping_state, #calc_shipping_state"),f=d.parent(),g=d.attr("name"),h=d.attr("id"),i=d.val(),j=d.attr("placeholder");if(e[b])if(a.isEmptyObject(e[b]))d.parent().hide().find(".select2-container").remove(),d.replaceWith(''),a(document.body).trigger("country_to_state_changed",[b,c]);else{var k="",l=e[b];for(var m in l)l.hasOwnProperty(m)&&(k=k+'");d.parent().show(),d.is("input")&&(d.replaceWith(''),d=c.find("#billing_state, #shipping_state, #calc_shipping_state")),d.html('"+k),d.val(i).change(),a(document.body).trigger("country_to_state_changed",[b,c])}else d.is("select")?(f.show().find(".select2-container").remove(),d.replaceWith(''),a(document.body).trigger("country_to_state_changed",[b,c])):d.is(".hidden")&&(f.show().find(".select2-container").remove(),d.replaceWith(''),a(document.body).trigger("country_to_state_changed",[b,c]));a(document.body).trigger("country_to_state_changing",[b,c])}),a(function(){a(":input.country_to_state").change()})}); \ No newline at end of file +jQuery(function(a){function b(){var a={formatMatches:function(a){return 1===a?wc_country_select_params.i18n_matches_1:wc_country_select_params.i18n_matches_n.replace("%qty%",a)},formatNoMatches:function(){return wc_country_select_params.i18n_no_matches},formatAjaxError:function(){return wc_country_select_params.i18n_ajax_error},formatInputTooShort:function(a,b){var c=b-a.length;return 1===c?wc_country_select_params.i18n_input_too_short_1:wc_country_select_params.i18n_input_too_short_n.replace("%qty%",c)},formatInputTooLong:function(a,b){var c=a.length-b;return 1===c?wc_country_select_params.i18n_input_too_long_1:wc_country_select_params.i18n_input_too_long_n.replace("%qty%",c)},formatSelectionTooBig:function(a){return 1===a?wc_country_select_params.i18n_selection_too_long_1:wc_country_select_params.i18n_selection_too_long_n.replace("%qty%",a)},formatLoadMore:function(){return wc_country_select_params.i18n_load_more},formatSearching:function(){return wc_country_select_params.i18n_searching}};return a}if("undefined"==typeof wc_country_select_params)return!1;if(a().select2){var c=function(){a("select.country_select:visible, select.state_select:visible").each(function(){var c=a.extend({placeholderOption:"first",width:"100%"},b());a(this).select2(c)})};c(),a(document.body).bind("country_to_state_changed",function(){c()})}var d=wc_country_select_params.countries.replace(/"/g,'"'),e=a.parseJSON(d);a(document.body).on("change","select.country_to_state, input.country_to_state",function(){var b=a(this).val(),c=a(this).closest(".form-row").parent(),d=c.find("#billing_state, #shipping_state, #calc_shipping_state"),f=d.parent(),g=d.attr("name"),h=d.attr("id"),i=d.val(),j=d.attr("placeholder")||d.attr("data-placeholder")||"";if(e[b])if(a.isEmptyObject(e[b]))d.parent().hide().find(".select2-container").remove(),d.replaceWith(''),a(document.body).trigger("country_to_state_changed",[b,c]);else{var k="",l=e[b];for(var m in l)l.hasOwnProperty(m)&&(k=k+'");d.parent().show(),d.is("input")&&(d.replaceWith(''),d=c.find("#billing_state, #shipping_state, #calc_shipping_state")),d.html('"+k),d.val(i).change(),a(document.body).trigger("country_to_state_changed",[b,c])}else d.is("select")?(f.show().find(".select2-container").remove(),d.replaceWith(''),a(document.body).trigger("country_to_state_changed",[b,c])):d.is(".hidden")&&(f.show().find(".select2-container").remove(),d.replaceWith(''),a(document.body).trigger("country_to_state_changed",[b,c]));a(document.body).trigger("country_to_state_changing",[b,c])}),a(function(){a(":input.country_to_state").change()})}); \ No newline at end of file diff --git a/assets/js/frontend/password-strength-meter.js b/assets/js/frontend/password-strength-meter.js index 7c501e0d519..41ec60fe95d 100644 --- a/assets/js/frontend/password-strength-meter.js +++ b/assets/js/frontend/password-strength-meter.js @@ -1,44 +1,65 @@ -/* global wp, pwsL10n */ +/* global wp, pwsL10n, wc_password_strength_meter_params */ jQuery( function( $ ) { /** - * Password Strength Meter class + * Password Strength Meter class. */ var wc_password_strength_meter = { /** - * Initialize strength meter actions + * Initialize strength meter actions. */ init: function() { $( document.body ) - .on( 'keyup', 'form.register #reg_password, form.checkout #account_password', this.strengthMeter ) - .on( 'change', 'form.checkout #createaccount', this.checkoutNeedsRegistration ); - + .on( 'keyup', 'form.register #reg_password, form.checkout #account_password, form.edit-account #password_1, form.lost_reset_password #password_1', this.strengthMeter ) + .on( 'submit', 'form.register, form.edit-account, form.lost_reset_password', this.onSubmit ); $( 'form.checkout #createaccount' ).change(); }, /** - * Strength Meter + * Strength Meter. */ strengthMeter: function() { - var wrapper = $( 'form.register, form.checkout' ), + var wrapper = $( 'form.register, form.checkout, form.edit-account, form.lost_reset_password' ), submit = $( 'input[type="submit"]', wrapper ), - field = $( '#reg_password, #account_password', wrapper ), + field = $( '#reg_password, #account_password, #password_1', wrapper ), strength = 1; wc_password_strength_meter.includeMeter( wrapper, field ); strength = wc_password_strength_meter.checkPasswordStrength( field ); + // Add class to wrapper if ( 3 === strength || 4 === strength ) { - submit.removeAttr( 'disabled' ); + wrapper.removeClass( 'has-weak-password' ); } else { - submit.attr( 'disabled', 'disabled' ); + wrapper.addClass( 'has-weak-password' ); + } + + // Stop form if password is weak... But not in checkout form! + if ( 3 === strength || 4 === strength ) { + submit.removeClass( 'disabled' ); + } else if ( ! wrapper.hasClass( 'checkout' ) ) { + submit.addClass( 'disabled' ); } }, /** - * Include meter HTML + * When the form is submitted, prevent if weak. + */ + onSubmit: function() { + $( '.woocommerce-password-error' ).remove(); + + if ( $( this ).is( '.has-weak-password' ) ) { + $( this ).prepend( '
    ' + wc_password_strength_meter_params.i18n_password_error + '
    ' ); + return false; + } else { + return true; + } + }, + + /** + * Include meter HTML. * * @param {Object} wrapper * @param {Object} field @@ -54,22 +75,26 @@ jQuery( function( $ ) { }, /** - * Check password strength + * Check password strength. * - * @param {Object} field + * @param {Object} field * * @return {Int} */ checkPasswordStrength: function( field ) { - var meter = $( '.woocommerce-password-strength' ); - var strength = wp.passwordStrength.meter( field.val(), wp.passwordStrength.userInputBlacklist() ); + var meter = $( '.woocommerce-password-strength' ); + var hint = $( '.woocommerce-password-hint' ); + var hint_html = '' + wc_password_strength_meter_params.i18n_password_hint + ''; + var strength = wp.passwordStrength.meter( field.val(), wp.passwordStrength.userInputBlacklist() ); - // Reset classes + // Reset meter.removeClass( 'short bad good strong' ); + hint.remove(); switch ( strength ) { case 2 : meter.addClass( 'bad' ).html( pwsL10n.bad ); + meter.after( hint_html ); break; case 3 : meter.addClass( 'good' ).html( pwsL10n.good ); @@ -80,25 +105,12 @@ jQuery( function( $ ) { case 5 : meter.addClass( 'short' ).html( pwsL10n.mismatch ); break; - default : meter.addClass( 'short' ).html( pwsL10n['short'] ); + meter.after( hint_html ); } return strength; - }, - - /** - * Check if user wants register on checkout. - */ - checkoutNeedsRegistration: function() { - var submit = $( 'form.checkout input[type="submit"]' ); - - if ( $( this ).is( ':checked' ) ) { - submit.attr( 'disabled', 'disabled' ); - } else { - submit.removeAttr( 'disabled' ); - } } }; diff --git a/assets/js/frontend/password-strength-meter.min.js b/assets/js/frontend/password-strength-meter.min.js index e3ce9ea41c7..fb63f0d411f 100644 --- a/assets/js/frontend/password-strength-meter.min.js +++ b/assets/js/frontend/password-strength-meter.min.js @@ -1 +1 @@ -jQuery(function(a){var b={init:function(){a(document.body).on("keyup","form.register #reg_password, form.checkout #account_password",this.strengthMeter).on("change","form.checkout #createaccount",this.checkoutNeedsRegistration),a("form.checkout #createaccount").change()},strengthMeter:function(){var c=a("form.register, form.checkout"),d=a('input[type="submit"]',c),e=a("#reg_password, #account_password",c),f=1;b.includeMeter(c,e),f=b.checkPasswordStrength(e),3===f||4===f?d.removeAttr("disabled"):d.attr("disabled","disabled")},includeMeter:function(a,b){var c=a.find(".woocommerce-password-strength");0===c.length?b.after('
    '):""===b.val()&&c.remove()},checkPasswordStrength:function(b){var c=a(".woocommerce-password-strength"),d=wp.passwordStrength.meter(b.val(),wp.passwordStrength.userInputBlacklist());switch(c.removeClass("short bad good strong"),d){case 2:c.addClass("bad").html(pwsL10n.bad);break;case 3:c.addClass("good").html(pwsL10n.good);break;case 4:c.addClass("strong").html(pwsL10n.strong);break;case 5:c.addClass("short").html(pwsL10n.mismatch);break;default:c.addClass("short").html(pwsL10n["short"])}return d},checkoutNeedsRegistration:function(){var b=a('form.checkout input[type="submit"]');a(this).is(":checked")?b.attr("disabled","disabled"):b.removeAttr("disabled")}};b.init()}); \ No newline at end of file +jQuery(function(a){var b={init:function(){a(document.body).on("keyup","form.register #reg_password, form.checkout #account_password, form.edit-account #password_1, form.lost_reset_password #password_1",this.strengthMeter).on("submit","form.register, form.edit-account, form.lost_reset_password",this.onSubmit),a("form.checkout #createaccount").change()},strengthMeter:function(){var c=a("form.register, form.checkout, form.edit-account, form.lost_reset_password"),d=a('input[type="submit"]',c),e=a("#reg_password, #account_password, #password_1",c),f=1;b.includeMeter(c,e),f=b.checkPasswordStrength(e),3===f||4===f?c.removeClass("has-weak-password"):c.addClass("has-weak-password"),3===f||4===f?d.removeClass("disabled"):c.hasClass("checkout")||d.addClass("disabled")},onSubmit:function(){return a(".woocommerce-password-error").remove(),a(this).is(".has-weak-password")?(a(this).prepend('
    '+wc_password_strength_meter_params.i18n_password_error+"
    "),!1):!0},includeMeter:function(a,b){var c=a.find(".woocommerce-password-strength");0===c.length?b.after('
    '):""===b.val()&&c.remove()},checkPasswordStrength:function(b){var c=a(".woocommerce-password-strength"),d=a(".woocommerce-password-hint"),e=''+wc_password_strength_meter_params.i18n_password_hint+"",f=wp.passwordStrength.meter(b.val(),wp.passwordStrength.userInputBlacklist());switch(c.removeClass("short bad good strong"),d.remove(),f){case 2:c.addClass("bad").html(pwsL10n.bad),c.after(e);break;case 3:c.addClass("good").html(pwsL10n.good);break;case 4:c.addClass("strong").html(pwsL10n.strong);break;case 5:c.addClass("short").html(pwsL10n.mismatch);break;default:c.addClass("short").html(pwsL10n["short"]),c.after(e)}return f}};b.init()}); \ No newline at end of file diff --git a/assets/js/select2/select2.js b/assets/js/select2/select2.js index 195ccee5bb0..4aa7e9f17f6 100644 --- a/assets/js/select2/select2.js +++ b/assets/js/select2/select2.js @@ -2399,22 +2399,41 @@ the specific language governing permissions and limitations under the Apache Lic } })); - selection.on("mousedown touchstart", this.bind(function (e) { - // Prevent IE from generating a click event on the body - reinsertElement(selection); + if(this.supportsTouchEvents) { + selection.on("mousedown touchstart", this.bind(function (e) { + // Prevent IE from generating a click event on the body + reinsertElement(selection); - if (!this.container.hasClass("select2-container-active")) { - this.opts.element.trigger($.Event("select2-focus")); - } + if (!this.container.hasClass("select2-container-active")) { + this.opts.element.trigger($.Event("select2-focus")); + } - if (this.opened()) { - this.close(); - } else if (this.isInterfaceEnabled()) { - this.open(); - } + if (this.opened()) { + this.close(); + } else if (this.isInterfaceEnabled()) { + this.open(); + } - killEvent(e); - })); + killEvent(e); + })); + } else { + selection.on("mousedown", this.bind(function (e) { + // Prevent IE from generating a click event on the body + reinsertElement(selection); + + if (!this.container.hasClass("select2-container-active")) { + this.opts.element.trigger($.Event("select2-focus")); + } + + if (this.opened()) { + this.close(); + } else if (this.isInterfaceEnabled()) { + this.open(); + } + + killEvent(e); + })); + } dropdown.on("mousedown touchstart", this.bind(function() { if (this.opts.shouldFocusInput(this)) { diff --git a/assets/js/select2/select2.min.js b/assets/js/select2/select2.min.js index 4273f044139..d084ea01656 100644 --- a/assets/js/select2/select2.min.js +++ b/assets/js/select2/select2.min.js @@ -1,3 +1,3 @@ !function(a){"undefined"==typeof a.fn.each2&&a.extend(a.fn,{each2:function(b){for(var c=a([0]),d=-1,e=this.length;++dc;c+=1)if(g(a,b[c]))return c;return-1}function f(){var b=a(N);b.appendTo(document.body);var c={width:b.width()-b[0].clientWidth,height:b.height()-b[0].clientHeight};return b.remove(),c}function g(a,c){return a===c?!0:a===b||c===b?!1:null===a||null===c?!1:a.constructor===String?a+""==c+"":c.constructor===String?c+""==a+"":!1}function h(a,b,c){var d,e,f;if(null===a||a.length<1)return[];for(d=a.split(b),e=0,f=d.length;f>e;e+=1)d[e]=c(d[e]);return d}function i(a){return a.outerWidth(!1)-a.width()}function j(c){var d="keyup-change-value";c.on("keydown",function(){a.data(c,d)===b&&a.data(c,d,c.val())}),c.on("keyup",function(){var e=a.data(c,d);e!==b&&c.val()!==e&&(a.removeData(c,d),c.trigger("keyup-change"))})}function k(c){c.on("mousemove",function(c){var d=L;(d===b||d.x!==c.pageX||d.y!==c.pageY)&&a(c.target).trigger("mousemove-filtered",c)})}function l(a,c,d){d=d||b;var e;return function(){var b=arguments;window.clearTimeout(e),e=window.setTimeout(function(){c.apply(d,b)},a)}}function m(a,b){var c=l(a,function(a){b.trigger("scroll-debounced",a)});b.on("scroll",function(a){e(a.target,b.get())>=0&&c(a)})}function n(a){a[0]!==document.activeElement&&window.setTimeout(function(){var b,c=a[0],d=a.val().length;a.focus();var e=c.offsetWidth>0||c.offsetHeight>0;e&&c===document.activeElement&&(c.setSelectionRange?c.setSelectionRange(d,d):c.createTextRange&&(b=c.createTextRange(),b.collapse(!1),b.select()))},0)}function o(b){b=a(b)[0];var c=0,d=0;if("selectionStart"in b)c=b.selectionStart,d=b.selectionEnd-c;else if("selection"in document){b.focus();var e=document.selection.createRange();d=document.selection.createRange().text.length,e.moveStart("character",-b.value.length),c=e.text.length-d}return{offset:c,length:d}}function p(a){a.preventDefault(),a.stopPropagation()}function q(a){a.preventDefault(),a.stopImmediatePropagation()}function r(b){if(!I){var c=b[0].currentStyle||window.getComputedStyle(b[0],null);I=a(document.createElement("div")).css({position:"absolute",left:"-10000px",top:"-10000px",display:"none",fontSize:c.fontSize,fontFamily:c.fontFamily,fontStyle:c.fontStyle,fontWeight:c.fontWeight,letterSpacing:c.letterSpacing,textTransform:c.textTransform,whiteSpace:"nowrap"}),I.attr("class","select2-sizer"),a(document.body).append(I)}return I.text(b.val()),I.width()}function s(b,c,d){var e,f,g=[];e=a.trim(b.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each2(function(){0===this.indexOf("select2-")&&g.push(this)})),e=a.trim(c.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each2(function(){0!==this.indexOf("select2-")&&(f=d(this),f&&g.push(f))})),b.attr("class",g.join(" "))}function t(a,b,c,e){var f=d(a.toUpperCase()).indexOf(d(b.toUpperCase())),g=b.length;return 0>f?void c.push(e(a)):(c.push(e(a.substring(0,f))),c.push(""),c.push(e(a.substring(f,f+g))),c.push(""),void c.push(e(a.substring(f+g,a.length))))}function u(a){var b={"\\":"\","&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})}function v(c){var d,e=null,f=c.quietMillis||100,g=c.url,h=this;return function(i){window.clearTimeout(d),d=window.setTimeout(function(){var d=c.data,f=g,j=c.transport||a.fn.select2.ajaxDefaults.transport,k={type:c.type||"GET",cache:c.cache||!1,jsonpCallback:c.jsonpCallback||b,dataType:c.dataType||"json"},l=a.extend({},a.fn.select2.ajaxDefaults.params,k);d=d?d.call(h,i.term,i.page,i.context):null,f="function"==typeof f?f.call(h,i.term,i.page,i.context):f,e&&"function"==typeof e.abort&&e.abort(),c.params&&(a.isFunction(c.params)?a.extend(l,c.params.call(h)):a.extend(l,c.params)),a.extend(l,{url:f,dataType:c.dataType,data:d,success:function(a){var b=c.results(a,i.page,i);i.callback(b)},error:function(a,b,c){var d={hasError:!0,jqXHR:a,textStatus:b,errorThrown:c};i.callback(d)}}),e=j.call(h,l)},f)}}function w(b){var c,d,e=b,f=function(a){return""+a.text};a.isArray(e)&&(d=e,e={results:d}),a.isFunction(e)===!1&&(d=e,e=function(){return d});var g=e();return g.text&&(f=g.text,a.isFunction(f)||(c=g.text,f=function(a){return a[c]})),function(b){var c,d=b.term,g={results:[]};return""===d?void b.callback(e()):(c=function(e,g){var h,i;if(e=e[0],e.children){h={};for(i in e)e.hasOwnProperty(i)&&(h[i]=e[i]);h.children=[],a(e.children).each2(function(a,b){c(b,h.children)}),(h.children.length||b.matcher(d,f(h),e))&&g.push(h)}else b.matcher(d,f(e),e)&&g.push(e)},a(e().results).each2(function(a,b){c(b,g.results)}),void b.callback(g))}}function x(c){var d=a.isFunction(c);return function(e){var f=e.term,g={results:[]},h=d?c(e):c;a.isArray(h)&&(a(h).each(function(){var a=this.text!==b,c=a?this.text:this;(""===f||e.matcher(f,c))&&g.results.push(a?this:{id:this,text:this})}),e.callback(g))}}function y(b,c){if(a.isFunction(b))return!0;if(!b)return!1;if("string"==typeof b)return!0;throw new Error(c+" must be a string, function, or falsy value")}function z(b,c){if(a.isFunction(b)){var d=Array.prototype.slice.call(arguments,2);return b.apply(c,d)}return b}function A(b){var c=0;return a.each(b,function(a,b){b.children?c+=A(b.children):c++}),c}function B(a,c,d,e){var f,h,i,j,k,l=a,m=!1;if(!e.createSearchChoice||!e.tokenSeparators||e.tokenSeparators.length<1)return b;for(;;){for(h=-1,i=0,j=e.tokenSeparators.length;j>i&&(k=e.tokenSeparators[i],h=a.indexOf(k),!(h>=0));i++);if(0>h)break;if(f=a.substring(0,h),a=a.substring(h+k.length),f.length>0&&(f=e.createSearchChoice.call(this,f,c),f!==b&&null!==f&&e.id(f)!==b&&null!==e.id(f))){for(m=!1,i=0,j=c.length;j>i;i++)if(g(e.id(f),e.id(c[i]))){m=!0;break}m||d(f)}}return l!==a?a:void 0}function C(){var b=this;a.each(arguments,function(a,c){b[c].remove(),b[c]=null})}function D(b,c){var d=function(){};return d.prototype=new b,d.prototype.constructor=d,d.prototype.parent=b.prototype,d.prototype=a.extend(d.prototype,c),d}if(window.Select2===b){var E,F,G,H,I,J,K,L={x:0,y:0},M={TAB:9,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,SHIFT:16,CTRL:17,ALT:18,PAGE_UP:33,PAGE_DOWN:34,HOME:36,END:35,BACKSPACE:8,DELETE:46,isArrow:function(a){switch(a=a.which?a.which:a){case M.LEFT:case M.RIGHT:case M.UP:case M.DOWN:return!0}return!1},isControl:function(a){var b=a.which;switch(b){case M.SHIFT:case M.CTRL:case M.ALT:return!0}return a.metaKey?!0:!1},isFunctionKey:function(a){return a=a.which?a.which:a,a>=112&&123>=a}},N="
    ",O={"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ω":"ω","ς":"σ"};J=a(document),H=function(){var a=1;return function(){return a++}}(),E=D(Object,{bind:function(a){var b=this;return function(){a.apply(b,arguments)}},init:function(c){var d,e,g=".select2-results";this.opts=c=this.prepareOpts(c),this.id=c.id,c.element.data("select2")!==b&&null!==c.element.data("select2")&&c.element.data("select2").destroy(),this.container=this.createContainer(),this.liveRegion=a(".select2-hidden-accessible"),0==this.liveRegion.length&&(this.liveRegion=a("",{role:"status","aria-live":"polite"}).addClass("select2-hidden-accessible").appendTo(document.body)),this.containerId="s2id_"+(c.element.attr("id")||"autogen"+H()),this.containerEventName=this.containerId.replace(/([.])/g,"_").replace(/([;&,\-\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g,"\\$1"),this.container.attr("id",this.containerId),this.container.attr("title",c.element.attr("title")),this.body=a(document.body),s(this.container,this.opts.element,this.opts.adaptContainerCssClass),this.container.attr("style",c.element.attr("style")),this.container.css(z(c.containerCss,this.opts.element)),this.container.addClass(z(c.containerCssClass,this.opts.element)),this.elementTabIndex=this.opts.element.attr("tabindex"),this.opts.element.data("select2",this).attr("tabindex","-1").before(this.container).on("click.select2",p),this.container.data("select2",this),this.dropdown=this.container.find(".select2-drop"),s(this.dropdown,this.opts.element,this.opts.adaptDropdownCssClass),this.dropdown.addClass(z(c.dropdownCssClass,this.opts.element)),this.dropdown.data("select2",this),this.dropdown.on("click",p),this.results=d=this.container.find(g),this.search=e=this.container.find("input.select2-input"),this.queryCount=0,this.resultsPage=0,this.context=null,this.initContainer(),this.container.on("click",p),k(this.results),this.dropdown.on("mousemove-filtered",g,this.bind(this.highlightUnderEvent)),this.dropdown.on("touchstart touchmove touchend",g,this.bind(function(a){this._touchEvent=!0,this.highlightUnderEvent(a)})),this.dropdown.on("touchmove",g,this.bind(this.touchMoved)),this.dropdown.on("touchstart touchend",g,this.bind(this.clearTouchMoved)),this.dropdown.on("click",this.bind(function(a){this._touchEvent&&(this._touchEvent=!1,this.selectHighlighted())})),m(80,this.results),this.dropdown.on("scroll-debounced",g,this.bind(this.loadMoreIfNeeded)),a(this.container).on("change",".select2-input",function(a){a.stopPropagation()}),a(this.dropdown).on("change",".select2-input",function(a){a.stopPropagation()}),a.fn.mousewheel&&d.mousewheel(function(a,b,c,e){var f=d.scrollTop();e>0&&0>=f-e?(d.scrollTop(0),p(a)):0>e&&d.get(0).scrollHeight-d.scrollTop()+e<=d.height()&&(d.scrollTop(d.get(0).scrollHeight-d.height()),p(a))}),j(e),e.on("keyup-change input paste",this.bind(this.updateResults)),e.on("focus",function(){e.addClass("select2-focused")}),e.on("blur",function(){e.removeClass("select2-focused")}),this.dropdown.on("mouseup",g,this.bind(function(b){a(b.target).closest(".select2-result-selectable").length>0&&(this.highlightUnderEvent(b),this.selectHighlighted(b))})),this.dropdown.on("click mouseup mousedown touchstart touchend focusin",function(a){a.stopPropagation()}),this.lastSearchTerm=b,a.isFunction(this.opts.initSelection)&&(this.initSelection(),this.monitorSource()),null!==c.maximumInputLength&&this.search.attr("maxlength",c.maximumInputLength);var h=c.element.prop("disabled");h===b&&(h=!1),this.enable(!h);var i=c.element.prop("readonly");i===b&&(i=!1),this.readonly(i),K=K||f(),this.autofocus=c.element.prop("autofocus"),c.element.prop("autofocus",!1),this.autofocus&&this.focus(),this.search.attr("placeholder",c.searchInputPlaceholder)},destroy:function(){var a=this.opts.element,c=a.data("select2"),d=this;this.close(),a.length&&a[0].detachEvent&&d._sync&&a.each(function(){d._sync&&this.detachEvent("onpropertychange",d._sync)}),this.propertyObserver&&(this.propertyObserver.disconnect(),this.propertyObserver=null),this._sync=null,c!==b&&(c.container.remove(),c.liveRegion.remove(),c.dropdown.remove(),a.removeData("select2").off(".select2"),a.is("input[type='hidden']")?a.css("display",""):(a.show().prop("autofocus",this.autofocus||!1),this.elementTabIndex?a.attr({tabindex:this.elementTabIndex}):a.removeAttr("tabindex"),a.show())),C.call(this,"container","liveRegion","dropdown","results","search")},optionToData:function(a){return a.is("option")?{id:a.prop("value"),text:a.text(),element:a.get(),css:a.attr("class"),disabled:a.prop("disabled"),locked:g(a.attr("locked"),"locked")||g(a.data("locked"),!0)}:a.is("optgroup")?{text:a.attr("label"),children:[],element:a.get(),css:a.attr("class")}:void 0},prepareOpts:function(c){var d,e,f,i,j=this;if(d=c.element,"select"===d.get(0).tagName.toLowerCase()&&(this.select=e=c.element),e&&a.each(["id","multiple","ajax","query","createSearchChoice","initSelection","data","tags"],function(){if(this in c)throw new Error("Option '"+this+"' is not allowed for Select2 when attached to a ","
    "," ","
      ","
    ","
    "].join(""));return b},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.focusser.prop("disabled",!this.isInterfaceEnabled())},opening:function(){var b,c,d;this.opts.minimumResultsForSearch>=0&&this.showSearch(!0),this.parent.opening.apply(this,arguments),this.showSearchInput!==!1&&this.search.val(this.focusser.val()),this.opts.shouldFocusInput(this)&&(this.search.focus(),b=this.search.get(0),b.createTextRange?(c=b.createTextRange(),c.collapse(!1),c.select()):b.setSelectionRange&&(d=this.search.val().length,b.setSelectionRange(d,d))),this.prefillNextSearchTerm(),this.focusser.prop("disabled",!0).val(""),this.updateResults(!0),this.opts.element.trigger(a.Event("select2-open"))},close:function(){this.opened()&&(this.parent.close.apply(this,arguments),this.focusser.prop("disabled",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus())},focus:function(){this.opened()?this.close():(this.focusser.prop("disabled",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus())},isFocused:function(){return this.container.hasClass("select2-container-active")},cancel:function(){this.parent.cancel.apply(this,arguments),this.focusser.prop("disabled",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus()},destroy:function(){a("label[for='"+this.focusser.attr("id")+"']").attr("for",this.opts.element.attr("id")),this.parent.destroy.apply(this,arguments),C.call(this,"selection","focusser")},initContainer:function(){var b,d,e=this.container,f=this.dropdown,g=H();this.opts.minimumResultsForSearch<0?this.showSearch(!1):this.showSearch(!0),this.selection=b=e.find(".select2-choice"),this.focusser=e.find(".select2-focusser"),b.find(".select2-chosen").attr("id","select2-chosen-"+g),this.focusser.attr("aria-labelledby","select2-chosen-"+g),this.results.attr("id","select2-results-"+g),this.search.attr("aria-owns","select2-results-"+g),this.focusser.attr("id","s2id_autogen"+g),d=a("label[for='"+this.opts.element.attr("id")+"']"),this.opts.element.on("focus.select2",this.bind(function(){this.focus()})),this.focusser.prev().text(d.text()).attr("for",this.focusser.attr("id"));var h=this.opts.element.attr("title");this.opts.element.attr("title",h||d.text()),this.focusser.attr("tabindex",this.elementTabIndex),this.search.attr("id",this.focusser.attr("id")+"_search"),this.search.prev().text(a("label[for='"+this.focusser.attr("id")+"']").text()).attr("for",this.search.attr("id")),this.search.on("keydown",this.bind(function(a){if(this.isInterfaceEnabled()&&229!=a.keyCode){if(a.which===M.PAGE_UP||a.which===M.PAGE_DOWN)return void p(a);switch(a.which){case M.UP:case M.DOWN:return this.moveHighlight(a.which===M.UP?-1:1),void p(a);case M.ENTER:return this.selectHighlighted(),void p(a);case M.TAB:return void this.selectHighlighted({noFocus:!0});case M.ESC:return this.cancel(a),void p(a)}}})),this.search.on("blur",this.bind(function(a){document.activeElement===this.body.get(0)&&window.setTimeout(this.bind(function(){this.opened()&&this.results&&this.results.length>1&&this.search.focus()}),0)})),this.focusser.on("keydown",this.bind(function(a){if(this.isInterfaceEnabled()&&a.which!==M.TAB&&!M.isControl(a)&&!M.isFunctionKey(a)&&a.which!==M.ESC){if(this.opts.openOnEnter===!1&&a.which===M.ENTER)return void p(a);if(a.which==M.DOWN||a.which==M.UP||a.which==M.ENTER&&this.opts.openOnEnter){if(a.altKey||a.ctrlKey||a.shiftKey||a.metaKey)return;return this.open(),void p(a)}return a.which==M.DELETE||a.which==M.BACKSPACE?(this.opts.allowClear&&this.clear(),void p(a)):void 0}})),j(this.focusser),this.focusser.on("keyup-change input",this.bind(function(a){if(this.opts.minimumResultsForSearch>=0){if(a.stopPropagation(),this.opened())return;this.open()}})),b.on("mousedown touchstart","abbr",this.bind(function(a){this.isInterfaceEnabled()&&(this.clear(),q(a),this.close(),this.selection&&this.selection.focus())})),b.on("mousedown touchstart",this.bind(function(d){c(b),this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.opened()?this.close():this.isInterfaceEnabled()&&this.open(),p(d)})),f.on("mousedown touchstart",this.bind(function(){this.opts.shouldFocusInput(this)&&this.search.focus()})),b.on("focus",this.bind(function(a){p(a)})),this.focusser.on("focus",this.bind(function(){this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active")})).on("blur",this.bind(function(){this.opened()||(this.container.removeClass("select2-container-active"),this.opts.element.trigger(a.Event("select2-blur")))})),this.search.on("focus",this.bind(function(){this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active")})),this.initContainerWidth(),this.opts.element.hide(),this.setPlaceholder()},clear:function(b){var c=this.selection.data("select2-data");if(c){var d=a.Event("select2-clearing");if(this.opts.element.trigger(d),d.isDefaultPrevented())return;var e=this.getPlaceholderOption();this.opts.element.val(e?e.val():""),this.selection.find(".select2-chosen").empty(),this.selection.removeData("select2-data"),this.setPlaceholder(),b!==!1&&(this.opts.element.trigger({type:"select2-removed",val:this.id(c),choice:c}),this.triggerChange({removed:c}))}},initSelection:function(){if(this.isPlaceholderOptionSelected())this.updateSelection(null),this.close(),this.setPlaceholder();else{var a=this;this.opts.initSelection.call(null,this.opts.element,function(c){c!==b&&null!==c&&(a.updateSelection(c),a.close(),a.setPlaceholder(),a.lastSearchTerm=a.search.val())})}},isPlaceholderOptionSelected:function(){var a;return this.getPlaceholder()===b?!1:(a=this.getPlaceholderOption())!==b&&a.prop("selected")||""===this.opts.element.val()||this.opts.element.val()===b||null===this.opts.element.val()},prepareOpts:function(){var b=this.parent.prepareOpts.apply(this,arguments),c=this;return"select"===b.element.get(0).tagName.toLowerCase()?b.initSelection=function(a,b){var d=a.find("option").filter(function(){return this.selected&&!this.disabled});b(c.optionToData(d))}:"data"in b&&(b.initSelection=b.initSelection||function(c,d){var e=c.val(),f=null;b.query({matcher:function(a,c,d){var h=g(e,b.id(d));return h&&(f=d),h},callback:a.isFunction(d)?function(){d(f)}:a.noop})}),b},getPlaceholder:function(){return this.select&&this.getPlaceholderOption()===b?b:this.parent.getPlaceholder.apply(this,arguments)},setPlaceholder:function(){var a=this.getPlaceholder();if(this.isPlaceholderOptionSelected()&&a!==b){if(this.select&&this.getPlaceholderOption()===b)return;this.selection.find(".select2-chosen").html(this.opts.escapeMarkup(a)),this.selection.addClass("select2-default"),this.container.removeClass("select2-allowclear")}},postprocessResults:function(a,b,c){var d=0,e=this;if(this.findHighlightableChoices().each2(function(a,b){return g(e.id(b.data("select2-data")),e.opts.element.val())?(d=a,!1):void 0}),c!==!1&&(b===!0&&d>=0?this.highlight(d):this.highlight(0)),b===!0){var f=this.opts.minimumResultsForSearch;f>=0&&this.showSearch(A(a.results)>=f)}},showSearch:function(b){this.showSearchInput!==b&&(this.showSearchInput=b,this.dropdown.find(".select2-search").toggleClass("select2-search-hidden",!b),this.dropdown.find(".select2-search").toggleClass("select2-offscreen",!b),a(this.dropdown,this.container).toggleClass("select2-with-searchbox",b))},onSelect:function(a,b){if(this.triggerSelect(a)){var c=this.opts.element.val(),d=this.data();this.opts.element.val(this.id(a)),this.updateSelection(a),this.opts.element.trigger({type:"select2-selected",val:this.id(a),choice:a}),this.lastSearchTerm=this.search.val(),this.close(),b&&b.noFocus||!this.opts.shouldFocusInput(this)||this.focusser.focus(),g(c,this.id(a))||this.triggerChange({added:a,removed:d})}},updateSelection:function(a){var c,d,e=this.selection.find(".select2-chosen");this.selection.data("select2-data",a),e.empty(),null!==a&&(c=this.opts.formatSelection(a,e,this.opts.escapeMarkup)),c!==b&&e.append(c),d=this.opts.formatSelectionCssClass(a,e),d!==b&&e.addClass(d),this.selection.removeClass("select2-default"),this.opts.allowClear&&this.getPlaceholder()!==b&&this.container.addClass("select2-allowclear")},val:function(){var a,c=!1,d=null,e=this,f=this.data();if(0===arguments.length)return this.opts.element.val();if(a=arguments[0],arguments.length>1&&(c=arguments[1],this.opts.debug&&console&&console.warn&&console.warn('Select2: The second option to `select2("val")` is not supported in Select2 4.0.0. The `change` event will always be triggered in 4.0.0.')),this.select)this.opts.debug&&console&&console.warn&&console.warn('Select2: Setting the value on a "," ","","
    ","
      ","
    ","
    "].join(""));return b},prepareOpts:function(){var b=this.parent.prepareOpts.apply(this,arguments),c=this;return"select"===b.element.get(0).tagName.toLowerCase()?b.initSelection=function(a,b){var d=[];a.find("option").filter(function(){return this.selected&&!this.disabled}).each2(function(a,b){d.push(c.optionToData(b))}),b(d)}:"data"in b&&(b.initSelection=b.initSelection||function(c,d){var e=h(c.val(),b.separator,b.transformVal),f=[];b.query({matcher:function(c,d,h){var i=a.grep(e,function(a){return g(a,b.id(h))}).length;return i&&f.push(h),i},callback:a.isFunction(d)?function(){for(var a=[],c=0;c0||(this.selectChoice(null),this.clearPlaceholder(),this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.open(),this.focusSearch(),b.preventDefault()))})),this.container.on("focus",c,this.bind(function(){this.isInterfaceEnabled()&&(this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"),this.clearPlaceholder())})),this.initContainerWidth(),this.opts.element.hide(),this.clearSearch()},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.search.prop("disabled",!this.isInterfaceEnabled())},initSelection:function(){if(""===this.opts.element.val()&&""===this.opts.element.text()&&(this.updateSelection([]),this.close(),this.clearSearch()),this.select||""!==this.opts.element.val()){var a=this;this.opts.initSelection.call(null,this.opts.element,function(c){c!==b&&null!==c&&(a.updateSelection(c),a.close(),a.clearSearch())})}},clearSearch:function(){var a=this.getPlaceholder(),c=this.getMaxSearchWidth();a!==b&&0===this.getVal().length&&this.search.hasClass("select2-focused")===!1?(this.search.val(a).addClass("select2-default"),this.search.width(c>0?c:this.container.css("width"))):this.search.val("").width(10)},clearPlaceholder:function(){this.search.hasClass("select2-default")&&this.search.val("").removeClass("select2-default")},opening:function(){this.clearPlaceholder(),this.resizeSearch(),this.parent.opening.apply(this,arguments),this.focusSearch(),this.prefillNextSearchTerm(),this.updateResults(!0),this.opts.shouldFocusInput(this)&&this.search.focus(),this.opts.element.trigger(a.Event("select2-open"))},close:function(){this.opened()&&this.parent.close.apply(this,arguments)},focus:function(){this.close(),this.search.focus()},isFocused:function(){return this.search.hasClass("select2-focused")},updateSelection:function(b){var c={},d=[],e=this;a(b).each(function(){e.id(this)in c||(c[e.id(this)]=0,d.push(this))}),this.selection.find(".select2-search-choice").remove(),this.addSelectedChoice(d),e.postprocessResults()},tokenize:function(){var a=this.search.val();a=this.opts.tokenizer.call(this,a,this.data(),this.bind(this.onSelect),this.opts),null!=a&&a!=b&&(this.search.val(a),a.length>0&&this.open())},onSelect:function(a,b){this.triggerSelect(a)&&""!==a.text&&(this.addSelectedChoice(a),this.opts.element.trigger({type:"selected",val:this.id(a),choice:a}),this.lastSearchTerm=this.search.val(),this.clearSearch(),this.updateResults(),(this.select||!this.opts.closeOnSelect)&&this.postprocessResults(a,!1,this.opts.closeOnSelect===!0),this.opts.closeOnSelect?(this.close(),this.search.width(10)):this.countSelectableResults()>0?(this.search.width(10),this.resizeSearch(),this.getMaximumSelectionSize()>0&&this.val().length>=this.getMaximumSelectionSize()?this.updateResults(!0):this.prefillNextSearchTerm()&&this.updateResults(),this.positionDropdown()):(this.close(),this.search.width(10)),this.triggerChange({added:a}),b&&b.noFocus||this.focusSearch())},cancel:function(){this.close(),this.focusSearch()},addSelectedChoice:function(b){var c=this.getVal(),d=this;a(b).each(function(){c.push(d.createChoice(this))}),this.setVal(c)},createChoice:function(c){var d,e,f=!c.locked,g=a("
  • "),h=a("
  • "),i=f?g:h,j=this.id(c);return d=this.opts.formatSelection(c,i.find("div"),this.opts.escapeMarkup),d!=b&&i.find("div").replaceWith(a("
    ").html(d)),e=this.opts.formatSelectionCssClass(c,i.find("div")),e!=b&&i.addClass(e),f&&i.find(".select2-search-choice-close").on("mousedown",p).on("click dblclick",this.bind(function(b){this.isInterfaceEnabled()&&(this.unselect(a(b.target)),this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus"),p(b),this.close(),this.focusSearch())})).on("focus",this.bind(function(){this.isInterfaceEnabled()&&(this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"))})),i.data("select2-data",c),i.insertBefore(this.searchContainer),j},unselect:function(b){var c,d,f=this.getVal();if(b=b.closest(".select2-search-choice"),0===b.length)throw"Invalid argument: "+b+". Must be .select2-search-choice";if(c=b.data("select2-data")){var g=a.Event("select2-removing");if(g.val=this.id(c),g.choice=c,this.opts.element.trigger(g),g.isDefaultPrevented())return!1;for(;(d=e(this.id(c),f))>=0;)f.splice(d,1),this.setVal(f),this.select&&this.postprocessResults();return b.remove(),this.opts.element.trigger({type:"select2-removed",val:this.id(c),choice:c}),this.triggerChange({removed:c}),!0}},postprocessResults:function(a,b,c){var d=this.getVal(),f=this.results.find(".select2-result"),g=this.results.find(".select2-result-with-children"),h=this;f.each2(function(a,b){var c=h.id(b.data("select2-data"));e(c,d)>=0&&(b.addClass("select2-selected"),b.find(".select2-result-selectable").addClass("select2-selected"))}),g.each2(function(a,b){b.is(".select2-result-selectable")||0!==b.find(".select2-result-selectable:not(.select2-selected)").length||b.addClass("select2-selected")}),-1==this.highlight()&&c!==!1&&this.opts.closeOnSelect===!0&&h.highlight(0),!this.opts.createSearchChoice&&!f.filter(".select2-result:not(.select2-selected)").length>0&&(!a||a&&!a.more&&0===this.results.find(".select2-no-results").length)&&y(h.opts.formatNoMatches,"formatNoMatches")&&this.results.append("
  • "+z(h.opts.formatNoMatches,h.opts.element,h.search.val())+"
  • ")},getMaxSearchWidth:function(){return this.selection.width()-i(this.search)},resizeSearch:function(){var a,b,c,d,e,f=i(this.search);a=r(this.search)+10,b=this.search.offset().left,c=this.selection.width(),d=this.selection.offset().left,e=c-(b-d)-f,a>e&&(e=c-f),40>e&&(e=c-f),0>=e&&(e=a),this.search.width(Math.floor(e))},getVal:function(){var a;return this.select?(a=this.select.val(),null===a?[]:a):(a=this.opts.element.val(),h(a,this.opts.separator,this.opts.transformVal))},setVal:function(b){if(this.select)this.select.val(b);else{var c=[],d={};a(b).each(function(){this in d||(c.push(this),d[this]=0)}),this.opts.element.val(0===c.length?"":c.join(this.opts.separator))}},buildChangeDetails:function(a,b){for(var b=b.slice(0),a=a.slice(0),c=0;c. Attach to instead.");this.search.width(0),this.searchContainer.hide()},onSortEnd:function(){var b=[],c=this;this.searchContainer.show(),this.searchContainer.appendTo(this.searchContainer.parent()),this.resizeSearch(),this.selection.find(".select2-search-choice").each(function(){b.push(c.opts.id(a(this).data("select2-data")))}),this.setVal(b),this.triggerChange()},data:function(b,c){var d,e,f=this;return 0===arguments.length?this.selection.children(".select2-search-choice").map(function(){return a(this).data("select2-data")}).get():(e=this.data(),b||(b=[]),d=a.map(b,function(a){return f.opts.id(a)}),this.setVal(d),this.updateSelection(b),this.clearSearch(),c&&this.triggerChange(this.buildChangeDetails(e,this.data())),void 0)}}),a.fn.select2=function(){var c,d,f,g,h,i=Array.prototype.slice.call(arguments,0),j=["val","destroy","opened","open","close","focus","isFocused","container","dropdown","onSortStart","onSortEnd","enable","disable","readonly","positionDropdown","data","search"],k=["opened","isFocused","container","dropdown"],l=["val","data"],m={search:"externalSearch"};return this.each(function(){if(0===i.length||"object"==typeof i[0])c=0===i.length?{}:a.extend({},i[0]),c.element=a(this),"select"===c.element.get(0).tagName.toLowerCase()?h=c.element.prop("multiple"):(h=c.multiple||!1,"tags"in c&&(c.multiple=h=!0)),d=h?new window.Select2["class"].multi:new window.Select2["class"].single,d.init(c);else{if("string"!=typeof i[0])throw"Invalid arguments to select2 plugin: "+i;if(e(i[0],j)<0)throw"Unknown method: "+i[0];if(g=b,d=a(this).data("select2"),d===b)return;if(f=i[0],"container"===f?g=d.container:"dropdown"===f?g=d.dropdown:(m[f]&&(f=m[f]),g=d[f].apply(d,i.slice(1))),e(i[0],k)>=0||e(i[0],l)>=0&&1==i.length)return!1}}),g===b?this:g},a.fn.select2.defaults={debug:!1,width:"copy",loadMorePadding:0,closeOnSelect:!0,openOnEnter:!0,containerCss:{},dropdownCss:{},containerCssClass:"",dropdownCssClass:"",formatResult:function(a,b,c,d){var e=[];return t(this.text(a),c.term,e,d),e.join("")},transformVal:function(b){return a.trim(b)},formatSelection:function(a,c,d){return a?d(this.text(a)):b},sortResults:function(a,b,c){return a},formatResultCssClass:function(a){return a.css},formatSelectionCssClass:function(a,c){return b},minimumResultsForSearch:0,minimumInputLength:0,maximumInputLength:null,maximumSelectionSize:0,id:function(a){return a==b?null:a.id},text:function(b){return b&&this.data&&this.data.text?a.isFunction(this.data.text)?this.data.text(b):b[this.data.text]:b.text},matcher:function(a,b){return d(""+b).toUpperCase().indexOf(d(""+a).toUpperCase())>=0},separator:",",tokenSeparators:[],tokenizer:B,escapeMarkup:u,blurOnChange:!1,selectOnBlur:!1,adaptContainerCssClass:function(a){return a},adaptDropdownCssClass:function(a){return null},nextSearchTerm:function(a,c){return b},searchInputPlaceholder:"",createSearchChoicePosition:"top",shouldFocusInput:function(a){var b="ontouchstart"in window||navigator.msMaxTouchPoints>0;return b&&a.opts.minimumResultsForSearch<0?!1:!0}},a.fn.select2.locales=[],a.fn.select2.locales.en={formatMatches:function(a){ -return 1===a?"One result is available, press enter to select it.":a+" results are available, use up and down arrow keys to navigate."},formatNoMatches:function(){return"No matches found"},formatAjaxError:function(a,b,c){return"Loading failed"},formatInputTooShort:function(a,b){var c=b-a.length;return"Please enter "+c+" or more character"+(1==c?"":"s")},formatInputTooLong:function(a,b){var c=a.length-b;return"Please delete "+c+" character"+(1==c?"":"s")},formatSelectionTooBig:function(a){return"You can only select "+a+" item"+(1==a?"":"s")},formatLoadMore:function(a){return"Loading more results…"},formatSearching:function(){return"Searching…"}},a.extend(a.fn.select2.defaults,a.fn.select2.locales.en),a.fn.select2.ajaxDefaults={transport:a.ajax,params:{type:"GET",cache:!1,dataType:"json"}},window.Select2={query:{ajax:v,local:w,tags:x},util:{debounce:l,markMatch:t,escapeMarkup:u,stripDiacritics:d},"class":{"abstract":E,single:F,multi:G}}}}(jQuery); \ No newline at end of file +var d=this.findHighlightableChoices();this.highlight(d.index(c))}else 0==c.length&&this.removeHighlight()},loadMoreIfNeeded:function(){var a,b=this.results,c=b.find("li.select2-more-results"),d=this.resultsPage+1,e=this,f=this.search.val(),g=this.context;0!==c.length&&(a=c.offset().top-b.offset().top-b.height(),a<=this.opts.loadMorePadding&&(c.addClass("select2-active"),this.opts.query({element:this.opts.element,term:f,page:d,context:g,matcher:this.opts.matcher,callback:this.bind(function(a){e.opened()&&(e.opts.populateResults.call(this,b,a.results,{term:f,page:d,context:g}),e.postprocessResults(a,!1,!1),a.more===!0?(c.detach().appendTo(b).html(e.opts.escapeMarkup(z(e.opts.formatLoadMore,e.opts.element,d+1))),window.setTimeout(function(){e.loadMoreIfNeeded()},10)):c.remove(),e.positionDropdown(),e.resultsPage=d,e.context=a.context,this.opts.element.trigger({type:"select2-loaded",items:a}))})})))},tokenize:function(){},updateResults:function(c){function d(){j.removeClass("select2-active"),m.positionDropdown(),k.find(".select2-no-results,.select2-selection-limit,.select2-searching").length?m.liveRegion.text(k.text()):m.liveRegion.text(m.opts.formatMatches(k.find('.select2-result-selectable:not(".select2-selected")').length))}function e(a){k.html(a),d()}var f,h,i,j=this.search,k=this.results,l=this.opts,m=this,n=j.val(),o=a.data(this.container,"select2-last-term");if((c===!0||!o||!g(n,o))&&(a.data(this.container,"select2-last-term",n),c===!0||this.showSearchInput!==!1&&this.opened())){i=++this.queryCount;var p=this.getMaximumSelectionSize();if(p>=1&&(f=this.data(),a.isArray(f)&&f.length>=p&&y(l.formatSelectionTooBig,"formatSelectionTooBig")))return void e("
  • "+z(l.formatSelectionTooBig,l.element,p)+"
  • ");if(j.val().length"+z(l.formatInputTooShort,l.element,j.val(),l.minimumInputLength)+"":""),void(c&&this.showSearch&&this.showSearch(!0));if(l.maximumInputLength&&j.val().length>l.maximumInputLength)return void e(y(l.formatInputTooLong,"formatInputTooLong")?"
  • "+z(l.formatInputTooLong,l.element,j.val(),l.maximumInputLength)+"
  • ":"");l.formatSearching&&0===this.findHighlightableChoices().length&&e("
  • "+z(l.formatSearching,l.element)+"
  • "),j.addClass("select2-active"),this.removeHighlight(),h=this.tokenize(),h!=b&&null!=h&&j.val(h),this.resultsPage=1,l.query({element:l.element,term:j.val(),page:this.resultsPage,context:null,matcher:l.matcher,callback:this.bind(function(f){var h;if(i==this.queryCount){if(!this.opened())return void this.search.removeClass("select2-active");if(f.hasError!==b&&y(l.formatAjaxError,"formatAjaxError"))return void e("
  • "+z(l.formatAjaxError,l.element,f.jqXHR,f.textStatus,f.errorThrown)+"
  • ");if(this.context=f.context===b?null:f.context,this.opts.createSearchChoice&&""!==j.val()&&(h=this.opts.createSearchChoice.call(m,j.val(),f.results),h!==b&&null!==h&&m.id(h)!==b&&null!==m.id(h)&&0===a(f.results).filter(function(){return g(m.id(this),m.id(h))}).length&&this.opts.createSearchChoicePosition(f.results,h)),0===f.results.length&&y(l.formatNoMatches,"formatNoMatches"))return e("
  • "+z(l.formatNoMatches,l.element,j.val())+"
  • "),void(this.showSearch&&this.showSearch(j.val()));k.empty(),m.opts.populateResults.call(this,k,f.results,{term:j.val(),page:this.resultsPage,context:null}),f.more===!0&&y(l.formatLoadMore,"formatLoadMore")&&(k.append("
  • "+l.escapeMarkup(z(l.formatLoadMore,l.element,this.resultsPage))+"
  • "),window.setTimeout(function(){m.loadMoreIfNeeded()},10)),this.postprocessResults(f,c),d(),this.opts.element.trigger({type:"select2-loaded",items:f})}})})}},cancel:function(){this.close()},blur:function(){this.opts.selectOnBlur&&this.selectHighlighted({noFocus:!0}),this.close(),this.container.removeClass("select2-container-active"),this.search[0]===document.activeElement&&this.search.blur(),this.clearSearch(),this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus")},focusSearch:function(){n(this.search)},selectHighlighted:function(a){if(this._touchMoved)return void this.clearTouchMoved();var b=this.highlight(),c=this.results.find(".select2-highlighted"),d=c.closest(".select2-result").data("select2-data");d?(this.highlight(b),this.onSelect(d,a)):a&&a.noFocus&&this.close()},getPlaceholder:function(){var a;return this.opts.element.attr("placeholder")||this.opts.element.attr("data-placeholder")||this.opts.element.data("placeholder")||this.opts.placeholder||((a=this.getPlaceholderOption())!==b?a.text():b)},getPlaceholderOption:function(){if(this.select){var c=this.select.children("option").first();if(this.opts.placeholderOption!==b)return"first"===this.opts.placeholderOption&&c||"function"==typeof this.opts.placeholderOption&&this.opts.placeholderOption(this.select);if(""===a.trim(c.text())&&""===c.val())return c}},initContainerWidth:function(){function b(){var b,c,d,e,f,g;if("off"===this.opts.width)return null;if("element"===this.opts.width)return 0===this.opts.element.outerWidth(!1)?"auto":this.opts.element.outerWidth(!1)+"px";if("copy"===this.opts.width||"resolve"===this.opts.width){if(b=this.opts.element.attr("style"),"string"==typeof b)for(c=b.split(";"),e=0,f=c.length;f>e;e+=1)if(g=c[e].replace(/\s/g,""),d=g.match(/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i),null!==d&&d.length>=1)return d[1];return"resolve"===this.opts.width?(b=this.opts.element.css("width"),b.indexOf("%")>0?b:0===this.opts.element.outerWidth(!1)?"auto":this.opts.element.outerWidth(!1)+"px"):null}return a.isFunction(this.opts.width)?this.opts.width():this.opts.width}var c=b.call(this);null!==c&&this.container.css("width",c)}}),F=D(E,{createContainer:function(){var b=a(document.createElement("div")).attr({"class":"select2-container"}).html(["","  "," ","","","","
    "," ","
      ","
    ","
    "].join(""));return b},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.focusser.prop("disabled",!this.isInterfaceEnabled())},opening:function(){var b,c,d;this.opts.minimumResultsForSearch>=0&&this.showSearch(!0),this.parent.opening.apply(this,arguments),this.showSearchInput!==!1&&this.search.val(this.focusser.val()),this.opts.shouldFocusInput(this)&&(this.search.focus(),b=this.search.get(0),b.createTextRange?(c=b.createTextRange(),c.collapse(!1),c.select()):b.setSelectionRange&&(d=this.search.val().length,b.setSelectionRange(d,d))),this.prefillNextSearchTerm(),this.focusser.prop("disabled",!0).val(""),this.updateResults(!0),this.opts.element.trigger(a.Event("select2-open"))},close:function(){this.opened()&&(this.parent.close.apply(this,arguments),this.focusser.prop("disabled",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus())},focus:function(){this.opened()?this.close():(this.focusser.prop("disabled",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus())},isFocused:function(){return this.container.hasClass("select2-container-active")},cancel:function(){this.parent.cancel.apply(this,arguments),this.focusser.prop("disabled",!1),this.opts.shouldFocusInput(this)&&this.focusser.focus()},destroy:function(){a("label[for='"+this.focusser.attr("id")+"']").attr("for",this.opts.element.attr("id")),this.parent.destroy.apply(this,arguments),C.call(this,"selection","focusser")},initContainer:function(){var b,d,e=this.container,f=this.dropdown,g=H();this.opts.minimumResultsForSearch<0?this.showSearch(!1):this.showSearch(!0),this.selection=b=e.find(".select2-choice"),this.focusser=e.find(".select2-focusser"),b.find(".select2-chosen").attr("id","select2-chosen-"+g),this.focusser.attr("aria-labelledby","select2-chosen-"+g),this.results.attr("id","select2-results-"+g),this.search.attr("aria-owns","select2-results-"+g),this.focusser.attr("id","s2id_autogen"+g),d=a("label[for='"+this.opts.element.attr("id")+"']"),this.opts.element.on("focus.select2",this.bind(function(){this.focus()})),this.focusser.prev().text(d.text()).attr("for",this.focusser.attr("id"));var h=this.opts.element.attr("title");this.opts.element.attr("title",h||d.text()),this.focusser.attr("tabindex",this.elementTabIndex),this.search.attr("id",this.focusser.attr("id")+"_search"),this.search.prev().text(a("label[for='"+this.focusser.attr("id")+"']").text()).attr("for",this.search.attr("id")),this.search.on("keydown",this.bind(function(a){if(this.isInterfaceEnabled()&&229!=a.keyCode){if(a.which===M.PAGE_UP||a.which===M.PAGE_DOWN)return void p(a);switch(a.which){case M.UP:case M.DOWN:return this.moveHighlight(a.which===M.UP?-1:1),void p(a);case M.ENTER:return this.selectHighlighted(),void p(a);case M.TAB:return void this.selectHighlighted({noFocus:!0});case M.ESC:return this.cancel(a),void p(a)}}})),this.search.on("blur",this.bind(function(a){document.activeElement===this.body.get(0)&&window.setTimeout(this.bind(function(){this.opened()&&this.results&&this.results.length>1&&this.search.focus()}),0)})),this.focusser.on("keydown",this.bind(function(a){if(this.isInterfaceEnabled()&&a.which!==M.TAB&&!M.isControl(a)&&!M.isFunctionKey(a)&&a.which!==M.ESC){if(this.opts.openOnEnter===!1&&a.which===M.ENTER)return void p(a);if(a.which==M.DOWN||a.which==M.UP||a.which==M.ENTER&&this.opts.openOnEnter){if(a.altKey||a.ctrlKey||a.shiftKey||a.metaKey)return;return this.open(),void p(a)}return a.which==M.DELETE||a.which==M.BACKSPACE?(this.opts.allowClear&&this.clear(),void p(a)):void 0}})),j(this.focusser),this.focusser.on("keyup-change input",this.bind(function(a){if(this.opts.minimumResultsForSearch>=0){if(a.stopPropagation(),this.opened())return;this.open()}})),b.on("mousedown touchstart","abbr",this.bind(function(a){this.isInterfaceEnabled()&&(this.clear(),q(a),this.close(),this.selection&&this.selection.focus())})),this.supportsTouchEvents?b.on("mousedown touchstart",this.bind(function(d){c(b),this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.opened()?this.close():this.isInterfaceEnabled()&&this.open(),p(d)})):b.on("mousedown",this.bind(function(d){c(b),this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.opened()?this.close():this.isInterfaceEnabled()&&this.open(),p(d)})),f.on("mousedown touchstart",this.bind(function(){this.opts.shouldFocusInput(this)&&this.search.focus()})),b.on("focus",this.bind(function(a){p(a)})),this.focusser.on("focus",this.bind(function(){this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active")})).on("blur",this.bind(function(){this.opened()||(this.container.removeClass("select2-container-active"),this.opts.element.trigger(a.Event("select2-blur")))})),this.search.on("focus",this.bind(function(){this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active")})),this.initContainerWidth(),this.opts.element.hide(),this.setPlaceholder()},clear:function(b){var c=this.selection.data("select2-data");if(c){var d=a.Event("select2-clearing");if(this.opts.element.trigger(d),d.isDefaultPrevented())return;var e=this.getPlaceholderOption();this.opts.element.val(e?e.val():""),this.selection.find(".select2-chosen").empty(),this.selection.removeData("select2-data"),this.setPlaceholder(),b!==!1&&(this.opts.element.trigger({type:"select2-removed",val:this.id(c),choice:c}),this.triggerChange({removed:c}))}},initSelection:function(){if(this.isPlaceholderOptionSelected())this.updateSelection(null),this.close(),this.setPlaceholder();else{var a=this;this.opts.initSelection.call(null,this.opts.element,function(c){c!==b&&null!==c&&(a.updateSelection(c),a.close(),a.setPlaceholder(),a.lastSearchTerm=a.search.val())})}},isPlaceholderOptionSelected:function(){var a;return this.getPlaceholder()===b?!1:(a=this.getPlaceholderOption())!==b&&a.prop("selected")||""===this.opts.element.val()||this.opts.element.val()===b||null===this.opts.element.val()},prepareOpts:function(){var b=this.parent.prepareOpts.apply(this,arguments),c=this;return"select"===b.element.get(0).tagName.toLowerCase()?b.initSelection=function(a,b){var d=a.find("option").filter(function(){return this.selected&&!this.disabled});b(c.optionToData(d))}:"data"in b&&(b.initSelection=b.initSelection||function(c,d){var e=c.val(),f=null;b.query({matcher:function(a,c,d){var h=g(e,b.id(d));return h&&(f=d),h},callback:a.isFunction(d)?function(){d(f)}:a.noop})}),b},getPlaceholder:function(){return this.select&&this.getPlaceholderOption()===b?b:this.parent.getPlaceholder.apply(this,arguments)},setPlaceholder:function(){var a=this.getPlaceholder();if(this.isPlaceholderOptionSelected()&&a!==b){if(this.select&&this.getPlaceholderOption()===b)return;this.selection.find(".select2-chosen").html(this.opts.escapeMarkup(a)),this.selection.addClass("select2-default"),this.container.removeClass("select2-allowclear")}},postprocessResults:function(a,b,c){var d=0,e=this;if(this.findHighlightableChoices().each2(function(a,b){return g(e.id(b.data("select2-data")),e.opts.element.val())?(d=a,!1):void 0}),c!==!1&&(b===!0&&d>=0?this.highlight(d):this.highlight(0)),b===!0){var f=this.opts.minimumResultsForSearch;f>=0&&this.showSearch(A(a.results)>=f)}},showSearch:function(b){this.showSearchInput!==b&&(this.showSearchInput=b,this.dropdown.find(".select2-search").toggleClass("select2-search-hidden",!b),this.dropdown.find(".select2-search").toggleClass("select2-offscreen",!b),a(this.dropdown,this.container).toggleClass("select2-with-searchbox",b))},onSelect:function(a,b){if(this.triggerSelect(a)){var c=this.opts.element.val(),d=this.data();this.opts.element.val(this.id(a)),this.updateSelection(a),this.opts.element.trigger({type:"select2-selected",val:this.id(a),choice:a}),this.lastSearchTerm=this.search.val(),this.close(),b&&b.noFocus||!this.opts.shouldFocusInput(this)||this.focusser.focus(),g(c,this.id(a))||this.triggerChange({added:a,removed:d})}},updateSelection:function(a){var c,d,e=this.selection.find(".select2-chosen");this.selection.data("select2-data",a),e.empty(),null!==a&&(c=this.opts.formatSelection(a,e,this.opts.escapeMarkup)),c!==b&&e.append(c),d=this.opts.formatSelectionCssClass(a,e),d!==b&&e.addClass(d),this.selection.removeClass("select2-default"),this.opts.allowClear&&this.getPlaceholder()!==b&&this.container.addClass("select2-allowclear")},val:function(){var a,c=!1,d=null,e=this,f=this.data();if(0===arguments.length)return this.opts.element.val();if(a=arguments[0],arguments.length>1&&(c=arguments[1],this.opts.debug&&console&&console.warn&&console.warn('Select2: The second option to `select2("val")` is not supported in Select2 4.0.0. The `change` event will always be triggered in 4.0.0.')),this.select)this.opts.debug&&console&&console.warn&&console.warn('Select2: Setting the value on a "," ","","
    ","
      ","
    ","
    "].join(""));return b},prepareOpts:function(){var b=this.parent.prepareOpts.apply(this,arguments),c=this;return"select"===b.element.get(0).tagName.toLowerCase()?b.initSelection=function(a,b){var d=[];a.find("option").filter(function(){return this.selected&&!this.disabled}).each2(function(a,b){d.push(c.optionToData(b))}),b(d)}:"data"in b&&(b.initSelection=b.initSelection||function(c,d){var e=h(c.val(),b.separator,b.transformVal),f=[];b.query({matcher:function(c,d,h){var i=a.grep(e,function(a){return g(a,b.id(h))}).length;return i&&f.push(h),i},callback:a.isFunction(d)?function(){for(var a=[],c=0;c0||(this.selectChoice(null),this.clearPlaceholder(),this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.open(),this.focusSearch(),b.preventDefault()))})),this.container.on("focus",c,this.bind(function(){this.isInterfaceEnabled()&&(this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"),this.clearPlaceholder())})),this.initContainerWidth(),this.opts.element.hide(),this.clearSearch()},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.search.prop("disabled",!this.isInterfaceEnabled())},initSelection:function(){if(""===this.opts.element.val()&&""===this.opts.element.text()&&(this.updateSelection([]),this.close(),this.clearSearch()),this.select||""!==this.opts.element.val()){var a=this;this.opts.initSelection.call(null,this.opts.element,function(c){c!==b&&null!==c&&(a.updateSelection(c),a.close(),a.clearSearch())})}},clearSearch:function(){var a=this.getPlaceholder(),c=this.getMaxSearchWidth();a!==b&&0===this.getVal().length&&this.search.hasClass("select2-focused")===!1?(this.search.val(a).addClass("select2-default"),this.search.width(c>0?c:this.container.css("width"))):this.search.val("").width(10)},clearPlaceholder:function(){this.search.hasClass("select2-default")&&this.search.val("").removeClass("select2-default")},opening:function(){this.clearPlaceholder(),this.resizeSearch(),this.parent.opening.apply(this,arguments),this.focusSearch(),this.prefillNextSearchTerm(),this.updateResults(!0),this.opts.shouldFocusInput(this)&&this.search.focus(),this.opts.element.trigger(a.Event("select2-open"))},close:function(){this.opened()&&this.parent.close.apply(this,arguments)},focus:function(){this.close(),this.search.focus()},isFocused:function(){return this.search.hasClass("select2-focused")},updateSelection:function(b){var c={},d=[],e=this;a(b).each(function(){e.id(this)in c||(c[e.id(this)]=0,d.push(this))}),this.selection.find(".select2-search-choice").remove(),this.addSelectedChoice(d),e.postprocessResults()},tokenize:function(){var a=this.search.val();a=this.opts.tokenizer.call(this,a,this.data(),this.bind(this.onSelect),this.opts),null!=a&&a!=b&&(this.search.val(a),a.length>0&&this.open())},onSelect:function(a,b){this.triggerSelect(a)&&""!==a.text&&(this.addSelectedChoice(a),this.opts.element.trigger({type:"selected",val:this.id(a),choice:a}),this.lastSearchTerm=this.search.val(),this.clearSearch(),this.updateResults(),(this.select||!this.opts.closeOnSelect)&&this.postprocessResults(a,!1,this.opts.closeOnSelect===!0),this.opts.closeOnSelect?(this.close(),this.search.width(10)):this.countSelectableResults()>0?(this.search.width(10),this.resizeSearch(),this.getMaximumSelectionSize()>0&&this.val().length>=this.getMaximumSelectionSize()?this.updateResults(!0):this.prefillNextSearchTerm()&&this.updateResults(),this.positionDropdown()):(this.close(),this.search.width(10)),this.triggerChange({added:a}),b&&b.noFocus||this.focusSearch())},cancel:function(){this.close(),this.focusSearch()},addSelectedChoice:function(b){var c=this.getVal(),d=this;a(b).each(function(){c.push(d.createChoice(this))}),this.setVal(c)},createChoice:function(c){var d,e,f=!c.locked,g=a("
  • "),h=a("
  • "),i=f?g:h,j=this.id(c);return d=this.opts.formatSelection(c,i.find("div"),this.opts.escapeMarkup),d!=b&&i.find("div").replaceWith(a("
    ").html(d)),e=this.opts.formatSelectionCssClass(c,i.find("div")),e!=b&&i.addClass(e),f&&i.find(".select2-search-choice-close").on("mousedown",p).on("click dblclick",this.bind(function(b){this.isInterfaceEnabled()&&(this.unselect(a(b.target)),this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus"),p(b),this.close(),this.focusSearch())})).on("focus",this.bind(function(){this.isInterfaceEnabled()&&(this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"))})),i.data("select2-data",c),i.insertBefore(this.searchContainer),j},unselect:function(b){var c,d,f=this.getVal();if(b=b.closest(".select2-search-choice"),0===b.length)throw"Invalid argument: "+b+". Must be .select2-search-choice";if(c=b.data("select2-data")){var g=a.Event("select2-removing");if(g.val=this.id(c),g.choice=c,this.opts.element.trigger(g),g.isDefaultPrevented())return!1;for(;(d=e(this.id(c),f))>=0;)f.splice(d,1),this.setVal(f),this.select&&this.postprocessResults();return b.remove(),this.opts.element.trigger({type:"select2-removed",val:this.id(c),choice:c}),this.triggerChange({removed:c}),!0}},postprocessResults:function(a,b,c){var d=this.getVal(),f=this.results.find(".select2-result"),g=this.results.find(".select2-result-with-children"),h=this;f.each2(function(a,b){var c=h.id(b.data("select2-data"));e(c,d)>=0&&(b.addClass("select2-selected"),b.find(".select2-result-selectable").addClass("select2-selected"))}),g.each2(function(a,b){b.is(".select2-result-selectable")||0!==b.find(".select2-result-selectable:not(.select2-selected)").length||b.addClass("select2-selected")}),-1==this.highlight()&&c!==!1&&this.opts.closeOnSelect===!0&&h.highlight(0),!this.opts.createSearchChoice&&!f.filter(".select2-result:not(.select2-selected)").length>0&&(!a||a&&!a.more&&0===this.results.find(".select2-no-results").length)&&y(h.opts.formatNoMatches,"formatNoMatches")&&this.results.append("
  • "+z(h.opts.formatNoMatches,h.opts.element,h.search.val())+"
  • ")},getMaxSearchWidth:function(){return this.selection.width()-i(this.search)},resizeSearch:function(){var a,b,c,d,e,f=i(this.search);a=r(this.search)+10,b=this.search.offset().left,c=this.selection.width(),d=this.selection.offset().left,e=c-(b-d)-f,a>e&&(e=c-f),40>e&&(e=c-f),0>=e&&(e=a),this.search.width(Math.floor(e))},getVal:function(){var a;return this.select?(a=this.select.val(),null===a?[]:a):(a=this.opts.element.val(),h(a,this.opts.separator,this.opts.transformVal))},setVal:function(b){if(this.select)this.select.val(b);else{var c=[],d={};a(b).each(function(){this in d||(c.push(this),d[this]=0)}),this.opts.element.val(0===c.length?"":c.join(this.opts.separator))}},buildChangeDetails:function(a,b){for(var b=b.slice(0),a=a.slice(0),c=0;c. Attach to instead.");this.search.width(0),this.searchContainer.hide()},onSortEnd:function(){var b=[],c=this;this.searchContainer.show(),this.searchContainer.appendTo(this.searchContainer.parent()),this.resizeSearch(),this.selection.find(".select2-search-choice").each(function(){b.push(c.opts.id(a(this).data("select2-data")))}),this.setVal(b),this.triggerChange()},data:function(b,c){var d,e,f=this;return 0===arguments.length?this.selection.children(".select2-search-choice").map(function(){return a(this).data("select2-data")}).get():(e=this.data(),b||(b=[]),d=a.map(b,function(a){return f.opts.id(a)}),this.setVal(d),this.updateSelection(b),this.clearSearch(),c&&this.triggerChange(this.buildChangeDetails(e,this.data())),void 0)}}),a.fn.select2=function(){var c,d,f,g,h,i=Array.prototype.slice.call(arguments,0),j=["val","destroy","opened","open","close","focus","isFocused","container","dropdown","onSortStart","onSortEnd","enable","disable","readonly","positionDropdown","data","search"],k=["opened","isFocused","container","dropdown"],l=["val","data"],m={search:"externalSearch"};return this.each(function(){if(0===i.length||"object"==typeof i[0])c=0===i.length?{}:a.extend({},i[0]),c.element=a(this),"select"===c.element.get(0).tagName.toLowerCase()?h=c.element.prop("multiple"):(h=c.multiple||!1,"tags"in c&&(c.multiple=h=!0)),d=h?new window.Select2["class"].multi:new window.Select2["class"].single,d.init(c);else{if("string"!=typeof i[0])throw"Invalid arguments to select2 plugin: "+i;if(e(i[0],j)<0)throw"Unknown method: "+i[0];if(g=b,d=a(this).data("select2"),d===b)return;if(f=i[0],"container"===f?g=d.container:"dropdown"===f?g=d.dropdown:(m[f]&&(f=m[f]),g=d[f].apply(d,i.slice(1))),e(i[0],k)>=0||e(i[0],l)>=0&&1==i.length)return!1}}),g===b?this:g},a.fn.select2.defaults={debug:!1,width:"copy",loadMorePadding:0,closeOnSelect:!0,openOnEnter:!0,containerCss:{},dropdownCss:{},containerCssClass:"",dropdownCssClass:"",formatResult:function(a,b,c,d){var e=[];return t(this.text(a),c.term,e,d),e.join("")},transformVal:function(b){return a.trim(b)},formatSelection:function(a,c,d){return a?d(this.text(a)):b},sortResults:function(a,b,c){return a},formatResultCssClass:function(a){return a.css},formatSelectionCssClass:function(a,c){return b},minimumResultsForSearch:0,minimumInputLength:0,maximumInputLength:null,maximumSelectionSize:0,id:function(a){return a==b?null:a.id},text:function(b){return b&&this.data&&this.data.text?a.isFunction(this.data.text)?this.data.text(b):b[this.data.text]:b.text},matcher:function(a,b){return d(""+b).toUpperCase().indexOf(d(""+a).toUpperCase())>=0},separator:",",tokenSeparators:[],tokenizer:B,escapeMarkup:u,blurOnChange:!1,selectOnBlur:!1,adaptContainerCssClass:function(a){return a},adaptDropdownCssClass:function(a){return null},nextSearchTerm:function(a,c){return b},searchInputPlaceholder:"", +createSearchChoicePosition:"top",shouldFocusInput:function(a){var b="ontouchstart"in window||navigator.msMaxTouchPoints>0;return b&&a.opts.minimumResultsForSearch<0?!1:!0}},a.fn.select2.locales=[],a.fn.select2.locales.en={formatMatches:function(a){return 1===a?"One result is available, press enter to select it.":a+" results are available, use up and down arrow keys to navigate."},formatNoMatches:function(){return"No matches found"},formatAjaxError:function(a,b,c){return"Loading failed"},formatInputTooShort:function(a,b){var c=b-a.length;return"Please enter "+c+" or more character"+(1==c?"":"s")},formatInputTooLong:function(a,b){var c=a.length-b;return"Please delete "+c+" character"+(1==c?"":"s")},formatSelectionTooBig:function(a){return"You can only select "+a+" item"+(1==a?"":"s")},formatLoadMore:function(a){return"Loading more results…"},formatSearching:function(){return"Searching…"}},a.extend(a.fn.select2.defaults,a.fn.select2.locales.en),a.fn.select2.ajaxDefaults={transport:a.ajax,params:{type:"GET",cache:!1,dataType:"json"}},window.Select2={query:{ajax:v,local:w,tags:x},util:{debounce:l,markMatch:t,escapeMarkup:u,stripDiacritics:d},"class":{"abstract":E,single:F,multi:G}}}}(jQuery); \ No newline at end of file diff --git a/i18n/languages/woocommerce.pot b/i18n/languages/woocommerce.pot index fa0be7e6a82..aefcec82d4f 100644 --- a/i18n/languages/woocommerce.pot +++ b/i18n/languages/woocommerce.pot @@ -2,9 +2,9 @@ # This file is distributed under the same license as the WooCommerce package. msgid "" msgstr "" -"Project-Id-Version: WooCommerce 2.5.0-RC1\n" +"Project-Id-Version: WooCommerce 2.5.0\n" "Report-Msgid-Bugs-To: https://github.com/woothemes/woocommerce/issues\n" -"POT-Creation-Date: 2016-01-05 15:51:39+00:00\n" +"POT-Creation-Date: 2016-01-18 13:48:14+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -4861,7 +4861,7 @@ msgstr "" #: includes/abstracts/abstract-wc-order.php:1778 #: includes/abstracts/abstract-wc-product.php:1018 #: includes/abstracts/abstract-wc-product.php:1024 -#: includes/class-wc-cart.php:1577 includes/class-wc-product-variable.php:360 +#: includes/class-wc-cart.php:1605 includes/class-wc-product-variable.php:364 #: includes/class-wc-product-variation.php:318 msgid "Free!" msgstr "" @@ -4969,31 +4969,31 @@ msgstr "" #: includes/admin/views/html-bulk-edit-product.php:223 #: includes/admin/views/html-quick-edit-product.php:166 #: includes/class-wc-ajax.php:841 includes/class-wc-ajax.php:2438 -#: includes/class-wc-product-variation.php:537 -#: includes/class-wc-product-variation.php:547 -#: includes/class-wc-product-variation.php:563 +#: includes/class-wc-product-variation.php:539 +#: includes/class-wc-product-variation.php:549 +#: includes/class-wc-product-variation.php:565 msgid "In stock" msgstr "" #: includes/abstracts/abstract-wc-product.php:678 -#: includes/class-wc-product-variation.php:541 +#: includes/class-wc-product-variation.php:543 msgid "Only %s left in stock" msgstr "" #: includes/abstracts/abstract-wc-product.php:681 #: includes/abstracts/abstract-wc-product.php:692 -#: includes/class-wc-product-variation.php:544 -#: includes/class-wc-product-variation.php:554 +#: includes/class-wc-product-variation.php:546 +#: includes/class-wc-product-variation.php:556 msgid "(can be backordered)" msgstr "" #: includes/abstracts/abstract-wc-product.php:689 -#: includes/class-wc-product-variation.php:551 +#: includes/class-wc-product-variation.php:553 msgid "%s in stock" msgstr "" #: includes/abstracts/abstract-wc-product.php:701 -#: includes/class-wc-product-variation.php:560 templates/cart/cart.php:90 +#: includes/class-wc-product-variation.php:562 templates/cart/cart.php:90 msgid "Available on backorder" msgstr "" @@ -5006,8 +5006,8 @@ msgstr "" #: includes/admin/views/html-bulk-edit-product.php:224 #: includes/admin/views/html-quick-edit-product.php:167 #: includes/class-wc-ajax.php:842 includes/class-wc-ajax.php:2439 -#: includes/class-wc-product-variation.php:566 -#: includes/class-wc-product-variation.php:570 +#: includes/class-wc-product-variation.php:568 +#: includes/class-wc-product-variation.php:572 msgid "Out of stock" msgstr "" @@ -5026,15 +5026,15 @@ msgstr "" msgid "%s – %s" msgstr "" -#: includes/admin/class-wc-admin-addons.php:99 +#: includes/admin/class-wc-admin-addons.php:105 msgid "Need a fresh look? Try Storefront child themes" msgstr "" -#: includes/admin/class-wc-admin-addons.php:103 +#: includes/admin/class-wc-admin-addons.php:109 msgid "View more Storefront child themes" msgstr "" -#: includes/admin/class-wc-admin-addons.php:108 +#: includes/admin/class-wc-admin-addons.php:114 msgid "Need a theme? Try Storefront" msgstr "" @@ -5054,7 +5054,7 @@ msgstr "" #: includes/gateways/cheque/class-wc-gateway-cheque.php:67 #: includes/gateways/cod/class-wc-gateway-cod.php:75 #: includes/gateways/paypal/includes/settings-paypal.php:25 -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:198 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:200 #: includes/wc-template-functions.php:1083 msgid "Description" msgstr "" @@ -5103,19 +5103,19 @@ msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:136 #: includes/admin/settings/views/html-keys-edit.php:47 -#: includes/class-wc-auth.php:77 +#: includes/class-wc-auth.php:79 msgid "Read" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:137 #: includes/admin/settings/views/html-keys-edit.php:48 -#: includes/class-wc-auth.php:78 +#: includes/class-wc-auth.php:80 msgid "Write" msgstr "" #: includes/admin/class-wc-admin-api-keys-table-list.php:138 #: includes/admin/settings/views/html-keys-edit.php:49 -#: includes/class-wc-auth.php:79 +#: includes/class-wc-auth.php:81 msgid "Read/Write" msgstr "" @@ -5144,7 +5144,7 @@ msgstr "" #: includes/admin/class-wc-admin-api-keys.php:142 #: includes/admin/class-wc-admin-api-keys.php:157 #: includes/admin/class-wc-admin-notices.php:94 -#: includes/admin/class-wc-admin-settings.php:58 +#: includes/admin/class-wc-admin-settings.php:75 #: includes/admin/class-wc-admin-webhooks.php:128 #: includes/admin/class-wc-admin-webhooks.php:182 #: includes/admin/class-wc-admin-webhooks.php:262 @@ -5292,7 +5292,7 @@ msgstr "" #: includes/admin/class-wc-admin-attributes.php:435 #: includes/admin/class-wc-admin-attributes.php:476 #: includes/admin/class-wc-admin-post-types.php:219 -#: includes/admin/class-wc-admin-setup-wizard.php:493 +#: includes/admin/class-wc-admin-setup-wizard.php:502 #: includes/admin/class-wc-admin-webhooks-table-list.php:40 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:193 #: includes/admin/meta-boxes/views/html-product-attribute.php:12 @@ -5692,7 +5692,7 @@ msgid "Webhook Settings" msgstr "" #: includes/admin/class-wc-admin-help.php:73 -#: includes/admin/class-wc-admin-setup-wizard.php:640 +#: includes/admin/class-wc-admin-setup-wizard.php:649 msgid "PayPal Standard" msgstr "" @@ -5706,8 +5706,8 @@ msgid "Shipping Settings" msgstr "" #: includes/admin/class-wc-admin-help.php:85 -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:30 -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:70 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:38 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:78 msgid "Free Shipping" msgstr "" @@ -5719,7 +5719,7 @@ msgstr "" #: includes/admin/class-wc-admin-help.php:93 #: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:24 -#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:75 +#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:76 msgid "Local Pickup" msgstr "" @@ -5909,68 +5909,68 @@ msgstr "" msgid "WooCommerce Endpoints" msgstr "" -#: includes/admin/class-wc-admin-menus.php:269 +#: includes/admin/class-wc-admin-menus.php:272 msgid "Select All" msgstr "" -#: includes/admin/class-wc-admin-menus.php:272 +#: includes/admin/class-wc-admin-menus.php:275 msgid "Add to Menu" msgstr "" -#: includes/admin/class-wc-admin-menus.php:305 +#: includes/admin/class-wc-admin-menus.php:308 msgid "Visit Store" msgstr "" -#: includes/admin/class-wc-admin-meta-boxes.php:105 +#: includes/admin/class-wc-admin-meta-boxes.php:116 #: includes/admin/class-wc-admin-pointers.php:154 msgid "Product Short Description" msgstr "" -#: includes/admin/class-wc-admin-meta-boxes.php:106 +#: includes/admin/class-wc-admin-meta-boxes.php:117 #: includes/admin/views/html-bulk-edit-product.php:15 #: includes/admin/views/html-quick-edit-product.php:15 msgid "Product Data" msgstr "" -#: includes/admin/class-wc-admin-meta-boxes.php:107 +#: includes/admin/class-wc-admin-meta-boxes.php:118 msgid "Product Gallery" msgstr "" -#: includes/admin/class-wc-admin-meta-boxes.php:112 +#: includes/admin/class-wc-admin-meta-boxes.php:123 msgid "%s Data" msgstr "" -#: includes/admin/class-wc-admin-meta-boxes.php:113 +#: includes/admin/class-wc-admin-meta-boxes.php:124 msgid "%s Items" msgstr "" -#: includes/admin/class-wc-admin-meta-boxes.php:114 +#: includes/admin/class-wc-admin-meta-boxes.php:125 msgid "%s Notes" msgstr "" -#: includes/admin/class-wc-admin-meta-boxes.php:115 +#: includes/admin/class-wc-admin-meta-boxes.php:126 msgid "Downloadable Product Permissions" msgstr "" -#: includes/admin/class-wc-admin-meta-boxes.php:115 +#: includes/admin/class-wc-admin-meta-boxes.php:126 msgid "" "Note: Permissions for order items will automatically be granted when the " "order status changes to processing/completed." msgstr "" -#: includes/admin/class-wc-admin-meta-boxes.php:116 +#: includes/admin/class-wc-admin-meta-boxes.php:127 msgid "%s Actions" msgstr "" -#: includes/admin/class-wc-admin-meta-boxes.php:121 +#: includes/admin/class-wc-admin-meta-boxes.php:132 msgid "Coupon Data" msgstr "" -#: includes/admin/class-wc-admin-meta-boxes.php:126 +#: includes/admin/class-wc-admin-meta-boxes.php:137 msgid "Rating" msgstr "" -#: includes/admin/class-wc-admin-meta-boxes.php:162 +#: includes/admin/class-wc-admin-meta-boxes.php:173 #: includes/admin/settings/class-wc-settings-products.php:463 #: templates/single-product-reviews.php:34 msgid "Reviews" @@ -5982,7 +5982,7 @@ msgstr "" #: includes/class-wc-payment-gateways.php:51 #: includes/class-wc-payment-gateways.php:60 includes/class-wc-shipping.php:65 #: includes/class-wc-shipping.php:74 includes/emails/class-wc-email.php:682 -#: woocommerce.php:106 woocommerce.php:114 +#: woocommerce.php:126 woocommerce.php:134 msgid "Cheatin’ huh?" msgstr "" @@ -6357,7 +6357,7 @@ msgstr[0] "" msgstr[1] "" #: includes/admin/class-wc-admin-post-types.php:218 -#: includes/admin/class-wc-admin-taxonomies.php:300 +#: includes/admin/class-wc-admin-taxonomies.php:302 msgid "Image" msgstr "" @@ -6484,7 +6484,7 @@ msgstr "" #: includes/admin/class-wc-admin-post-types.php:276 #: includes/admin/meta-boxes/class-wc-meta-box-order-actions.php:43 #: includes/admin/meta-boxes/views/html-order-items.php:221 -#: includes/admin/reports/class-wc-report-customer-list.php:235 +#: includes/admin/reports/class-wc-report-customer-list.php:237 #: includes/admin/reports/class-wc-report-stock.php:168 msgid "Actions" msgstr "" @@ -6528,7 +6528,7 @@ msgstr "" #: includes/admin/class-wc-admin-post-types.php:712 #: includes/admin/class-wc-admin-post-types.php:714 #: includes/admin/class-wc-admin-post-types.php:716 -#: includes/admin/settings/class-wc-settings-checkout.php:312 +#: includes/admin/settings/class-wc-settings-checkout.php:316 #: includes/admin/settings/class-wc-settings-emails.php:269 #: includes/admin/settings/class-wc-settings-shipping.php:211 #: includes/admin/views/html-bulk-edit-product.php:205 @@ -6862,8 +6862,8 @@ msgstr "" #: includes/admin/class-wc-admin-profile.php:117 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:63 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:112 -#: includes/admin/settings/class-wc-settings-tax.php:165 -#: includes/admin/settings/views/html-settings-tax.php:20 +#: includes/admin/settings/class-wc-settings-tax.php:170 +#: includes/admin/settings/views/html-settings-tax.php:22 #: templates/cart/shipping-calculator.php:82 msgid "City" msgstr "" @@ -6872,19 +6872,18 @@ msgstr "" #: includes/admin/class-wc-admin-profile.php:121 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:67 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:116 -#: includes/class-wc-countries.php:597 includes/class-wc-countries.php:598 -#: includes/class-wc-countries.php:878 includes/class-wc-countries.php:879 +#: includes/class-wc-countries.php:595 includes/class-wc-countries.php:856 msgid "Postcode" msgstr "" #: includes/admin/class-wc-admin-profile.php:72 #: includes/admin/class-wc-admin-profile.php:125 -#: includes/admin/class-wc-admin-settings.php:557 -#: includes/admin/class-wc-admin-settings.php:582 -#: includes/admin/class-wc-admin-setup-wizard.php:490 +#: includes/admin/class-wc-admin-settings.php:574 +#: includes/admin/class-wc-admin-settings.php:599 +#: includes/admin/class-wc-admin-setup-wizard.php:499 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:71 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:120 -#: includes/class-wc-countries.php:508 +#: includes/class-wc-countries.php:509 msgid "Country" msgstr "" @@ -6892,7 +6891,7 @@ msgstr "" #: includes/admin/class-wc-admin-profile.php:129 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:75 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:124 -#: includes/wc-template-functions.php:1754 +#: includes/wc-template-functions.php:1761 #: templates/cart/shipping-calculator.php:38 msgid "Select a country…" msgstr "" @@ -6915,9 +6914,9 @@ msgstr "" #: includes/admin/class-wc-admin-profile.php:88 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:83 -#: includes/admin/reports/class-wc-report-customer-list.php:230 +#: includes/admin/reports/class-wc-report-customer-list.php:232 #: includes/admin/settings/class-wc-settings-emails.php:233 -#: includes/class-wc-emails.php:352 templates/single-product-reviews.php:75 +#: includes/class-wc-emails.php:350 templates/single-product-reviews.php:75 msgid "Email" msgstr "" @@ -6926,7 +6925,7 @@ msgid "Customer Shipping Address" msgstr "" #: includes/admin/class-wc-admin-reports.php:45 -#: includes/admin/reports/class-wc-report-customer-list.php:232 +#: includes/admin/reports/class-wc-report-customer-list.php:234 #: includes/class-wc-post-types.php:292 msgid "Orders" msgstr "" @@ -6980,43 +6979,43 @@ msgstr "" msgid "Taxes by date" msgstr "" -#: includes/admin/class-wc-admin-settings.php:69 +#: includes/admin/class-wc-admin-settings.php:86 msgid "Your settings have been saved." msgstr "" -#: includes/admin/class-wc-admin-settings.php:127 +#: includes/admin/class-wc-admin-settings.php:144 msgid "The changes you made will be lost if you navigate away from this page." msgstr "" -#: includes/admin/class-wc-admin-settings.php:499 +#: includes/admin/class-wc-admin-settings.php:516 msgid "" "The settings of this image size have been disabled because its values are " "being overwritten by a filter." msgstr "" -#: includes/admin/class-wc-admin-settings.php:508 +#: includes/admin/class-wc-admin-settings.php:525 msgid "Hard Crop?" msgstr "" -#: includes/admin/class-wc-admin-settings.php:535 +#: includes/admin/class-wc-admin-settings.php:552 msgid "Select a page…" msgstr "" -#: includes/admin/class-wc-admin-settings.php:557 -#: includes/admin/class-wc-admin-setup-wizard.php:299 +#: includes/admin/class-wc-admin-settings.php:574 +#: includes/admin/class-wc-admin-setup-wizard.php:300 msgid "Choose a country…" msgstr "" -#: includes/admin/class-wc-admin-settings.php:582 +#: includes/admin/class-wc-admin-settings.php:599 msgid "Choose countries…" msgstr "" -#: includes/admin/class-wc-admin-settings.php:590 +#: includes/admin/class-wc-admin-settings.php:607 #: includes/admin/meta-boxes/views/html-product-attribute.php:40 msgid "Select all" msgstr "" -#: includes/admin/class-wc-admin-settings.php:590 +#: includes/admin/class-wc-admin-settings.php:607 #: includes/admin/meta-boxes/views/html-product-attribute.php:41 msgid "Select none" msgstr "" @@ -7039,7 +7038,7 @@ msgid "Shipping & Tax" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:79 -#: includes/admin/class-wc-admin-setup-wizard.php:634 +#: includes/admin/class-wc-admin-setup-wizard.php:643 msgid "Payments" msgstr "" @@ -7119,137 +7118,143 @@ msgid "" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:257 -#: includes/admin/class-wc-admin-setup-wizard.php:366 -#: includes/admin/class-wc-admin-setup-wizard.php:523 -#: includes/admin/class-wc-admin-setup-wizard.php:676 +#: includes/admin/class-wc-admin-setup-wizard.php:373 +#: includes/admin/class-wc-admin-setup-wizard.php:532 +#: includes/admin/class-wc-admin-setup-wizard.php:685 msgid "Continue" msgstr "" #: includes/admin/class-wc-admin-setup-wizard.php:258 -#: includes/admin/class-wc-admin-setup-wizard.php:367 -#: includes/admin/class-wc-admin-setup-wizard.php:524 -#: includes/admin/class-wc-admin-setup-wizard.php:677 +#: includes/admin/class-wc-admin-setup-wizard.php:374 +#: includes/admin/class-wc-admin-setup-wizard.php:533 +#: includes/admin/class-wc-admin-setup-wizard.php:686 msgid "Skip this step" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:293 +#: includes/admin/class-wc-admin-setup-wizard.php:294 msgid "Store Locale Setup" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:297 +#: includes/admin/class-wc-admin-setup-wizard.php:298 msgid "Where is your store based?" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:305 +#: includes/admin/class-wc-admin-setup-wizard.php:306 msgid "Which currency will your store use?" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:307 #: includes/admin/class-wc-admin-setup-wizard.php:308 +#: includes/admin/class-wc-admin-setup-wizard.php:309 msgid "Choose a currency…" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:315 +#: includes/admin/class-wc-admin-setup-wizard.php:316 msgid "If your currency is not listed you can %sadd it later%s." msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:319 +#: includes/admin/class-wc-admin-setup-wizard.php:320 #: includes/admin/settings/class-wc-settings-general.php:137 #: includes/admin/views/html-admin-page-status-report.php:421 msgid "Currency Position" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:322 +#: includes/admin/class-wc-admin-setup-wizard.php:323 #: includes/admin/settings/class-wc-settings-general.php:145 msgid "Left" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:323 +#: includes/admin/class-wc-admin-setup-wizard.php:324 #: includes/admin/settings/class-wc-settings-general.php:146 msgid "Right" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:324 +#: includes/admin/class-wc-admin-setup-wizard.php:325 #: includes/admin/settings/class-wc-settings-general.php:147 msgid "Left with space" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:325 +#: includes/admin/class-wc-admin-setup-wizard.php:326 #: includes/admin/settings/class-wc-settings-general.php:148 msgid "Right with space" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:330 +#: includes/admin/class-wc-admin-setup-wizard.php:331 #: includes/admin/settings/class-wc-settings-general.php:154 #: includes/admin/views/html-admin-page-status-report.php:426 msgid "Thousand Separator" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:336 +#: includes/admin/class-wc-admin-setup-wizard.php:337 #: includes/admin/settings/class-wc-settings-general.php:164 #: includes/admin/views/html-admin-page-status-report.php:431 msgid "Decimal Separator" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:342 +#: includes/admin/class-wc-admin-setup-wizard.php:343 +#: includes/admin/settings/class-wc-settings-general.php:174 +#: includes/admin/views/html-admin-page-status-report.php:436 +msgid "Number of Decimals" +msgstr "" + +#: includes/admin/class-wc-admin-setup-wizard.php:349 msgid "Which unit should be used for product weights?" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:345 +#: includes/admin/class-wc-admin-setup-wizard.php:352 #: includes/admin/settings/class-wc-settings-products.php:431 msgid "kg" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:346 +#: includes/admin/class-wc-admin-setup-wizard.php:353 #: includes/admin/settings/class-wc-settings-products.php:432 msgid "g" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:347 +#: includes/admin/class-wc-admin-setup-wizard.php:354 #: includes/admin/settings/class-wc-settings-products.php:433 msgid "lbs" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:348 +#: includes/admin/class-wc-admin-setup-wizard.php:355 #: includes/admin/settings/class-wc-settings-products.php:434 msgid "oz" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:353 +#: includes/admin/class-wc-admin-setup-wizard.php:360 msgid "Which unit should be used for product dimensions?" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:356 +#: includes/admin/class-wc-admin-setup-wizard.php:363 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:195 #: includes/admin/settings/class-wc-settings-products.php:448 msgid "m" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:357 +#: includes/admin/class-wc-admin-setup-wizard.php:364 #: includes/admin/settings/class-wc-settings-products.php:449 msgid "cm" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:358 +#: includes/admin/class-wc-admin-setup-wizard.php:365 #: includes/admin/settings/class-wc-settings-products.php:450 msgid "mm" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:359 +#: includes/admin/class-wc-admin-setup-wizard.php:366 #: includes/admin/settings/class-wc-settings-products.php:451 msgid "in" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:360 +#: includes/admin/class-wc-admin-setup-wizard.php:367 #: includes/admin/settings/class-wc-settings-products.php:452 msgid "yd" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:417 +#: includes/admin/class-wc-admin-setup-wizard.php:426 msgid "Shipping & Tax Setup" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:419 +#: includes/admin/class-wc-admin-setup-wizard.php:428 msgid "" "If you will be charging sales tax, or shipping physical goods to customers, " "you can configure the basic options below. This is optional and can be " @@ -7257,146 +7262,146 @@ msgid "" "> Settings > Shipping%3$s." msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:423 +#: includes/admin/class-wc-admin-setup-wizard.php:432 msgid "Basic Shipping Setup" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:427 +#: includes/admin/class-wc-admin-setup-wizard.php:436 msgid "Will you be shipping products?" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:430 +#: includes/admin/class-wc-admin-setup-wizard.php:439 msgid "Yes, I will be shipping physical goods to customers" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:434 +#: includes/admin/class-wc-admin-setup-wizard.php:443 msgid "Domestic shipping costs:" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:436 -#: includes/admin/class-wc-admin-setup-wizard.php:442 +#: includes/admin/class-wc-admin-setup-wizard.php:445 +#: includes/admin/class-wc-admin-setup-wizard.php:451 msgid "A total of %s per order and/or %s per item" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:440 +#: includes/admin/class-wc-admin-setup-wizard.php:449 msgid "International shipping costs:" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:447 +#: includes/admin/class-wc-admin-setup-wizard.php:456 msgid "Basic Tax Setup" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:451 +#: includes/admin/class-wc-admin-setup-wizard.php:460 msgid "Will you be charging sales tax?" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:454 +#: includes/admin/class-wc-admin-setup-wizard.php:463 msgid "Yes, I will be charging sales tax" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:458 +#: includes/admin/class-wc-admin-setup-wizard.php:467 msgid "How will you enter product prices?" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:460 +#: includes/admin/class-wc-admin-setup-wizard.php:469 msgid "I will enter prices inclusive of tax" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:461 +#: includes/admin/class-wc-admin-setup-wizard.php:470 msgid "I will enter prices exclusive of tax" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:483 +#: includes/admin/class-wc-admin-setup-wizard.php:492 msgid "Import Tax Rates?" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:485 +#: includes/admin/class-wc-admin-setup-wizard.php:494 msgid "Yes, please import some starter tax rates" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:491 -#: includes/class-wc-countries.php:601 includes/class-wc-countries.php:872 +#: includes/admin/class-wc-admin-setup-wizard.php:500 +#: includes/class-wc-countries.php:598 includes/class-wc-countries.php:851 msgid "State" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:492 +#: includes/admin/class-wc-admin-setup-wizard.php:501 msgid "Rate (%)" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:494 +#: includes/admin/class-wc-admin-setup-wizard.php:503 msgid "Tax Shipping" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:513 +#: includes/admin/class-wc-admin-setup-wizard.php:522 msgid "" "Please note: you may still need to add local and product specific tax rates " "depending on your business location. If in doubt, speak to an accountant." msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:515 +#: includes/admin/class-wc-admin-setup-wizard.php:524 msgid "" "You can edit tax rates later from the %1$stax settings%3$s screen and read " "more about taxes in %2$sour documentation%3$s." msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:636 +#: includes/admin/class-wc-admin-setup-wizard.php:645 msgid "" "WooCommerce can accept both online and offline payments. %2$sAdditional " "payment methods%3$s can be installed later and managed from the " "%1$scheckout settings%3$s screen." msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:641 +#: includes/admin/class-wc-admin-setup-wizard.php:650 msgid "" "To accept payments via PayPal on your store, simply enter your PayPal email " "address below." msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:645 +#: includes/admin/class-wc-admin-setup-wizard.php:654 msgid "PayPal Email Address:" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:652 +#: includes/admin/class-wc-admin-setup-wizard.php:661 msgid "Offline Payments" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:653 +#: includes/admin/class-wc-admin-setup-wizard.php:662 msgid "" "Offline gateways require manual processing, but can be useful in certain " "circumstances or for testing payments." msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:657 +#: includes/admin/class-wc-admin-setup-wizard.php:666 msgid "Cheque Payments" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:659 +#: includes/admin/class-wc-admin-setup-wizard.php:668 msgid "Enable payment via Cheques" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:663 +#: includes/admin/class-wc-admin-setup-wizard.php:672 #: includes/gateways/cod/class-wc-gateway-cod.php:26 #: includes/gateways/cod/class-wc-gateway-cod.php:71 msgid "Cash on Delivery" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:665 +#: includes/admin/class-wc-admin-setup-wizard.php:674 msgid "Enable cash on delivery" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:669 +#: includes/admin/class-wc-admin-setup-wizard.php:678 msgid "Bank Transfer (BACS)" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:671 +#: includes/admin/class-wc-admin-setup-wizard.php:680 msgid "Enable BACS payments" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:738 +#: includes/admin/class-wc-admin-setup-wizard.php:747 msgid "Your Store is Ready!" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:742 +#: includes/admin/class-wc-admin-setup-wizard.php:751 #: includes/admin/views/html-notice-tracking.php:11 msgid "" "Want to help make WooCommerce even more awesome? Allow WooThemes to collect " @@ -7404,7 +7409,7 @@ msgid "" "your next WooThemes purchase. %sFind out more%s." msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:744 +#: includes/admin/class-wc-admin-setup-wizard.php:753 #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:328 #: includes/admin/views/html-bulk-edit-product.php:284 #: includes/admin/views/html-notice-tracking.php:13 @@ -7413,35 +7418,35 @@ msgstr "" msgid "Allow" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:745 +#: includes/admin/class-wc-admin-setup-wizard.php:754 msgid "No thanks" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:752 +#: includes/admin/class-wc-admin-setup-wizard.php:761 msgid "Next Steps" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:754 +#: includes/admin/class-wc-admin-setup-wizard.php:763 msgid "Create your first product!" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:758 +#: includes/admin/class-wc-admin-setup-wizard.php:767 msgid "Learn More" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:760 +#: includes/admin/class-wc-admin-setup-wizard.php:769 msgid "Watch the WC 101 video walkthroughs" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:761 +#: includes/admin/class-wc-admin-setup-wizard.php:770 msgid "Get eCommerce advice in your inbox" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:762 +#: includes/admin/class-wc-admin-setup-wizard.php:771 msgid "Follow Sidekick interactive walkthroughs" msgstr "" -#: includes/admin/class-wc-admin-setup-wizard.php:763 +#: includes/admin/class-wc-admin-setup-wizard.php:772 msgid "Read more about getting started" msgstr "" @@ -7624,7 +7629,7 @@ msgstr "" #: includes/admin/class-wc-admin-taxonomies.php:102 #: includes/admin/class-wc-admin-taxonomies.php:192 -#: includes/admin/class-wc-admin-taxonomies.php:331 +#: includes/admin/class-wc-admin-taxonomies.php:333 msgid "Thumbnail" msgstr "" @@ -7643,7 +7648,7 @@ msgstr "" msgid "Use image" msgstr "" -#: includes/admin/class-wc-admin-taxonomies.php:274 +#: includes/admin/class-wc-admin-taxonomies.php:276 msgid "" "Product categories for your store can be managed here. To change the order " "of categories on the front-end you can drag and drop to sort them. To see " @@ -7651,14 +7656,14 @@ msgid "" "page." msgstr "" -#: includes/admin/class-wc-admin-taxonomies.php:281 +#: includes/admin/class-wc-admin-taxonomies.php:283 msgid "" "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." msgstr "" -#: includes/admin/class-wc-admin-taxonomies.php:288 +#: includes/admin/class-wc-admin-taxonomies.php:290 msgid "" "Attribute terms can be assigned to products and " "variations.

    Note: Deleting a term will remove it from all " @@ -8086,18 +8091,18 @@ msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:43 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:92 -#: includes/class-wc-countries.php:492 includes/class-wc-form-handler.php:177 +#: includes/class-wc-countries.php:493 includes/class-wc-form-handler.php:177 msgid "First Name" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:47 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:96 -#: includes/class-wc-countries.php:497 includes/class-wc-form-handler.php:178 +#: includes/class-wc-countries.php:498 includes/class-wc-form-handler.php:178 msgid "Last Name" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:86 -#: includes/class-wc-countries.php:974 +#: includes/class-wc-countries.php:949 msgid "Phone" msgstr "" @@ -8152,7 +8157,7 @@ msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:254 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:337 #: includes/admin/meta-boxes/class-wc-meta-box-order-data.php:339 -#: includes/class-wc-countries.php:513 +#: includes/class-wc-countries.php:514 msgid "Address" msgstr "" @@ -8167,7 +8172,7 @@ msgstr "" #: includes/admin/settings/views/settings-tax.php:103 #: includes/shipping/flat-rate/includes/settings-flat-rate.php:82 #: includes/shipping/flat-rate/includes/settings-flat-rate.php:91 -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:100 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:108 #: templates/order/order-details-customer.php:60 #: templates/order/order-details-customer.php:71 #: templates/single-product/meta.php:34 @@ -8290,8 +8295,8 @@ msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:154 #: includes/admin/meta-boxes/views/html-order-shipping.php:20 #: includes/admin/settings/class-wc-settings-shipping.php:27 -#: includes/admin/settings/class-wc-settings-tax.php:170 -#: includes/admin/settings/views/html-settings-tax.php:25 +#: includes/admin/settings/class-wc-settings-tax.php:175 +#: includes/admin/settings/views/html-settings-tax.php:27 #: includes/wc-cart-functions.php:180 templates/cart/cart-totals.php:54 #: templates/cart/cart-totals.php:55 msgid "Shipping" @@ -8464,17 +8469,17 @@ msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:270 #: includes/admin/meta-boxes/views/html-order-items.php:21 -#: includes/admin/settings/views/html-settings-tax.php:11 +#: includes/admin/settings/views/html-settings-tax.php:13 #: includes/admin/settings/views/settings-tax.php:53 #: includes/admin/views/html-bulk-edit-product.php:95 #: includes/admin/views/html-quick-edit-product.php:73 #: includes/class-wc-ajax.php:824 includes/class-wc-ajax.php:2421 -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:211 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:213 msgid "Standard" msgstr "" #: includes/admin/meta-boxes/class-wc-meta-box-product-data.php:280 -#: includes/admin/settings/class-wc-settings-tax.php:171 +#: includes/admin/settings/class-wc-settings-tax.php:176 #: includes/admin/views/html-bulk-edit-product.php:89 #: includes/admin/views/html-quick-edit-product.php:68 msgid "Tax Class" @@ -8959,8 +8964,8 @@ msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:63 #: includes/admin/meta-boxes/views/html-order-items.php:64 #: includes/admin/reports/class-wc-report-taxes-by-code.php:149 -#: includes/admin/settings/class-wc-settings-tax.php:28 -#: includes/class-wc-countries.php:290 includes/class-wc-tax.php:638 +#: includes/admin/settings/class-wc-settings-tax.php:33 +#: includes/class-wc-countries.php:290 includes/class-wc-tax.php:649 msgid "Tax" msgstr "" @@ -9103,7 +9108,7 @@ msgid "Rate code" msgstr "" #: includes/admin/meta-boxes/views/html-order-items.php:358 -#: includes/admin/settings/class-wc-settings-tax.php:166 +#: includes/admin/settings/class-wc-settings-tax.php:171 msgid "Rate %" msgstr "" @@ -9172,7 +9177,7 @@ msgid "Drag and drop, or click to set admin variation order" msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:33 -#: includes/class-wc-product-variation.php:680 +#: includes/class-wc-product-variation.php:682 msgid "Any" msgstr "" @@ -9189,7 +9194,7 @@ msgid "Enter a SKU for this variation or leave blank to use the parent product S msgstr "" #: includes/admin/meta-boxes/views/html-variation-admin.php:76 -#: includes/admin/settings/class-wc-settings-checkout.php:272 +#: includes/admin/settings/class-wc-settings-checkout.php:276 #: includes/admin/settings/class-wc-settings-emails.php:269 #: includes/admin/settings/class-wc-settings-shipping.php:191 #: includes/admin/views/html-admin-page-status-tools.php:37 @@ -9380,7 +9385,7 @@ msgstr "" #: includes/admin/reports/class-wc-report-sales-by-product.php:390 #: includes/admin/reports/class-wc-report-taxes-by-code.php:38 #: includes/admin/reports/class-wc-report-taxes-by-date.php:38 -#: includes/admin/settings/views/html-settings-tax.php:33 +#: includes/admin/settings/views/html-settings-tax.php:35 msgid "Export CSV" msgstr "" @@ -9428,24 +9433,24 @@ msgstr "" msgid "Link previous orders" msgstr "" -#: includes/admin/reports/class-wc-report-customer-list.php:228 +#: includes/admin/reports/class-wc-report-customer-list.php:230 msgid "Name (Last, First)" msgstr "" -#: includes/admin/reports/class-wc-report-customer-list.php:229 +#: includes/admin/reports/class-wc-report-customer-list.php:231 #: templates/myaccount/form-login.php:83 msgid "Username" msgstr "" -#: includes/admin/reports/class-wc-report-customer-list.php:231 +#: includes/admin/reports/class-wc-report-customer-list.php:233 msgid "Location" msgstr "" -#: includes/admin/reports/class-wc-report-customer-list.php:233 +#: includes/admin/reports/class-wc-report-customer-list.php:235 msgid "Money Spent" msgstr "" -#: includes/admin/reports/class-wc-report-customer-list.php:234 +#: includes/admin/reports/class-wc-report-customer-list.php:236 msgid "Last order" msgstr "" @@ -9988,19 +9993,19 @@ msgid "" "their display order on the frontend." msgstr "" -#: includes/admin/settings/class-wc-settings-checkout.php:262 +#: includes/admin/settings/class-wc-settings-checkout.php:266 msgid "Gateway Display Order" msgstr "" -#: includes/admin/settings/class-wc-settings-checkout.php:270 +#: includes/admin/settings/class-wc-settings-checkout.php:274 msgid "Gateway" msgstr "" -#: includes/admin/settings/class-wc-settings-checkout.php:271 +#: includes/admin/settings/class-wc-settings-checkout.php:275 msgid "Gateway ID" msgstr "" -#: includes/admin/settings/class-wc-settings-checkout.php:298 +#: includes/admin/settings/class-wc-settings-checkout.php:302 msgid "(no title)" msgstr "" @@ -10115,9 +10120,9 @@ msgid "Content Type" msgstr "" #: includes/admin/settings/class-wc-settings-emails.php:235 -#: includes/emails/class-wc-email-cancelled-order.php:107 -#: includes/emails/class-wc-email-failed-order.php:107 -#: includes/emails/class-wc-email-new-order.php:112 +#: includes/emails/class-wc-email-cancelled-order.php:109 +#: includes/emails/class-wc-email-failed-order.php:109 +#: includes/emails/class-wc-email-new-order.php:114 msgid "Recipient(s)" msgstr "" @@ -10168,12 +10173,12 @@ msgstr "" #: includes/admin/settings/class-wc-settings-shipping.php:132 #: includes/shipping/flat-rate/includes/settings-flat-rate.php:33 #: includes/shipping/flat-rate/includes/settings-flat-rate.php:37 -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:80 -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:84 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:88 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:92 #: includes/shipping/local-delivery/class-wc-shipping-local-delivery.php:137 #: includes/shipping/local-delivery/class-wc-shipping-local-delivery.php:141 -#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:93 -#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:97 +#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:94 +#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:98 msgid "Specific Countries" msgstr "" @@ -10260,11 +10265,6 @@ msgstr "" msgid "This sets the decimal separator of displayed prices." msgstr "" -#: includes/admin/settings/class-wc-settings-general.php:174 -#: includes/admin/views/html-admin-page-status-report.php:436 -msgid "Number of Decimals" -msgstr "" - #: includes/admin/settings/class-wc-settings-general.php:175 msgid "This sets the number of decimal points shown in displayed prices." msgstr "" @@ -10666,51 +10666,51 @@ msgstr "" msgid "Drag and drop the above shipping methods to control their display order." msgstr "" -#: includes/admin/settings/class-wc-settings-tax.php:39 +#: includes/admin/settings/class-wc-settings-tax.php:44 #: includes/admin/settings/views/settings-tax.php:9 msgid "Tax Options" msgstr "" -#: includes/admin/settings/class-wc-settings-tax.php:40 +#: includes/admin/settings/class-wc-settings-tax.php:45 msgid "Standard Rates" msgstr "" -#: includes/admin/settings/class-wc-settings-tax.php:47 +#: includes/admin/settings/class-wc-settings-tax.php:52 msgid "%s Rates" msgstr "" -#: includes/admin/settings/class-wc-settings-tax.php:159 +#: includes/admin/settings/class-wc-settings-tax.php:164 msgid "No row(s) selected" msgstr "" -#: includes/admin/settings/class-wc-settings-tax.php:160 +#: includes/admin/settings/class-wc-settings-tax.php:165 msgid "Your changed data will be lost if you leave this page without saving." msgstr "" -#: includes/admin/settings/class-wc-settings-tax.php:162 +#: includes/admin/settings/class-wc-settings-tax.php:167 msgid "Country Code" msgstr "" -#: includes/admin/settings/class-wc-settings-tax.php:163 +#: includes/admin/settings/class-wc-settings-tax.php:168 msgid "State Code" msgstr "" -#: includes/admin/settings/class-wc-settings-tax.php:164 -#: includes/admin/settings/views/html-settings-tax.php:19 +#: includes/admin/settings/class-wc-settings-tax.php:169 +#: includes/admin/settings/views/html-settings-tax.php:21 msgid "ZIP/Postcode" msgstr "" -#: includes/admin/settings/class-wc-settings-tax.php:167 +#: includes/admin/settings/class-wc-settings-tax.php:172 msgid "Tax Name" msgstr "" -#: includes/admin/settings/class-wc-settings-tax.php:168 -#: includes/admin/settings/views/html-settings-tax.php:23 +#: includes/admin/settings/class-wc-settings-tax.php:173 +#: includes/admin/settings/views/html-settings-tax.php:25 msgid "Priority" msgstr "" -#: includes/admin/settings/class-wc-settings-tax.php:169 -#: includes/admin/settings/views/html-settings-tax.php:24 +#: includes/admin/settings/class-wc-settings-tax.php:174 +#: includes/admin/settings/views/html-settings-tax.php:26 msgid "Compound" msgstr "" @@ -10763,116 +10763,116 @@ msgid "QRCode" msgstr "" #: includes/admin/settings/views/html-settings-tax.php:8 -msgid "Search…" +msgid "Search…" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:11 +#: includes/admin/settings/views/html-settings-tax.php:13 msgid "\"%s\" Tax Rates" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:17 +#: includes/admin/settings/views/html-settings-tax.php:19 msgid "Country Code" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:17 +#: includes/admin/settings/views/html-settings-tax.php:19 msgid "A 2 digit country code, e.g. US. Leave blank to apply to all." msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:18 +#: includes/admin/settings/views/html-settings-tax.php:20 msgid "State Code" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:18 +#: includes/admin/settings/views/html-settings-tax.php:20 msgid "A 2 digit state code, e.g. AL. Leave blank to apply to all." msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:19 +#: includes/admin/settings/views/html-settings-tax.php:21 msgid "" "Postcode for this rule. Semi-colon (;) separate multiple values. Leave " "blank to apply to all areas. Wildcards (*) can be used. Ranges for numeric " "postcodes (e.g. 12345-12350) will be expanded into individual postcodes." msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:20 +#: includes/admin/settings/views/html-settings-tax.php:22 msgid "" "Cities for this rule. Semi-colon (;) separate multiple values. Leave blank " "to apply to all cities." msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:21 +#: includes/admin/settings/views/html-settings-tax.php:23 msgid "Rate %" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:21 +#: includes/admin/settings/views/html-settings-tax.php:23 msgid "Enter a tax rate (percentage) to 4 decimal places." msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:22 +#: includes/admin/settings/views/html-settings-tax.php:24 msgid "Tax Name" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:22 +#: includes/admin/settings/views/html-settings-tax.php:24 msgid "Enter a name for this tax rate." msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:23 +#: includes/admin/settings/views/html-settings-tax.php:25 msgid "" "Choose a priority for this tax rate. Only 1 matching rate per priority will " "be used. To define multiple tax rates for a single area you need to specify " "a different priority per rate." msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:24 +#: includes/admin/settings/views/html-settings-tax.php:26 msgid "" "Choose whether or not this is a compound rate. Compound tax rates are " "applied on top of other tax rates." msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:25 +#: includes/admin/settings/views/html-settings-tax.php:27 msgid "Choose whether or not this tax rate also gets applied to shipping." msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:31 +#: includes/admin/settings/views/html-settings-tax.php:33 msgid "Insert row" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:32 +#: includes/admin/settings/views/html-settings-tax.php:34 msgid "Remove selected row(s)" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:34 +#: includes/admin/settings/views/html-settings-tax.php:36 msgid "Import CSV" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:40 -msgid "Loading…" +#: includes/admin/settings/views/html-settings-tax.php:42 +msgid "Loading…" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:46 +#: includes/admin/settings/views/html-settings-tax.php:48 msgid "Tax rate ID: %s" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:89 +#: includes/admin/settings/views/html-settings-tax.php:91 msgid "No Matching Tax Rates Found." msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:100 +#: includes/admin/settings/views/html-settings-tax.php:102 msgid "First page" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:104 +#: includes/admin/settings/views/html-settings-tax.php:106 msgid "Previous page" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:109 +#: includes/admin/settings/views/html-settings-tax.php:111 msgid "Current Page" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:116 +#: includes/admin/settings/views/html-settings-tax.php:118 msgid "Next page" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:120 +#: includes/admin/settings/views/html-settings-tax.php:122 msgid "Last page" msgstr "" @@ -11489,7 +11489,7 @@ msgstr "" #: includes/admin/views/html-admin-page-status-report.php:248 #: includes/admin/views/html-admin-page-status-report.php:266 -#: includes/class-wc-auth.php:354 +#: includes/class-wc-auth.php:356 msgid "Error: %s" msgstr "" @@ -12091,7 +12091,7 @@ msgstr "" #: includes/api/v2/class-wc-api-customers.php:359 #: includes/api/v2/class-wc-api-products.php:224 #: includes/api/v2/class-wc-api-products.php:2093 -#: includes/api/v2/class-wc-api-server.php:427 includes/class-wc-auth.php:159 +#: includes/api/v2/class-wc-api-server.php:427 includes/class-wc-auth.php:161 #: includes/cli/class-wc-cli-coupon.php:63 #: includes/cli/class-wc-cli-product.php:151 #: includes/cli/class-wc-cli-tax.php:130 @@ -13064,93 +13064,93 @@ msgstr "" msgid "Dismiss this notice." msgstr "" -#: includes/class-wc-auth.php:98 +#: includes/class-wc-auth.php:100 msgid "View coupons" msgstr "" -#: includes/class-wc-auth.php:99 +#: includes/class-wc-auth.php:101 msgid "View customers" msgstr "" -#: includes/class-wc-auth.php:100 +#: includes/class-wc-auth.php:102 msgid "View orders and sales reports" msgstr "" -#: includes/class-wc-auth.php:101 includes/class-wc-product-grouped.php:41 +#: includes/class-wc-auth.php:103 includes/class-wc-product-grouped.php:41 msgid "View products" msgstr "" -#: includes/class-wc-auth.php:104 includes/class-wc-auth.php:111 +#: includes/class-wc-auth.php:106 includes/class-wc-auth.php:113 msgid "Create webhooks" msgstr "" -#: includes/class-wc-auth.php:105 +#: includes/class-wc-auth.php:107 msgid "Create coupons" msgstr "" -#: includes/class-wc-auth.php:106 +#: includes/class-wc-auth.php:108 msgid "Create customers" msgstr "" -#: includes/class-wc-auth.php:107 +#: includes/class-wc-auth.php:109 msgid "Create orders" msgstr "" -#: includes/class-wc-auth.php:108 +#: includes/class-wc-auth.php:110 msgid "Create products" msgstr "" -#: includes/class-wc-auth.php:112 +#: includes/class-wc-auth.php:114 msgid "View and manage coupons" msgstr "" -#: includes/class-wc-auth.php:113 +#: includes/class-wc-auth.php:115 msgid "View and manage customers" msgstr "" -#: includes/class-wc-auth.php:114 +#: includes/class-wc-auth.php:116 msgid "View and manage orders and sales reports" msgstr "" -#: includes/class-wc-auth.php:115 +#: includes/class-wc-auth.php:117 msgid "View and manage products" msgstr "" -#: includes/class-wc-auth.php:164 +#: includes/class-wc-auth.php:166 msgid "Invalid scope %s" msgstr "" -#: includes/class-wc-auth.php:169 +#: includes/class-wc-auth.php:171 msgid "The %s is not a valid URL" msgstr "" -#: includes/class-wc-auth.php:174 +#: includes/class-wc-auth.php:176 msgid "The callback_url need to be over SSL" msgstr "" -#: includes/class-wc-auth.php:192 +#: includes/class-wc-auth.php:194 msgid "%s - API %s (created on %s at %s)." msgstr "" -#: includes/class-wc-auth.php:254 +#: includes/class-wc-auth.php:256 msgid "" "An error occurred in the request and at the time were unable to send the " "consumer data" msgstr "" -#: includes/class-wc-auth.php:296 +#: includes/class-wc-auth.php:298 msgid "API disabled!" msgstr "" -#: includes/class-wc-auth.php:338 +#: includes/class-wc-auth.php:340 msgid "Invalid nonce verification" msgstr "" -#: includes/class-wc-auth.php:349 +#: includes/class-wc-auth.php:351 msgid "You do not have permissions to access this page!" msgstr "" -#: includes/class-wc-auth.php:354 +#: includes/class-wc-auth.php:356 msgid "Access Denied" msgstr "" @@ -13185,67 +13185,67 @@ msgid "" "in W3 Total Cache settings here." msgstr "" -#: includes/class-wc-cart.php:240 +#: includes/class-wc-cart.php:268 msgid "" "%s has been removed from your cart because it can no longer be purchased. " "Please contact us if you need assistance." msgstr "" -#: includes/class-wc-cart.php:459 +#: includes/class-wc-cart.php:487 msgid "An item which is no longer available was removed from your cart." msgstr "" -#: includes/class-wc-cart.php:485 +#: includes/class-wc-cart.php:513 msgid "" "Sorry, \"%s\" is not in stock. Please edit your cart and try again. We " "apologise for any inconvenience caused." msgstr "" -#: includes/class-wc-cart.php:499 +#: includes/class-wc-cart.php:527 msgid "" "Sorry, we do not have enough \"%s\" in stock to fulfill your order (%s in " "stock). Please edit your cart and try again. We apologise for any " "inconvenience caused." msgstr "" -#: includes/class-wc-cart.php:534 +#: includes/class-wc-cart.php:562 msgid "" "Sorry, we do not have enough \"%s\" in stock to fulfill your order right " "now. Please try again in %d minutes or edit your cart and try again. We " "apologise for any inconvenience caused." msgstr "" -#: includes/class-wc-cart.php:697 +#: includes/class-wc-cart.php:725 msgid "Get cart should not be called before the wp_loaded action." msgstr "" -#: includes/class-wc-cart.php:904 includes/class-wc-cart.php:939 +#: includes/class-wc-cart.php:932 includes/class-wc-cart.php:967 #: includes/class-wc-frontend-scripts.php:307 includes/wc-cart-functions.php:85 #: templates/cart/mini-cart.php:84 msgid "View Cart" msgstr "" -#: includes/class-wc-cart.php:904 +#: includes/class-wc-cart.php:932 msgid "You cannot add another "%s" to your cart." msgstr "" -#: includes/class-wc-cart.php:910 +#: includes/class-wc-cart.php:938 msgid "Sorry, this product cannot be purchased." msgstr "" -#: includes/class-wc-cart.php:915 +#: includes/class-wc-cart.php:943 msgid "" "You cannot add "%s" to the cart because the product is out of " "stock." msgstr "" -#: includes/class-wc-cart.php:919 +#: includes/class-wc-cart.php:947 msgid "" "You cannot add that amount of "%s" to the cart because there is " "not enough stock (%s remaining)." msgstr "" -#: includes/class-wc-cart.php:940 +#: includes/class-wc-cart.php:968 msgid "" "You cannot add that amount to the cart — we have %s in stock and you " "already have %s in your cart." @@ -13259,10 +13259,10 @@ msgstr "" msgid "Account password" msgstr "" -#: includes/class-wc-checkout.php:202 includes/class-wc-checkout.php:213 -#: includes/class-wc-checkout.php:238 includes/class-wc-checkout.php:250 -#: includes/class-wc-checkout.php:263 includes/class-wc-checkout.php:274 -#: includes/class-wc-checkout.php:281 +#: includes/class-wc-checkout.php:200 includes/class-wc-checkout.php:211 +#: includes/class-wc-checkout.php:213 includes/class-wc-checkout.php:238 +#: includes/class-wc-checkout.php:250 includes/class-wc-checkout.php:263 +#: includes/class-wc-checkout.php:274 includes/class-wc-checkout.php:281 msgid "Error %d: Unable to create order. Please try again." msgstr "" @@ -13352,11 +13352,11 @@ msgstr "" msgid "(ex. tax)" msgstr "" -#: includes/class-wc-countries.php:503 +#: includes/class-wc-countries.php:504 msgid "Company Name" msgstr "" -#: includes/class-wc-countries.php:524 includes/class-wc-countries.php:525 +#: includes/class-wc-countries.php:525 msgid "Town / City" msgstr "" @@ -13364,138 +13364,138 @@ msgstr "" msgid "State / County" msgstr "" -#: includes/class-wc-countries.php:537 includes/class-wc-countries.php:538 +#: includes/class-wc-countries.php:537 #: templates/cart/shipping-calculator.php:90 msgid "Postcode / ZIP" msgstr "" -#: includes/class-wc-countries.php:593 includes/class-wc-countries.php:594 +#: includes/class-wc-countries.php:592 msgid "Suburb" msgstr "" -#: includes/class-wc-countries.php:616 +#: includes/class-wc-countries.php:612 msgid "District" msgstr "" -#: includes/class-wc-countries.php:624 includes/class-wc-countries.php:647 -#: includes/class-wc-countries.php:673 includes/class-wc-countries.php:738 -#: includes/class-wc-countries.php:758 includes/class-wc-countries.php:776 -#: includes/class-wc-countries.php:836 includes/class-wc-countries.php:862 -#: includes/class-wc-countries.php:909 +#: includes/class-wc-countries.php:619 includes/class-wc-countries.php:641 +#: includes/class-wc-countries.php:664 includes/class-wc-countries.php:725 +#: includes/class-wc-countries.php:744 includes/class-wc-countries.php:761 +#: includes/class-wc-countries.php:819 includes/class-wc-countries.php:843 +#: includes/class-wc-countries.php:885 msgid "Province" msgstr "" -#: includes/class-wc-countries.php:654 +#: includes/class-wc-countries.php:647 msgid "Canton" msgstr "" -#: includes/class-wc-countries.php:667 includes/class-wc-countries.php:726 +#: includes/class-wc-countries.php:659 includes/class-wc-countries.php:715 msgid "Region" msgstr "" -#: includes/class-wc-countries.php:722 includes/class-wc-countries.php:723 +#: includes/class-wc-countries.php:712 msgid "Town / District" msgstr "" -#: includes/class-wc-countries.php:732 includes/class-wc-countries.php:882 +#: includes/class-wc-countries.php:720 includes/class-wc-countries.php:859 msgid "County" msgstr "" -#: includes/class-wc-countries.php:764 +#: includes/class-wc-countries.php:749 msgid "Prefecture" msgstr "" -#: includes/class-wc-countries.php:793 +#: includes/class-wc-countries.php:777 msgid "State / Zone" msgstr "" -#: includes/class-wc-countries.php:843 +#: includes/class-wc-countries.php:825 msgid "Municipality" msgstr "" -#: includes/class-wc-countries.php:868 includes/class-wc-countries.php:869 +#: includes/class-wc-countries.php:848 msgid "ZIP" msgstr "" -#: includes/class-wc-countries.php:967 +#: includes/class-wc-countries.php:942 msgid "Email Address" msgstr "" -#: includes/class-wc-coupon.php:738 +#: includes/class-wc-coupon.php:787 msgid "Coupon code applied successfully." msgstr "" -#: includes/class-wc-coupon.php:741 +#: includes/class-wc-coupon.php:790 msgid "Coupon code removed successfully." msgstr "" -#: includes/class-wc-coupon.php:759 +#: includes/class-wc-coupon.php:808 msgid "Coupon is not valid." msgstr "" -#: includes/class-wc-coupon.php:762 +#: includes/class-wc-coupon.php:811 msgid "Coupon \"%s\" does not exist!" msgstr "" -#: includes/class-wc-coupon.php:765 +#: includes/class-wc-coupon.php:814 msgid "" "Sorry, it seems the coupon \"%s\" is invalid - it has now been removed from " "your order." msgstr "" -#: includes/class-wc-coupon.php:768 +#: includes/class-wc-coupon.php:817 msgid "" "Sorry, it seems the coupon \"%s\" is not yours - it has now been removed " "from your order." msgstr "" -#: includes/class-wc-coupon.php:771 +#: includes/class-wc-coupon.php:820 msgid "Coupon code already applied!" msgstr "" -#: includes/class-wc-coupon.php:774 +#: includes/class-wc-coupon.php:823 msgid "" "Sorry, coupon \"%s\" has already been applied and cannot be used in " "conjunction with other coupons." msgstr "" -#: includes/class-wc-coupon.php:777 +#: includes/class-wc-coupon.php:826 msgid "Coupon usage limit has been reached." msgstr "" -#: includes/class-wc-coupon.php:780 +#: includes/class-wc-coupon.php:829 msgid "This coupon has expired." msgstr "" -#: includes/class-wc-coupon.php:783 +#: includes/class-wc-coupon.php:832 msgid "The minimum spend for this coupon is %s." msgstr "" -#: includes/class-wc-coupon.php:786 +#: includes/class-wc-coupon.php:835 msgid "The maximum spend for this coupon is %s." msgstr "" -#: includes/class-wc-coupon.php:789 +#: includes/class-wc-coupon.php:838 msgid "Sorry, this coupon is not applicable to your cart contents." msgstr "" -#: includes/class-wc-coupon.php:802 +#: includes/class-wc-coupon.php:851 msgid "Sorry, this coupon is not applicable to the products: %s." msgstr "" -#: includes/class-wc-coupon.php:821 +#: includes/class-wc-coupon.php:870 msgid "Sorry, this coupon is not applicable to the categories: %s." msgstr "" -#: includes/class-wc-coupon.php:824 +#: includes/class-wc-coupon.php:873 msgid "Sorry, this coupon is not valid for sale items." msgstr "" -#: includes/class-wc-coupon.php:844 +#: includes/class-wc-coupon.php:893 msgid "Coupon does not exist!" msgstr "" -#: includes/class-wc-coupon.php:847 +#: includes/class-wc-coupon.php:896 msgid "Please enter a coupon code." msgstr "" @@ -13549,39 +13549,39 @@ msgstr "" msgid "Go to homepage" msgstr "" -#: includes/class-wc-emails.php:282 +#: includes/class-wc-emails.php:343 msgid "Note" msgstr "" -#: includes/class-wc-emails.php:359 +#: includes/class-wc-emails.php:357 msgid "Tel" msgstr "" -#: includes/class-wc-emails.php:398 +#: includes/class-wc-emails.php:396 msgid "Product low in stock" msgstr "" -#: includes/class-wc-emails.php:399 +#: includes/class-wc-emails.php:397 msgid "%s is low in stock." msgstr "" -#: includes/class-wc-emails.php:399 +#: includes/class-wc-emails.php:397 msgid "There are %d left" msgstr "" -#: includes/class-wc-emails.php:416 +#: includes/class-wc-emails.php:414 msgid "Product out of stock" msgstr "" -#: includes/class-wc-emails.php:417 +#: includes/class-wc-emails.php:415 msgid "%s is out of stock." msgstr "" -#: includes/class-wc-emails.php:446 +#: includes/class-wc-emails.php:444 msgid "Product Backorder" msgstr "" -#: includes/class-wc-emails.php:447 +#: includes/class-wc-emails.php:445 msgid "%s units of %s have been backordered in order #%s." msgstr "" @@ -13737,7 +13737,7 @@ msgid "Error processing checkout. Please try again." msgstr "" #: includes/class-wc-frontend-scripts.php:286 -#: includes/wc-template-functions.php:1706 +#: includes/wc-template-functions.php:1713 msgid "required" msgstr "" @@ -14189,13 +14189,13 @@ msgstr "" msgid "Select options" msgstr "" -#: includes/class-wc-product-variable.php:737 +#: includes/class-wc-product-variable.php:741 msgid "" "This variable product has no active variations. Add or enable variations to " "allow this product to be purchased." msgstr "" -#: includes/class-wc-product-variation.php:749 +#: includes/class-wc-product-variation.php:751 msgid "%s – %s%s" msgstr "" @@ -14267,85 +14267,85 @@ msgstr "" msgid "[{site_title}] Cancelled order ({order_number})" msgstr "" -#: includes/emails/class-wc-email-cancelled-order.php:101 -#: includes/emails/class-wc-email-customer-completed-order.php:137 -#: includes/emails/class-wc-email-customer-refunded-order.php:173 -#: includes/emails/class-wc-email-failed-order.php:101 -#: includes/emails/class-wc-email-new-order.php:106 +#: includes/emails/class-wc-email-cancelled-order.php:103 +#: includes/emails/class-wc-email-customer-completed-order.php:139 +#: includes/emails/class-wc-email-customer-refunded-order.php:199 +#: includes/emails/class-wc-email-failed-order.php:103 +#: includes/emails/class-wc-email-new-order.php:108 #: includes/emails/class-wc-email.php:481 #: includes/gateways/bacs/class-wc-gateway-bacs.php:74 #: includes/gateways/cheque/class-wc-gateway-cheque.php:54 #: includes/gateways/paypal/includes/settings-paypal.php:12 -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:184 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:186 #: includes/shipping/flat-rate/includes/settings-flat-rate.php:14 -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:61 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:69 msgid "Enable/Disable" msgstr "" -#: includes/emails/class-wc-email-cancelled-order.php:103 -#: includes/emails/class-wc-email-customer-completed-order.php:139 -#: includes/emails/class-wc-email-customer-refunded-order.php:175 -#: includes/emails/class-wc-email-failed-order.php:103 -#: includes/emails/class-wc-email-new-order.php:108 +#: includes/emails/class-wc-email-cancelled-order.php:105 +#: includes/emails/class-wc-email-customer-completed-order.php:141 +#: includes/emails/class-wc-email-customer-refunded-order.php:201 +#: includes/emails/class-wc-email-failed-order.php:105 +#: includes/emails/class-wc-email-new-order.php:110 #: includes/emails/class-wc-email.php:483 msgid "Enable this email notification" msgstr "" -#: includes/emails/class-wc-email-cancelled-order.php:109 -#: includes/emails/class-wc-email-failed-order.php:109 -#: includes/emails/class-wc-email-new-order.php:114 +#: includes/emails/class-wc-email-cancelled-order.php:111 +#: includes/emails/class-wc-email-failed-order.php:111 +#: includes/emails/class-wc-email-new-order.php:116 msgid "" "Enter recipients (comma separated) for this email. Defaults to " "%s." msgstr "" -#: includes/emails/class-wc-email-cancelled-order.php:115 -#: includes/emails/class-wc-email-customer-completed-order.php:143 -#: includes/emails/class-wc-email-failed-order.php:115 -#: includes/emails/class-wc-email-new-order.php:120 +#: includes/emails/class-wc-email-cancelled-order.php:117 +#: includes/emails/class-wc-email-customer-completed-order.php:145 +#: includes/emails/class-wc-email-failed-order.php:117 +#: includes/emails/class-wc-email-new-order.php:122 msgid "Subject" msgstr "" -#: includes/emails/class-wc-email-cancelled-order.php:117 -#: includes/emails/class-wc-email-failed-order.php:117 -#: includes/emails/class-wc-email-new-order.php:122 +#: includes/emails/class-wc-email-cancelled-order.php:119 +#: includes/emails/class-wc-email-failed-order.php:119 +#: includes/emails/class-wc-email-new-order.php:124 msgid "" "This controls the email subject line. Leave blank to use the default " "subject: %s." msgstr "" -#: includes/emails/class-wc-email-cancelled-order.php:123 -#: includes/emails/class-wc-email-customer-completed-order.php:151 -#: includes/emails/class-wc-email-customer-invoice.php:153 -#: includes/emails/class-wc-email-failed-order.php:123 -#: includes/emails/class-wc-email-new-order.php:128 +#: includes/emails/class-wc-email-cancelled-order.php:125 +#: includes/emails/class-wc-email-customer-completed-order.php:153 +#: includes/emails/class-wc-email-customer-invoice.php:166 +#: includes/emails/class-wc-email-failed-order.php:125 +#: includes/emails/class-wc-email-new-order.php:130 #: includes/emails/class-wc-email.php:495 msgid "Email Heading" msgstr "" -#: includes/emails/class-wc-email-cancelled-order.php:125 -#: includes/emails/class-wc-email-failed-order.php:125 -#: includes/emails/class-wc-email-new-order.php:130 +#: includes/emails/class-wc-email-cancelled-order.php:127 +#: includes/emails/class-wc-email-failed-order.php:127 +#: includes/emails/class-wc-email-new-order.php:132 msgid "" "This controls the main heading contained within the email notification. " "Leave blank to use the default heading: %s." msgstr "" -#: includes/emails/class-wc-email-cancelled-order.php:131 -#: includes/emails/class-wc-email-customer-completed-order.php:175 -#: includes/emails/class-wc-email-customer-refunded-order.php:211 -#: includes/emails/class-wc-email-failed-order.php:131 -#: includes/emails/class-wc-email-new-order.php:136 +#: includes/emails/class-wc-email-cancelled-order.php:133 +#: includes/emails/class-wc-email-customer-completed-order.php:177 +#: includes/emails/class-wc-email-customer-refunded-order.php:237 +#: includes/emails/class-wc-email-failed-order.php:133 +#: includes/emails/class-wc-email-new-order.php:138 #: includes/emails/class-wc-email.php:503 msgid "Email type" msgstr "" -#: includes/emails/class-wc-email-cancelled-order.php:133 -#: includes/emails/class-wc-email-customer-completed-order.php:177 -#: includes/emails/class-wc-email-customer-invoice.php:179 -#: includes/emails/class-wc-email-customer-refunded-order.php:213 -#: includes/emails/class-wc-email-failed-order.php:133 -#: includes/emails/class-wc-email-new-order.php:138 +#: includes/emails/class-wc-email-cancelled-order.php:135 +#: includes/emails/class-wc-email-customer-completed-order.php:179 +#: includes/emails/class-wc-email-customer-invoice.php:192 +#: includes/emails/class-wc-email-customer-refunded-order.php:239 +#: includes/emails/class-wc-email-failed-order.php:135 +#: includes/emails/class-wc-email-new-order.php:140 #: includes/emails/class-wc-email.php:505 msgid "Choose which format of email to send." msgstr "" @@ -14376,105 +14376,105 @@ msgstr "" msgid "Your {site_title} order from {order_date} is complete - download your files" msgstr "" -#: includes/emails/class-wc-email-customer-completed-order.php:145 -#: includes/emails/class-wc-email-customer-completed-order.php:153 -#: includes/emails/class-wc-email-customer-completed-order.php:161 -#: includes/emails/class-wc-email-customer-completed-order.php:169 -#: includes/emails/class-wc-email-customer-invoice.php:147 -#: includes/emails/class-wc-email-customer-invoice.php:155 -#: includes/emails/class-wc-email-customer-invoice.php:163 -#: includes/emails/class-wc-email-customer-invoice.php:171 -#: includes/emails/class-wc-email-customer-refunded-order.php:181 -#: includes/emails/class-wc-email-customer-refunded-order.php:189 -#: includes/emails/class-wc-email-customer-refunded-order.php:197 -#: includes/emails/class-wc-email-customer-refunded-order.php:205 +#: includes/emails/class-wc-email-customer-completed-order.php:147 +#: includes/emails/class-wc-email-customer-completed-order.php:155 +#: includes/emails/class-wc-email-customer-completed-order.php:163 +#: includes/emails/class-wc-email-customer-completed-order.php:171 +#: includes/emails/class-wc-email-customer-invoice.php:160 +#: includes/emails/class-wc-email-customer-invoice.php:168 +#: includes/emails/class-wc-email-customer-invoice.php:176 +#: includes/emails/class-wc-email-customer-invoice.php:184 +#: includes/emails/class-wc-email-customer-refunded-order.php:207 +#: includes/emails/class-wc-email-customer-refunded-order.php:215 +#: includes/emails/class-wc-email-customer-refunded-order.php:223 +#: includes/emails/class-wc-email-customer-refunded-order.php:231 #: includes/emails/class-wc-email.php:489 #: includes/emails/class-wc-email.php:497 msgid "Defaults to %s" msgstr "" -#: includes/emails/class-wc-email-customer-completed-order.php:159 +#: includes/emails/class-wc-email-customer-completed-order.php:161 msgid "Subject (downloadable)" msgstr "" -#: includes/emails/class-wc-email-customer-completed-order.php:167 +#: includes/emails/class-wc-email-customer-completed-order.php:169 msgid "Email Heading (downloadable)" msgstr "" -#: includes/emails/class-wc-email-customer-invoice.php:31 +#: includes/emails/class-wc-email-customer-invoice.php:42 msgid "Customer invoice" msgstr "" -#: includes/emails/class-wc-email-customer-invoice.php:32 +#: includes/emails/class-wc-email-customer-invoice.php:43 msgid "" "Customer invoice emails can be sent to customers containing their order " "information and payment links." msgstr "" -#: includes/emails/class-wc-email-customer-invoice.php:37 +#: includes/emails/class-wc-email-customer-invoice.php:48 msgid "Invoice for order {order_number} from {order_date}" msgstr "" -#: includes/emails/class-wc-email-customer-invoice.php:38 +#: includes/emails/class-wc-email-customer-invoice.php:49 msgid "Invoice for order {order_number}" msgstr "" -#: includes/emails/class-wc-email-customer-invoice.php:40 +#: includes/emails/class-wc-email-customer-invoice.php:51 msgid "Your {site_title} order from {order_date}" msgstr "" -#: includes/emails/class-wc-email-customer-invoice.php:41 +#: includes/emails/class-wc-email-customer-invoice.php:52 msgid "Order {order_number} details" msgstr "" -#: includes/emails/class-wc-email-customer-invoice.php:145 +#: includes/emails/class-wc-email-customer-invoice.php:158 #: includes/emails/class-wc-email.php:487 msgid "Email Subject" msgstr "" -#: includes/emails/class-wc-email-customer-invoice.php:161 +#: includes/emails/class-wc-email-customer-invoice.php:174 msgid "Email Subject (paid)" msgstr "" -#: includes/emails/class-wc-email-customer-invoice.php:169 +#: includes/emails/class-wc-email-customer-invoice.php:182 msgid "Email Heading (paid)" msgstr "" -#: includes/emails/class-wc-email-customer-invoice.php:177 +#: includes/emails/class-wc-email-customer-invoice.php:190 msgid "Email Type" msgstr "" -#: includes/emails/class-wc-email-customer-new-account.php:34 +#: includes/emails/class-wc-email-customer-new-account.php:57 msgid "New account" msgstr "" -#: includes/emails/class-wc-email-customer-new-account.php:35 +#: includes/emails/class-wc-email-customer-new-account.php:58 msgid "" "Customer \"new account\" emails are sent to the customer when a customer " "signs up via checkout or account pages." msgstr "" -#: includes/emails/class-wc-email-customer-new-account.php:40 +#: includes/emails/class-wc-email-customer-new-account.php:63 msgid "Your account on {site_title}" msgstr "" -#: includes/emails/class-wc-email-customer-new-account.php:41 +#: includes/emails/class-wc-email-customer-new-account.php:64 msgid "Welcome to {site_title}" msgstr "" -#: includes/emails/class-wc-email-customer-note.php:31 +#: includes/emails/class-wc-email-customer-note.php:36 msgid "Customer note" msgstr "" -#: includes/emails/class-wc-email-customer-note.php:32 +#: includes/emails/class-wc-email-customer-note.php:37 msgid "Customer note emails are sent when you add a note to an order." msgstr "" -#: includes/emails/class-wc-email-customer-note.php:37 +#: includes/emails/class-wc-email-customer-note.php:42 msgid "Note added to your {site_title} order from {order_date}" msgstr "" -#: includes/emails/class-wc-email-customer-note.php:38 +#: includes/emails/class-wc-email-customer-note.php:43 msgid "A note has been added to your order" msgstr "" @@ -14496,73 +14496,73 @@ msgstr "" msgid "Your {site_title} order receipt from {order_date}" msgstr "" -#: includes/emails/class-wc-email-customer-refunded-order.php:41 +#: includes/emails/class-wc-email-customer-refunded-order.php:57 msgid "Your {site_title} order from {order_date} has been partially refunded" msgstr "" -#: includes/emails/class-wc-email-customer-refunded-order.php:42 +#: includes/emails/class-wc-email-customer-refunded-order.php:58 msgid "Your {site_title} order from {order_date} has been refunded" msgstr "" -#: includes/emails/class-wc-email-customer-refunded-order.php:44 +#: includes/emails/class-wc-email-customer-refunded-order.php:60 msgid "Your order has been fully refunded" msgstr "" -#: includes/emails/class-wc-email-customer-refunded-order.php:45 +#: includes/emails/class-wc-email-customer-refunded-order.php:61 msgid "Your order has been partially refunded" msgstr "" -#: includes/emails/class-wc-email-customer-refunded-order.php:49 +#: includes/emails/class-wc-email-customer-refunded-order.php:65 msgid "Partially Refunded order" msgstr "" -#: includes/emails/class-wc-email-customer-refunded-order.php:50 +#: includes/emails/class-wc-email-customer-refunded-order.php:66 msgid "" "Order partially refunded emails are sent to customers when their orders are " "partially refunded." msgstr "" -#: includes/emails/class-wc-email-customer-refunded-order.php:58 +#: includes/emails/class-wc-email-customer-refunded-order.php:74 msgid "Refunded order" msgstr "" -#: includes/emails/class-wc-email-customer-refunded-order.php:59 +#: includes/emails/class-wc-email-customer-refunded-order.php:75 msgid "" "Order refunded emails are sent to customers when their orders are marked " "refunded." msgstr "" -#: includes/emails/class-wc-email-customer-refunded-order.php:179 +#: includes/emails/class-wc-email-customer-refunded-order.php:205 msgid "Full Refund Subject" msgstr "" -#: includes/emails/class-wc-email-customer-refunded-order.php:187 +#: includes/emails/class-wc-email-customer-refunded-order.php:213 msgid "Partial Refund Subject" msgstr "" -#: includes/emails/class-wc-email-customer-refunded-order.php:195 +#: includes/emails/class-wc-email-customer-refunded-order.php:221 msgid "Full Refund Email Heading" msgstr "" -#: includes/emails/class-wc-email-customer-refunded-order.php:203 +#: includes/emails/class-wc-email-customer-refunded-order.php:229 msgid "Partial Refund Email Heading" msgstr "" -#: includes/emails/class-wc-email-customer-reset-password.php:37 +#: includes/emails/class-wc-email-customer-reset-password.php:49 msgid "Reset password" msgstr "" -#: includes/emails/class-wc-email-customer-reset-password.php:38 +#: includes/emails/class-wc-email-customer-reset-password.php:50 msgid "" "Customer \"reset password\" emails are sent when customers reset their " "passwords." msgstr "" -#: includes/emails/class-wc-email-customer-reset-password.php:44 +#: includes/emails/class-wc-email-customer-reset-password.php:56 msgid "Password Reset for {site_title}" msgstr "" -#: includes/emails/class-wc-email-customer-reset-password.php:45 +#: includes/emails/class-wc-email-customer-reset-password.php:57 msgid "Password Reset Instructions" msgstr "" @@ -14683,9 +14683,9 @@ msgstr "" #: includes/gateways/cheque/class-wc-gateway-cheque.php:60 #: includes/gateways/cod/class-wc-gateway-cod.php:68 #: includes/gateways/paypal/includes/settings-paypal.php:18 -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:191 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:193 #: includes/shipping/local-delivery/class-wc-shipping-local-delivery.php:95 -#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:72 +#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:73 #: includes/widgets/class-wc-widget-cart.php:32 #: includes/widgets/class-wc-widget-layered-nav-filters.php:30 #: includes/widgets/class-wc-widget-layered-nav.php:78 @@ -14703,11 +14703,11 @@ msgstr "" #: includes/gateways/bacs/class-wc-gateway-bacs.php:82 #: includes/gateways/cheque/class-wc-gateway-cheque.php:62 #: includes/gateways/paypal/includes/settings-paypal.php:20 -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:193 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:195 #: includes/shipping/flat-rate/includes/settings-flat-rate.php:22 -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:69 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:77 #: includes/shipping/local-delivery/class-wc-shipping-local-delivery.php:97 -#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:74 +#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:75 msgid "This controls the title which the user sees during checkout." msgstr "" @@ -14739,83 +14739,83 @@ msgstr "" msgid "Instructions that will be added to the thank you page and emails." msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:118 -#: includes/gateways/bacs/class-wc-gateway-bacs.php:272 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:120 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:278 msgid "Sort Code" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:122 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:124 msgid "Account Details" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:128 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:130 msgid "Account Name" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:129 -#: includes/gateways/bacs/class-wc-gateway-bacs.php:292 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:131 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:298 msgid "Account Number" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:130 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:132 msgid "Bank Name" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:132 -#: includes/gateways/bacs/class-wc-gateway-bacs.php:300 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:134 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:306 msgid "IBAN" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:133 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:135 msgid "BIC / Swift" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:158 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:160 msgid "+ Add Account" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:158 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:160 msgid "Remove selected account(s)" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:277 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:283 msgid "Our Bank Details" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:304 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:310 msgid "BIC" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:332 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:338 msgid "Awaiting BACS payment" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:362 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:367 msgid "BSB" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:367 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:372 msgid "Bank Transit Number" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:372 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:377 msgid "IFSC" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:377 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:382 msgid "Branch Sort" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:382 #: includes/gateways/bacs/class-wc-gateway-bacs.php:387 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:392 msgid "Bank Code" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:392 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:397 msgid "Routing Number" msgstr "" -#: includes/gateways/bacs/class-wc-gateway-bacs.php:397 +#: includes/gateways/bacs/class-wc-gateway-bacs.php:402 msgid "Branch Code" msgstr "" @@ -14939,63 +14939,63 @@ msgstr "" msgid "Refunded %s - Refund ID: %s" msgstr "" -#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:130 +#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:133 msgid "Validation error: PayPal currencies do not match (code %s)." msgstr "" -#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:144 +#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:148 msgid "Validation error: PayPal amounts do not match (gross %s)." msgstr "" -#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:159 +#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:164 msgid "Validation error: PayPal IPN response from a different email address (%s)." msgstr "" -#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:181 +#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:187 msgid "IPN payment completed" msgstr "" -#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:189 +#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:195 msgid "Payment pending: %s" msgstr "" -#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:206 -#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:242 -#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:256 +#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:214 +#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:254 +#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:269 msgid "Payment %s via IPN." msgstr "" -#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:245 +#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:257 msgid "Payment for order %s refunded" msgstr "" -#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:246 +#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:258 msgid "Order #%s has been marked as refunded - PayPal reason code: %s" msgstr "" -#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:259 +#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:272 msgid "Payment for order %s reversed" msgstr "" -#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:260 +#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:273 msgid "Order #%s has been marked on-hold due to a reversal - PayPal reason code: %s" msgstr "" -#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:270 +#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:284 msgid "Reversal cancelled for order #%s" msgstr "" -#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:271 +#: includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php:285 msgid "" "Order #%s has had a reversal cancelled. Please check the status of payment " "and update the order status accordingly here: %s" msgstr "" -#: includes/gateways/paypal/includes/class-wc-gateway-paypal-pdt-handler.php:74 +#: includes/gateways/paypal/includes/class-wc-gateway-paypal-pdt-handler.php:77 msgid "Validation error: PayPal amounts do not match (amt %s)." msgstr "" -#: includes/gateways/paypal/includes/class-wc-gateway-paypal-pdt-handler.php:76 +#: includes/gateways/paypal/includes/class-wc-gateway-paypal-pdt-handler.php:79 msgid "PDT payment completed" msgstr "" @@ -15009,7 +15009,7 @@ msgid "Enable PayPal standard" msgstr "" #: includes/gateways/paypal/includes/settings-paypal.php:28 -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:200 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:202 msgid "This controls the description which the user sees during checkout." msgstr "" @@ -15305,23 +15305,23 @@ msgid "" "in sandbox mode." msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:185 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:187 msgid "Enable Simplify Commerce" msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:194 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:196 msgid "Credit card" msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:205 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:207 msgid "Payment Mode" msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:206 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:208 msgid "Enable Hosted Payments" msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:208 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:210 msgid "" "Standard will display the credit card fields on your store (SSL required). " "%1$s Hosted Payments will display a Simplify Commerce modal dialog on your " @@ -15331,56 +15331,56 @@ msgid "" "Commerce docs%3$s." msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:212 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:214 msgid "Hosted Payments" msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:216 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:218 msgid "Modal Color" msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:218 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:220 msgid "Set the color of the buttons and titles on the modal dialog." msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:223 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:225 msgid "Sandbox" msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:224 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:226 msgid "Enable Sandbox Mode" msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:226 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:228 msgid "" "Place the payment gateway in sandbox mode using sandbox API keys (real " "payments will not be taken)." msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:230 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:232 msgid "Sandbox Public Key" msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:232 -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:239 -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:246 -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:253 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:234 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:241 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:248 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:255 msgid "Get your API keys from your Simplify account: Settings > API Keys." msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:237 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:239 msgid "Sandbox Private Key" msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:244 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:246 msgid "Public Key" msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:251 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:253 msgid "Private Key" msgstr "" -#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:267 +#: includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php:269 msgid "TEST MODE ENABLED. Use a test card: %s" msgstr "" @@ -15418,12 +15418,12 @@ msgstr "" msgid "%s - Subscription for \"%s\"" msgstr "" -#: includes/shipping/flat-rate/class-wc-shipping-flat-rate.php:24 +#: includes/shipping/flat-rate/class-wc-shipping-flat-rate.php:28 #: includes/shipping/flat-rate/includes/settings-flat-rate.php:23 msgid "Flat Rate" msgstr "" -#: includes/shipping/flat-rate/class-wc-shipping-flat-rate.php:25 +#: includes/shipping/flat-rate/class-wc-shipping-flat-rate.php:29 msgid "Flat Rate Shipping lets you charge a fixed rate for shipping." msgstr "" @@ -15443,7 +15443,7 @@ msgid "Enable this shipping method" msgstr "" #: includes/shipping/flat-rate/includes/settings-flat-rate.php:20 -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:67 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:75 msgid "Method Title" msgstr "" @@ -15453,16 +15453,16 @@ msgid "Availability" msgstr "" #: includes/shipping/flat-rate/includes/settings-flat-rate.php:32 -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:79 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:87 #: includes/shipping/local-delivery/class-wc-shipping-local-delivery.php:136 -#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:92 +#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:93 msgid "All allowed countries" msgstr "" #: includes/shipping/flat-rate/includes/settings-flat-rate.php:44 -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:91 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:99 #: includes/shipping/local-delivery/class-wc-shipping-local-delivery.php:148 -#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:104 +#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:105 msgid "Select some countries" msgstr "" @@ -15518,41 +15518,41 @@ msgid "" "or item)" msgstr "" -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:63 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:71 msgid "Enable Free Shipping" msgstr "" -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:74 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:82 #: includes/shipping/local-delivery/class-wc-shipping-local-delivery.php:131 -#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:87 +#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:88 msgid "Method availability" msgstr "" -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:95 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:103 msgid "Free Shipping Requires..." msgstr "" -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:101 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:109 msgid "A valid free shipping coupon" msgstr "" -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:102 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:110 msgid "A minimum order amount (defined below)" msgstr "" -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:103 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:111 msgid "A minimum order amount OR a coupon" msgstr "" -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:104 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:112 msgid "A minimum order amount AND a coupon" msgstr "" -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:108 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:116 msgid "Minimum Order Amount" msgstr "" -#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:111 +#: includes/shipping/free-shipping/class-wc-shipping-free-shipping.php:119 msgid "" "Users will need to spend this amount to get free shipping (if enabled " "above)." @@ -15579,7 +15579,7 @@ msgid "Local delivery is a simple shipping method for delivering orders locally. msgstr "" #: includes/shipping/local-delivery/class-wc-shipping-local-delivery.php:89 -#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:66 +#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:67 msgid "Enable" msgstr "" @@ -15618,7 +15618,7 @@ msgid "" msgstr "" #: includes/shipping/local-delivery/class-wc-shipping-local-delivery.php:123 -#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:79 +#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:80 msgid "Allowed ZIP/Post Codes" msgstr "" @@ -15627,7 +15627,7 @@ msgid "What ZIP/post codes are available for local delivery?" msgstr "" #: includes/shipping/local-delivery/class-wc-shipping-local-delivery.php:127 -#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:83 +#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:84 msgid "" "Separate codes with a comma. Accepts wildcards, e.g. P* will " "match a postcode of PE30. Also accepts a pattern, e.g. NG1___ " @@ -15640,11 +15640,11 @@ msgid "" "themselves." msgstr "" -#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:68 +#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:69 msgid "Enable local pickup" msgstr "" -#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:81 +#: includes/shipping/local-pickup/class-wc-shipping-local-pickup.php:82 msgid "What ZIP/post codes are available for local pickup?" msgstr "" @@ -15796,211 +15796,211 @@ msgstr "" msgid "Free" msgstr "" -#: includes/wc-core-functions.php:79 +#: includes/wc-core-functions.php:81 msgid "Order – %s" msgstr "" -#: includes/wc-core-functions.php:85 +#: includes/wc-core-functions.php:87 msgid "Invalid order status" msgstr "" -#: includes/wc-core-functions.php:131 +#: includes/wc-core-functions.php:133 msgid "Invalid order ID" msgstr "" -#: includes/wc-core-functions.php:272 +#: includes/wc-core-functions.php:274 msgid "United Arab Emirates Dirham" msgstr "" -#: includes/wc-core-functions.php:273 +#: includes/wc-core-functions.php:275 msgid "Argentine Peso" msgstr "" -#: includes/wc-core-functions.php:274 +#: includes/wc-core-functions.php:276 msgid "Australian Dollars" msgstr "" -#: includes/wc-core-functions.php:275 +#: includes/wc-core-functions.php:277 msgid "Bangladeshi Taka" msgstr "" -#: includes/wc-core-functions.php:276 +#: includes/wc-core-functions.php:278 msgid "Bulgarian Lev" msgstr "" -#: includes/wc-core-functions.php:277 +#: includes/wc-core-functions.php:279 msgid "Brazilian Real" msgstr "" -#: includes/wc-core-functions.php:278 +#: includes/wc-core-functions.php:280 msgid "Canadian Dollars" msgstr "" -#: includes/wc-core-functions.php:279 +#: includes/wc-core-functions.php:281 msgid "Swiss Franc" msgstr "" -#: includes/wc-core-functions.php:280 +#: includes/wc-core-functions.php:282 msgid "Chilean Peso" msgstr "" -#: includes/wc-core-functions.php:281 +#: includes/wc-core-functions.php:283 msgid "Chinese Yuan" msgstr "" -#: includes/wc-core-functions.php:282 +#: includes/wc-core-functions.php:284 msgid "Colombian Peso" msgstr "" -#: includes/wc-core-functions.php:283 +#: includes/wc-core-functions.php:285 msgid "Czech Koruna" msgstr "" -#: includes/wc-core-functions.php:284 +#: includes/wc-core-functions.php:286 msgid "Danish Krone" msgstr "" -#: includes/wc-core-functions.php:285 +#: includes/wc-core-functions.php:287 msgid "Dominican Peso" msgstr "" -#: includes/wc-core-functions.php:286 +#: includes/wc-core-functions.php:288 msgid "Egyptian Pound" msgstr "" -#: includes/wc-core-functions.php:287 +#: includes/wc-core-functions.php:289 msgid "Euros" msgstr "" -#: includes/wc-core-functions.php:288 +#: includes/wc-core-functions.php:290 msgid "Pounds Sterling" msgstr "" -#: includes/wc-core-functions.php:289 +#: includes/wc-core-functions.php:291 msgid "Hong Kong Dollar" msgstr "" -#: includes/wc-core-functions.php:290 +#: includes/wc-core-functions.php:292 msgid "Croatia kuna" msgstr "" -#: includes/wc-core-functions.php:291 +#: includes/wc-core-functions.php:293 msgid "Hungarian Forint" msgstr "" -#: includes/wc-core-functions.php:292 +#: includes/wc-core-functions.php:294 msgid "Indonesia Rupiah" msgstr "" -#: includes/wc-core-functions.php:293 +#: includes/wc-core-functions.php:295 msgid "Israeli Shekel" msgstr "" -#: includes/wc-core-functions.php:294 +#: includes/wc-core-functions.php:296 msgid "Indian Rupee" msgstr "" -#: includes/wc-core-functions.php:295 +#: includes/wc-core-functions.php:297 msgid "Icelandic krona" msgstr "" -#: includes/wc-core-functions.php:296 +#: includes/wc-core-functions.php:298 msgid "Japanese Yen" msgstr "" -#: includes/wc-core-functions.php:297 +#: includes/wc-core-functions.php:299 msgid "Kenyan shilling" msgstr "" -#: includes/wc-core-functions.php:298 +#: includes/wc-core-functions.php:300 msgid "Lao Kip" msgstr "" -#: includes/wc-core-functions.php:299 +#: includes/wc-core-functions.php:301 msgid "South Korean Won" msgstr "" -#: includes/wc-core-functions.php:300 +#: includes/wc-core-functions.php:302 msgid "Mexican Peso" msgstr "" -#: includes/wc-core-functions.php:301 +#: includes/wc-core-functions.php:303 msgid "Malaysian Ringgits" msgstr "" -#: includes/wc-core-functions.php:302 +#: includes/wc-core-functions.php:304 msgid "Nigerian Naira" msgstr "" -#: includes/wc-core-functions.php:303 +#: includes/wc-core-functions.php:305 msgid "Norwegian Krone" msgstr "" -#: includes/wc-core-functions.php:304 +#: includes/wc-core-functions.php:306 msgid "Nepali Rupee" msgstr "" -#: includes/wc-core-functions.php:305 +#: includes/wc-core-functions.php:307 msgid "New Zealand Dollar" msgstr "" -#: includes/wc-core-functions.php:306 +#: includes/wc-core-functions.php:308 msgid "Philippine Pesos" msgstr "" -#: includes/wc-core-functions.php:307 +#: includes/wc-core-functions.php:309 msgid "Pakistani Rupee" msgstr "" -#: includes/wc-core-functions.php:308 +#: includes/wc-core-functions.php:310 msgid "Polish Zloty" msgstr "" -#: includes/wc-core-functions.php:309 +#: includes/wc-core-functions.php:311 msgid "Paraguayan Guaraní" msgstr "" -#: includes/wc-core-functions.php:310 +#: includes/wc-core-functions.php:312 msgid "Romanian Leu" msgstr "" -#: includes/wc-core-functions.php:311 +#: includes/wc-core-functions.php:313 msgid "Russian Ruble" msgstr "" -#: includes/wc-core-functions.php:312 +#: includes/wc-core-functions.php:314 msgid "Swedish Krona" msgstr "" -#: includes/wc-core-functions.php:313 +#: includes/wc-core-functions.php:315 msgid "Singapore Dollar" msgstr "" -#: includes/wc-core-functions.php:314 +#: includes/wc-core-functions.php:316 msgid "Thai Baht" msgstr "" -#: includes/wc-core-functions.php:315 +#: includes/wc-core-functions.php:317 msgid "Turkish Lira" msgstr "" -#: includes/wc-core-functions.php:316 +#: includes/wc-core-functions.php:318 msgid "Taiwan New Dollars" msgstr "" -#: includes/wc-core-functions.php:317 +#: includes/wc-core-functions.php:319 msgid "Ukrainian Hryvnia" msgstr "" -#: includes/wc-core-functions.php:318 +#: includes/wc-core-functions.php:320 msgid "US Dollars" msgstr "" -#: includes/wc-core-functions.php:319 +#: includes/wc-core-functions.php:321 msgid "Vietnamese Dong" msgstr "" -#: includes/wc-core-functions.php:320 +#: includes/wc-core-functions.php:322 msgid "South African rand" msgstr "" @@ -16108,27 +16108,27 @@ msgstr "" msgid "Reviews (%d)" msgstr "" -#: includes/wc-template-functions.php:1185 +#: includes/wc-template-functions.php:1188 msgid "" "Use $args argument as an array instead. Deprecated argument will be removed " "in WC 2.2." msgstr "" -#: includes/wc-template-functions.php:1398 +#: includes/wc-template-functions.php:1405 msgid "Place order" msgstr "" -#: includes/wc-template-functions.php:1762 +#: includes/wc-template-functions.php:1769 msgid "Update country" msgstr "" -#: includes/wc-template-functions.php:1783 +#: includes/wc-template-functions.php:1790 #: templates/cart/shipping-calculator.php:62 msgid "Select a state…" msgstr "" -#: includes/wc-template-functions.php:1828 -#: includes/wc-template-functions.php:1975 +#: includes/wc-template-functions.php:1835 +#: includes/wc-template-functions.php:1982 msgid "Choose an option" msgstr "" @@ -17325,7 +17325,7 @@ msgstr "" #: includes/admin/class-wc-admin-permalink-settings.php:196 #: includes/class-wc-post-types.php:233 #: includes/updates/woocommerce-update-2.0.php:55 -#: includes/wc-core-functions.php:557 includes/wc-core-functions.php:592 +#: includes/wc-core-functions.php:559 includes/wc-core-functions.php:594 msgctxt "slug" msgid "product" msgstr "" @@ -17439,12 +17439,12 @@ msgctxt "placeholder" msgid "Notes about your order, e.g. special notes for delivery." msgstr "" -#: includes/class-wc-countries.php:514 +#: includes/class-wc-countries.php:515 msgctxt "placeholder" msgid "Street address" msgstr "" -#: includes/class-wc-countries.php:519 +#: includes/class-wc-countries.php:520 msgctxt "placeholder" msgid "Apartment, suite, unit etc. (optional)" msgstr "" @@ -17511,12 +17511,12 @@ msgctxt "Settings group label" msgid "Checkout" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:96 +#: includes/admin/settings/views/html-settings-tax.php:98 msgctxt "%s will be a number eventually, but must be a string for now." msgid "%s items" msgstr "" -#: includes/admin/settings/views/html-settings-tax.php:110 +#: includes/admin/settings/views/html-settings-tax.php:112 msgctxt "Pagination, like `1 of 3`" msgid "%1$s of %2$s" msgstr "" @@ -17617,8 +17617,8 @@ msgid "Failed" msgstr "" #: includes/class-wc-product-grouped.php:156 -#: includes/class-wc-product-variable.php:351 -#: includes/class-wc-product-variable.php:357 +#: includes/class-wc-product-variable.php:355 +#: includes/class-wc-product-variable.php:361 msgctxt "Price range: from-to" msgid "%1$s–%2$s" msgstr "" @@ -17628,22 +17628,22 @@ msgctxt "Item name in quotes" msgid "“%s”" msgstr "" -#: includes/wc-core-functions.php:79 includes/wc-order-functions.php:637 +#: includes/wc-core-functions.php:81 includes/wc-order-functions.php:637 msgctxt "Order date parsed by strftime" msgid "%b %d, %Y @ %I:%M %p" msgstr "" -#: includes/wc-page-functions.php:116 +#: includes/wc-page-functions.php:120 msgctxt "edit-address-slug" msgid "billing" msgstr "" -#: includes/wc-page-functions.php:117 +#: includes/wc-page-functions.php:121 msgctxt "edit-address-slug" msgid "shipping" msgstr "" -#: includes/wc-template-functions.php:1353 +#: includes/wc-template-functions.php:1360 msgctxt "breadcrumb" msgid "Home" msgstr "" diff --git a/includes/abstracts/abstract-wc-order.php b/includes/abstracts/abstract-wc-order.php index bc25c7f06e1..a3dfd5ec471 100644 --- a/includes/abstracts/abstract-wc-order.php +++ b/includes/abstracts/abstract-wc-order.php @@ -1948,10 +1948,11 @@ abstract class WC_Abstract_Order { } $defaults = array( - 'show_sku' => false, - 'show_image' => false, - 'image_size' => array( 32, 32 ), - 'plain_text' => false + 'show_sku' => false, + 'show_image' => false, + 'image_size' => array( 32, 32 ), + 'plain_text' => false, + 'sent_to_admin' => false ); $args = wp_parse_args( $args, $defaults ); @@ -1960,11 +1961,12 @@ abstract class WC_Abstract_Order { wc_get_template( $template, array( 'order' => $this, 'items' => $this->get_items(), - 'show_download_links' => $this->is_download_permitted(), + 'show_download_links' => $this->is_download_permitted() && ! $args['sent_to_admin'], 'show_sku' => $args['show_sku'], - 'show_purchase_note' => $this->is_paid(), + 'show_purchase_note' => $this->is_paid() && ! $args['sent_to_admin'], 'show_image' => $args['show_image'], 'image_size' => $args['image_size'], + 'sent_to_admin' => $args['sent_to_admin'] ) ); return apply_filters( 'woocommerce_email_order_items_table', ob_get_clean(), $this ); diff --git a/includes/abstracts/abstract-wc-payment-gateway.php b/includes/abstracts/abstract-wc-payment-gateway.php index 2048887808d..4b6f5844954 100644 --- a/includes/abstracts/abstract-wc-payment-gateway.php +++ b/includes/abstracts/abstract-wc-payment-gateway.php @@ -153,7 +153,7 @@ abstract class WC_Payment_Gateway extends WC_Settings_API { */ public function is_available() { - $is_available = ( 'yes' === $this->enabled ) ? true : false; + $is_available = ( 'yes' === $this->enabled ); if ( WC()->cart && 0 < $this->get_order_total() && 0 < $this->max_amount && $this->max_amount < $this->get_order_total() ) { $is_available = false; diff --git a/includes/abstracts/abstract-wc-product.php b/includes/abstracts/abstract-wc-product.php index f0f1d580796..52c032dd021 100644 --- a/includes/abstracts/abstract-wc-product.php +++ b/includes/abstracts/abstract-wc-product.php @@ -222,15 +222,17 @@ class WC_Product { */ public function get_total_stock() { if ( empty( $this->total_stock ) ) { - $this->total_stock = max( 0, $this->get_stock_quantity() ); - if ( sizeof( $this->get_children() ) > 0 ) { + $this->total_stock = max( 0, $this->get_stock_quantity() ); + foreach ( $this->get_children() as $child_id ) { if ( 'yes' === get_post_meta( $child_id, '_manage_stock', true ) ) { $stock = get_post_meta( $child_id, '_stock', true ); $this->total_stock += max( 0, wc_stock_amount( $stock ) ); } } + } else { + $this->total_stock = $this->get_stock_quantity(); } } return wc_stock_amount( $this->total_stock ); @@ -1343,7 +1345,7 @@ class WC_Product { $attribute = isset( $attributes[ $attr ] ) ? $attributes[ $attr ] : $attributes[ 'pa_' . $attr ]; - if ( $attribute['is_taxonomy'] ) { + if ( isset( $attribute['is_taxonomy'] ) && $attribute['is_taxonomy'] ) { return implode( ', ', wc_get_product_terms( $this->id, $attribute['name'], array( 'fields' => 'names' ) ) ); diff --git a/includes/abstracts/abstract-wc-settings-api.php b/includes/abstracts/abstract-wc-settings-api.php index 418bb74663b..7d836b5ae70 100644 --- a/includes/abstracts/abstract-wc-settings-api.php +++ b/includes/abstracts/abstract-wc-settings-api.php @@ -666,6 +666,7 @@ abstract class WC_Settings_API { 'desc_tip' => false, 'description' => '', 'custom_attributes' => array(), + 'select_buttons' => false, 'options' => array() ); @@ -688,6 +689,9 @@ abstract class WC_Settings_API { get_description_html( $data ); ?> + +
    + diff --git a/includes/abstracts/abstract-wc-shipping-method.php b/includes/abstracts/abstract-wc-shipping-method.php index 80fcf02541b..e334175664b 100644 --- a/includes/abstracts/abstract-wc-shipping-method.php +++ b/includes/abstracts/abstract-wc-shipping-method.php @@ -86,8 +86,8 @@ abstract class WC_Shipping_Method extends WC_Settings_API { return; } - // Handle cost - $total_cost = is_array( $args['cost'] ) ? array_sum( $args['cost'] ) : $args['cost']; + // Total up the cost + $total_cost = wc_format_decimal( is_array( $args['cost'] ) ? array_sum( $args['cost'] ) : $args['cost'], wc_get_price_decimals() ); $taxes = $args['taxes']; // Taxes - if not an array and not set to false, calc tax based on cost and passed calc_tax variable diff --git a/includes/admin/class-wc-admin-assets.php b/includes/admin/class-wc-admin-assets.php index 6c20089c771..6a942d3576b 100644 --- a/includes/admin/class-wc-admin-assets.php +++ b/includes/admin/class-wc-admin-assets.php @@ -77,9 +77,7 @@ class WC_Admin_Assets { * Enqueue scripts. */ public function admin_scripts() { - global $wp_query, $post, $current_user; - - get_currentuserinfo(); + global $wp_query, $post; $screen = get_current_screen(); $wc_screen_id = sanitize_title( __( 'WooCommerce', 'woocommerce' ) ); diff --git a/includes/admin/class-wc-admin-help.php b/includes/admin/class-wc-admin-help.php index 4042c0730b9..870509df08e 100644 --- a/includes/admin/class-wc-admin-help.php +++ b/includes/admin/class-wc-admin-help.php @@ -160,7 +160,7 @@ class WC_Admin_Help { 'title' => __( 'WooCommerce 101', 'woocommerce' ), 'content' => '

    ' . __( 'WooCommerce 101', 'woocommerce' ) . ' – ' . esc_html( $video_map[ $video_key ]['title'] ) . '

    ' . - '' + '' ) ); } diff --git a/includes/admin/class-wc-admin-post-types.php b/includes/admin/class-wc-admin-post-types.php index 36c22214e6a..d616301ecaa 100644 --- a/includes/admin/class-wc-admin-post-types.php +++ b/includes/admin/class-wc-admin-post-types.php @@ -222,7 +222,7 @@ class WC_Admin_Post_Types { $columns['sku'] = __( 'SKU', 'woocommerce' ); } - if ( 'yes' == get_option( 'woocommerce_manage_stock' ) ) { + if ( 'yes' === get_option( 'woocommerce_manage_stock' ) ) { $columns['is_in_stock'] = __( 'Stock', 'woocommerce' ); } @@ -395,19 +395,18 @@ class WC_Admin_Post_Types { echo ''; break; case 'is_in_stock' : - if ( $the_product->is_in_stock() ) { echo '' . __( 'In stock', 'woocommerce' ) . ''; } else { echo '' . __( 'Out of stock', 'woocommerce' ) . ''; } - if ( $the_product->managing_stock() ) { - echo ' × ' . $the_product->get_total_stock(); + // If the product has children, a single stock level would be misleading as some could be -ve and some +ve, some managed/some unmanaged etc so hide stock level in this case. + if ( $the_product->managing_stock() && ! sizeof( $the_product->get_children() ) ) { + echo ' (' . $the_product->get_total_stock() . ')'; } break; - default : break; } diff --git a/includes/admin/class-wc-admin-setup-wizard.php b/includes/admin/class-wc-admin-setup-wizard.php index 6b203e9f428..741c7bb272f 100644 --- a/includes/admin/class-wc-admin-setup-wizard.php +++ b/includes/admin/class-wc-admin-setup-wizard.php @@ -286,6 +286,7 @@ class WC_Admin_Setup_Wizard { $currency = get_option( 'woocommerce_currency', 'GBP' ); $currency_pos = get_option( 'woocommerce_currency_pos', 'left' ); $decimal_sep = get_option( 'woocommerce_price_decimal_sep', '.' ); + $num_decimals = get_option( 'woocommerce_price_num_decimals', '2' ); $thousand_sep = get_option( 'woocommerce_price_thousand_sep', ',' ); $dimension_unit = get_option( 'woocommerce_dimension_unit', 'cm' ); $weight_unit = get_option( 'woocommerce_weight_unit', 'kg' ); @@ -308,7 +309,7 @@ class WC_Admin_Setup_Wizard { $name ) { - echo ''; + echo ''; } ?> @@ -338,6 +339,12 @@ class WC_Admin_Setup_Wizard { + + + + + + @@ -381,6 +388,7 @@ class WC_Admin_Setup_Wizard { $currency_code = sanitize_text_field( $_POST['currency_code'] ); $currency_pos = sanitize_text_field( $_POST['currency_pos'] ); $decimal_sep = sanitize_text_field( $_POST['decimal_sep'] ); + $num_decimals = sanitize_text_field( $_POST['num_decimals'] ); $thousand_sep = sanitize_text_field( $_POST['thousand_sep'] ); $weight_unit = sanitize_text_field( $_POST['weight_unit'] ); $dimension_unit = sanitize_text_field( $_POST['dimension_unit'] ); @@ -389,6 +397,7 @@ class WC_Admin_Setup_Wizard { update_option( 'woocommerce_currency', $currency_code ); update_option( 'woocommerce_currency_pos', $currency_pos ); update_option( 'woocommerce_price_decimal_sep', $decimal_sep ); + update_option( 'woocommerce_price_num_decimals', $num_decimals ); update_option( 'woocommerce_price_thousand_sep', $thousand_sep ); update_option( 'woocommerce_weight_unit', $weight_unit ); update_option( 'woocommerce_dimension_unit', $dimension_unit ); @@ -739,7 +748,7 @@ class WC_Admin_Setup_Wizard {
    -

    ', '' ); ?>

    +

    ', '' ); ?>

    diff --git a/includes/admin/meta-boxes/views/html-order-items.php b/includes/admin/meta-boxes/views/html-order-items.php index 92d09ccb759..bb497900dba 100644 --- a/includes/admin/meta-boxes/views/html-order-items.php +++ b/includes/admin/meta-boxes/views/html-order-items.php @@ -172,7 +172,7 @@ if ( wc_tax_enabled() ) { label; ?>: get_total_tax_refunded_by_rate_id( $tax->rate_id ) ) > 0 ) { - echo '' . strip_tags( $tax->formatted_amount ) . ' ' . wc_price( $tax->amount - $refunded, array( 'currency' => $order->get_order_currency() ) ) . ''; + echo '' . strip_tags( $tax->formatted_amount ) . ' ' . wc_price( WC_Tax::round( $tax->amount, wc_get_price_decimals() ) - WC_Tax::round( $refunded, wc_get_price_decimals() ), array( 'currency' => $order->get_order_currency() ) ) . ''; } else { echo $tax->formatted_amount; } diff --git a/includes/admin/reports/class-wc-report-sales-by-date.php b/includes/admin/reports/class-wc-report-sales-by-date.php index a51f80fa562..40a6d6ff65b 100644 --- a/includes/admin/reports/class-wc-report-sales-by-date.php +++ b/includes/admin/reports/class-wc-report-sales-by-date.php @@ -266,19 +266,22 @@ class WC_Report_Sales_By_Date extends WC_Admin_Report { 'name' => 'total_sales' ), '_order_shipping' => array( - 'type' => 'meta', - 'function' => '', - 'name' => 'total_shipping' + 'type' => 'meta', + 'function' => '', + 'name' => 'total_shipping', + 'join_type' => 'LEFT' ), '_order_tax' => array( - 'type' => 'meta', - 'function' => '', - 'name' => 'total_tax' + 'type' => 'meta', + 'function' => '', + 'name' => 'total_tax', + 'join_type' => 'LEFT' ), '_order_shipping_tax' => array( - 'type' => 'meta', - 'function' => '', - 'name' => 'total_shipping_tax' + 'type' => 'meta', + 'function' => '', + 'name' => 'total_shipping_tax', + 'join_type' => 'LEFT' ), '_qty' => array( 'type' => 'order_item_meta', @@ -292,34 +295,32 @@ class WC_Report_Sales_By_Date extends WC_Admin_Report { 'query_type' => 'get_results', 'filter_range' => true, 'order_status' => false, - 'parent_order_status' => array( 'completed', 'processing', 'on-hold' ), + 'parent_order_status' => array( 'completed', 'processing', 'on-hold', 'refunded' ), ) ); /** - * Total up values by combining full refunds and partial refunds for line items. + * Total up refunds. Note: when an order is fully refunded, a refund line will be added. */ - $this->report_data->total_tax_refunded = wc_format_decimal( array_sum( wp_list_pluck( $this->report_data->full_refunds, 'total_tax' ) ), 2 ); - $this->report_data->total_shipping_refunded = wc_format_decimal( array_sum( wp_list_pluck( $this->report_data->full_refunds, 'total_shipping' ) ), 2 ); - $this->report_data->total_shipping_tax_refunded = wc_format_decimal( array_sum( wp_list_pluck( $this->report_data->full_refunds, 'total_shipping_tax' ) ), 2 ); - $this->report_data->total_refunds = wc_format_decimal( array_sum( wp_list_pluck( $this->report_data->full_refunds, 'total_refund' ) ), 2 ); + $this->report_data->total_tax_refunded = 0; + $this->report_data->total_shipping_refunded = 0; + $this->report_data->total_shipping_tax_refunded = 0; + $this->report_data->total_refunds = 0; - /** - * Loop over partial refunds and increase the above values. - */ foreach ( $this->report_data->partial_refunds as $key => $value ) { - switch ( $value->item_type ) { - case 'shipping' : - $this->report_data->total_shipping_tax_refunded += ( $value->total_shipping_tax * -1 ); - $this->report_data->total_shipping_refunded += wc_format_decimal( $value->total_refund, 2 ); - $this->report_data->total_refunds += $value->total_refund; - - - break; - case 'line_item' : - $this->report_data->total_tax_refunded += ( $value->total_tax * -1 ); - $this->report_data->refunded_order_items += absint( $value->order_item_count ); - $this->report_data->total_refunds += $value->total_refund; - break; + if ( is_null( $value->item_type ) ) { + // Null when the order was refunded, but not the line items themselves. + $this->report_data->total_tax_refunded += ( $value->total_tax * -1 ); + $this->report_data->total_refunds += $value->total_refund; + } + elseif( 'shipping' === $value->item_type ) { + $this->report_data->total_shipping_tax_refunded += ( $value->total_shipping_tax * -1 ); + $this->report_data->total_shipping_refunded += wc_format_decimal( $value->total_refund, 2 ); + $this->report_data->total_refunds += $value->total_refund; + } + elseif( 'line_item' === $value->item_type ) { + $this->report_data->total_tax_refunded += ( $value->total_tax * -1 ); + $this->report_data->refunded_order_items += absint( $value->order_item_count ); + $this->report_data->total_refunds += $value->total_refund; } } @@ -504,7 +505,7 @@ class WC_Report_Sales_By_Date extends WC_Admin_Report { $order_amounts = $this->prepare_chart_data( $this->report_data->orders, 'post_date', 'total_sales', $this->chart_interval, $this->start_date, $this->chart_groupby ); $coupon_amounts = $this->prepare_chart_data( $this->report_data->coupons, 'post_date', 'discount_amount', $this->chart_interval, $this->start_date, $this->chart_groupby ); $shipping_amounts = $this->prepare_chart_data( $this->report_data->orders, 'post_date', 'total_shipping', $this->chart_interval, $this->start_date, $this->chart_groupby ); - $refund_amounts = $this->prepare_chart_data( array_merge( $this->report_data->partial_refunds, $this->report_data->full_refunds ), 'post_date', 'total_refund', $this->chart_interval, $this->start_date, $this->chart_groupby ); + $refund_amounts = $this->prepare_chart_data( $this->report_data->partial_refunds, 'post_date', 'total_refund', $this->chart_interval, $this->start_date, $this->chart_groupby ); $shipping_tax_amounts = $this->prepare_chart_data( $this->report_data->orders, 'post_date', 'total_shipping_tax', $this->chart_interval, $this->start_date, $this->chart_groupby ); $tax_amounts = $this->prepare_chart_data( $this->report_data->orders, 'post_date', 'total_tax', $this->chart_interval, $this->start_date, $this->chart_groupby ); diff --git a/includes/admin/settings/class-wc-settings-checkout.php b/includes/admin/settings/class-wc-settings-checkout.php index c9ea9a4b019..45347c303b7 100644 --- a/includes/admin/settings/class-wc-settings-checkout.php +++ b/includes/admin/settings/class-wc-settings-checkout.php @@ -113,7 +113,7 @@ class WC_Settings_Payment_Gateways extends WC_Settings_Page { 'desc_tip' => __( 'Force SSL (HTTPS) on the checkout pages (an SSL Certificate is required).', 'woocommerce' ), ), - array( + 'unforce_ssl_checkout' => array( 'desc' => __( 'Force HTTP when leaving the checkout', 'woocommerce' ), 'id' => 'woocommerce_unforce_ssl_checkout', 'default' => 'no', @@ -225,6 +225,10 @@ class WC_Settings_Payment_Gateways extends WC_Settings_Page { ) ); + if ( wc_site_is_https() ) { + unset( $settings['unforce_ssl_checkout'] ); + } + return apply_filters( 'woocommerce_get_settings_' . $this->id, $settings ); } diff --git a/includes/admin/settings/class-wc-settings-shipping.php b/includes/admin/settings/class-wc-settings-shipping.php index 4abde90b474..1edd7e095c7 100644 --- a/includes/admin/settings/class-wc-settings-shipping.php +++ b/includes/admin/settings/class-wc-settings-shipping.php @@ -244,7 +244,7 @@ class WC_Settings_Shipping extends WC_Settings_Page { $wc_shipping->process_admin_options(); } else { - foreach ( $wc_shipping->get_shipping_methods() as $method_id => $method ) { + foreach ( $wc_shipping->load_shipping_methods() as $method_id => $method ) { if ( $current_section === sanitize_title( get_class( $method ) ) ) { do_action( 'woocommerce_update_options_' . $this->id . '_' . $method->id ); } diff --git a/includes/admin/settings/class-wc-settings-tax.php b/includes/admin/settings/class-wc-settings-tax.php index f1c35101653..6435109690d 100644 --- a/includes/admin/settings/class-wc-settings-tax.php +++ b/includes/admin/settings/class-wc-settings-tax.php @@ -109,16 +109,15 @@ class WC_Settings_Tax extends WC_Settings_Page { * Output tax rate tables. */ public function output_tax_rates() { - global $wpdb, - $current_section; + global $wpdb, $current_section; $current_class = $this->get_current_tax_class(); $countries = array(); foreach ( WC()->countries->get_allowed_countries() as $value => $label ) { $countries[] = array( - 'label' => $label, 'value' => $value, + 'label' => esc_js( html_entity_decode( $label ) ), ); } @@ -126,8 +125,8 @@ class WC_Settings_Tax extends WC_Settings_Page { foreach ( WC()->countries->get_allowed_country_states() as $label ) { foreach ( $label as $code => $state ) { $states[] = array( - 'label' => $state, 'value' => $code, + 'label' => esc_js( html_entity_decode( $state ) ), ); } } diff --git a/includes/admin/settings/views/html-settings-tax.php b/includes/admin/settings/views/html-settings-tax.php index 278ff2ed485..d1b79c2fcc2 100644 --- a/includes/admin/settings/views/html-settings-tax.php +++ b/includes/admin/settings/views/html-settings-tax.php @@ -5,9 +5,11 @@ if ( ! defined( 'ABSPATH' ) ) { ?>

    +
    +

    @@ -37,7 +39,7 @@ if ( ! defined( 'ABSPATH' ) ) { - +
    @@ -47,7 +49,7 @@ if ( ! defined( 'ABSPATH' ) ) { - + diff --git a/includes/admin/views/html-admin-page-status-report.php b/includes/admin/views/html-admin-page-status-report.php index 8f04d2aa307..2dd9aef1c37 100644 --- a/includes/admin/views/html-admin-page-status-report.php +++ b/includes/admin/views/html-admin-page-status-report.php @@ -81,12 +81,29 @@ if ( ! defined( 'ABSPATH' ) ) { : - ✔'; else echo ''; ?> + + + + + + + + + + : + + + + + + + + : - + diff --git a/includes/api/class-wc-api-products.php b/includes/api/class-wc-api-products.php index b56082bd665..be23698029d 100644 --- a/includes/api/class-wc-api-products.php +++ b/includes/api/class-wc-api-products.php @@ -685,7 +685,7 @@ class WC_API_Products extends WC_API_Resource { if ( is_numeric( $image ) ) { $image_id = absint( $image ); } else if ( ! empty( $image ) ) { - $upload = $this->upload_product_image( esc_url_raw( $image ) ); + $upload = $this->upload_product_category_image( esc_url_raw( $image ) ); $image_id = $this->set_product_category_image_as_attachment( $upload ); } @@ -751,7 +751,7 @@ class WC_API_Products extends WC_API_Resource { if ( is_numeric( $image ) ) { $image_id = absint( $image ); } else if ( ! empty( $image ) ) { - $upload = $this->upload_product_image( esc_url_raw( $image ) ); + $upload = $this->upload_product_category_image( esc_url_raw( $image ) ); $image_id = $this->set_product_category_image_as_attachment( $upload ); } @@ -1420,59 +1420,36 @@ class WC_API_Products extends WC_API_Resource { } else { - // Regular Price. + // Regular Price if ( isset( $data['regular_price'] ) ) { - $regular_price = ( '' === $data['regular_price'] ) ? '' : wc_format_decimal( $data['regular_price'] ); - update_post_meta( $product_id, '_regular_price', $regular_price ); + $regular_price = ( '' === $data['regular_price'] ) ? '' : $data['regular_price']; } else { $regular_price = get_post_meta( $product_id, '_regular_price', true ); } - // Sale Price. + // Sale Price if ( isset( $data['sale_price'] ) ) { - $sale_price = ( '' === $data['sale_price'] ) ? '' : wc_format_decimal( $data['sale_price'] ); - update_post_meta( $product_id, '_sale_price', $sale_price ); + $sale_price = ( '' === $data['sale_price'] ) ? '' : $data['sale_price']; } else { $sale_price = get_post_meta( $product_id, '_sale_price', true ); } - $date_from = isset( $data['sale_price_dates_from'] ) ? strtotime( $data['sale_price_dates_from'] ) : get_post_meta( $product_id, '_sale_price_dates_from', true ); - $date_to = isset( $data['sale_price_dates_to'] ) ? strtotime( $data['sale_price_dates_to'] ) : get_post_meta( $product_id, '_sale_price_dates_to', true ); - - // Dates - if ( $date_from ) { - update_post_meta( $product_id, '_sale_price_dates_from', $date_from ); + if ( isset( $data['sale_price_dates_from'] ) ) { + $date_from = $data['sale_price_dates_from']; } else { - update_post_meta( $product_id, '_sale_price_dates_from', '' ); + $date_from = get_post_meta( $product_id, '_sale_price_dates_from', true ); + $date_from = ( '' === $date_from ) ? '' : date( 'Y-m-d', $date_from ); } - if ( $date_to ) { - update_post_meta( $product_id, '_sale_price_dates_to', $date_to ); + if ( isset( $data['sale_price_dates_to'] ) ) { + $date_to = $data['sale_price_dates_to']; } else { - update_post_meta( $product_id, '_sale_price_dates_to', '' ); + $date_to = get_post_meta( $product_id, '_sale_price_dates_to', true ); + $date_to = ( '' === $date_to ) ? '' : date( 'Y-m-d', $date_to ); } - if ( $date_to && ! $date_from ) { - $date_from = strtotime( 'NOW', current_time( 'timestamp' ) ); - update_post_meta( $product_id, '_sale_price_dates_from', $date_from ); - } + _wc_save_product_price( $product_id, $regular_price, $sale_price, $date_from, $date_to ); - // Update price if on sale. - if ( '' !== $sale_price && '' == $date_to && '' == $date_from ) { - update_post_meta( $product_id, '_price', wc_format_decimal( $sale_price ) ); - } else { - update_post_meta( $product_id, '_price', $regular_price ); - } - - if ( '' !== $sale_price && $date_from && $date_from <= strtotime( 'NOW', current_time( 'timestamp' ) ) ) { - update_post_meta( $product_id, '_price', wc_format_decimal( $sale_price ) ); - } - - if ( $date_to && $date_to < strtotime( 'NOW', current_time( 'timestamp' ) ) ) { - update_post_meta( $product_id, '_price', $regular_price ); - update_post_meta( $product_id, '_sale_price_dates_from', '' ); - update_post_meta( $product_id, '_sale_price_dates_to', '' ); - } } // Product parent ID for groups. @@ -1545,7 +1522,7 @@ class WC_API_Products extends WC_API_Resource { // Backorders. if ( isset( $data['backorders'] ) ) { - if ( 'notify' == $data['backorders'] ) { + if ( 'notify' === $data['backorders'] ) { $backorders = 'notify'; } else { $backorders = ( true === $data['backorders'] ) ? 'yes' : 'no'; @@ -1780,16 +1757,29 @@ class WC_API_Products extends WC_API_Resource { } } - // Thumbnail + // Thumbnail. if ( isset( $variation['image'] ) && is_array( $variation['image'] ) ) { $image = current( $variation['image'] ); if ( $image && is_array( $image ) ) { if ( isset( $image['position'] ) && isset( $image['src'] ) && $image['position'] == 0 ) { $upload = $this->upload_product_image( wc_clean( $image['src'] ) ); + if ( is_wp_error( $upload ) ) { throw new WC_API_Exception( 'woocommerce_api_cannot_upload_product_image', $upload->get_error_message(), 400 ); } + $attachment_id = $this->set_product_image_as_attachment( $upload, $id ); + + // Set the image alt if present. + if ( ! empty( $image['alt'] ) ) { + update_post_meta( $attachment_id, '_wp_attachment_image_alt', wc_clean( $image['alt'] ) ); + } + + // Set the image title if present. + if ( ! empty( $image['title'] ) ) { + wp_update_post( array( 'ID' => $attachment_id, 'post_title' => $image['title'] ) ); + } + update_post_meta( $variation_id, '_thumbnail_id', $attachment_id ); } } else { @@ -1856,56 +1846,33 @@ class WC_API_Products extends WC_API_Resource { // Regular Price if ( isset( $variation['regular_price'] ) ) { - $regular_price = ( '' === $variation['regular_price'] ) ? '' : wc_format_decimal( $variation['regular_price'] ); - update_post_meta( $variation_id, '_regular_price', $regular_price ); + $regular_price = ( '' === $variation['regular_price'] ) ? '' : $variation['regular_price']; } else { $regular_price = get_post_meta( $variation_id, '_regular_price', true ); } // Sale Price if ( isset( $variation['sale_price'] ) ) { - $sale_price = ( '' === $variation['sale_price'] ) ? '' : wc_format_decimal( $variation['sale_price'] ); - update_post_meta( $variation_id, '_sale_price', $sale_price ); + $sale_price = ( '' === $variation['sale_price'] ) ? '' : $variation['sale_price']; } else { $sale_price = get_post_meta( $variation_id, '_sale_price', true ); } - $date_from = isset( $variation['sale_price_dates_from'] ) ? strtotime( $variation['sale_price_dates_from'] ) : get_post_meta( $variation_id, '_sale_price_dates_from', true ); - $date_to = isset( $variation['sale_price_dates_to'] ) ? strtotime( $variation['sale_price_dates_to'] ) : get_post_meta( $variation_id, '_sale_price_dates_to', true ); - - // Save Dates - if ( $date_from ) { - update_post_meta( $variation_id, '_sale_price_dates_from', $date_from ); + if ( isset( $variation['sale_price_dates_from'] ) ) { + $date_from = $variation['sale_price_dates_from']; } else { - update_post_meta( $variation_id, '_sale_price_dates_from', '' ); + $date_from = get_post_meta( $variation_id, '_sale_price_dates_from', true ); + $date_from = ( '' === $date_from ) ? '' : date( 'Y-m-d', $date_from ); } - if ( $date_to ) { - update_post_meta( $variation_id, '_sale_price_dates_to', $date_to ); + if ( isset( $variation['sale_price_dates_to'] ) ) { + $date_to = $variation['sale_price_dates_to']; } else { - update_post_meta( $variation_id, '_sale_price_dates_to', '' ); + $date_to = get_post_meta( $variation_id, '_sale_price_dates_to', true ); + $date_to = ( '' === $date_to ) ? '' : date( 'Y-m-d', $date_to ); } - if ( $date_to && ! $date_from ) { - update_post_meta( $variation_id, '_sale_price_dates_from', strtotime( 'NOW', current_time( 'timestamp' ) ) ); - } - - // Update price if on sale - if ( '' != $sale_price && '' == $date_to && '' == $date_from ) { - update_post_meta( $variation_id, '_price', $sale_price ); - } else { - update_post_meta( $variation_id, '_price', $regular_price ); - } - - if ( '' != $sale_price && $date_from && $date_from < strtotime( 'NOW', current_time( 'timestamp' ) ) ) { - update_post_meta( $variation_id, '_price', $sale_price ); - } - - if ( $date_to && $date_to < strtotime( 'NOW', current_time( 'timestamp' ) ) ) { - update_post_meta( $variation_id, '_price', $regular_price ); - update_post_meta( $variation_id, '_sale_price_dates_from', '' ); - update_post_meta( $variation_id, '_sale_price_dates_to', '' ); - } + _wc_save_product_price( $variation_id, $regular_price, $sale_price, $date_from, $date_to ); // Tax class if ( isset( $variation['tax_class'] ) ) { @@ -2236,7 +2203,7 @@ class WC_API_Products extends WC_API_Resource { } /** - * Save product images + * Save product images. * * @since 2.2 * @param array $images @@ -2272,19 +2239,19 @@ class WC_API_Products extends WC_API_Resource { throw new WC_API_Exception( 'woocommerce_api_cannot_upload_product_image', $upload->get_error_message(), 400 ); } - $gallery[] = $this->set_product_image_as_attachment( $upload, $id ); - } else { - $gallery[] = $attachment_id; + $attachment_id = $this->set_product_image_as_attachment( $upload, $id ); } + + $gallery[] = $attachment_id; } // Set the image alt if present. - if ( ! empty( $image['alt'] ) ) { + if ( ! empty( $image['alt'] ) && $attachment_id ) { update_post_meta( $attachment_id, '_wp_attachment_image_alt', wc_clean( $image['alt'] ) ); } // Set the image title if present. - if ( ! empty( $image['title'] ) ) { + if ( ! empty( $image['title'] ) && $attachment_id ) { wp_update_post( array( 'ID' => $attachment_id, 'post_title' => $image['title'] ) ); } } @@ -2306,14 +2273,14 @@ class WC_API_Products extends WC_API_Resource { * @return int|WP_Error attachment id */ public function upload_product_image( $image_url ) { - return $this->upload_image_from_url( $image_url ); + return $this->upload_image_from_url( $image_url, 'product_image' ); } /** * Upload product category image from URL. * - * @since 2.5.0 - * @param string $image_url + * @since 2.5.0 + * @param string $image_url * @return int|WP_Error attachment id */ public function upload_product_category_image( $image_url ) { @@ -2325,9 +2292,9 @@ class WC_API_Products extends WC_API_Resource { * * @throws WC_API_Exception * - * @since 2.5.0 - * @param string $image_url - * @param string $upload_for + * @since 2.5.0 + * @param string $image_url + * @param string $upload_for * @return int|WP_Error Attachment id */ protected function upload_image_from_url( $image_url, $upload_for = 'product_image' ) { @@ -2340,10 +2307,10 @@ class WC_API_Products extends WC_API_Resource { throw new WC_API_Exception( 'woocommerce_api_invalid_' . $upload_for, sprintf( __( 'Invalid URL %s', 'woocommerce' ), $image_url ), 400 ); } - // Ensure url is valid + // Ensure url is valid. $image_url = str_replace( ' ', '%20', $image_url ); - // Get the file + // Get the file. $response = wp_safe_remote_get( $image_url, array( 'timeout' => 10 ) ); @@ -2352,7 +2319,7 @@ class WC_API_Products extends WC_API_Resource { throw new WC_API_Exception( 'woocommerce_api_invalid_remote_' . $upload_for, sprintf( __( 'Error getting remote image %s', 'woocommerce' ), $image_url ), 400 ); } - // Ensure we have a file name and type + // Ensure we have a file name and type. if ( ! $wp_filetype['type'] ) { $headers = wp_remote_retrieve_headers( $response ); if ( isset( $headers['content-disposition'] ) && strstr( $headers['content-disposition'], 'filename=' ) ) { @@ -2365,14 +2332,14 @@ class WC_API_Products extends WC_API_Resource { unset( $headers ); } - // Upload the file + // Upload the file. $upload = wp_upload_bits( $file_name, '', wp_remote_retrieve_body( $response ) ); if ( $upload['error'] ) { throw new WC_API_Exception( 'woocommerce_api_' . $upload_for . '_upload_error', $upload['error'], 400 ); } - // Get filesize + // Get filesize. $filesize = filesize( $upload['file'] ); if ( 0 == $filesize ) { diff --git a/includes/api/class-wc-api-resource.php b/includes/api/class-wc-api-resource.php index 725294c7841..5d19546a65a 100644 --- a/includes/api/class-wc-api-resource.php +++ b/includes/api/class-wc-api-resource.php @@ -438,26 +438,27 @@ class WC_API_Resource { * @return bool true if the current user has the permissions to perform the context on the post */ private function check_permission( $post, $context ) { + $permission = false; if ( ! is_a( $post, 'WP_Post' ) ) { $post = get_post( $post ); } if ( is_null( $post ) ) { - return false; + return $permission; } $post_type = get_post_type_object( $post->post_type ); if ( 'read' === $context ) { - return ( 'revision' !== $post->post_type && current_user_can( $post_type->cap->read_private_posts, $post->ID ) ); + $permission = 'revision' !== $post->post_type && current_user_can( $post_type->cap->read_private_posts, $post->ID ); } elseif ( 'edit' === $context ) { - return current_user_can( $post_type->cap->edit_post, $post->ID ); + $permission = current_user_can( $post_type->cap->edit_post, $post->ID ); } elseif ( 'delete' === $context ) { - return current_user_can( $post_type->cap->delete_post, $post->ID ); - } else { - return false; + $permission = current_user_can( $post_type->cap->delete_post, $post->ID ); } + + return apply_filters( 'woocommerce_api_check_permission', $permission, $context, $post, $post_type ); } } diff --git a/includes/api/class-wc-api-server.php b/includes/api/class-wc-api-server.php index 3b607f3f163..12a21e96d35 100644 --- a/includes/api/class-wc-api-server.php +++ b/includes/api/class-wc-api-server.php @@ -454,13 +454,13 @@ class WC_API_Server { 'currency' => get_woocommerce_currency(), 'currency_format' => get_woocommerce_currency_symbol(), 'currency_position' => get_option( 'woocommerce_currency_pos' ), - 'thousand_separator' => get_option( 'woocommerce_price_decimal_sep' ), - 'decimal_separator' => get_option( 'woocommerce_price_thousand_sep' ), + 'thousand_separator' => get_option( 'woocommerce_price_thousand_sep' ), + 'decimal_separator' => get_option( 'woocommerce_price_decimal_sep' ), 'price_num_decimals' => wc_get_price_decimals(), 'tax_included' => wc_prices_include_tax(), 'weight_unit' => get_option( 'woocommerce_weight_unit' ), 'dimension_unit' => get_option( 'woocommerce_dimension_unit' ), - 'ssl_enabled' => ( 'yes' === get_option( 'woocommerce_force_ssl_checkout' ) ), + 'ssl_enabled' => ( 'yes' === get_option( 'woocommerce_force_ssl_checkout' ) || wc_site_is_https() ), 'permalinks_enabled' => ( '' !== get_option( 'permalink_structure' ) ), 'generate_password' => ( 'yes' === get_option( 'woocommerce_registration_generate_password' ) ), 'links' => array( diff --git a/includes/api/v2/class-wc-api-products.php b/includes/api/v2/class-wc-api-products.php index c8bd587f2ff..3f60f9cde16 100644 --- a/includes/api/v2/class-wc-api-products.php +++ b/includes/api/v2/class-wc-api-products.php @@ -965,57 +965,34 @@ class WC_API_Products extends WC_API_Resource { // Regular Price if ( isset( $data['regular_price'] ) ) { - $regular_price = ( '' === $data['regular_price'] ) ? '' : wc_format_decimal( $data['regular_price'] ); - update_post_meta( $product_id, '_regular_price', $regular_price ); + $regular_price = ( '' === $data['regular_price'] ) ? '' : $data['regular_price']; } else { $regular_price = get_post_meta( $product_id, '_regular_price', true ); } // Sale Price if ( isset( $data['sale_price'] ) ) { - $sale_price = ( '' === $data['sale_price'] ) ? '' : wc_format_decimal( $data['sale_price'] ); - update_post_meta( $product_id, '_sale_price', $sale_price ); + $sale_price = ( '' === $data['sale_price'] ) ? '' : $data['sale_price']; } else { $sale_price = get_post_meta( $product_id, '_sale_price', true ); } - $date_from = isset( $data['sale_price_dates_from'] ) ? strtotime( $data['sale_price_dates_from'] ) : get_post_meta( $product_id, '_sale_price_dates_from', true ); - $date_to = isset( $data['sale_price_dates_to'] ) ? strtotime( $data['sale_price_dates_to'] ) : get_post_meta( $product_id, '_sale_price_dates_to', true ); - - // Dates - if ( $date_from ) { - update_post_meta( $product_id, '_sale_price_dates_from', $date_from ); + if ( isset( $data['sale_price_dates_from'] ) ) { + $date_from = $data['sale_price_dates_from']; } else { - update_post_meta( $product_id, '_sale_price_dates_from', '' ); + $date_from = get_post_meta( $product_id, '_sale_price_dates_from', true ); + $date_from = ( '' === $date_from ) ? '' : date( 'Y-m-d', $date_from ); } - if ( $date_to ) { - update_post_meta( $product_id, '_sale_price_dates_to', $date_to ); + if ( isset( $data['sale_price_dates_to'] ) ) { + $date_to = $data['sale_price_dates_to']; } else { - update_post_meta( $product_id, '_sale_price_dates_to', '' ); + $date_to = get_post_meta( $product_id, '_sale_price_dates_to', true ); + $date_to = ( '' === $date_to ) ? '' : date( 'Y-m-d', $date_to ); } - if ( $date_to && ! $date_from ) { - $date_from = strtotime( 'NOW', current_time( 'timestamp' ) ); - update_post_meta( $product_id, '_sale_price_dates_from', $date_from ); - } + _wc_save_product_price( $product_id, $regular_price, $sale_price, $date_from, $date_to ); - // Update price if on sale - if ( '' !== $sale_price && '' == $date_to && '' == $date_from ) { - update_post_meta( $product_id, '_price', wc_format_decimal( $sale_price ) ); - } else { - update_post_meta( $product_id, '_price', $regular_price ); - } - - if ( '' !== $sale_price && $date_from && $date_from <= strtotime( 'NOW', current_time( 'timestamp' ) ) ) { - update_post_meta( $product_id, '_price', wc_format_decimal( $sale_price ) ); - } - - if ( $date_to && $date_to < strtotime( 'NOW', current_time( 'timestamp' ) ) ) { - update_post_meta( $product_id, '_price', $regular_price ); - update_post_meta( $product_id, '_sale_price_dates_from', '' ); - update_post_meta( $product_id, '_sale_price_dates_to', '' ); - } } // Product parent ID for groups @@ -1389,56 +1366,33 @@ class WC_API_Products extends WC_API_Resource { // Regular Price if ( isset( $variation['regular_price'] ) ) { - $regular_price = ( '' === $variation['regular_price'] ) ? '' : wc_format_decimal( $variation['regular_price'] ); - update_post_meta( $variation_id, '_regular_price', $regular_price ); + $regular_price = ( '' === $variation['regular_price'] ) ? '' : $variation['regular_price']; } else { $regular_price = get_post_meta( $variation_id, '_regular_price', true ); } // Sale Price if ( isset( $variation['sale_price'] ) ) { - $sale_price = ( '' === $variation['sale_price'] ) ? '' : wc_format_decimal( $variation['sale_price'] ); - update_post_meta( $variation_id, '_sale_price', $sale_price ); + $sale_price = ( '' === $variation['sale_price'] ) ? '' : $variation['sale_price']; } else { $sale_price = get_post_meta( $variation_id, '_sale_price', true ); } - $date_from = isset( $variation['sale_price_dates_from'] ) ? strtotime( $variation['sale_price_dates_from'] ) : get_post_meta( $variation_id, '_sale_price_dates_from', true ); - $date_to = isset( $variation['sale_price_dates_to'] ) ? strtotime( $variation['sale_price_dates_to'] ) : get_post_meta( $variation_id, '_sale_price_dates_to', true ); - - // Save Dates - if ( $date_from ) { - update_post_meta( $variation_id, '_sale_price_dates_from', $date_from ); + if ( isset( $variation['sale_price_dates_from'] ) ) { + $date_from = $variation['sale_price_dates_from']; } else { - update_post_meta( $variation_id, '_sale_price_dates_from', '' ); + $date_from = get_post_meta( $variation_id, '_sale_price_dates_from', true ); + $date_from = ( '' === $date_from ) ? '' : date( 'Y-m-d', $date_from ); } - if ( $date_to ) { - update_post_meta( $variation_id, '_sale_price_dates_to', $date_to ); + if ( isset( $variation['sale_price_dates_to'] ) ) { + $date_to = $variation['sale_price_dates_to']; } else { - update_post_meta( $variation_id, '_sale_price_dates_to', '' ); + $date_to = get_post_meta( $variation_id, '_sale_price_dates_to', true ); + $date_to = ( '' === $date_to ) ? '' : date( 'Y-m-d', $date_to ); } - if ( $date_to && ! $date_from ) { - update_post_meta( $variation_id, '_sale_price_dates_from', strtotime( 'NOW', current_time( 'timestamp' ) ) ); - } - - // Update price if on sale - if ( '' != $sale_price && '' == $date_to && '' == $date_from ) { - update_post_meta( $variation_id, '_price', $sale_price ); - } else { - update_post_meta( $variation_id, '_price', $regular_price ); - } - - if ( '' != $sale_price && $date_from && $date_from < strtotime( 'NOW', current_time( 'timestamp' ) ) ) { - update_post_meta( $variation_id, '_price', $sale_price ); - } - - if ( $date_to && $date_to < strtotime( 'NOW', current_time( 'timestamp' ) ) ) { - update_post_meta( $variation_id, '_price', $regular_price ); - update_post_meta( $variation_id, '_sale_price_dates_from', '' ); - update_post_meta( $variation_id, '_sale_price_dates_to', '' ); - } + _wc_save_product_price( $variation_id, $regular_price, $sale_price, $date_from, $date_to ); // Tax class if ( isset( $variation['tax_class'] ) ) { diff --git a/includes/api/v2/class-wc-api-server.php b/includes/api/v2/class-wc-api-server.php index 8ed3013ac1f..b657c4f32a8 100644 --- a/includes/api/v2/class-wc-api-server.php +++ b/includes/api/v2/class-wc-api-server.php @@ -453,8 +453,8 @@ class WC_API_Server { 'currency' => get_woocommerce_currency(), 'currency_format' => get_woocommerce_currency_symbol(), 'currency_position' => get_option( 'woocommerce_currency_pos' ), - 'thousand_separator' => get_option( 'woocommerce_price_decimal_sep' ), - 'decimal_separator' => get_option( 'woocommerce_price_thousand_sep' ), + 'thousand_separator' => get_option( 'woocommerce_price_thousand_sep' ), + 'decimal_separator' => get_option( 'woocommerce_price_decimal_sep' ), 'price_num_decimals' => wc_get_price_decimals(), 'tax_included' => wc_prices_include_tax(), 'weight_unit' => get_option( 'woocommerce_weight_unit' ), diff --git a/includes/class-wc-ajax.php b/includes/class-wc-ajax.php index a1de58b530e..7267f38f945 100644 --- a/includes/class-wc-ajax.php +++ b/includes/class-wc-ajax.php @@ -315,6 +315,7 @@ class WC_AJAX { if ( isset( $_POST['country'] ) ) { WC()->customer->set_shipping_country( $_POST['country'] ); + WC()->customer->calculated_shipping( true ); } if ( isset( $_POST['state'] ) ) { @@ -340,6 +341,7 @@ class WC_AJAX { if ( isset( $_POST['s_country'] ) ) { WC()->customer->set_shipping_country( $_POST['s_country'] ); + WC()->customer->calculated_shipping( true ); } if ( isset( $_POST['s_state'] ) ) { @@ -393,6 +395,8 @@ class WC_AJAX { ) ) ); + unset( WC()->session->refresh_totals, WC()->session->reload_checkout ); + wp_send_json( $data ); die(); @@ -414,7 +418,7 @@ class WC_AJAX { do_action( 'woocommerce_ajax_added_to_cart', $product_id ); if ( get_option( 'woocommerce_cart_redirect_after_add' ) == 'yes' ) { - wc_add_to_cart_message( $product_id ); + wc_add_to_cart_message( array( $product_id => $quantity ), true ); } // Return fragments @@ -2531,11 +2535,7 @@ class WC_AJAX { $variation_data['image'] = $variation_data['_thumbnail_id'] ? wp_get_attachment_thumb_url( $variation_data['_thumbnail_id'] ) : ''; $variation_data['shipping_class'] = $shipping_classes && ! is_wp_error( $shipping_classes ) ? current( $shipping_classes )->term_id : ''; $variation_data['menu_order'] = $variation->menu_order; - - // Stock BW compat - if ( '' !== $variation_data['_stock'] ) { - $variation_data['_manage_stock'] = 'yes'; - } + $variation_data['_stock'] = wc_stock_amount( $variation_data['_stock'] ); include( 'admin/meta-boxes/views/html-variation-admin.php' ); diff --git a/includes/class-wc-api.php b/includes/class-wc-api.php index 5a39bd3ba8c..1ef5e831715 100644 --- a/includes/class-wc-api.php +++ b/includes/class-wc-api.php @@ -18,15 +18,26 @@ if ( ! class_exists( 'WC_API' ) ) : class WC_API { - /** This is the major version for the REST API and takes + /** + * This is the major version for the REST API and takes * first-order position in endpoint URLs. + * + * @var string */ const VERSION = '3.1.0'; - /** @var WC_API_Server the REST API server */ + /** + * The REST API server. + * + * @var WC_API_Server + */ public $server; - /** @var WC_API_Authentication REST API authentication class instance */ + /** + * REST API authentication class instance. + * + * @var WC_API_Authentication + */ public $authentication; /** @@ -56,7 +67,7 @@ class WC_API { * Add new query vars. * * @since 2.0 - * @param $vars + * @param array $vars * @return string[] */ public function add_query_vars( $vars ) { diff --git a/includes/class-wc-auth.php b/includes/class-wc-auth.php index 59103126ee2..b64274bf26d 100644 --- a/includes/class-wc-auth.php +++ b/includes/class-wc-auth.php @@ -20,6 +20,8 @@ class WC_Auth { /** * Version. + * + * @var int */ const VERSION = 1; @@ -44,7 +46,7 @@ class WC_Auth { * * @since 2.4.0 * - * @param $vars + * @param array $vars * * @return string[] */ diff --git a/includes/class-wc-breadcrumb.php b/includes/class-wc-breadcrumb.php index a08194f2c33..0b324c41f3c 100644 --- a/includes/class-wc-breadcrumb.php +++ b/includes/class-wc-breadcrumb.php @@ -30,7 +30,7 @@ class WC_Breadcrumb { */ public function add_crumb( $name, $link = '' ) { $this->crumbs[] = array( - $name, + strip_tags( $name ), $link ); } diff --git a/includes/class-wc-cart.php b/includes/class-wc-cart.php index a548126c09d..08be51303f4 100644 --- a/includes/class-wc-cart.php +++ b/includes/class-wc-cart.php @@ -94,25 +94,53 @@ class WC_Cart { 'fees' => array() ); - /** @var array An array of fees. */ - public $fees = array(); + /** + * An array of fees. + * + * @var array + */ + public $fees = array(); - /** @var boolean Prices inc tax */ + /** + * Prices include tax. + * + * @var bool + */ public $prices_include_tax; - /** @var boolean */ + /** + * Round at subtotal. + * + * @var bool + */ public $round_at_subtotal; - /** @var string */ + /** + * Tax display cart. + * + * @var string + */ public $tax_display_cart; - /** @var int Prices inc tax */ + /** + * Prices inc tax. + * + * @var int + */ public $dp; - /** @var boolean */ + /** + * Display totals excluding tax. + * + * @var bool + */ public $display_totals_ex_tax; - /** @var boolean */ + /** + * Display cart excluding tax. + * + * @var bool + */ public $display_cart_ex_tax; /** @@ -449,18 +477,18 @@ class WC_Cart { * @return bool|WP_Error */ public function check_cart_item_validity() { - foreach ( $this->get_cart() as $cart_item_key => $values ) { + $return = true; + foreach ( $this->get_cart() as $cart_item_key => $values ) { $_product = $values['data']; - if ( ! $_product || ! $_product->exists() || $_product->post->post_status == 'trash' ) { + if ( ! $_product || ! $_product->exists() || 'trash' === $_product->post->post_status ) { $this->set_quantity( $cart_item_key, 0 ); - - return new WP_Error( 'invalid', __( 'An item which is no longer available was removed from your cart.', 'woocommerce' ) ); + $return = new WP_Error( 'invalid', __( 'An item which is no longer available was removed from your cart.', 'woocommerce' ) ); } } - return true; + return $return; } /** @@ -859,9 +887,9 @@ class WC_Cart { /** * Add a product to the cart. * - * @param integer $product_id contains the id of the product to add to the cart - * @param integer $quantity contains the quantity of the item to add - * @param integer $variation_id + * @param int $product_id contains the id of the product to add to the cart + * @param int $quantity contains the quantity of the item to add + * @param int $variation_id * @param array $variation attribute values * @param array $cart_item_data extra cart item data we want to pass into the item * @return string $cart_item_key @@ -1029,9 +1057,9 @@ class WC_Cart { /** * Set the quantity for an item in the cart. * - * @param string cart_item_key contains the id of the cart item - * @param string quantity contains the quantity of the item - * @param boolean $refresh_totals whether or not to calculate totals after setting the new qty + * @param string $cart_item_key contains the id of the cart item + * @param string $quantity contains the quantity of the item + * @param bool $refresh_totals whether or not to calculate totals after setting the new qty * * @return bool */ @@ -1382,7 +1410,7 @@ class WC_Cart { } /** - * remove_taxes function. + * Remove taxes. */ public function remove_taxes() { $this->shipping_tax_total = $this->tax_total = 0; @@ -1402,7 +1430,7 @@ class WC_Cart { } /** - * looks at the totals to see if payment is actually required. + * Looks at the totals to see if payment is actually required. * * @return bool */ @@ -1902,7 +1930,7 @@ class WC_Cart { * * @access private * @param string $code - * @param integer $count + * @param int $count */ private function increase_coupon_applied_count( $code, $count = 1 ) { if ( empty( $this->coupon_applied_count[ $code ] ) ) { @@ -1946,7 +1974,7 @@ class WC_Cart { } /** - * get_fees function. + * Get fees. * * @return array */ @@ -2171,8 +2199,8 @@ class WC_Cart { /** * Get tax row amounts with or without compound taxes includes. * - * @param boolean $compound True if getting compound taxes - * @param boolean $display True if getting total to display + * @param bool $compound True if getting compound taxes + * @param bool $display True if getting total to display * @return float price */ public function get_taxes_total( $compound = true, $display = true ) { @@ -2243,7 +2271,7 @@ class WC_Cart { * Get the total of all order discounts (after tax discounts). * * @deprecated Order discounts (after tax) removed in 2.3 - * @return integer + * @return int */ public function get_order_discount_total() { _deprecated_function( 'get_order_discount_total', '2.3' ); diff --git a/includes/class-wc-checkout.php b/includes/class-wc-checkout.php index eaca7f582d8..90f3210381c 100644 --- a/includes/class-wc-checkout.php +++ b/includes/class-wc-checkout.php @@ -155,17 +155,15 @@ class WC_Checkout { } /** - * Create an order. - * - * Error codes: - * 400 - Cannot insert order into the database. - * 401 - Cannote update existing order. - * 402 - Cannot create line item. - * 403 - Cannot create fee item. - * 404 - Cannot create shipping item. - * 405 - Cannot create tax item. - * 406 - Cannot create coupon item. - * + * Create an order. Error codes: + * 520 - Cannot insert order into the database. + * 521 - Cannot get order after creation. + * 522 - Cannot update order. + * 525 - Cannot create line item. + * 526 - Cannot create fee item. + * 527 - Cannot create shipping item. + * 528 - Cannot create tax item. + * 529 - Cannot create coupon item. * @access public * @throws Exception * @return int|WP_ERROR @@ -199,7 +197,7 @@ class WC_Checkout { $order = wc_update_order( $order_data ); if ( is_wp_error( $order ) ) { - throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce' ), 401 ) ); + throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce' ), 522 ) ); } else { $order->remove_order_items(); do_action( 'woocommerce_resume_order', $order_id ); @@ -210,7 +208,9 @@ class WC_Checkout { $order = wc_create_order( $order_data ); if ( is_wp_error( $order ) ) { - throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce' ), 400 ) ); + throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce' ), 520 ) ); + } elseif ( false === $order ) { + throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce' ), 521 ) ); } else { $order_id = $order->id; do_action( 'woocommerce_new_order', $order_id ); @@ -235,7 +235,7 @@ class WC_Checkout { ); if ( ! $item_id ) { - throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce' ), 402 ) ); + throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce' ), 525 ) ); } // Allow plugins to add order item meta @@ -247,7 +247,7 @@ class WC_Checkout { $item_id = $order->add_fee( $fee ); if ( ! $item_id ) { - throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce' ), 403 ) ); + throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce' ), 526 ) ); } // Allow plugins to add order item meta to fees @@ -260,7 +260,7 @@ class WC_Checkout { $item_id = $order->add_shipping( $package['rates'][ $this->shipping_methods[ $package_key ] ] ); if ( ! $item_id ) { - throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce' ), 404 ) ); + throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce' ), 527 ) ); } // Allows plugins to add order item meta to shipping @@ -271,14 +271,14 @@ class WC_Checkout { // Store tax rows foreach ( array_keys( WC()->cart->taxes + WC()->cart->shipping_taxes ) as $tax_rate_id ) { if ( $tax_rate_id && ! $order->add_tax( $tax_rate_id, WC()->cart->get_tax_amount( $tax_rate_id ), WC()->cart->get_shipping_tax_amount( $tax_rate_id ) ) && apply_filters( 'woocommerce_cart_remove_taxes_zero_rate_id', 'zero-rated' ) !== $tax_rate_id ) { - throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce' ), 405 ) ); + throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce' ), 528 ) ); } } // Store coupons foreach ( WC()->cart->get_coupons() as $code => $coupon ) { if ( ! $order->add_coupon( $code, WC()->cart->get_coupon_discount_amount( $code ), WC()->cart->get_coupon_discount_tax_amount( $code ) ) ) { - throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce' ), 406 ) ); + throw new Exception( sprintf( __( 'Error %d: Unable to create order. Please try again.', 'woocommerce' ), 529 ) ); } } diff --git a/includes/class-wc-comments.php b/includes/class-wc-comments.php index 711cded7ddd..08ec1a73c30 100644 --- a/includes/class-wc-comments.php +++ b/includes/class-wc-comments.php @@ -213,6 +213,8 @@ class WC_Comments { /** * Modify recipient of review email. + * @param array $emails + * @param int $comment_id * @return array */ public static function comment_moderation_recipients( $emails, $comment_id ) { diff --git a/includes/class-wc-countries.php b/includes/class-wc-countries.php index bebd06ae97f..755abb9fc58 100644 --- a/includes/class-wc-countries.php +++ b/includes/class-wc-countries.php @@ -194,7 +194,7 @@ class WC_Countries { } /** - * get_allowed_country_states function. + * Get allowed country states. * @return array */ public function get_allowed_country_states() { @@ -216,7 +216,7 @@ class WC_Countries { } /** - * get_shipping_country_states function. + * Get shipping country states. * @return array */ public function get_shipping_country_states() { @@ -264,22 +264,24 @@ class WC_Countries { * Gets the correct string for shipping - either 'to the' or 'to' * @return string */ - public function shipping_to_prefix() { - $countries = array( 'GB', 'US', 'AE', 'CZ', 'DO', 'NL', 'PH', 'USAF' ); - $return = in_array( WC()->customer->get_shipping_country(), $countries ) ? __( 'to the', 'woocommerce' ) : __( 'to', 'woocommerce' ); + public function shipping_to_prefix( $country_code = '' ) { + $country_code = $country_code ? $country_code : WC()->customer->get_shipping_country(); + $countries = array( 'GB', 'US', 'AE', 'CZ', 'DO', 'NL', 'PH', 'USAF' ); + $return = in_array( $country_code, $countries ) ? __( 'to the', 'woocommerce' ) : __( 'to', 'woocommerce' ); - return apply_filters( 'woocommerce_countries_shipping_to_prefix', $return, WC()->customer->get_shipping_country() ); + return apply_filters( 'woocommerce_countries_shipping_to_prefix', $return, $country_code ); } /** * Prefix certain countries with 'the' * @return string */ - public function estimated_for_prefix() { - $countries = array( 'GB', 'US', 'AE', 'CZ', 'DO', 'NL', 'PH', 'USAF' ); - $return = in_array( $this->get_base_country(), $countries ) ? __( 'the', 'woocommerce' ) . ' ' : ''; + public function estimated_for_prefix( $country_code = '' ) { + $country_code = $country_code ? $country_code : $this->get_base_country(); + $countries = array( 'GB', 'US', 'AE', 'CZ', 'DO', 'NL', 'PH', 'USAF' ); + $return = in_array( $country_code, $countries ) ? __( 'the', 'woocommerce' ) . ' ' : ''; - return apply_filters( 'woocommerce_countries_estimated_for_prefix', $return, $this->get_base_country() ); + return apply_filters( 'woocommerce_countries_estimated_for_prefix', $return, $country_code ); } /** @@ -316,6 +318,7 @@ class WC_Countries { * Outputs the list of countries and states for use in dropdown boxes. * @param string $selected_country (default: '') * @param string $selected_state (default: '') + * @param bool $escape (default: false) * @param bool $escape (default: false) */ public function country_dropdown_options( $selected_country = '', $selected_state = '', $escape = false ) { @@ -475,7 +478,7 @@ class WC_Countries { /** * Trim white space and commas off a line. - * @param string + * @param string $line * @return string */ private function trim_formatted_address_line( $line ) { @@ -489,57 +492,64 @@ class WC_Countries { public function get_default_address_fields() { $fields = array( 'first_name' => array( - 'label' => __( 'First Name', 'woocommerce' ), - 'required' => true, - 'class' => array( 'form-row-first' ), + 'label' => __( 'First Name', 'woocommerce' ), + 'required' => true, + 'class' => array( 'form-row-first' ), + 'autocomplete' => 'given-name', ), 'last_name' => array( - 'label' => __( 'Last Name', 'woocommerce' ), - 'required' => true, - 'class' => array( 'form-row-last' ), - 'clear' => true + 'label' => __( 'Last Name', 'woocommerce' ), + 'required' => true, + 'class' => array( 'form-row-last' ), + 'clear' => true, + 'autocomplete' => 'family-name', ), 'company' => array( - 'label' => __( 'Company Name', 'woocommerce' ), - 'class' => array( 'form-row-wide' ), + 'label' => __( 'Company Name', 'woocommerce' ), + 'class' => array( 'form-row-wide' ), + 'autocomplete' => 'organization', ), 'country' => array( - 'type' => 'country', - 'label' => __( 'Country', 'woocommerce' ), - 'required' => true, - 'class' => array( 'form-row-wide', 'address-field', 'update_totals_on_change' ), + 'type' => 'country', + 'label' => __( 'Country', 'woocommerce' ), + 'required' => true, + 'class' => array( 'form-row-wide', 'address-field', 'update_totals_on_change' ), + 'autocomplete' => 'country', ), 'address_1' => array( - 'label' => __( 'Address', 'woocommerce' ), - 'placeholder' => _x( 'Street address', 'placeholder', 'woocommerce' ), - 'required' => true, - 'class' => array( 'form-row-wide', 'address-field' ) + 'label' => __( 'Address', 'woocommerce' ), + 'placeholder' => _x( 'Street address', 'placeholder', 'woocommerce' ), + 'required' => true, + 'class' => array( 'form-row-wide', 'address-field' ), + 'autocomplete' => 'address-line1', ), 'address_2' => array( - 'placeholder' => _x( 'Apartment, suite, unit etc. (optional)', 'placeholder', 'woocommerce' ), - 'class' => array( 'form-row-wide', 'address-field' ), - 'required' => false + 'placeholder' => _x( 'Apartment, suite, unit etc. (optional)', 'placeholder', 'woocommerce' ), + 'class' => array( 'form-row-wide', 'address-field' ), + 'required' => false, + 'autocomplete' => 'address-line2', ), 'city' => array( - 'label' => __( 'Town / City', 'woocommerce' ), - 'placeholder' => __( 'Town / City', 'woocommerce' ), - 'required' => true, - 'class' => array( 'form-row-wide', 'address-field' ) + 'label' => __( 'Town / City', 'woocommerce' ), + 'required' => true, + 'class' => array( 'form-row-wide', 'address-field' ), + 'autocomplete' => 'address-level2', ), 'state' => array( - 'type' => 'state', - 'label' => __( 'State / County', 'woocommerce' ), - 'required' => true, - 'class' => array( 'form-row-first', 'address-field' ), - 'validate' => array( 'state' ) + 'type' => 'state', + 'label' => __( 'State / County', 'woocommerce' ), + 'required' => true, + 'class' => array( 'form-row-first', 'address-field' ), + 'validate' => array( 'state' ), + 'autocomplete' => 'address-level1', ), 'postcode' => array( - 'label' => __( 'Postcode / ZIP', 'woocommerce' ), - 'placeholder' => __( 'Postcode / ZIP', 'woocommerce' ), - 'required' => true, - 'class' => array( 'form-row-last', 'address-field' ), - 'clear' => true, - 'validate' => array( 'postcode' ) + 'label' => __( 'Postcode / ZIP', 'woocommerce' ), + 'required' => true, + 'class' => array( 'form-row-last', 'address-field' ), + 'clear' => true, + 'validate' => array( 'postcode' ), + 'autocomplete' => 'postal-code', ), ); @@ -591,15 +601,12 @@ class WC_Countries { 'AU' => array( 'city' => array( 'label' => __( 'Suburb', 'woocommerce' ), - 'placeholder' => __( 'Suburb', 'woocommerce' ), ), 'postcode' => array( 'label' => __( 'Postcode', 'woocommerce' ), - 'placeholder' => __( 'Postcode', 'woocommerce' ), ), 'state' => array( 'label' => __( 'State', 'woocommerce' ), - //'placeholder' => __( 'State', 'woocommerce' ), ) ), 'AX' => array( @@ -614,7 +621,6 @@ class WC_Countries { ), 'state' => array( 'label' => __( 'District', 'woocommerce' ), - //'placeholder' => __( 'District', 'woocommerce' ), ) ), 'BE' => array( @@ -622,7 +628,6 @@ class WC_Countries { 'state' => array( 'required' => false, 'label' => __( 'Province', 'woocommerce' ), - //'placeholder' => __( 'Province', 'woocommerce' ), ), ), 'BI' => array( @@ -645,14 +650,12 @@ class WC_Countries { 'CA' => array( 'state' => array( 'label' => __( 'Province', 'woocommerce' ), - //'placeholder' => __( 'Province', 'woocommerce' ), ) ), 'CH' => array( 'postcode_before_city' => true, 'state' => array( 'label' => __( 'Canton', 'woocommerce' ), - //'placeholder' => __( 'Canton', 'woocommerce' ), 'required' => false ) ), @@ -665,13 +668,11 @@ class WC_Countries { ), 'state' => array( 'label' => __( 'Region', 'woocommerce' ), - //'placeholder' => __( 'Region', 'woocommerce' ) ) ), 'CN' => array( 'state' => array( 'label' => __( 'Province', 'woocommerce' ), - //'placeholder' => __( 'Province', 'woocommerce' ), ) ), 'CO' => array( @@ -720,23 +721,19 @@ class WC_Countries { ), 'city' => array( 'label' => __( 'Town / District', 'woocommerce' ), - 'placeholder' => __( 'Town / District', 'woocommerce' ) ), 'state' => array( 'label' => __( 'Region', 'woocommerce' ), - //'placeholder' => __( 'Region', 'woocommerce' ), ) ), 'HU' => array( 'state' => array( 'label' => __( 'County', 'woocommerce' ), - //'placeholder' => __( 'County', 'woocommerce' ), ) ), 'ID' => array( 'state' => array( 'label' => __( 'Province', 'woocommerce' ), - //'placeholder' => __( 'Province', 'woocommerce' ), ) ), 'IS' => array( @@ -756,7 +753,6 @@ class WC_Countries { 'state' => array( 'required' => true, 'label' => __( 'Province', 'woocommerce' ), - //'placeholder' => __( 'Province', 'woocommerce' ), ) ), 'JP' => array( @@ -774,7 +770,6 @@ class WC_Countries { 'state' => array( 'required' => false, 'label' => __( 'Province', 'woocommerce' ), - //'placeholder' => __( 'Province', 'woocommerce' ), ) ), 'NZ' => array( @@ -791,7 +786,6 @@ class WC_Countries { 'NP' => array( 'state' => array( 'label' => __( 'State / Zone', 'woocommerce' ), - //'placeholder' => __( 'State / Zone', 'woocommerce' ), ), 'postcode' => array( 'required' => false @@ -834,14 +828,12 @@ class WC_Countries { 'postcode_before_city' => true, 'state' => array( 'label' => __( 'Province', 'woocommerce' ), - //'placeholder' => __( 'Province', 'woocommerce' ), ) ), 'LI' => array( 'postcode_before_city' => true, 'state' => array( 'label' => __( 'Municipality', 'woocommerce' ), - //'placeholder' => __( 'Municipality', 'woocommerce' ), 'required' => false ) ), @@ -860,27 +852,22 @@ class WC_Countries { 'postcode_before_city' => true, 'state' => array( 'label' => __( 'Province', 'woocommerce' ), - //'placeholder' => __( 'Province', 'woocommerce' ), ) ), 'US' => array( 'postcode' => array( 'label' => __( 'ZIP', 'woocommerce' ), - 'placeholder' => __( 'ZIP', 'woocommerce' ), ), 'state' => array( 'label' => __( 'State', 'woocommerce' ), - //'placeholder' => __( 'State', 'woocommerce' ), ) ), 'GB' => array( 'postcode' => array( 'label' => __( 'Postcode', 'woocommerce' ), - 'placeholder' => __( 'Postcode', 'woocommerce' ), ), 'state' => array( 'label' => __( 'County', 'woocommerce' ), - //'placeholder' => __( 'County', 'woocommerce' ), 'required' => false ) ), @@ -907,7 +894,6 @@ class WC_Countries { 'ZA' => array( 'state' => array( 'label' => __( 'Province', 'woocommerce' ), - //'placeholder' => __( 'Province', 'woocommerce' ), ) ), 'ZW' => array( @@ -938,7 +924,7 @@ class WC_Countries { /** * Apply locale and get address fields. - * @param mixed $country + * @param mixed $country (default: '') * @param string $type (default: 'billing_') * @return array */ @@ -964,19 +950,21 @@ class WC_Countries { // Add email and phone after company or last if ( $type == 'billing_' && ( 'company' === $key || ( ! array_key_exists( 'company', $fields ) && $key === end( $keys ) ) ) ) { $address_fields['billing_email'] = array( - 'label' => __( 'Email Address', 'woocommerce' ), - 'required' => true, - 'type' => 'email', - 'class' => array( 'form-row-first' ), - 'validate' => array( 'email' ), + 'label' => __( 'Email Address', 'woocommerce' ), + 'required' => true, + 'type' => 'email', + 'class' => array( 'form-row-first' ), + 'validate' => array( 'email' ), + 'autocomplete' => 'email', ); $address_fields['billing_phone'] = array( - 'label' => __( 'Phone', 'woocommerce' ), - 'required' => true, - 'type' => 'tel', - 'class' => array( 'form-row-last' ), - 'clear' => true, - 'validate' => array( 'phone' ), + 'label' => __( 'Phone', 'woocommerce' ), + 'required' => true, + 'type' => 'tel', + 'class' => array( 'form-row-last' ), + 'clear' => true, + 'validate' => array( 'phone' ), + 'autocomplete' => 'tel', ); } } diff --git a/includes/class-wc-coupon.php b/includes/class-wc-coupon.php index 7c5232f07b9..9c7c942f435 100644 --- a/includes/class-wc-coupon.php +++ b/includes/class-wc-coupon.php @@ -331,6 +331,8 @@ class WC_Coupon { /** * Ensure coupon exists or throw exception. + * + * @throws Exception */ private function validate_exists() { if ( ! $this->exists ) { @@ -340,6 +342,8 @@ class WC_Coupon { /** * Ensure coupon usage limit is valid or throw exception. + * + * @throws Exception */ private function validate_usage_limit() { if ( $this->usage_limit > 0 && $this->usage_count >= $this->usage_limit ) { @@ -362,11 +366,7 @@ class WC_Coupon { } if ( $this->usage_limit_per_user > 0 && is_user_logged_in() && $this->id ) { global $wpdb; - $wpdb->get_var( $wpdb->prepare( "SELECT COUNT( `meta_id` ) - FROM {$wpdb->postmeta} - WHERE `post_id` = %d - AND `meta_key` = '_used_by' - AND `meta_value` = %d", $this->id, $user_id ) ); + $usage_count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT( meta_id ) FROM {$wpdb->postmeta} WHERE post_id = %d AND meta_key = '_used_by' AND meta_value = %d;", $this->id, $user_id ) ); if ( $usage_count >= $this->usage_limit_per_user ) { throw new Exception( self::E_WC_COUPON_USAGE_LIMIT_REACHED ); @@ -376,6 +376,8 @@ class WC_Coupon { /** * Ensure coupon date is valid or throw exception. + * + * @throws Exception */ private function validate_expiry_date() { if ( $this->expiry_date && current_time( 'timestamp' ) > $this->expiry_date ) { @@ -385,6 +387,8 @@ class WC_Coupon { /** * Ensure coupon amount is valid or throw exception. + * + * @throws Exception */ private function validate_minimum_amount() { if ( $this->minimum_amount > 0 && wc_format_decimal( $this->minimum_amount ) > wc_format_decimal( WC()->cart->subtotal ) ) { @@ -394,6 +398,8 @@ class WC_Coupon { /** * Ensure coupon amount is valid or throw exception. + * + * @throws Exception */ private function validate_maximum_amount() { if ( $this->maximum_amount > 0 && wc_format_decimal( $this->maximum_amount ) < wc_format_decimal( WC()->cart->subtotal ) ) { @@ -403,6 +409,8 @@ class WC_Coupon { /** * Ensure coupon is valid for products in the cart is valid or throw exception. + * + * @throws Exception */ private function validate_product_ids() { if ( sizeof( $this->product_ids ) > 0 ) { @@ -422,6 +430,8 @@ class WC_Coupon { /** * Ensure coupon is valid for product categories in the cart is valid or throw exception. + * + * @throws Exception */ private function validate_product_categories() { if ( sizeof( $this->product_categories ) > 0 ) { @@ -430,6 +440,7 @@ class WC_Coupon { foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { $product_cats = wc_get_product_cat_ids( $cart_item['product_id'] ); + // If we find an item with a cat in our allowed cat list, the coupon is valid if ( sizeof( array_intersect( $product_cats, $this->product_categories ) ) > 0 ) { $valid_for_cart = true; } @@ -441,8 +452,34 @@ class WC_Coupon { } } + /** + * Ensure coupon is valid for product categories in the cart is valid or throw exception. + * + * @throws Exception + */ + private function validate_excluded_product_categories() { + if ( sizeof( $this->exclude_product_categories ) > 0 ) { + $valid_for_cart = false; + if ( ! WC()->cart->is_empty() ) { + foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { + $product_cats = wc_get_product_cat_ids( $cart_item['product_id'] ); + + // If we find an item with a cat NOT in our disallowed cat list, the coupon is valid + if ( empty( $product_cats ) || sizeof( array_diff( $product_cats, $this->exclude_product_categories ) ) > 0 ) { + $valid_for_cart = true; + } + } + } + if ( ! $valid_for_cart ) { + throw new Exception( self::E_WC_COUPON_NOT_APPLICABLE ); + } + } + } + /** * Ensure coupon is valid for sale items in the cart is valid or throw exception. + * + * @throws Exception */ private function validate_sale_items() { if ( 'yes' === $this->exclude_sale_items && $this->is_type( wc_get_product_coupon_types() ) ) { @@ -479,6 +516,8 @@ class WC_Coupon { /** * Exclude products from cart. + * + * @throws Exception */ private function validate_cart_excluded_product_ids() { // Exclude Products @@ -499,6 +538,8 @@ class WC_Coupon { /** * Exclude categories from cart. + * + * @throws Exception */ private function validate_cart_excluded_product_categories() { if ( sizeof( $this->exclude_product_categories ) > 0 ) { @@ -521,6 +562,8 @@ class WC_Coupon { /** * Exclude sale items from cart. + * + * @throws Exception */ private function validate_cart_excluded_sale_items() { if ( $this->exclude_sale_items == 'yes' ) { @@ -547,6 +590,7 @@ class WC_Coupon { * Check if a coupon is valid. * * @return boolean validity + * @throws Exception */ public function is_valid() { try { @@ -558,6 +602,7 @@ class WC_Coupon { $this->validate_maximum_amount(); $this->validate_product_ids(); $this->validate_product_categories(); + $this->validate_excluded_product_categories(); $this->validate_sale_items(); $this->validate_cart_excluded_items(); diff --git a/includes/class-wc-customer.php b/includes/class-wc-customer.php index 6ec7ad47221..c4860ee7e37 100644 --- a/includes/class-wc-customer.php +++ b/includes/class-wc-customer.php @@ -142,7 +142,7 @@ class WC_Customer { } /** - * has_calculated_shipping function. + * Has calculated shipping? * * @return bool */ @@ -322,7 +322,7 @@ class WC_Customer { } /** - * get_taxable_address function. + * Get taxable address. * * @return array */ @@ -550,7 +550,7 @@ class WC_Customer { } /** - * calculated_shipping function. + * Calculated shipping. * * @param boolean $calculated */ diff --git a/includes/class-wc-emails.php b/includes/class-wc-emails.php index c7b93117dda..667ef7e5a8b 100644 --- a/includes/class-wc-emails.php +++ b/includes/class-wc-emails.php @@ -275,16 +275,7 @@ class WC_Emails { * @return string */ public function order_meta( $order, $sent_to_admin = false, $plain_text = false ) { - $fields = array(); - - if ( $order->customer_note ) { - $fields['customer_note'] = array( - 'label' => __( 'Note', 'woocommerce' ), - 'value' => wptexturize( $order->customer_note ) - ); - } - - $fields = apply_filters( 'woocommerce_email_order_meta_fields', $fields, $sent_to_admin, $order ); + $fields = apply_filters( 'woocommerce_email_order_meta_fields', array(), $sent_to_admin, $order ); /** * Deprecated woocommerce_email_order_meta_keys filter. @@ -347,6 +338,13 @@ class WC_Emails { public function customer_details( $order, $sent_to_admin = false, $plain_text = false ) { $fields = array(); + if ( $order->customer_note ) { + $fields['customer_note'] = array( + 'label' => __( 'Note', 'woocommerce' ), + 'value' => wptexturize( $order->customer_note ) + ); + } + if ( $order->billing_email ) { $fields['billing_email'] = array( 'label' => __( 'Email', 'woocommerce' ), diff --git a/includes/class-wc-form-handler.php b/includes/class-wc-form-handler.php index 3bb5569b2e3..4335d0c7486 100644 --- a/includes/class-wc-form-handler.php +++ b/includes/class-wc-form-handler.php @@ -346,7 +346,7 @@ class WC_Form_Handler { * Process the add payment method form. */ public static function add_payment_method_action() { - if ( isset( $_POST['woocommerce_add_payment_method'] ) && isset( $_POST['_wpnonce'] ) && wp_verify_nonce( $_POST['_wpnonce'], 'woocommerce-add-payment-method' ) ) { + if ( isset( $_POST['woocommerce_add_payment_method'], $_POST['payment_method'], $_POST['_wpnonce'] ) && wp_verify_nonce( $_POST['_wpnonce'], 'woocommerce-add-payment-method' ) ) { ob_start(); @@ -648,7 +648,7 @@ class WC_Form_Handler { $passed_validation = apply_filters( 'woocommerce_add_to_cart_validation', true, $product_id, $quantity ); if ( $passed_validation && WC()->cart->add_to_cart( $product_id, $quantity ) !== false ) { - wc_add_to_cart_message( $product_id ); + wc_add_to_cart_message( array( $product_id => $quantity ), true ); return true; } return false; @@ -678,7 +678,7 @@ class WC_Form_Handler { if ( $passed_validation && WC()->cart->add_to_cart( $item, $quantity ) !== false ) { $was_added_to_cart = true; - $added_to_cart[] = $item; + $added_to_cart[ $item ] = $quantity; } } @@ -752,7 +752,7 @@ class WC_Form_Handler { $passed_validation = apply_filters( 'woocommerce_add_to_cart_validation', true, $product_id, $quantity, $variation_id, $variations ); if ( $passed_validation && WC()->cart->add_to_cart( $product_id, $quantity, $variation_id, $variations ) !== false ) { - wc_add_to_cart_message( $product_id ); + wc_add_to_cart_message( array( $product_id => $quantity ), true ); return true; } } diff --git a/includes/class-wc-frontend-scripts.php b/includes/class-wc-frontend-scripts.php index fb4d739b305..9204021440f 100644 --- a/includes/class-wc-frontend-scripts.php +++ b/includes/class-wc-frontend-scripts.php @@ -183,8 +183,9 @@ class WC_Frontend_Scripts { self::enqueue_script( 'select2' ); self::enqueue_style( 'select2', $assets_path . 'css/select2.css' ); - // Password strength meter js called for checkout page. - if ( 'no' === get_option( 'woocommerce_registration_generate_password' ) && ! is_user_logged_in() ) { + // Password strength meter. + // Load in checkout, account login and edit account page. + if ( ( 'no' === get_option( 'woocommerce_registration_generate_password' ) && ! is_user_logged_in() ) || is_edit_account_page() ) { self::enqueue_script( 'wc-password-strength-meter' ); } } @@ -322,8 +323,8 @@ class WC_Frontend_Scripts { break; case 'wc-country-select' : return array( - 'countries' => json_encode( array_merge( WC()->countries->get_allowed_country_states(), WC()->countries->get_shipping_country_states() ) ), - 'i18n_select_state_text' => esc_attr__( 'Select an option…', 'woocommerce' ), + 'countries' => json_encode( array_merge( WC()->countries->get_allowed_country_states(), WC()->countries->get_shipping_country_states() ) ), + 'i18n_select_state_text' => esc_attr__( 'Select an option…', 'woocommerce' ), 'i18n_matches_1' => _x( 'One result is available, press enter to select it.', 'enhanced select', 'woocommerce' ), 'i18n_matches_n' => _x( '%qty% results are available, use up and down arrow keys to navigate.', 'enhanced select', 'woocommerce' ), 'i18n_no_matches' => _x( 'No matches found', 'enhanced select', 'woocommerce' ), @@ -338,6 +339,12 @@ class WC_Frontend_Scripts { 'i18n_searching' => _x( 'Searching…', 'enhanced select', 'woocommerce' ), ); break; + case 'wc-password-strength-meter' : + return array( + 'i18n_password_error' => esc_attr__( 'Please enter a stronger password to continue.', 'woocommerce' ), + 'i18n_password_hint' => esc_attr__( 'The password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers and symbols like ! " ? $ % ^ & ).', 'woocommerce' ) + ); + break; } return false; } diff --git a/includes/class-wc-geo-ip.php b/includes/class-wc-geo-ip.php index 6ea8eea34a2..6f94529d1c4 100644 --- a/includes/class-wc-geo-ip.php +++ b/includes/class-wc-geo-ip.php @@ -15,7 +15,7 @@ if ( ! defined( 'ABSPATH' ) ) { } /** - * WC_Geolocation Class. + * WC_Geo_IP Class. */ class WC_Geo_IP { @@ -54,20 +54,60 @@ class WC_Geo_IP { const GEOIP_ORG_EDITION_V6 = 23; const GEOIP_DOMAIN_EDITION_V6 = 24; + /** + * Flags. + * + * @var array + */ public $flags; + /** + * File handler. + * + * @var resource + */ public $filehandle; + /** + * Memory buffer. + * + * @var array + */ public $memory_buffer; + /** + * Database type. + * + * @var string + */ public $databaseType; + /** + * Database segments. + * + * @var int + */ public $databaseSegments; + /** + * Record length. + * + * @var int + */ public $record_length; + /** + * Shmid. + * + * @var string + */ public $shmid; + /** + * Two letters country codes. + * + * @var array + */ public $GEOIP_COUNTRY_CODES = array( '', 'AP', @@ -327,6 +367,11 @@ class WC_Geo_IP { 'O1' ); + /** + * 3 letters country codes. + * + * @var array + */ public $GEOIP_COUNTRY_CODES3 = array( '', 'AP', @@ -586,6 +631,11 @@ class WC_Geo_IP { 'O1' ); + /** + * Contry names. + * + * @var array + */ public $GEOIP_COUNTRY_NAMES = array( '', 'Asia/Pacific Region', @@ -845,6 +895,11 @@ class WC_Geo_IP { 'Other' ); + /** + * 2 letters continent codes. + * + * @var array + */ public $GEOIP_CONTINENT_CODES = array( '--', 'AS', @@ -1667,16 +1722,91 @@ class WC_Geo_IP { * Geo IP Record class. */ class WC_Geo_IP_Record { + + /** + * Country code. + * + * @var string + */ public $country_code; + + /** + * 3 letters country code. + * + * @var string + */ public $country_code3; + + /** + * Country name. + * + * @var string + */ public $country_name; + + /** + * Region. + * + * @var string + */ public $region; + + /** + * City. + * + * @var string + */ public $city; + + /** + * Postal code. + * + * @var string + */ public $postal_code; + + /** + * Latitude + * + * @var float + */ public $latitude; + + /** + * Longitude. + * + * @var float + */ public $longitude; + + /** + * Area code. + * + * @var string + */ public $area_code; - public $dma_code; // metro and dma code are the same. use metro_code + + /** + * DMA Code. + * + * Metro and DMA code are the same. + * Use metro code instead. + * + * @var int + */ + public $dma_code; + + /** + * Metro code. + * + * @var int + */ public $metro_code; + + /** + * Continent code. + * + * @var string + */ public $continent_code; } diff --git a/includes/class-wc-https.php b/includes/class-wc-https.php index 9c721febdfd..605ce5348b0 100644 --- a/includes/class-wc-https.php +++ b/includes/class-wc-https.php @@ -19,7 +19,7 @@ class WC_HTTPS { * Hook in our HTTPS functions if we're on the frontend. This will ensure any links output to a page (when viewing via HTTPS) are also served over HTTPS. */ public static function init() { - if ( 'yes' == get_option( 'woocommerce_force_ssl_checkout' ) && ! is_admin() ) { + if ( 'yes' === get_option( 'woocommerce_force_ssl_checkout' ) && ! is_admin() ) { // HTTPS urls with SSL on $filters = array( 'post_thumbnail_html', @@ -48,7 +48,7 @@ class WC_HTTPS { } /** - * force_https_url function. + * Force https for urls. * * @param mixed $content * @return string @@ -72,7 +72,7 @@ class WC_HTTPS { public static function force_https_page_link( $link, $page_id ) { if ( in_array( $page_id, array( get_option( 'woocommerce_checkout_page_id' ), get_option( 'woocommerce_myaccount_page_id' ) ) ) ) { $link = str_replace( 'http:', 'https:', $link ); - } elseif ( 'yes' == get_option( 'woocommerce_unforce_ssl_checkout' ) ) { + } elseif ( 'yes' === get_option( 'woocommerce_unforce_ssl_checkout' ) && ! wc_site_is_https() ) { $link = str_replace( 'https:', 'http:', $link ); } return $link; @@ -102,7 +102,7 @@ class WC_HTTPS { return; } - if ( is_ssl() && $_SERVER['REQUEST_URI'] && ! is_checkout() && ! is_ajax() && ! is_account_page() && apply_filters( 'woocommerce_unforce_ssl_checkout', true ) ) { + if ( ! wc_site_is_https() && is_ssl() && $_SERVER['REQUEST_URI'] && ! is_checkout() && ! is_ajax() && ! is_account_page() && apply_filters( 'woocommerce_unforce_ssl_checkout', true ) ) { if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) { wp_safe_redirect( preg_replace( '|^https://|', 'http://', $_SERVER['REQUEST_URI'] ) ); diff --git a/includes/class-wc-install.php b/includes/class-wc-install.php index 60e5b4c9d70..1170cb5f4e2 100644 --- a/includes/class-wc-install.php +++ b/includes/class-wc-install.php @@ -33,7 +33,7 @@ class WC_Install { * Hook in tabs. */ public static function init() { - add_action( 'admin_init', array( __CLASS__, 'check_version' ), 5 ); + add_action( 'init', array( __CLASS__, 'check_version' ), 5 ); add_action( 'admin_init', array( __CLASS__, 'install_actions' ) ); add_action( 'in_plugin_update_message-woocommerce/woocommerce.php', array( __CLASS__, 'in_plugin_update_message' ) ); add_filter( 'plugin_action_links_' . WC_PLUGIN_BASENAME, array( __CLASS__, 'plugin_action_links' ) ); @@ -43,17 +43,21 @@ class WC_Install { } /** - * check_version function. + * Check WooCommerce version and run the updater is required. + * + * This check is done on all requests and runs if he versions do not match. */ public static function check_version() { - if ( ! defined( 'IFRAME_REQUEST' ) && ( get_option( 'woocommerce_version' ) != WC()->version ) ) { + if ( ! defined( 'IFRAME_REQUEST' ) && get_option( 'woocommerce_version' ) !== WC()->version ) { self::install(); do_action( 'woocommerce_updated' ); } } /** - * Install actions when a update button is clicked. + * Install actions when a update button is clicked within the admin area. + * + * This function is hooked into admin_init to affect admin only. */ public static function install_actions() { if ( ! empty( $_GET['do_update_woocommerce'] ) ) { @@ -356,12 +360,7 @@ class WC_Install { $collate = ''; if ( $wpdb->has_cap( 'collation' ) ) { - if ( ! empty( $wpdb->charset ) ) { - $collate .= "DEFAULT CHARACTER SET $wpdb->charset"; - } - if ( ! empty( $wpdb->collate ) ) { - $collate .= " COLLATE $wpdb->collate"; - } + $collate = $wpdb->get_charset_collate(); } return " diff --git a/includes/class-wc-integrations.php b/includes/class-wc-integrations.php index e292e7382fc..aeea80693a1 100644 --- a/includes/class-wc-integrations.php +++ b/includes/class-wc-integrations.php @@ -17,7 +17,11 @@ if ( ! defined( 'ABSPATH' ) ) { */ class WC_Integrations { - /** Array of integration classes */ + /** + * Array of integrations. + * + * @var array + */ public $integrations = array(); /** diff --git a/includes/class-wc-logger.php b/includes/class-wc-logger.php index af43997a41f..fb48c63680f 100644 --- a/includes/class-wc-logger.php +++ b/includes/class-wc-logger.php @@ -16,7 +16,9 @@ if ( ! defined( 'ABSPATH' ) ) { class WC_Logger { /** - * @var array Stores open file _handles. + * Stores open file _handles. + * + * @var array * @access private */ private $_handles; diff --git a/includes/class-wc-order-factory.php b/includes/class-wc-order-factory.php index 8fb5aa79d7e..530104be857 100644 --- a/includes/class-wc-order-factory.php +++ b/includes/class-wc-order-factory.php @@ -18,7 +18,7 @@ if ( ! defined( 'ABSPATH' ) ) { class WC_Order_Factory { /** - * get_order function. + * Get order. * * @param bool $the_order (default: false) * @return WC_Order|bool diff --git a/includes/class-wc-order.php b/includes/class-wc-order.php index 12e5b8780f1..d6e2d0abf35 100644 --- a/includes/class-wc-order.php +++ b/includes/class-wc-order.php @@ -289,7 +289,7 @@ class WC_Order extends WC_Abstract_Order { * @return string */ public function get_remaining_refund_amount() { - return wc_format_decimal( $this->get_total() - $this->get_total_refunded() ); + return wc_format_decimal( $this->get_total() - $this->get_total_refunded(), wc_get_price_decimals() ); } /** diff --git a/includes/class-wc-post-data.php b/includes/class-wc-post-data.php index 2271dcd76e1..38581bcd3cf 100644 --- a/includes/class-wc-post-data.php +++ b/includes/class-wc-post-data.php @@ -17,6 +17,11 @@ if ( ! defined( 'ABSPATH' ) ) { */ class WC_Post_Data { + /** + * Editing term. + * + * @var object + */ private static $editing_term = null; /** diff --git a/includes/class-wc-product-external.php b/includes/class-wc-product-external.php index a0b4385d0eb..c2ea1351e8b 100644 --- a/includes/class-wc-product-external.php +++ b/includes/class-wc-product-external.php @@ -18,7 +18,7 @@ if ( ! defined( 'ABSPATH' ) ) { class WC_Product_External extends WC_Product { /** - * __construct function. + * Constructor. * * @access public * @param mixed $product @@ -69,7 +69,7 @@ class WC_Product_External extends WC_Product { } /** - * get_product_url function. + * Get product url. * * @access public * @return string @@ -79,7 +79,7 @@ class WC_Product_External extends WC_Product { } /** - * get_button_text function. + * Get button text. * * @access public * @return string diff --git a/includes/class-wc-product-factory.php b/includes/class-wc-product-factory.php index 8d99e7e5172..8a2241e8772 100644 --- a/includes/class-wc-product-factory.php +++ b/includes/class-wc-product-factory.php @@ -18,7 +18,7 @@ if ( ! defined( 'ABSPATH' ) ) { class WC_Product_Factory { /** - * get_product function. + * Get product. * * @param bool $the_product (default: false) * @param array $args (default: array()) diff --git a/includes/class-wc-product-grouped.php b/includes/class-wc-product-grouped.php index 6a0dbc9ba10..944046ec20e 100644 --- a/includes/class-wc-product-grouped.php +++ b/includes/class-wc-product-grouped.php @@ -21,7 +21,7 @@ class WC_Product_Grouped extends WC_Product { public $children; /** - * __construct function. + * Constructor. * * @access public * @param mixed $product diff --git a/includes/class-wc-product-variable.php b/includes/class-wc-product-variable.php index 63498ae5037..800102ce5e1 100644 --- a/includes/class-wc-product-variable.php +++ b/includes/class-wc-product-variable.php @@ -148,7 +148,7 @@ class WC_Product_Variable extends WC_Product { } /** - * get_child function. + * Get child product. * * @access public * @param mixed $child_id @@ -263,73 +263,77 @@ class WC_Product_Variable extends WC_Product { $price_hash = md5( json_encode( apply_filters( 'woocommerce_get_variation_prices_hash', $price_hash, $this, $display ) ) ); - // If the value has already been generated, return it now - if ( ! empty( $this->prices_array[ $price_hash ] ) ) { - return $this->prices_array[ $price_hash ]; - } - - // Get value of transient - $this->prices_array = array_filter( (array) json_decode( strval( get_transient( $transient_name ) ), true ) ); - - // If the product version has changed, reset cache - if ( empty( $this->prices_array['version'] ) || $this->prices_array['version'] !== WC_Cache_Helper::get_transient_version( 'product' ) ) { - $this->prices_array = array( 'version' => WC_Cache_Helper::get_transient_version( 'product' ) ); - } - - // If the prices are not stored for this hash, generate them + // If the value has already been generated, we don't need to grab the values again. if ( empty( $this->prices_array[ $price_hash ] ) ) { - $prices = array(); - $regular_prices = array(); - $sale_prices = array(); - $variation_ids = $this->get_children( true ); - foreach ( $variation_ids as $variation_id ) { - if ( $variation = $this->get_child( $variation_id ) ) { - $price = apply_filters( 'woocommerce_variation_prices_price', $variation->price, $variation, $this ); - $regular_price = apply_filters( 'woocommerce_variation_prices_regular_price', $variation->regular_price, $variation, $this ); - $sale_price = apply_filters( 'woocommerce_variation_prices_sale_price', $variation->sale_price, $variation, $this ); + // Get value of transient + $this->prices_array = array_filter( (array) json_decode( strval( get_transient( $transient_name ) ), true ) ); - // If sale price does not equal price, the product is not yet on sale - if ( $sale_price === $regular_price || $sale_price !== $price ) { - $sale_price = $regular_price; - } - - // If we are getting prices for display, we need to account for taxes - if ( $display ) { - if ( 'incl' === get_option( 'woocommerce_tax_display_shop' ) ) { - $price = '' === $price ? '' : $variation->get_price_including_tax( 1, $price ); - $regular_price = '' === $regular_price ? '' : $variation->get_price_including_tax( 1, $regular_price ); - $sale_price = '' === $sale_price ? '' : $variation->get_price_including_tax( 1, $sale_price ); - } else { - $price = '' === $price ? '' : $variation->get_price_excluding_tax( 1, $price ); - $regular_price = '' === $regular_price ? '' : $variation->get_price_excluding_tax( 1, $regular_price ); - $sale_price = '' === $sale_price ? '' : $variation->get_price_excluding_tax( 1, $sale_price ); - } - } - - $prices[ $variation_id ] = $price; - $regular_prices[ $variation_id ] = $regular_price; - $sale_prices[ $variation_id ] = $sale_price; - } + // If the product version has changed, reset cache + if ( empty( $this->prices_array['version'] ) || $this->prices_array['version'] !== WC_Cache_Helper::get_transient_version( 'product' ) ) { + $this->prices_array = array( 'version' => WC_Cache_Helper::get_transient_version( 'product' ) ); } - asort( $prices ); - asort( $regular_prices ); - asort( $sale_prices ); + // If the prices are not stored for this hash, generate them + if ( empty( $this->prices_array[ $price_hash ] ) ) { + $prices = array(); + $regular_prices = array(); + $sale_prices = array(); + $variation_ids = $this->get_children( true ); - $this->prices_array[ $price_hash ] = array( - 'price' => $prices, - 'regular_price' => $regular_prices, - 'sale_price' => $sale_prices - ); + foreach ( $variation_ids as $variation_id ) { + if ( $variation = $this->get_child( $variation_id ) ) { + $price = apply_filters( 'woocommerce_variation_prices_price', $variation->price, $variation, $this ); + $regular_price = apply_filters( 'woocommerce_variation_prices_regular_price', $variation->regular_price, $variation, $this ); + $sale_price = apply_filters( 'woocommerce_variation_prices_sale_price', $variation->sale_price, $variation, $this ); - set_transient( $transient_name, json_encode( $this->prices_array ), DAY_IN_SECONDS * 30 ); + // If sale price does not equal price, the product is not yet on sale + if ( $sale_price === $regular_price || $sale_price !== $price ) { + $sale_price = $regular_price; + } + + // If we are getting prices for display, we need to account for taxes + if ( $display ) { + if ( 'incl' === get_option( 'woocommerce_tax_display_shop' ) ) { + $price = '' === $price ? '' : $variation->get_price_including_tax( 1, $price ); + $regular_price = '' === $regular_price ? '' : $variation->get_price_including_tax( 1, $regular_price ); + $sale_price = '' === $sale_price ? '' : $variation->get_price_including_tax( 1, $sale_price ); + } else { + $price = '' === $price ? '' : $variation->get_price_excluding_tax( 1, $price ); + $regular_price = '' === $regular_price ? '' : $variation->get_price_excluding_tax( 1, $regular_price ); + $sale_price = '' === $sale_price ? '' : $variation->get_price_excluding_tax( 1, $sale_price ); + } + } + + $prices[ $variation_id ] = $price; + $regular_prices[ $variation_id ] = $regular_price; + $sale_prices[ $variation_id ] = $sale_price; + } + } + + asort( $prices ); + asort( $regular_prices ); + asort( $sale_prices ); + + $this->prices_array[ $price_hash ] = array( + 'price' => $prices, + 'regular_price' => $regular_prices, + 'sale_price' => $sale_prices + ); + + set_transient( $transient_name, json_encode( $this->prices_array ), DAY_IN_SECONDS * 30 ); + } + + /** + * Give plugins one last chance to filter the variation prices array which has been generated. + */ + $this->prices_array[ $price_hash ] = apply_filters( 'woocommerce_variation_prices', $this->prices_array[ $price_hash ], $this, $display ); } /** - * Give plugins one last chance to filter the variation prices array which is being returned. + * Return the values. */ - return $this->prices_array[ $price_hash ] = apply_filters( 'woocommerce_variation_prices', $this->prices_array[ $price_hash ], $this, $display ); + return $this->prices_array[ $price_hash ]; } /** diff --git a/includes/class-wc-product-variation.php b/includes/class-wc-product-variation.php index c939e2049d7..408698dbfbb 100644 --- a/includes/class-wc-product-variation.php +++ b/includes/class-wc-product-variation.php @@ -471,7 +471,9 @@ class WC_Product_Variation extends WC_Product { } /** - * set_stock_status function. + * Set stock status. + * + * @param string $status */ public function set_stock_status( $status ) { $status = 'outofstock' === $status ? 'outofstock' : 'instock'; @@ -588,7 +590,7 @@ class WC_Product_Variation extends WC_Product { } /** - * is_on_backorder function. + * Is on backorder? * * @param int $qty_in_cart (default: 0) * @return bool diff --git a/includes/class-wc-query.php b/includes/class-wc-query.php index e27c0e80ff7..4e87f98b619 100644 --- a/includes/class-wc-query.php +++ b/includes/class-wc-query.php @@ -144,7 +144,7 @@ class WC_Query { } /** - * add_query_vars function. + * Add query vars. * * @access public * @param array $vars @@ -212,7 +212,7 @@ class WC_Query { } // Fix for verbose page rules - if ( $GLOBALS['wp_rewrite']->use_verbose_page_rules && isset( $q->queried_object->ID ) && $q->queried_object->ID === wc_get_page_id('shop') ) { + if ( $GLOBALS['wp_rewrite']->use_verbose_page_rules && isset( $q->queried_object->ID ) && $q->queried_object->ID === wc_get_page_id( 'shop' ) ) { $q->set( 'post_type', 'product' ); $q->set( 'page', '' ); $q->set( 'pagename', '' ); @@ -225,30 +225,30 @@ class WC_Query { } // Fix for endpoints on the homepage - if ( $q->is_home() && 'page' == get_option('show_on_front') && get_option('page_on_front') != $q->get('page_id') ) { + if ( $q->is_home() && 'page' === get_option( 'show_on_front' ) && absint( get_option( 'page_on_front' ) ) !== absint( $q->get( 'page_id' ) ) ) { $_query = wp_parse_args( $q->query ); if ( ! empty( $_query ) && array_intersect( array_keys( $_query ), array_keys( $this->query_vars ) ) ) { $q->is_page = true; $q->is_home = false; $q->is_singular = true; - - $q->set( 'page_id', get_option('page_on_front') ); + $q->set( 'page_id', (int) get_option( 'page_on_front' ) ); + add_filter( 'redirect_canonical', '__return_false' ); } } // When orderby is set, WordPress shows posts. Get around that here. - if ( $q->is_home() && 'page' == get_option('show_on_front') && get_option('page_on_front') == wc_get_page_id('shop') ) { + if ( $q->is_home() && 'page' === get_option( 'show_on_front' ) && absint( get_option( 'page_on_front' ) ) === wc_get_page_id( 'shop' ) ) { $_query = wp_parse_args( $q->query ); if ( empty( $_query ) || ! array_diff( array_keys( $_query ), array( 'preview', 'page', 'paged', 'cpage', 'orderby' ) ) ) { $q->is_page = true; $q->is_home = false; - $q->set( 'page_id', get_option('page_on_front') ); + $q->set( 'page_id', (int) get_option( 'page_on_front' ) ); $q->set( 'post_type', 'product' ); } } // Special check for shops with the product archive on front - if ( $q->is_page() && 'page' == get_option( 'show_on_front' ) && $q->get( 'page_id' ) == wc_get_page_id( 'shop' ) ) { + if ( $q->is_page() && 'page' === get_option( 'show_on_front' ) && absint( $q->get( 'page_id' ) ) === wc_get_page_id( 'shop' ) ) { // This is a front-page shop $q->set( 'post_type', 'product' ); @@ -308,7 +308,7 @@ class WC_Query { } /** - * search_post_excerpt function. + * Search post excerpt. * * @access public * @param string $where (default: '') @@ -329,7 +329,8 @@ class WC_Query { } /** - * wpseo_metadesc function. + * WP SEO meta description. + * * Hooked into wpseo_ hook already, so no need for function_exist. * * @access public @@ -340,7 +341,8 @@ class WC_Query { } /** - * wpseo_metakey function. + * WP SEO meta key. + * * Hooked into wpseo_ hook already, so no need for function_exist. * * @access public @@ -487,24 +489,24 @@ class WC_Query { if ( false === ( $unfiltered_product_ids = get_transient( $transient_name ) ) ) { // Get all visible posts, regardless of filters - $unfiltered_product_ids = get_posts( - array_merge( - $current_wp_query, - array( - 'post_type' => 'product', - 'numberposts' => -1, - 'post_status' => 'publish', - 'meta_query' => $this->meta_query, - 'fields' => 'ids', - 'no_found_rows' => true, - 'update_post_meta_cache' => false, - 'update_post_term_cache' => false, - 'pagename' => '', - 'wc_query' => 'get_products_in_view' - ) + $unfiltered_args = array_merge( + $current_wp_query, + array( + 'post_type' => 'product', + 'numberposts' => -1, + 'post_status' => 'publish', + 'meta_query' => $this->meta_query, + 'fields' => 'ids', + 'no_found_rows' => true, + 'update_post_meta_cache' => false, + 'update_post_term_cache' => false, + 'pagename' => '', + 'wc_query' => 'get_products_in_view' ) ); + $unfiltered_product_ids = apply_filters( 'woocommerce_unfiltered_product_ids', get_posts( $unfiltered_args ), $unfiltered_args ); + set_transient( $transient_name, $unfiltered_product_ids, DAY_IN_SECONDS * 30 ); } @@ -605,7 +607,7 @@ class WC_Query { } /** - * order_by_rating_post_clauses function. + * Order by rating post clauses. * * @access public * @param array $args @@ -751,29 +753,29 @@ class WC_Query { if ( sizeof( $data['terms'] ) > 0 ) { foreach ( $data['terms'] as $value ) { - $posts = get_posts( - array( - 'post_type' => 'product', - 'numberposts' => -1, - 'post_status' => 'publish', - 'fields' => 'ids', - 'no_found_rows' => true, - 'tax_query' => array( - array( - 'taxonomy' => $attribute, - 'terms' => $value, - 'field' => 'term_id' - ) + $args = array( + 'post_type' => 'product', + 'numberposts' => -1, + 'post_status' => 'publish', + 'fields' => 'ids', + 'no_found_rows' => true, + 'tax_query' => array( + array( + 'taxonomy' => $attribute, + 'terms' => $value, + 'field' => 'term_id' ) ) ); - if ( ! is_wp_error( $posts ) ) { + $post_ids = apply_filters( 'woocommerce_layered_nav_query_post_ids', get_posts( $args ), $args, $attribute, $value ); + + if ( ! is_wp_error( $post_ids ) ) { if ( sizeof( $matched_products_from_attribute ) > 0 || $filtered ) { - $matched_products_from_attribute = $data['query_type'] == 'or' ? array_merge( $posts, $matched_products_from_attribute ) : array_intersect( $posts, $matched_products_from_attribute ); + $matched_products_from_attribute = $data['query_type'] == 'or' ? array_merge( $post_ids, $matched_products_from_attribute ) : array_intersect( $post_ids, $matched_products_from_attribute ); } else { - $matched_products_from_attribute = $posts; + $matched_products_from_attribute = $post_ids; } $filtered = true; diff --git a/includes/class-wc-session-handler.php b/includes/class-wc-session-handler.php index fc286efa5b6..e841e75c056 100644 --- a/includes/class-wc-session-handler.php +++ b/includes/class-wc-session-handler.php @@ -66,7 +66,6 @@ class WC_Session_Handler extends WC_Session { add_action( 'shutdown', array( $this, 'save_data' ), 20 ); add_action( 'wp_logout', array( $this, 'destroy_session' ) ); if ( ! is_user_logged_in() ) { - add_action( 'woocommerce_thankyou', array( $this, 'destroy_session' ) ); add_filter( 'nonce_user_logged_out', array( $this, 'nonce_user_logged_out' ) ); } } @@ -141,7 +140,7 @@ class WC_Session_Handler extends WC_Session { $to_hash = $customer_id . '|' . $session_expiration; $hash = hash_hmac( 'md5', $to_hash, wp_hash( $to_hash ) ); - if ( ! hash_equals( $hash, $cookie_hash ) ) { + if ( empty( $cookie_hash ) || ! hash_equals( $hash, $cookie_hash ) ) { return false; } diff --git a/includes/class-wc-shipping-rate.php b/includes/class-wc-shipping-rate.php index ae0a87e8f7b..dc3ce7cac3d 100644 --- a/includes/class-wc-shipping-rate.php +++ b/includes/class-wc-shipping-rate.php @@ -50,7 +50,7 @@ class WC_Shipping_Rate { } /** - * get_shipping_tax function. + * Get shipping tax. * * @return array */ diff --git a/includes/class-wc-shipping.php b/includes/class-wc-shipping.php index e079068cbe4..e6ab52e9c73 100644 --- a/includes/class-wc-shipping.php +++ b/includes/class-wc-shipping.php @@ -82,7 +82,7 @@ class WC_Shipping { } /** - * init function. + * Initialize shipping. */ public function init() { do_action( 'woocommerce_shipping_init' ); @@ -91,8 +91,6 @@ class WC_Shipping { } /** - * load_shipping_methods function. - * * Loads all shipping methods which are hooked in. If a $package is passed some methods may add themselves conditionally. * * Methods are sorted into their user-defined order after being loaded. @@ -189,8 +187,6 @@ class WC_Shipping { } /** - * get_shipping_methods function. - * * Returns all registered shipping methods for usage. * * @access public @@ -201,8 +197,6 @@ class WC_Shipping { } /** - * get_shipping_classes function. - * * Load shipping classes taxonomy terms. * * @access public @@ -261,8 +255,6 @@ class WC_Shipping { } /** - * calculate_shipping function. - * * Calculate shipping for (multiple) packages of cart items. * * @param array $packages multi-dimensional array of cart items to calc shipping for diff --git a/includes/class-wc-shortcodes.php b/includes/class-wc-shortcodes.php index 378168fc9b5..e95bf1e8176 100644 --- a/includes/class-wc-shortcodes.php +++ b/includes/class-wc-shortcodes.php @@ -446,9 +446,9 @@ class WC_Shortcodes { return ''; } - $product = wc_setup_product_data( $product_data ); - - if ( ! $product ) { + if ( is_object( $product_data ) ) { + $product = wc_setup_product_data( $product_data ); + } else { return ''; } @@ -494,6 +494,12 @@ class WC_Shortcodes { return ''; } + if ( is_object( $product_data ) ) { + $product = wc_setup_product_data( $product_data ); + } else { + return ''; + } + if ( 'product' !== $product_data->post_type ) { return ''; } diff --git a/includes/class-wc-tax.php b/includes/class-wc-tax.php index e89fd5ce18f..2b660b03e30 100644 --- a/includes/class-wc-tax.php +++ b/includes/class-wc-tax.php @@ -15,7 +15,18 @@ if ( ! defined( 'ABSPATH' ) ) { */ class WC_Tax { + /** + * Precision. + * + * @var int + */ public static $precision; + + /** + * Round at subtotal. + * + * @var bool + */ public static $round_at_subtotal; /** diff --git a/includes/class-wc-template-loader.php b/includes/class-wc-template-loader.php index 576ddbb2ffe..a33f1512270 100644 --- a/includes/class-wc-template-loader.php +++ b/includes/class-wc-template-loader.php @@ -84,7 +84,7 @@ class WC_Template_Loader { } /** - * comments_template_loader function. + * Load comments template. * * @param mixed $template * @return string diff --git a/includes/emails/class-wc-email-cancelled-order.php b/includes/emails/class-wc-email-cancelled-order.php index 2109735a2d3..ccf31c04908 100644 --- a/includes/emails/class-wc-email-cancelled-order.php +++ b/includes/emails/class-wc-email-cancelled-order.php @@ -44,6 +44,8 @@ class WC_Email_Cancelled_Order extends WC_Email { /** * Trigger. + * + * @param int $order_id */ public function trigger( $order_id ) { if ( $order_id ) { @@ -62,7 +64,7 @@ class WC_Email_Cancelled_Order extends WC_Email { } /** - * get_content_html function. + * Get content html. * * @access public * @return string diff --git a/includes/emails/class-wc-email-customer-completed-order.php b/includes/emails/class-wc-email-customer-completed-order.php index 0119a357afe..2cc54f6806a 100644 --- a/includes/emails/class-wc-email-customer-completed-order.php +++ b/includes/emails/class-wc-email-customer-completed-order.php @@ -48,6 +48,8 @@ class WC_Email_Customer_Completed_Order extends WC_Email { /** * Trigger. + * + * @param int $order_id */ function trigger( $order_id ) { @@ -70,7 +72,7 @@ class WC_Email_Customer_Completed_Order extends WC_Email { } /** - * get_subject function. + * Get email subject. * * @access public * @return string @@ -84,7 +86,7 @@ class WC_Email_Customer_Completed_Order extends WC_Email { } /** - * get_heading function. + * Get email heading. * * @access public * @return string @@ -98,7 +100,7 @@ class WC_Email_Customer_Completed_Order extends WC_Email { } /** - * get_content_html function. + * Get content html. * * @access public * @return string diff --git a/includes/emails/class-wc-email-customer-invoice.php b/includes/emails/class-wc-email-customer-invoice.php index 84f18ddbe28..87e483ca1f6 100644 --- a/includes/emails/class-wc-email-customer-invoice.php +++ b/includes/emails/class-wc-email-customer-invoice.php @@ -19,7 +19,18 @@ if ( ! class_exists( 'WC_Email_Customer_Invoice' ) ) : */ class WC_Email_Customer_Invoice extends WC_Email { + /** + * Strings to find in subjects/headings. + * + * @var array + */ public $find; + + /** + * Strings to replace in subjects/headings. + * + * @var array + */ public $replace; /** @@ -51,6 +62,8 @@ class WC_Email_Customer_Invoice extends WC_Email { /** * Trigger. + * + * @param int|WC_Order $order */ function trigger( $order ) { @@ -77,7 +90,7 @@ class WC_Email_Customer_Invoice extends WC_Email { } /** - * get_subject function. + * Get email subject. * * @access public * @return string @@ -91,7 +104,7 @@ class WC_Email_Customer_Invoice extends WC_Email { } /** - * get_heading function. + * Get email heading. * * @access public * @return string @@ -105,7 +118,7 @@ class WC_Email_Customer_Invoice extends WC_Email { } /** - * get_content_html function. + * Get content html. * * @access public * @return string @@ -121,7 +134,7 @@ class WC_Email_Customer_Invoice extends WC_Email { } /** - * get_content_plain function. + * Get content plain. * * @access public * @return string diff --git a/includes/emails/class-wc-email-customer-new-account.php b/includes/emails/class-wc-email-customer-new-account.php index 355a73fe511..87322f61832 100644 --- a/includes/emails/class-wc-email-customer-new-account.php +++ b/includes/emails/class-wc-email-customer-new-account.php @@ -19,9 +19,32 @@ if ( ! class_exists( 'WC_Email_Customer_New_Account' ) ) : */ class WC_Email_Customer_New_Account extends WC_Email { + /** + * User login name. + * + * @var string + */ public $user_login; + + /** + * User email. + * + * @var string + */ public $user_email; + + /** + * User password. + * + * @var string + */ public $user_pass; + + /** + * Is the password generated? + * + * @var bool + */ public $password_generated; /** @@ -46,6 +69,10 @@ class WC_Email_Customer_New_Account extends WC_Email { /** * Trigger. + * + * @param int $user_id + * @param string $user_pass + * @param bool $password_generated */ function trigger( $user_id, $user_pass = '', $password_generated = false ) { @@ -67,7 +94,7 @@ class WC_Email_Customer_New_Account extends WC_Email { } /** - * get_content_html function. + * Get content html. * * @access public * @return string @@ -86,7 +113,7 @@ class WC_Email_Customer_New_Account extends WC_Email { } /** - * get_content_plain function. + * Get content plain. * * @access public * @return string diff --git a/includes/emails/class-wc-email-customer-note.php b/includes/emails/class-wc-email-customer-note.php index a2a67d961f6..5f1282ec641 100644 --- a/includes/emails/class-wc-email-customer-note.php +++ b/includes/emails/class-wc-email-customer-note.php @@ -19,6 +19,11 @@ if ( ! class_exists( 'WC_Email_Customer_Note' ) ) : */ class WC_Email_Customer_Note extends WC_Email { + /** + * Customer note. + * + * @var string + */ public $customer_note; /** @@ -46,6 +51,8 @@ class WC_Email_Customer_Note extends WC_Email { /** * Trigger. + * + * @param array $args */ function trigger( $args ) { @@ -82,7 +89,7 @@ class WC_Email_Customer_Note extends WC_Email { } /** - * get_content_html function. + * Get content html. * * @access public * @return string @@ -99,7 +106,7 @@ class WC_Email_Customer_Note extends WC_Email { } /** - * get_content_plain function. + * Get content plain. * * @access public * @return string diff --git a/includes/emails/class-wc-email-customer-processing-order.php b/includes/emails/class-wc-email-customer-processing-order.php index ab9226395e3..d91175576da 100644 --- a/includes/emails/class-wc-email-customer-processing-order.php +++ b/includes/emails/class-wc-email-customer-processing-order.php @@ -42,6 +42,8 @@ class WC_Email_Customer_Processing_Order extends WC_Email { /** * Trigger. + * + * @param int $order_id */ function trigger( $order_id ) { @@ -64,7 +66,7 @@ class WC_Email_Customer_Processing_Order extends WC_Email { } /** - * get_content_html function. + * Get content html. * * @access public * @return string @@ -80,7 +82,7 @@ class WC_Email_Customer_Processing_Order extends WC_Email { } /** - * get_content_plain function. + * Get content plain. * * @access public * @return string diff --git a/includes/emails/class-wc-email-customer-refunded-order.php b/includes/emails/class-wc-email-customer-refunded-order.php index 1b243ffa76e..923a5f62bd3 100644 --- a/includes/emails/class-wc-email-customer-refunded-order.php +++ b/includes/emails/class-wc-email-customer-refunded-order.php @@ -19,7 +19,18 @@ if ( ! class_exists( 'WC_Email_Customer_Refunded_Order' ) ) : */ class WC_Email_Customer_Refunded_Order extends WC_Email { + /** + * Refund order. + * + * @var WC_Order + */ public $refund; + + /** + * Is the order partial refunded? + * + * @var bool + */ public $partial_refund; /** @@ -37,6 +48,11 @@ class WC_Email_Customer_Refunded_Order extends WC_Email { parent::__construct(); } + /** + * Set email strings. + * + * @param bool $partial_refund + */ public function set_email_strings( $partial_refund = false ) { $this->subject_partial = $this->get_option( 'subject_partial', __( 'Your {site_title} order from {order_date} has been partially refunded', 'woocommerce' ) ); $this->subject_full = $this->get_option( 'subject_full', __( 'Your {site_title} order from {order_date} has been refunded', 'woocommerce' ) ); @@ -66,6 +82,9 @@ class WC_Email_Customer_Refunded_Order extends WC_Email { /** * Full refund notification. + * + * @param int $order_id + * @param int $refund_id */ public function trigger_full( $order_id, $refund_id = null ) { $this->trigger( $order_id, false, $refund_id ); @@ -73,6 +92,9 @@ class WC_Email_Customer_Refunded_Order extends WC_Email { /** * Partial refund notification. + * + * @param int $order_id + * @param int $refund_id */ public function trigger_partial( $order_id, $refund_id = null ) { $this->trigger( $order_id, true, $refund_id ); @@ -80,6 +102,10 @@ class WC_Email_Customer_Refunded_Order extends WC_Email { /** * Trigger. + * + * @param int $order_id + * @param bool $partial_refund + * @param int $refund_id */ public function trigger( $order_id, $partial_refund = false, $refund_id = null ) { $this->partial_refund = $partial_refund; @@ -110,7 +136,7 @@ class WC_Email_Customer_Refunded_Order extends WC_Email { } /** - * get_subject function. + * Get email subject. * * @access public * @return string @@ -120,7 +146,7 @@ class WC_Email_Customer_Refunded_Order extends WC_Email { } /** - * get_heading function. + * Get email heading. * * @access public * @return string @@ -130,7 +156,7 @@ class WC_Email_Customer_Refunded_Order extends WC_Email { } /** - * get_content_html function. + * Get content html. * * @access public * @return string diff --git a/includes/emails/class-wc-email-customer-reset-password.php b/includes/emails/class-wc-email-customer-reset-password.php index 5e0b08da331..10ea9646fcc 100644 --- a/includes/emails/class-wc-email-customer-reset-password.php +++ b/includes/emails/class-wc-email-customer-reset-password.php @@ -19,13 +19,25 @@ if ( ! class_exists( 'WC_Email_Customer_Reset_Password' ) ) : */ class WC_Email_Customer_Reset_Password extends WC_Email { - /** @var string */ + /** + * User login name. + * + * @var string + */ public $user_login; - /** @var string */ + /** + * User email. + * + * @var string + */ public $user_email; - /** @var string */ + /** + * Reset key. + * + * @var string + */ public $reset_key; /** @@ -53,6 +65,9 @@ class WC_Email_Customer_Reset_Password extends WC_Email { /** * Trigger. + * + * @param string $user_login + * @param string $reset_key */ function trigger( $user_login = '', $reset_key = '' ) { if ( $user_login && $reset_key ) { @@ -73,7 +88,7 @@ class WC_Email_Customer_Reset_Password extends WC_Email { } /** - * get_content_html function. + * Get content html. * * @access public * @return string @@ -91,7 +106,7 @@ class WC_Email_Customer_Reset_Password extends WC_Email { } /** - * get_content_plain function. + * Get content plain. * * @access public * @return string diff --git a/includes/emails/class-wc-email-failed-order.php b/includes/emails/class-wc-email-failed-order.php index 598e1458f0e..b8f385066c7 100644 --- a/includes/emails/class-wc-email-failed-order.php +++ b/includes/emails/class-wc-email-failed-order.php @@ -44,6 +44,8 @@ class WC_Email_Failed_Order extends WC_Email { /** * Trigger. + * + * @param int $order_id */ public function trigger( $order_id ) { if ( $order_id ) { @@ -62,7 +64,7 @@ class WC_Email_Failed_Order extends WC_Email { } /** - * get_content_html function. + * Get content html. * * @access public * @return string diff --git a/includes/emails/class-wc-email-new-order.php b/includes/emails/class-wc-email-new-order.php index 88c663c4613..32324e14aa4 100644 --- a/includes/emails/class-wc-email-new-order.php +++ b/includes/emails/class-wc-email-new-order.php @@ -48,6 +48,8 @@ class WC_Email_New_Order extends WC_Email { /** * Trigger. + * + * @param int $order_id */ public function trigger( $order_id ) { if ( $order_id ) { @@ -66,7 +68,7 @@ class WC_Email_New_Order extends WC_Email { } /** - * get_content_html function. + * Get content html. * * @access public * @return string @@ -82,7 +84,7 @@ class WC_Email_New_Order extends WC_Email { } /** - * get_content_plain function. + * Get content plain. * * @access public * @return string diff --git a/includes/emails/class-wc-email.php b/includes/emails/class-wc-email.php index 5709fc21131..a5e84e958d5 100644 --- a/includes/emails/class-wc-email.php +++ b/includes/emails/class-wc-email.php @@ -220,7 +220,7 @@ class WC_Email extends WC_Settings_API { } /** - * handle_multipart function. + * Handle multipart mail. * * @param PHPMailer $mailer * @return PHPMailer @@ -234,7 +234,7 @@ class WC_Email extends WC_Settings_API { } /** - * format_string function. + * Format email string. * * @param mixed $string * @return string @@ -244,7 +244,7 @@ class WC_Email extends WC_Settings_API { } /** - * get_subject function. + * Get email subject. * * @return string */ @@ -253,7 +253,7 @@ class WC_Email extends WC_Settings_API { } /** - * get_heading function. + * Get email heading. * * @return string */ @@ -273,7 +273,7 @@ class WC_Email extends WC_Settings_API { } /** - * get_headers function. + * Get email headers. * * @return string */ @@ -282,7 +282,7 @@ class WC_Email extends WC_Settings_API { } /** - * get_attachments function. + * Get email attachments. * * @return string|array */ @@ -300,7 +300,7 @@ class WC_Email extends WC_Settings_API { } /** - * get_content_type function. + * Get email content type. * * @return string */ @@ -368,7 +368,7 @@ class WC_Email extends WC_Settings_API { } /** - * get_blogname function. + * Get WordPress blog name. * * @return string */ @@ -377,7 +377,7 @@ class WC_Email extends WC_Settings_API { } /** - * get_content function. + * Get email content. * * @return string */ diff --git a/includes/gateways/bacs/class-wc-gateway-bacs.php b/includes/gateways/bacs/class-wc-gateway-bacs.php index bb22b0615b4..869a921056a 100644 --- a/includes/gateways/bacs/class-wc-gateway-bacs.php +++ b/includes/gateways/bacs/class-wc-gateway-bacs.php @@ -105,7 +105,9 @@ class WC_Gateway_BACS extends WC_Payment_Gateway { } /** - * generate_account_details_html function. + * Generate account details html. + * + * @return string */ public function generate_account_details_html() { @@ -224,6 +226,8 @@ class WC_Gateway_BACS extends WC_Payment_Gateway { /** * Output for the order received page. + * + * @param int $order_id */ public function thankyou_page( $order_id ) { @@ -254,6 +258,8 @@ class WC_Gateway_BACS extends WC_Payment_Gateway { /** * Get bank details and place into a list format. + * + * @param int $order_id */ private function bank_details( $order_id = '' ) { @@ -350,7 +356,6 @@ class WC_Gateway_BACS extends WC_Payment_Gateway { * * @return array */ - public function get_country_locale() { if ( ! $this->locale ) { diff --git a/includes/gateways/paypal/class-wc-gateway-paypal.php b/includes/gateways/paypal/class-wc-gateway-paypal.php index 7d0ce897776..680bc84aa95 100644 --- a/includes/gateways/paypal/class-wc-gateway-paypal.php +++ b/includes/gateways/paypal/class-wc-gateway-paypal.php @@ -20,7 +20,7 @@ if ( ! defined( 'ABSPATH' ) ) { */ class WC_Gateway_Paypal extends WC_Payment_Gateway { - /** @var boolean Whether or not logging is enabled */ + /** @var bool Whether or not logging is enabled */ public static $log_enabled = false; /** @var WC_Logger Logger instance */ @@ -84,7 +84,7 @@ class WC_Gateway_Paypal extends WC_Payment_Gateway { } /** - * get_icon function. + * Get gateway icon. * @return string */ public function get_icon() { @@ -106,13 +106,17 @@ class WC_Gateway_Paypal extends WC_Payment_Gateway { * @return string */ protected function get_icon_url( $country ) { - $countries = array( 'DZ', 'AU', 'BH', 'BE', 'BQ', 'BW', 'CA', 'CN', 'CW', 'CZ', 'DK', 'FI', 'FR', 'DE', 'GR', 'HK', 'HU', 'IN', 'ID', 'IT', 'JO', 'KE', 'KW', 'LU', 'MY', 'MA', 'NL', 'NO', 'OM', 'PH', 'PL', 'PT', 'QA', 'IE', 'RU', 'BL', 'SX', 'MF', 'SA', 'SG', 'SK', 'KR', 'SS', 'ES', 'SE', 'TW', 'TH', 'TR', 'AE', 'GB', 'US', 'VN' ); + $url = 'https://www.paypal.com/' . strtolower( $country ); + $home_counties = array( 'BE', 'CZ', 'DK', 'HU', 'IT', 'JP', 'NL', 'NO', 'ES', 'SE', 'TR'); + $countries = array( 'DZ', 'AU', 'BH', 'BQ', 'BW', 'CA', 'CN', 'CW', 'FI', 'FR', 'DE', 'GR', 'HK', 'IN', 'ID', 'JO', 'KE', 'KW', 'LU', 'MY', 'MA', 'OM', 'PH', 'PL', 'PT', 'QA', 'IE', 'RU', 'BL', 'SX', 'MF', 'SA', 'SG', 'SK', 'KR', 'SS', 'TW', 'TH', 'AE', 'GB', 'US', 'VN' ); - if ( in_array( $country, $countries ) ) { - return 'https://www.paypal.com/' . strtolower( $country ) . '/webapps/mpp/paypal-popup'; + if ( in_array( $country, $home_counties ) ) { + return $url . '/webapps/mpp/home'; + } else if ( in_array( $country, $countries ) ) { + return $url . '/webapps/mpp/paypal-popup'; + } else { + return $url . '/cgi-bin/webscr?cmd=xpt/Marketing/general/WIPaypal-outside'; } - - return 'https://www.paypal.com/' . strtolower( $country ) . '/cgi-bin/webscr?cmd=xpt/Marketing/general/WIPaypal-outside'; } /** @@ -257,7 +261,7 @@ class WC_Gateway_Paypal extends WC_Payment_Gateway { * @param int $order_id * @param float $amount * @param string $reason - * @return boolean True or false based on success, or a WP_Error object + * @return bool True or false based on success, or a WP_Error object */ public function process_refund( $order_id, $amount = null, $reason = '' ) { $order = wc_get_order( $order_id ); diff --git a/includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php b/includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php index e8977fb7212..4b42c58c94e 100644 --- a/includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php +++ b/includes/gateways/paypal/includes/class-wc-gateway-paypal-ipn-handler.php @@ -16,6 +16,9 @@ class WC_Gateway_Paypal_IPN_Handler extends WC_Gateway_Paypal_Response { /** * Constructor. + * + * @param bool $sandbox + * @param string $receiver_email */ public function __construct( $sandbox = false, $receiver_email = '' ) { add_action( 'woocommerce_api_wc_gateway_paypal', array( $this, 'check_response' ) ); @@ -135,6 +138,7 @@ class WC_Gateway_Paypal_IPN_Handler extends WC_Gateway_Paypal_Response { /** * Check payment amount from IPN matches the order. * @param WC_Order $order + * @param int $amount */ protected function validate_amount( $order, $amount ) { if ( number_format( $order->get_total(), 2, '.', '' ) != number_format( $amount, 2, '.', '' ) ) { @@ -150,6 +154,7 @@ class WC_Gateway_Paypal_IPN_Handler extends WC_Gateway_Paypal_Response { * Check receiver email from PayPal. If the receiver email in the IPN is different than what is stored in. * WooCommerce -> Settings -> Checkout -> PayPal, it will log an error about it. * @param WC_Order $order + * @param string $receiver_email */ protected function validate_receiver_email( $order, $receiver_email ) { if ( strcasecmp( trim( $receiver_email ), trim( $this->receiver_email ) ) != 0 ) { @@ -164,6 +169,7 @@ class WC_Gateway_Paypal_IPN_Handler extends WC_Gateway_Paypal_Response { /** * Handle a completed payment. * @param WC_Order $order + * @param array $posted */ protected function payment_status_completed( $order, $posted ) { if ( $order->has_status( 'completed' ) ) { @@ -193,6 +199,7 @@ class WC_Gateway_Paypal_IPN_Handler extends WC_Gateway_Paypal_Response { /** * Handle a pending payment. * @param WC_Order $order + * @param array $posted */ protected function payment_status_pending( $order, $posted ) { $this->payment_status_completed( $order, $posted ); @@ -201,6 +208,7 @@ class WC_Gateway_Paypal_IPN_Handler extends WC_Gateway_Paypal_Response { /** * Handle a failed payment. * @param WC_Order $order + * @param array $posted */ protected function payment_status_failed( $order, $posted ) { $order->update_status( 'failed', sprintf( __( 'Payment %s via IPN.', 'woocommerce' ), wc_clean( $posted['payment_status'] ) ) ); @@ -209,6 +217,7 @@ class WC_Gateway_Paypal_IPN_Handler extends WC_Gateway_Paypal_Response { /** * Handle a denied payment. * @param WC_Order $order + * @param array $posted */ protected function payment_status_denied( $order, $posted ) { $this->payment_status_failed( $order, $posted ); @@ -217,6 +226,7 @@ class WC_Gateway_Paypal_IPN_Handler extends WC_Gateway_Paypal_Response { /** * Handle an expired payment. * @param WC_Order $order + * @param array $posted */ protected function payment_status_expired( $order, $posted ) { $this->payment_status_failed( $order, $posted ); @@ -225,6 +235,7 @@ class WC_Gateway_Paypal_IPN_Handler extends WC_Gateway_Paypal_Response { /** * Handle a voided payment. * @param WC_Order $order + * @param array $posted */ protected function payment_status_voided( $order, $posted ) { $this->payment_status_failed( $order, $posted ); @@ -233,6 +244,7 @@ class WC_Gateway_Paypal_IPN_Handler extends WC_Gateway_Paypal_Response { /** * Handle a refunded order. * @param WC_Order $order + * @param array $posted */ protected function payment_status_refunded( $order, $posted ) { // Only handle full refunds, not partial. @@ -251,6 +263,7 @@ class WC_Gateway_Paypal_IPN_Handler extends WC_Gateway_Paypal_Response { /** * Handle a reveral. * @param WC_Order $order + * @param array $posted */ protected function payment_status_reversed( $order, $posted ) { $order->update_status( 'on-hold', sprintf( __( 'Payment %s via IPN.', 'woocommerce' ), wc_clean( $posted['payment_status'] ) ) ); @@ -264,6 +277,7 @@ class WC_Gateway_Paypal_IPN_Handler extends WC_Gateway_Paypal_Response { /** * Handle a cancelled reveral. * @param WC_Order $order + * @param array $posted */ protected function payment_status_canceled_reversal( $order, $posted ) { $this->send_ipn_email_notification( @@ -275,6 +289,7 @@ class WC_Gateway_Paypal_IPN_Handler extends WC_Gateway_Paypal_Response { /** * Save important data from the IPN to the order. * @param WC_Order $order + * @param array $posted */ protected function save_paypal_meta_data( $order, $posted ) { if ( ! empty( $posted['payer_email'] ) ) { @@ -301,6 +316,6 @@ class WC_Gateway_Paypal_IPN_Handler extends WC_Gateway_Paypal_Response { $mailer = WC()->mailer(); $message = $mailer->wrap_message( $subject, $message ); - $mailer->send( ! empty( $new_order_settings['recipient'] ) ? $new_order_settings['recipient'] : get_option( 'admin_email' ), $subject, $message ); + $mailer->send( ! empty( $new_order_settings['recipient'] ) ? $new_order_settings['recipient'] : get_option( 'admin_email' ), strip_tags( $subject ), $message ); } } diff --git a/includes/gateways/paypal/includes/class-wc-gateway-paypal-pdt-handler.php b/includes/gateways/paypal/includes/class-wc-gateway-paypal-pdt-handler.php index d0e9abfb69a..c4bdca6e6a5 100644 --- a/includes/gateways/paypal/includes/class-wc-gateway-paypal-pdt-handler.php +++ b/includes/gateways/paypal/includes/class-wc-gateway-paypal-pdt-handler.php @@ -16,6 +16,9 @@ class WC_Gateway_Paypal_PDT_Handler extends WC_Gateway_Paypal_Response { /** * Constructor. + * + * @param bool $sandbox + * @param string $identity_token */ public function __construct( $sandbox = false, $identity_token = '' ) { add_action( 'woocommerce_thankyou_paypal', array( $this, 'check_response' ) ); diff --git a/includes/gateways/paypal/includes/class-wc-gateway-paypal-refund.php b/includes/gateways/paypal/includes/class-wc-gateway-paypal-refund.php index 3e4a0e4e89f..0e80ab97ca6 100644 --- a/includes/gateways/paypal/includes/class-wc-gateway-paypal-refund.php +++ b/includes/gateways/paypal/includes/class-wc-gateway-paypal-refund.php @@ -49,7 +49,7 @@ class WC_Gateway_Paypal_Refund { * @param WC_Order $order * @param float $amount * @param string $reason - * @param boolean $sandbox + * @param bool $sandbox * @return array|wp_error The parsed response from paypal, or a WP_Error object */ public static function refund_order( $order, $amount = null, $reason = '', $sandbox = false ) { diff --git a/includes/gateways/paypal/includes/class-wc-gateway-paypal-request.php b/includes/gateways/paypal/includes/class-wc-gateway-paypal-request.php index 6340fdf4eb3..5ef4dcebebe 100644 --- a/includes/gateways/paypal/includes/class-wc-gateway-paypal-request.php +++ b/includes/gateways/paypal/includes/class-wc-gateway-paypal-request.php @@ -39,7 +39,7 @@ class WC_Gateway_Paypal_Request { /** * Get the PayPal request URL for an order. * @param WC_Order $order - * @param boolean $sandbox + * @param bool $sandbox * @return string */ public function get_request_url( $order, $sandbox = false ) { @@ -276,8 +276,8 @@ class WC_Gateway_Paypal_Request { /** * Add PayPal Line Item. * @param string $item_name - * @param integer $quantity - * @param integer $amount + * @param int $quantity + * @param int $amount * @param string $item_number * @return bool successfully added or not */ diff --git a/includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php b/includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php index 5c7e8f64ddb..f1ca3583f6d 100644 --- a/includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php +++ b/includes/gateways/simplify-commerce/class-wc-addons-gateway-simplify-commerce.php @@ -276,7 +276,7 @@ class WC_Addons_Gateway_Simplify_Commerce extends WC_Gateway_Simplify_Commerce { * process_subscription_payment function. * * @param WC_order $order - * @param integer $amount (default: 0) + * @param int $amount (default: 0) * @uses Simplify_BadRequestException * @return bool|WP_Error */ @@ -420,7 +420,7 @@ class WC_Addons_Gateway_Simplify_Commerce extends WC_Gateway_Simplify_Commerce { * Process a pre-order payment when the pre-order is released. * * @param WC_Order $order - * @return wp_error|null + * @return WP_Error|null */ public function process_pre_order_release_payment( $order ) { diff --git a/includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php b/includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php index 8f1c18db81e..a3adada79b6 100644 --- a/includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php +++ b/includes/gateways/simplify-commerce/class-wc-gateway-simplify-commerce.php @@ -158,6 +158,8 @@ class WC_Gateway_Simplify_Commerce extends WC_Payment_Gateway { /** * Check if this gateway is enabled. + * + * @return bool */ public function is_available() { if ( 'yes' !== $this->enabled ) { @@ -277,8 +279,6 @@ class WC_Gateway_Simplify_Commerce extends WC_Payment_Gateway { } /** - * payment_scripts function. - * * Outputs scripts used for simplify payment. */ public function payment_scripts() { @@ -377,7 +377,7 @@ class WC_Gateway_Simplify_Commerce extends WC_Payment_Gateway { /** * Process the payment. * - * @param integer $order_id + * @param int $order_id */ public function process_payment( $order_id ) { $cart_token = isset( $_POST['simplify_token'] ) ? wc_clean( $_POST['simplify_token'] ) : ''; @@ -535,7 +535,7 @@ class WC_Gateway_Simplify_Commerce extends WC_Payment_Gateway { } /** - * get_icon function. + * Get gateway icon. * * @access public * @return string diff --git a/includes/shipping/flat-rate/class-wc-shipping-flat-rate.php b/includes/shipping/flat-rate/class-wc-shipping-flat-rate.php index df24f82cff4..b346dbe4200 100644 --- a/includes/shipping/flat-rate/class-wc-shipping-flat-rate.php +++ b/includes/shipping/flat-rate/class-wc-shipping-flat-rate.php @@ -13,7 +13,11 @@ if ( ! defined( 'ABSPATH' ) ) { */ class WC_Shipping_Flat_Rate extends WC_Shipping_Method { - /** @var string cost passed to [fee] shortcode */ + /** + * Cost passed to [fee] shortcode. + * + * @var string + */ protected $fee_cost = ''; /** @@ -30,7 +34,7 @@ class WC_Shipping_Flat_Rate extends WC_Shipping_Method { } /** - * init function. + * Initialize flat rate shipping. */ public function init() { // Load the settings. @@ -48,7 +52,7 @@ class WC_Shipping_Flat_Rate extends WC_Shipping_Method { } /** - * Initialise Settings Form Fields. + * Initialize Settings Form Fields. */ public function init_form_fields() { $this->form_fields = include( 'includes/settings-flat-rate.php' ); @@ -63,9 +67,10 @@ class WC_Shipping_Flat_Rate extends WC_Shipping_Method { protected function evaluate_cost( $sum, $args = array() ) { include_once( 'includes/class-wc-eval-math.php' ); - $locale = localeconv(); - $decimals = array( wc_get_price_decimal_separator(), $locale['decimal_point'], $locale['mon_decimal_point'] ); - + // Allow 3rd parties to process shipping cost arguments + $args = apply_filters( 'woocommerce_evaluate_shipping_cost_args', $args, $sum, $this ); + $locale = localeconv(); + $decimals = array( wc_get_price_decimal_separator(), $locale['decimal_point'], $locale['mon_decimal_point'] ); $this->fee_cost = $args['cost']; // Expand shortcodes diff --git a/includes/shipping/flat-rate/includes/class-wc-eval-math.php b/includes/shipping/flat-rate/includes/class-wc-eval-math.php index 18af3290209..085f87075f6 100644 --- a/includes/shipping/flat-rate/includes/class-wc-eval-math.php +++ b/includes/shipping/flat-rate/includes/class-wc-eval-math.php @@ -9,20 +9,41 @@ if ( ! defined( 'ABSPATH' ) ) { * Based on EvalMath by Miles Kaufman Copyright (C) 2005 Miles Kaufmann http://www.twmagic.com/. */ class WC_Eval_Math { - /** @var string */ + + /** + * Last error. + * + * @var string + */ public static $last_error = null; - /** @var array */ - public static $v = array( 'e' => 2.71, 'pi' => 3.14 ); // variables (and constants) + /** + * Variables (and constants). + * + * @var array + */ + public static $v = array( 'e' => 2.71, 'pi' => 3.14 ); - /** @var array */ - public static $f = array(); // user-defined functions + /** + * User-defined functions. + * + * @var array + */ + public static $f = array(); - /** @var array */ - public static $vb = array( 'e', 'pi' ); // constants + /** + * Constants. + * + * @var array + */ + public static $vb = array( 'e', 'pi' ); - /** @var array */ - public static $fb = array(); // built-in functions + /** + * Built-in functions. + * + * @var array + */ + public static $fb = array(); /** * Evaluate maths string. @@ -201,7 +222,14 @@ class WC_Eval_Math { return $output; } - // evaluate postfix notation + /** + * Evaluate postfix notation. + * + * @param mixed $tokens + * @param array $vars + * + * @return mixed + */ private static function pfx( $tokens, $vars = array() ) { if ( $tokens == false ) return false; @@ -246,7 +274,13 @@ class WC_Eval_Math { return $stack->pop(); } - // trigger an error, but nicely, if need be + /** + * Trigger an error, but nicely, if need be. + * + * @param string $msg + * + * @return bool + */ private static function trigger( $msg ) { self::$last_error = $msg; if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { @@ -257,10 +291,12 @@ class WC_Eval_Math { return false; } - // Prints the file name, function name, and - // line number which called your function - // (not this function, then one that called - // it to begin with) + /** + * Prints the file name, function name, and + * line number which called your function + * (not this function, then one that called + * it to begin with) + */ private static function debugPrintCallingFunction() { $file = 'n/a'; $func = 'n/a'; @@ -280,17 +316,35 @@ class WC_Eval_Math { */ class WC_Eval_Math_Stack { - /** @var array */ + /** + * Stack array. + * + * @var array + */ public $stack = array(); - /** @var integer */ + /** + * Stack counter. + * + * @var integer + */ public $count = 0; + /** + * Push value into stack. + * + * @param mixed $val + */ public function push( $val ) { $this->stack[ $this->count ] = $val; $this->count++; } + /** + * Pop value from stack. + * + * @return mixed + */ public function pop() { if ( $this->count > 0 ) { $this->count--; @@ -299,7 +353,14 @@ class WC_Eval_Math_Stack { return null; } - public function last( $n=1 ) { + /** + * Get last value from stack. + * + * @param int $n + * + * @return mixed + */ + public function last( $n = 1 ) { $key = $this->count - $n; return array_key_exists( $key, $this->stack ) ? $this->stack[ $key ] : null; } diff --git a/includes/shipping/free-shipping/class-wc-shipping-free-shipping.php b/includes/shipping/free-shipping/class-wc-shipping-free-shipping.php index 66af25fa380..b44370f1aba 100644 --- a/includes/shipping/free-shipping/class-wc-shipping-free-shipping.php +++ b/includes/shipping/free-shipping/class-wc-shipping-free-shipping.php @@ -16,10 +16,18 @@ if ( ! defined( 'ABSPATH' ) ) { */ class WC_Shipping_Free_Shipping extends WC_Shipping_Method { - /** @var float Min amount to be valid */ + /** + * Min amount to be valid. + * + * @var float + */ public $min_amount; - /** @var string Requires option */ + /** + * Requires option. + * + * @var string + */ public $requires; /** @@ -32,7 +40,7 @@ class WC_Shipping_Free_Shipping extends WC_Shipping_Method { } /** - * init function. + * Initialize free shipping. */ public function init() { @@ -53,7 +61,7 @@ class WC_Shipping_Free_Shipping extends WC_Shipping_Method { } /** - * Initialise Gateway Settings Form Fields. + * Initialize Gateway Settings Form Fields. */ public function init_form_fields() { $this->form_fields = array( @@ -116,7 +124,8 @@ class WC_Shipping_Free_Shipping extends WC_Shipping_Method { } /** - * is_available function. + * Check if free shipping is available. + * * @param array $package * @return bool */ @@ -193,7 +202,8 @@ class WC_Shipping_Free_Shipping extends WC_Shipping_Method { } /** - * calculate_shipping function. + * Calculate free shipping. + * * @return array */ public function calculate_shipping() { diff --git a/includes/shipping/international-delivery/class-wc-shipping-international-delivery.php b/includes/shipping/international-delivery/class-wc-shipping-international-delivery.php index 92c195df745..049cce2be14 100644 --- a/includes/shipping/international-delivery/class-wc-shipping-international-delivery.php +++ b/includes/shipping/international-delivery/class-wc-shipping-international-delivery.php @@ -26,7 +26,7 @@ class WC_Shipping_International_Delivery extends WC_Shipping_Flat_Rate { } /** - * Initialise settings form fields. + * Initialize settings form fields. */ public function init_form_fields() { parent::init_form_fields(); @@ -44,7 +44,7 @@ class WC_Shipping_International_Delivery extends WC_Shipping_Flat_Rate { } /** - * is_available function. + * Check if international delivery is available. * * @param array $package * @return bool diff --git a/includes/shipping/local-delivery/class-wc-shipping-local-delivery.php b/includes/shipping/local-delivery/class-wc-shipping-local-delivery.php index bf03401f232..e279d58d294 100644 --- a/includes/shipping/local-delivery/class-wc-shipping-local-delivery.php +++ b/includes/shipping/local-delivery/class-wc-shipping-local-delivery.php @@ -27,7 +27,7 @@ class WC_Shipping_Local_Delivery extends WC_Shipping_Local_Pickup { } /** - * init function. + * Initialize local delivery. */ public function init() { @@ -48,7 +48,7 @@ class WC_Shipping_Local_Delivery extends WC_Shipping_Local_Pickup { } /** - * calculate_shipping function. + * Calculate local delivery shipping. * * @param array $package (default: array()) */ diff --git a/includes/shipping/local-pickup/class-wc-shipping-local-pickup.php b/includes/shipping/local-pickup/class-wc-shipping-local-pickup.php index 937b3792e1b..7719af34c10 100644 --- a/includes/shipping/local-pickup/class-wc-shipping-local-pickup.php +++ b/includes/shipping/local-pickup/class-wc-shipping-local-pickup.php @@ -27,7 +27,7 @@ class WC_Shipping_Local_Pickup extends WC_Shipping_Method { } /** - * init function. + * Initialize local pickup. */ public function init() { @@ -48,6 +48,7 @@ class WC_Shipping_Local_Pickup extends WC_Shipping_Method { /** * calculate_shipping function. + * Calculate local pickup shipping. */ public function calculate_shipping() { $rate = array( @@ -58,7 +59,7 @@ class WC_Shipping_Local_Pickup extends WC_Shipping_Method { } /** - * init_form_fields function. + * Init form fields. */ public function init_form_fields() { $this->form_fields = array( @@ -188,7 +189,7 @@ class WC_Shipping_Local_Pickup extends WC_Shipping_Method { } /** - * clean function. + * Clean code string. * * @access public * @param mixed $code diff --git a/includes/shortcodes/class-wc-shortcode-my-account.php b/includes/shortcodes/class-wc-shortcode-my-account.php index bc725a25faf..a2a73e5a1d8 100644 --- a/includes/shortcodes/class-wc-shortcode-my-account.php +++ b/includes/shortcodes/class-wc-shortcode-my-account.php @@ -134,11 +134,7 @@ class WC_Shortcode_My_Account { * @param string $load_address */ private static function edit_address( $load_address = 'billing' ) { - - // Current user - global $current_user; - get_currentuserinfo(); - + $current_user = wp_get_current_user(); $load_address = sanitize_key( $load_address ); $address = WC()->countries->get_address_fields( get_user_meta( get_current_user_id(), $load_address . '_country', true ), $load_address . '_' ); diff --git a/includes/walkers/class-product-cat-dropdown-walker.php b/includes/walkers/class-product-cat-dropdown-walker.php index 384f9e4cc4f..c12f40335fa 100644 --- a/includes/walkers/class-product-cat-dropdown-walker.php +++ b/includes/walkers/class-product-cat-dropdown-walker.php @@ -17,10 +17,27 @@ if ( ! class_exists( 'WC_Product_Cat_Dropdown_Walker' ) ) : class WC_Product_Cat_Dropdown_Walker extends Walker { + /** + * What the class handles. + * + * @var string + */ public $tree_type = 'category'; - public $db_fields = array ('parent' => 'parent', 'id' => 'term_id', 'slug' => 'slug' ); /** + * DB fields to use. + * + * @var array + */ + public $db_fields = array( + 'parent' => 'parent', + 'id' => 'term_id', + 'slug' => 'slug' + ); + + /** + * Starts the list before the elements are added. + * * @see Walker::start_el() * @since 2.1.0 * @@ -46,7 +63,7 @@ class WC_Product_Cat_Dropdown_Walker extends Walker { $output .= '>'; - $output .= $pad . __( $cat_name, 'woocommerce' ); + $output .= $pad . _x( $cat_name, 'product category name', 'woocommerce' ); if ( ! empty( $args['show_count'] ) ) $output .= ' (' . $cat->count . ')'; diff --git a/includes/walkers/class-product-cat-list-walker.php b/includes/walkers/class-product-cat-list-walker.php index 78c0aae9e57..4d893289e71 100644 --- a/includes/walkers/class-product-cat-list-walker.php +++ b/includes/walkers/class-product-cat-list-walker.php @@ -17,10 +17,27 @@ if ( ! class_exists( 'WC_Product_Cat_List_Walker' ) ) : class WC_Product_Cat_List_Walker extends Walker { + /** + * What the class handles. + * + * @var string + */ public $tree_type = 'product_cat'; - public $db_fields = array ( 'parent' => 'parent', 'id' => 'term_id', 'slug' => 'slug' ); /** + * DB fields to use. + * + * @var array + */ + public $db_fields = array( + 'parent' => 'parent', + 'id' => 'term_id', + 'slug' => 'slug' + ); + + /** + * Starts the list before the elements are added. + * * @see Walker::start_lvl() * @since 2.1.0 * @@ -37,6 +54,8 @@ class WC_Product_Cat_List_Walker extends Walker { } /** + * Ends the list of after the elements are added. + * * @see Walker::end_lvl() * @since 2.1.0 * @@ -53,6 +72,8 @@ class WC_Product_Cat_List_Walker extends Walker { } /** + * Start the element output. + * * @see Walker::start_el() * @since 2.1.0 * @@ -75,7 +96,7 @@ class WC_Product_Cat_List_Walker extends Walker { $output .= ' current-cat-parent'; } - $output .= '">' . __( $cat->name, 'woocommerce' ) . ''; + $output .= '">' . _x( $cat->name, 'product category name', 'woocommerce' ) . ''; if ( $args['show_count'] ) { $output .= ' (' . $cat->count . ')'; @@ -83,6 +104,8 @@ class WC_Product_Cat_List_Walker extends Walker { } /** + * Ends the element output, if needed. + * * @see Walker::end_el() * @since 2.1.0 * diff --git a/includes/wc-cart-functions.php b/includes/wc-cart-functions.php index 6e2646e637b..8e004eb0145 100644 --- a/includes/wc-cart-functions.php +++ b/includes/wc-cart-functions.php @@ -61,21 +61,29 @@ function wc_load_persistent_cart( $user_login, $user ) { * Add to cart messages. * * @access public - * @param int|array $product_id + * @param int|array $products + * @param bool $show_qty Should qty's be shown? Added in 2.6.0 */ -function wc_add_to_cart_message( $product_id ) { +function wc_add_to_cart_message( $products, $show_qty = false ) { $titles = array(); + $count = 0; - if ( is_array( $product_id ) ) { - foreach ( $product_id as $id ) { - $titles[] = get_the_title( $id ); - } - } else { - $titles[] = get_the_title( $product_id ); + if ( ! is_array( $products ) ) { + $products = array( $products ); + $show_qty = false; + } + + if ( ! $show_qty ) { + $products = array_fill_keys( array_values( $products ), 1 ); + } + + foreach ( $products as $product_id => $qty ) { + $titles[] = ( $qty > 1 ? absint( $qty ) . ' × ' : '' ) . sprintf( _x( '“%s”', 'Item name in quotes', 'woocommerce' ), strip_tags( get_the_title( $product_id ) ) ); + $count += $qty; } $titles = array_filter( $titles ); - $added_text = sprintf( _n( '%s has been added to your cart.', '%s have been added to your cart.', sizeof( $titles ), 'woocommerce' ), wc_format_list_of_items( $titles ) ); + $added_text = sprintf( _n( '%s has been added to your cart.', '%s have been added to your cart.', $count, 'woocommerce' ), wc_format_list_of_items( $titles ) ); // Output success messages if ( 'yes' === get_option( 'woocommerce_cart_redirect_after_add' ) ) { @@ -97,7 +105,7 @@ function wc_format_list_of_items( $items ) { $item_string = ''; foreach ( $items as $key => $item ) { - $item_string .= sprintf( _x( '“%s”', 'Item name in quotes', 'woocommerce' ), $item ); + $item_string .= $item; if ( $key + 2 === sizeof( $items ) ) { $item_string .= ' ' . __( 'and', 'woocommerce' ) . ' '; @@ -258,8 +266,9 @@ function wc_cart_totals_order_total_html() { } if ( ! empty( $tax_string_array ) ) { - $estimated_text = WC()->customer->is_customer_outside_base() && ! WC()->customer->has_calculated_shipping() - ? sprintf( ' ' . __( 'estimated for %s', 'woocommerce' ), WC()->countries->estimated_for_prefix() . __( WC()->countries->countries[ WC()->countries->get_base_country() ], 'woocommerce' ) ) + $taxable_address = WC()->customer->get_taxable_address(); + $estimated_text = WC()->customer->is_customer_outside_base() && ! WC()->customer->has_calculated_shipping() + ? sprintf( ' ' . __( 'estimated for %s', 'woocommerce' ), WC()->countries->estimated_for_prefix( $taxable_address[0] ) . WC()->countries->countries[ $taxable_address[0] ] ) : ''; $value .= '' . sprintf( __( '(includes %s%s)', 'woocommerce' ), implode( ', ', $tax_string_array ), $estimated_text ) . ''; } @@ -320,33 +329,3 @@ function wc_cart_round_discount( $value, $precision ) { return round( $value, $precision ); } } - -/** - * Gets the url to the cart page. - * - * @since 2.5.0 - * - * @return string Url to cart page - */ -function wc_get_cart_url() { - return apply_filters( 'woocommerce_get_cart_url', wc_get_page_permalink( 'cart' ) ); -} - -/** - * Gets the url to the checkout page. - * - * @since 2.5.0 - * - * @return string Url to checkout page - */ -function wc_get_checkout_url() { - $checkout_url = wc_get_page_permalink( 'checkout' ); - if ( $checkout_url ) { - // Force SSL if needed - if ( is_ssl() || 'yes' === get_option( 'woocommerce_force_ssl_checkout' ) ) { - $checkout_url = str_replace( 'http:', 'https:', $checkout_url ); - } - } - - return apply_filters( 'woocommerce_get_checkout_url', $checkout_url ); -} diff --git a/includes/wc-conditional-functions.php b/includes/wc-conditional-functions.php index ed62a6ca496..37cb8921c25 100644 --- a/includes/wc-conditional-functions.php +++ b/includes/wc-conditional-functions.php @@ -170,6 +170,22 @@ if ( ! function_exists( 'is_view_order_page' ) ) { } } +if ( ! function_exists( 'is_edit_account_page' ) ) { + + /** + * Check for edit account page. + * Returns true when viewing the edit account page. + * + * @since 2.5.1 + * @return bool + */ + function is_edit_account_page() { + global $wp; + + return ( is_page( wc_get_page_id( 'myaccount' ) ) && isset( $wp->query_vars['edit-account'] ) ); + } +} + if ( ! function_exists( 'is_order_received_page' ) ) { /** @@ -357,13 +373,22 @@ function wc_is_valid_url( $url ) { return true; } +/** + * Check if the home URL is https. If it is, we don't need to do things such as 'force ssl'. + * + * @since 2.4.13 + * @return bool + */ +function wc_site_is_https() { + return strstr( get_option( 'home' ), 'https:' ); +} + /** * Check if the checkout is configured for https. Look at options, WP HTTPS plugin, or the permalink itself. * * @since 2.5.0 - * * @return bool */ function wc_checkout_is_https() { - return 'yes' === get_option( 'woocommerce_force_ssl_checkout' ) || class_exists( 'WordPressHTTPS' ) || strstr( wc_get_page_permalink( 'checkout' ), 'https:' ); + return wc_site_is_https() || 'yes' === get_option( 'woocommerce_force_ssl_checkout' ) || class_exists( 'WordPressHTTPS' ) || strstr( wc_get_page_permalink( 'checkout' ), 'https:' ); } diff --git a/includes/wc-core-functions.php b/includes/wc-core-functions.php index 598f1bbf53e..ef769007a52 100644 --- a/includes/wc-core-functions.php +++ b/includes/wc-core-functions.php @@ -51,6 +51,8 @@ add_filter( 'woocommerce_short_description', 'do_shortcode', 11 ); // AFTER wpau * * Returns a new order object on success which can then be used to add additional data. * + * @param array $args + * * @return WC_Order on success, WP_Error on failure. */ function wc_create_order( $args = array() ) { @@ -295,8 +297,8 @@ function get_woocommerce_currencies() { 'ISK' => __( 'Icelandic krona', 'woocommerce' ), 'JPY' => __( 'Japanese Yen', 'woocommerce' ), 'KES' => __( 'Kenyan shilling', 'woocommerce' ), - 'LAK' => __( 'Lao Kip', 'woocommerce' ), 'KRW' => __( 'South Korean Won', 'woocommerce' ), + 'LAK' => __( 'Lao Kip', 'woocommerce' ), 'MXN' => __( 'Mexican Peso', 'woocommerce' ), 'MYR' => __( 'Malaysian Ringgits', 'woocommerce' ), 'NGN' => __( 'Nigerian Naira', 'woocommerce' ), @@ -309,6 +311,7 @@ function get_woocommerce_currencies() { 'PYG' => __( 'Paraguayan Guaraní', 'woocommerce' ), 'RON' => __( 'Romanian Leu', 'woocommerce' ), 'RUB' => __( 'Russian Ruble', 'woocommerce' ), + 'SAR' => __( 'Saudi Riyal', 'woocommerce' ), 'SEK' => __( 'Swedish Krona', 'woocommerce' ), 'SGD' => __( 'Singapore Dollar', 'woocommerce' ), 'THB' => __( 'Thai Baht', 'woocommerce' ), @@ -361,8 +364,8 @@ function get_woocommerce_currency_symbol( $currency = '' ) { 'ISK' => 'Kr.', 'JPY' => '¥', 'KES' => 'KSh', - 'LAK' => '₭', 'KRW' => '₩', + 'LAK' => '₭', 'MXN' => '$', 'MYR' => 'RM', 'NGN' => '₦', @@ -376,6 +379,7 @@ function get_woocommerce_currency_symbol( $currency = '' ) { 'RMB' => '¥', 'RON' => 'lei', 'RUB' => 'руб.', + 'SAR' => 'ر.س', 'SEK' => 'kr', 'SGD' => '$', 'THB' => '฿', @@ -695,12 +699,13 @@ function wc_get_base_location() { } /** - * Get the customer's default location. . + * Get the customer's default location. * * Filtered, and set to base location or left blank. If cache-busting, * this should only be used when 'location' is set in the querystring. * * @todo should the woocommerce_default_country option be renamed to contain 'base'? + * @todo deprecate woocommerce_customer_default_location and support an array filter only to cover all cases. * @since 2.3.0 * @return array */ @@ -723,7 +728,7 @@ function wc_get_customer_default_location() { break; } - return $location; + return apply_filters( 'woocommerce_customer_default_location_array', $location ); } // This function can be removed when WP 3.9.2 or greater is required. @@ -855,16 +860,10 @@ function wc_array_cartesian( $input ) { function wc_transaction_query( $type = 'start' ) { global $wpdb; - if ( ! defined( 'WC_USE_TRANSACTIONS' ) ) { - // Try to set isolation level to support dirty reads - if this is unsupported, do not use transactions - $wpdb->hide_errors(); - $result = $wpdb->query( 'SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;' ); + $wpdb->hide_errors(); - if ( false === $result ) { - define( 'WC_USE_TRANSACTIONS', false ); - } else { - define( 'WC_USE_TRANSACTIONS', true ); - } + if ( ! defined( 'WC_USE_TRANSACTIONS' ) ) { + define( 'WC_USE_TRANSACTIONS', true ); } if ( WC_USE_TRANSACTIONS ) { @@ -881,3 +880,33 @@ function wc_transaction_query( $type = 'start' ) { } } } + +/** + * Gets the url to the cart page. + * + * @since 2.5.0 + * + * @return string Url to cart page + */ +function wc_get_cart_url() { + return apply_filters( 'woocommerce_get_cart_url', wc_get_page_permalink( 'cart' ) ); +} + +/** + * Gets the url to the checkout page. + * + * @since 2.5.0 + * + * @return string Url to checkout page + */ +function wc_get_checkout_url() { + $checkout_url = wc_get_page_permalink( 'checkout' ); + if ( $checkout_url ) { + // Force SSL if needed + if ( is_ssl() || 'yes' === get_option( 'woocommerce_force_ssl_checkout' ) ) { + $checkout_url = str_replace( 'http:', 'https:', $checkout_url ); + } + } + + return apply_filters( 'woocommerce_get_checkout_url', $checkout_url ); +} diff --git a/includes/wc-coupon-functions.php b/includes/wc-coupon-functions.php index 3a7bf840857..ffa45450e54 100644 --- a/includes/wc-coupon-functions.php +++ b/includes/wc-coupon-functions.php @@ -43,7 +43,7 @@ function wc_get_coupon_type( $type = '' ) { * Coupon types that apply to individual products. Controls which validation rules will apply. * * @since 2.5.0 - * @return bool + * @return array */ function wc_get_product_coupon_types() { return (array) apply_filters( 'woocommerce_product_coupon_types', array( 'fixed_product', 'percent_product' ) ); @@ -53,7 +53,7 @@ function wc_get_product_coupon_types() { * Coupon types that apply to the cart as a whole. Controls which validation rules will apply. * * @since 2.5.0 - * @return bool + * @return array */ function wc_get_cart_coupon_types() { return (array) apply_filters( 'woocommerce_cart_coupon_types', array( 'fixed_cart', 'percent' ) ); @@ -65,7 +65,7 @@ function wc_get_cart_coupon_types() { * * @since 2.5.0 * - * @return bool + * @return array */ function wc_coupons_enabled() { return apply_filters( 'woocommerce_coupons_enabled', 'yes' === get_option( 'woocommerce_enable_coupons' ) ); diff --git a/includes/wc-formatting-functions.php b/includes/wc-formatting-functions.php index 43bebc601bc..d9e469de9e8 100644 --- a/includes/wc-formatting-functions.php +++ b/includes/wc-formatting-functions.php @@ -42,96 +42,106 @@ function wc_get_filename_from_url( $file_url ) { /** * Normalise dimensions, unify to cm then convert to wanted unit value. * - * Usage: wc_get_dimension(55, 'in'); + * Usage: + * wc_get_dimension(55, 'in'); + * wc_get_dimension(55, 'in', 'm'); * - * @param mixed $dim - * @param mixed $to_unit 'in', 'm', 'cm', 'm' + * @param int|float $dimension + * @param string $to_unit 'in', 'm', 'cm', 'm' + * @param string $from_unit (optional) 'in', 'm', 'cm', 'm' * @return float */ -function wc_get_dimension( $dim, $to_unit ) { +function wc_get_dimension( $dimension, $to_unit, $from_unit = '' ) { + $to_unit = strtolower( $to_unit ); - $from_unit = strtolower( get_option( 'woocommerce_dimension_unit' ) ); - $to_unit = strtolower( $to_unit ); + if ( empty( $from_unit ) ) { + $from_unit = strtolower( get_option( 'woocommerce_dimension_unit' ) ); + } - // Unify all units to cm first + // Unify all units to cm first. if ( $from_unit !== $to_unit ) { - switch ( $from_unit ) { - case 'in': - $dim *= 2.54; - break; - case 'm': - $dim *= 100; - break; - case 'mm': - $dim *= 0.1; - break; - case 'yd': - $dim *= 91.44; - break; + case 'in' : + $dimension *= 2.54; + break; + case 'm' : + $dimension *= 100; + break; + case 'mm' : + $dimension *= 0.1; + break; + case 'yd' : + $dimension *= 91.44; + break; } - // Output desired unit + // Output desired unit. switch ( $to_unit ) { - case 'in': - $dim *= 0.3937; - break; - case 'm': - $dim *= 0.01; - break; - case 'mm': - $dim *= 10; - break; - case 'yd': - $dim *= 0.010936133; - break; + case 'in' : + $dimension *= 0.3937; + break; + case 'm' : + $dimension *= 0.01; + break; + case 'mm' : + $dimension *= 10; + break; + case 'yd' : + $dimension *= 0.010936133; + break; } } - return ( $dim < 0 ) ? 0 : $dim; + + return ( $dimension < 0 ) ? 0 : $dimension; } /** * Normalise weights, unify to kg then convert to wanted unit value. * - * Usage: wc_get_weight(55, 'kg'); + * Usage: + * wc_get_weight(55, 'kg'); + * wc_get_weight(55, 'kg', 'lbs'); * - * @param mixed $weight - * @param mixed $to_unit 'g', 'kg', 'lbs' + * @param int|float $weight + * @param string $to_unit 'g', 'kg', 'lbs', 'oz' + * @param string $from_unit (optional) 'g', 'kg', 'lbs', 'oz' * @return float */ -function wc_get_weight( $weight, $to_unit ) { +function wc_get_weight( $weight, $to_unit, $from_unit = '' ) { + $to_unit = strtolower( $to_unit ); - $from_unit = strtolower( get_option('woocommerce_weight_unit') ); - $to_unit = strtolower( $to_unit ); + if ( empty( $from_unit ) ) { + $from_unit = strtolower( get_option( 'woocommerce_weight_unit' ) ); + } - //Unify all units to kg first + // Unify all units to kg first. if ( $from_unit !== $to_unit ) { - switch ( $from_unit ) { - case 'g': + case 'g' : $weight *= 0.001; - break; - case 'lbs': + break; + case 'lbs' : $weight *= 0.453592; - break; - case 'oz': + break; + case 'oz' : $weight *= 0.0283495; - break; + break; } - // Output desired unit + // Output desired unit. switch ( $to_unit ) { - case 'g': + case 'g' : $weight *= 1000; - break; - case 'lbs': + break; + case 'lbs' : $weight *= 2.20462; - break; - case 'oz': + break; + case 'oz' : $weight *= 35.274; - break; + break; } } + return ( $weight < 0 ) ? 0 : $weight; } @@ -179,7 +189,7 @@ function wc_format_refund_total( $amount ) { * * @param float|string $number Expects either a float or a string with a decimal separator only (no thousands) * @param mixed $dp number of decimal points to use, blank to use woocommerce_price_num_decimals, or false to avoid all rounding. - * @param boolean $trim_zeros from end of string + * @param bool $trim_zeros from end of string * @return string */ function wc_format_decimal( $number, $dp = false, $trim_zeros = false ) { diff --git a/includes/wc-page-functions.php b/includes/wc-page-functions.php index f7584641c21..12ec88f1c74 100644 --- a/includes/wc-page-functions.php +++ b/includes/wc-page-functions.php @@ -78,6 +78,10 @@ function wc_get_page_permalink( $page ) { * * Gets the URL for an endpoint, which varies depending on permalink settings. * + * @param string $endpoint + * @param string $value + * @param string $permalink + * * @return string */ function wc_get_endpoint_url( $endpoint, $value = '', $permalink = '' ) { diff --git a/includes/wc-product-functions.php b/includes/wc-product-functions.php index 51958723585..6fab3ababad 100644 --- a/includes/wc-product-functions.php +++ b/includes/wc-product-functions.php @@ -441,7 +441,7 @@ function wc_scheduled_sales() { add_action( 'woocommerce_scheduled_sales', 'wc_scheduled_sales' ); /** - * wc_get_attachment_image_attributes function. + * Get attachment image attributes. * * @access public * @param array $attr @@ -458,7 +458,7 @@ add_filter( 'wp_get_attachment_image_attributes', 'wc_get_attachment_image_attri /** - * wc_prepare_attachment_for_js function. + * Prepare attachment for JavaScript. * * @access public * @param array $response diff --git a/includes/wc-template-functions.php b/includes/wc-template-functions.php index c83fbd3c823..5ab94a9c1a2 100644 --- a/includes/wc-template-functions.php +++ b/includes/wc-template-functions.php @@ -448,7 +448,7 @@ if ( ! function_exists( 'woocommerce_page_title' ) ) { /** * woocommerce_page_title function. * - * @param boolean $echo + * @param bool $echo * @return string */ function woocommerce_page_title( $echo = true ) { @@ -524,7 +524,7 @@ if ( ! function_exists( 'woocommerce_template_loop_product_title' ) ) { echo '

    ' . get_the_title() . '

    '; } } -if ( ! function_exists( 'woocommerce_template_loop_subcategory_title' ) ) { +if ( ! function_exists( 'woocommerce_template_loop_category_title' ) ) { /** * Show the subcategory title in the product loop. @@ -1145,6 +1145,9 @@ if ( ! function_exists( 'woocommerce_comments' ) ) { * Output the Review comments template. * * @subpackage Product + * @param WP_Comment $comment + * @param array $args + * @param int $depth */ function woocommerce_comments( $comment, $args, $depth ) { $GLOBALS['comment'] = $comment; @@ -1256,9 +1259,9 @@ if ( ! function_exists( 'woocommerce_cross_sell_display' ) ) { /** * Output the cart cross-sells. * - * @param integer $posts_per_page - * @param integer $columns - * @param string $orderby + * @param int $posts_per_page (default: 2) + * @param int $columns (default: 2) + * @param string $orderby (default: 'rand') */ function woocommerce_cross_sell_display( $posts_per_page = 2, $columns = 2, $orderby = 'rand' ) { wc_get_template( 'cart/cross-sells.php', array( @@ -1290,6 +1293,7 @@ if ( ! function_exists( 'woocommerce_mini_cart' ) ) { /** * Output the Mini-cart - used by cart widget. * + * @param array $args */ function woocommerce_mini_cart( $args = array() ) { @@ -1311,6 +1315,7 @@ if ( ! function_exists( 'woocommerce_login_form' ) ) { * Output the WooCommerce Login Form. * * @subpackage Forms + * @param array $args */ function woocommerce_login_form( $args = array() ) { @@ -1342,6 +1347,8 @@ if ( ! function_exists( 'woocommerce_breadcrumb' ) ) { /** * Output the WooCommerce Breadcrumb. + * + * @param array $args */ function woocommerce_breadcrumb( $args = array() ) { $args = wp_parse_args( $args, apply_filters( 'woocommerce_breadcrumb_defaults', array( @@ -1687,6 +1694,7 @@ if ( ! function_exists( 'woocommerce_form_field' ) ) { 'placeholder' => '', 'maxlength' => false, 'required' => false, + 'autocomplete' => false, 'id' => $key, 'class' => array(), 'label_class' => array(), @@ -1710,6 +1718,8 @@ if ( ! function_exists( 'woocommerce_form_field' ) ) { $args['maxlength'] = ( $args['maxlength'] ) ? 'maxlength="' . absint( $args['maxlength'] ) . '"' : ''; + $args['autocomplete'] = ( $args['autocomplete'] ) ? 'autocomplete="' . esc_attr( $args['autocomplete'] ) . '"' : ''; + if ( is_string( $args['label_class'] ) ) { $args['label_class'] = array( $args['label_class'] ); } @@ -1750,11 +1760,11 @@ if ( ! function_exists( 'woocommerce_form_field' ) ) { } else { - $field = '' . ''; foreach ( $countries as $ckey => $cvalue ) { - $field .= ''; + $field .= ''; } $field .= ''; @@ -1779,7 +1789,7 @@ if ( ! function_exists( 'woocommerce_form_field' ) ) { } elseif ( is_array( $states ) ) { - $field .= ' '; foreach ( $states as $ckey => $cvalue ) { @@ -1790,14 +1800,14 @@ if ( ! function_exists( 'woocommerce_form_field' ) ) { } else { - $field .= ''; + $field .= ''; } break; case 'textarea' : - $field .= ''; + $field .= ''; break; case 'checkbox' : @@ -1813,7 +1823,7 @@ if ( ! function_exists( 'woocommerce_form_field' ) ) { case 'tel' : case 'number' : - $field .= ''; + $field .= ''; break; case 'select' : @@ -1832,7 +1842,7 @@ if ( ! function_exists( 'woocommerce_form_field' ) ) { $options .= ''; } - $field .= ' ' . $options . ' '; } @@ -2014,7 +2024,7 @@ if ( ! function_exists( 'wc_dropdown_variation_attribute_options' ) ) { $html .= ''; - echo apply_filters( 'woocommerce_dropdown_variation_attribute_options_html', $html ); + echo apply_filters( 'woocommerce_dropdown_variation_attribute_options_html', $html, $args ); } } diff --git a/includes/wc-term-functions.php b/includes/wc-term-functions.php index d36ff54b6a0..285c874c7cd 100644 --- a/includes/wc-term-functions.php +++ b/includes/wc-term-functions.php @@ -457,10 +457,10 @@ add_filter( 'terms_clauses', 'wc_terms_clauses', 10, 3 ); /** * Function for recounting product terms, ignoring hidden products. * - * @param array $terms - * @param string $taxonomy - * @param boolean $callback - * @param boolean $terms_are_term_taxonomy_ids + * @param array $terms + * @param string $taxonomy + * @param bool $callback + * @param bool $terms_are_term_taxonomy_ids */ function _wc_term_recount( $terms, $taxonomy, $callback = true, $terms_are_term_taxonomy_ids = true ) { global $wpdb; diff --git a/includes/wc-user-functions.php b/includes/wc-user-functions.php index 448b24aebb3..676d75d9154 100644 --- a/includes/wc-user-functions.php +++ b/includes/wc-user-functions.php @@ -542,7 +542,7 @@ function wc_get_customer_order_count( $user_id ) { function wc_reset_order_customer_id_on_deleted_user( $user_id ) { global $wpdb; - $wpdb->update( $wpdb->postmeta, array( '_customer_user' => 0 ), array( '_customer_user' => $user_id ) ); + $wpdb->update( $wpdb->postmeta, array( 'meta_value' => 0 ), array( 'meta_key' => '_customer_user', 'meta_value' => $user_id ) ); } add_action( 'deleted_user', 'wc_reset_order_customer_id_on_deleted_user' ); diff --git a/includes/widgets/class-wc-widget-cart.php b/includes/widgets/class-wc-widget-cart.php index 517648a637a..fdc559132b0 100644 --- a/includes/widgets/class-wc-widget-cart.php +++ b/includes/widgets/class-wc-widget-cart.php @@ -42,7 +42,7 @@ class WC_Widget_Cart extends WC_Widget { } /** - * widget function. + * Output widget. * * @see WP_Widget * diff --git a/includes/widgets/class-wc-widget-layered-nav-filters.php b/includes/widgets/class-wc-widget-layered-nav-filters.php index 8e23bd571a2..416ea1879a0 100644 --- a/includes/widgets/class-wc-widget-layered-nav-filters.php +++ b/includes/widgets/class-wc-widget-layered-nav-filters.php @@ -35,7 +35,7 @@ class WC_Widget_Layered_Nav_Filters extends WC_Widget { } /** - * widget function. + * Output widget. * * @see WP_Widget * diff --git a/includes/widgets/class-wc-widget-layered-nav.php b/includes/widgets/class-wc-widget-layered-nav.php index 26abf96bad3..767b4692462 100644 --- a/includes/widgets/class-wc-widget-layered-nav.php +++ b/includes/widgets/class-wc-widget-layered-nav.php @@ -28,7 +28,7 @@ class WC_Widget_Layered_Nav extends WC_Widget { } /** - * update function. + * Updates a particular instance of a widget. * * @see WP_Widget->update * @@ -44,7 +44,7 @@ class WC_Widget_Layered_Nav extends WC_Widget { } /** - * form function. + * Outputs the settings update form. * * @see WP_Widget->form * @@ -105,7 +105,7 @@ class WC_Widget_Layered_Nav extends WC_Widget { } /** - * widget function. + * Output widget. * * @see WP_Widget * @@ -380,7 +380,7 @@ class WC_Widget_Layered_Nav extends WC_Widget { } // End display type conditional $this->widget_end( $args ); - + if ( ! $found ) { ob_end_clean(); } else { diff --git a/includes/widgets/class-wc-widget-price-filter.php b/includes/widgets/class-wc-widget-price-filter.php index d04364c61a2..480e072cd95 100644 --- a/includes/widgets/class-wc-widget-price-filter.php +++ b/includes/widgets/class-wc-widget-price-filter.php @@ -37,7 +37,7 @@ class WC_Widget_Price_Filter extends WC_Widget { } /** - * widget function. + * Output widget. * * @see WP_Widget * diff --git a/includes/widgets/class-wc-widget-product-categories.php b/includes/widgets/class-wc-widget-product-categories.php index dd3259bde5a..3f354432443 100644 --- a/includes/widgets/class-wc-widget-product-categories.php +++ b/includes/widgets/class-wc-widget-product-categories.php @@ -83,7 +83,7 @@ class WC_Widget_Product_Categories extends WC_Widget { } /** - * widget function. + * Output widget. * * @see WP_Widget * diff --git a/includes/widgets/class-wc-widget-product-search.php b/includes/widgets/class-wc-widget-product-search.php index bde7ca2b7f5..d8dac1dc614 100644 --- a/includes/widgets/class-wc-widget-product-search.php +++ b/includes/widgets/class-wc-widget-product-search.php @@ -35,7 +35,7 @@ class WC_Widget_Product_Search extends WC_Widget { } /** - * widget function. + * Output widget. * * @see WP_Widget * diff --git a/includes/widgets/class-wc-widget-product-tag-cloud.php b/includes/widgets/class-wc-widget-product-tag-cloud.php index 9401ed63e44..55676a98b2c 100644 --- a/includes/widgets/class-wc-widget-product-tag-cloud.php +++ b/includes/widgets/class-wc-widget-product-tag-cloud.php @@ -35,7 +35,7 @@ class WC_Widget_Product_Tag_Cloud extends WC_Widget { } /** - * widget function. + * Output widget. * * @see WP_Widget * diff --git a/includes/widgets/class-wc-widget-products.php b/includes/widgets/class-wc-widget-products.php index 4340e168b90..4b50d50433c 100644 --- a/includes/widgets/class-wc-widget-products.php +++ b/includes/widgets/class-wc-widget-products.php @@ -154,7 +154,7 @@ class WC_Widget_Products extends WC_Widget { } /** - * widget function. + * Output widget. * * @see WP_Widget * diff --git a/includes/widgets/class-wc-widget-recent-reviews.php b/includes/widgets/class-wc-widget-recent-reviews.php index 3c2d388e46f..b13cd90325a 100644 --- a/includes/widgets/class-wc-widget-recent-reviews.php +++ b/includes/widgets/class-wc-widget-recent-reviews.php @@ -43,7 +43,7 @@ class WC_Widget_Recent_Reviews extends WC_Widget { } /** - * widget function. + * Output widget. * * @see WP_Widget * diff --git a/includes/widgets/class-wc-widget-recently-viewed.php b/includes/widgets/class-wc-widget-recently-viewed.php index 1edd266f52f..08ad4a0da59 100644 --- a/includes/widgets/class-wc-widget-recently-viewed.php +++ b/includes/widgets/class-wc-widget-recently-viewed.php @@ -43,7 +43,7 @@ class WC_Widget_Recently_Viewed extends WC_Widget { } /** - * widget function. + * Output widget. * * @see WP_Widget * diff --git a/includes/widgets/class-wc-widget-top-rated-products.php b/includes/widgets/class-wc-widget-top-rated-products.php index b69d6bd39f8..c86b079e1ff 100644 --- a/includes/widgets/class-wc-widget-top-rated-products.php +++ b/includes/widgets/class-wc-widget-top-rated-products.php @@ -45,7 +45,7 @@ class WC_Widget_Top_Rated_Products extends WC_Widget { } /** - * widget function. + * Output widget. * * @see WP_Widget * diff --git a/readme.txt b/readme.txt index 23b3f6f1528..a23604058dc 100644 --- a/readme.txt +++ b/readme.txt @@ -1,9 +1,9 @@ -=== WooCommerce - excelling eCommerce === +=== WooCommerce === Contributors: automattic, mikejolley, jameskoster, claudiosanches, royho, woothemes -Tags: ecommerce, e-commerce, commerce, woothemes, wordpress ecommerce, affiliate, store, sales, sell, shop, shopping, cart, checkout, configurable, variable, widgets, reports, download, downloadable, digital, inventory, stock, reports, shipping, tax +Tags: ecommerce, e-commerce, store, sales, sell, shop, cart, checkout, downloadable, downloads, paypal, storefront Requires at least: 4.1 Tested up to: 4.4 -Stable tag: 2.4.12 +Stable tag: 2.5.0 License: GPLv3 License URI: http://www.gnu.org/licenses/gpl-3.0.html @@ -55,22 +55,22 @@ We also support WooCommerce and all its extensions with comprehensive, easily-ac WordPress.org is home to some amazing extensions for WooCommerce, including: -[Google Analytics](https://wordpress.org/plugins/woocommerce-google-analytics-integration/) -[Delivery Notes](https://wordpress.org/plugins/woocommerce-delivery-notes/) -[PDF Invoices and Packing Slips](https://wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/) -[Affiliates Integration Light](https://wordpress.org/plugins/affiliates-woocommerce-light/) -[New Product Badges](https://wordpress.org/plugins/woocommerce-new-product-badge/) +- [Google Analytics](https://wordpress.org/plugins/woocommerce-google-analytics-integration/) +- [Delivery Notes](https://wordpress.org/plugins/woocommerce-delivery-notes/) +- [PDF Invoices and Packing Slips](https://wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/) +- [Affiliates Integration Light](https://wordpress.org/plugins/affiliates-woocommerce-light/) +- [New Product Badges](https://wordpress.org/plugins/woocommerce-new-product-badge/) Keen to see them all? Search WordPress.org for ‘WooCommerce’ to dive in. If you’re looking for something endorsed and maintained by the developers who built WooCommerce, there are a plethora of premium eCommerce extensions, the most popular of which include: -[WooCommerce Subscriptions](http://www.woothemes.com/products/woocommerce-subscriptions/) -[WooCommerce Memberships](http://www.woothemes.com/products/woocommerce-memberships/) -[WooCommerce Bookings](http://www.woothemes.com/products/woocommerce-bookings/) -[Dynamic Pricing](http://www.woothemes.com/products/dynamic-pricing/) -[Table Rate Shipping](http://www.woothemes.com/products/table-rate-shipping/) -[Product CSV Import Suite](http://www.woothemes.com/products/product-csv-import-suite/) +- [WooCommerce Subscriptions](http://www.woothemes.com/products/woocommerce-subscriptions/) +- [WooCommerce Memberships](http://www.woothemes.com/products/woocommerce-memberships/) +- [WooCommerce Bookings](http://www.woothemes.com/products/woocommerce-bookings/) +- [Dynamic Pricing](http://www.woothemes.com/products/dynamic-pricing/) +- [Table Rate Shipping](http://www.woothemes.com/products/table-rate-shipping/) +- [Product CSV Import Suite](http://www.woothemes.com/products/product-csv-import-suite/) And there’s plenty more where they came from. Visit our [extensions page](http://www.woothemes.com/product-category/woocommerce-extensions/) to find out everything you’re capable of and all that's possible with premium WooCommerce extensions. @@ -158,62 +158,11 @@ Yes you can! Join in on our [GitHub repository](http://github.com/woothemes/wooc == Changelog == -= 2.5.0 - TBD = -* Feature - New default session handler. Uses custom table to store data rather than the options table for performance and scalability reasons. https://woocommerce.wordpress.com/2015/10/07/new-session-handler-in-2-5/ -* Feature - New tax settings UI - faster, enhanced with ajax, searchable. -* Feature - WP CLI Support. https://woocommerce.wordpress.com/2015/10/01/sneak-peek-wp-cli-support-in-woocommerce/ -* Feature - Added terms and conditions checkbox to pay page. -* Feature - Password strength indicators. -* Feature - Added 'pay' link to order screen. -* Feature - Added admin order/payment failed notification. -* Fix - Check for existence of global attribute when you get_attributes() for a product. -* Fix - Show order by template on product search. -* Fix - Search variation skus in backend search. -* Tweak - For coupons with category restrictions, respect the category hierarchy. -* Tweak - Added wc_array_cartesian function to generate variations in a logical order. -* Tweak - Revised email settings screens to show emails in a table and avoid a long sub-nav. -* Tweak - Default customer role capabilities. -* Tweak - Expire mini-cart cache after 24 hours. -* Tweak - Improved refund error messages in PayPal standard. -* Tweak - Removed language pack downloader in favour of translate.wordpress.org. -* Tweak - Added onboarding wizard button to the contextual help so it can be accessed again. -* Tweak - When a WordPress user is deleted, turn any orders they have into Guest orders. -* Tweak - When calculating order taxes, respect tax settings and default to base country. -* Tweak - Fade in variation images to avoid flicker during load. -* Tweak - Display 2 averages on report (net and gross). -* Tweak - Improve product search and use WPDB instead of several get_posts queries for performance. -* Tweak - Use SKU for stock order notes. -* Tweak - Added order notes for manual email sends. -* Tweak - Sanitize shipping method labels/titles. -* Tweak - Only display the coupon form on the checkout if a coupon hasn't been applied. -* Tweak - Added billing address column to order screen (off for new users). -* Tweak - Created function to disable author archives for customers. -* Tweak - When updating cart hash, refresh all open tabs. -* Tweak - Use new "question" mark icon font for help tips. -* Tweak - Improved review verification status retrieval. -* Tweak - Improve appearance when only 1 gateway is active. -* Tweak - Aligned terms box left and added required asterisk. -* Tweak - Removed dropdown display mode for cart shipping methods - radios are more flexible. -* Dev - API - Added /products/shipping_classes endpoint. -* Dev - API - Added support to POST, PUT, and DELETE categories and tags. -* Dev - API - Added support to filter products by tag, category, shipping class, and attribute. -* Dev - API - Added tax and tax_class endpoints. -* Dev - Template - New star ratings. The old one was 5 separate buttons. This new one consolidates the 5 options into one element making it leaner visually and more intuitive. Works in IE9+ with a graceful degradation for IE8. -* Dev - Template - Added `data-title` attribute to cart table. -* Dev - Template - Product archive anchors are now hooked into templates rather than hard coded. -* Dev - Template - Added template files for the customer details list in emails. emails/email-customer-details.php -* Dev - Template - Revised single variation cart template. Template files now exist for variations, and the cart button will display (disabled) when no selections are made. -* Dev - Template - Made "my orders" columns fully customizable with filters. -* Dev - Template - Unified email template order details tables to use a single template. -* Dev - Allow wc_clean to support arrays. -* Dev - Added a manual update trigger for checkout. -* Dev - Added woocommerce_is_price_filter_active filter to Query class. -* Dev - Replaced some cart methods with dedicated functions. e.g. wc_ship_to_billing_address_only(). -* Localisation - Add Kenyan currency and symbol. += 2.6.0 - TBD = [See changelog for all versions](https://raw.githubusercontent.com/woothemes/woocommerce/master/CHANGELOG.txt). == Upgrade Notice == -= 2.4.0 = -2.4.0 is a major update so it is important that you make backups, and ensure themes and extensions are 2.4 compatible. Developers should catch up with [the development blog](https://woocommerce.wordpress.com/) to see what has been happening in core. += 2.5.0 = +2.5.0 is a major update so it is important that you make backups, and ensure themes and extensions are 2.5 compatible. Developers should catch up with [the development blog](https://woocommerce.wordpress.com/) to see what has been happening in core. diff --git a/templates/cart/cart-totals.php b/templates/cart/cart-totals.php index 51bc22c8530..99c8d93375f 100644 --- a/templates/cart/cart-totals.php +++ b/templates/cart/cart-totals.php @@ -65,9 +65,10 @@ if ( ! defined( 'ABSPATH' ) ) { cart->tax_display_cart ) : - $estimated_text = 1||WC()->customer->is_customer_outside_base() && ! WC()->customer->has_calculated_shipping() - ? sprintf( ' (' . __( 'estimated for %s', 'woocommerce' ) . ')', WC()->countries->estimated_for_prefix() . __( WC()->countries->countries[ WC()->countries->get_base_country() ], 'woocommerce' ) ) - : ''; + $taxable_address = WC()->customer->get_taxable_address(); + $estimated_text = WC()->customer->is_customer_outside_base() && ! WC()->customer->has_calculated_shipping() + ? sprintf( ' (' . __( 'estimated for %s', 'woocommerce' ) . ')', WC()->countries->estimated_for_prefix( $taxable_address[0] ) . WC()->countries->countries[ $taxable_address[0] ] ) + : ''; if ( 'itemized' === get_option( 'woocommerce_tax_total_display' ) ) : ?> cart->get_tax_totals() as $code => $tax ) : ?> diff --git a/templates/cart/cart.php b/templates/cart/cart.php index 2d335e76242..2c49b22c358 100644 --- a/templates/cart/cart.php +++ b/templates/cart/cart.php @@ -79,7 +79,7 @@ do_action( 'woocommerce_before_cart' ); ?> if ( ! $_product->is_visible() ) { echo apply_filters( 'woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key ) . ' '; } else { - echo apply_filters( 'woocommerce_cart_item_name', sprintf( '%s ', esc_url( $_product->get_permalink( $cart_item ) ), $_product->get_title() ), $cart_item, $cart_item_key ); + echo apply_filters( 'woocommerce_cart_item_name', sprintf( '%s', esc_url( $_product->get_permalink( $cart_item ) ), $_product->get_title() ), $cart_item, $cart_item_key ); } // Meta data diff --git a/templates/emails/email-order-details.php b/templates/emails/email-order-details.php index d8067130c72..a24e667af2d 100644 --- a/templates/emails/email-order-details.php +++ b/templates/emails/email-order-details.php @@ -37,10 +37,11 @@ do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plai email_order_items_table( array( - 'show_sku' => false, - 'show_image' => false, - '$image_size' => array( 32, 32 ), - 'plain_text' => $plain_text + 'show_sku' => $sent_to_admin, + 'show_image' => false, + 'image_size' => array( 32, 32 ), + 'plain_text' => $plain_text, + 'sent_to_admin' => $sent_to_admin ) ); ?> diff --git a/templates/emails/plain/email-order-details.php b/templates/emails/plain/email-order-details.php index 6577872542a..fe8c824955d 100644 --- a/templates/emails/plain/email-order-details.php +++ b/templates/emails/plain/email-order-details.php @@ -24,9 +24,9 @@ do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plai echo strtoupper( sprintf( __( 'Order number: %s', 'woocommerce' ), $order->get_order_number() ) ) . "\n"; echo date_i18n( __( 'jS F Y', 'woocommerce' ), strtotime( $order->order_date ) ) . "\n"; echo "\n" . $order->email_order_items_table( array( - 'show_sku' => false, + 'show_sku' => $sent_to_admin, 'show_image' => false, - '$image_size' => array( 32, 32 ), + 'image_size' => array( 32, 32 ), 'plain_text' => true ) ); diff --git a/templates/loop/add-to-cart.php b/templates/loop/add-to-cart.php index f0407b61458..66cc2ff94d5 100644 --- a/templates/loop/add-to-cart.php +++ b/templates/loop/add-to-cart.php @@ -24,10 +24,10 @@ global $product; echo apply_filters( 'woocommerce_loop_add_to_cart_link', sprintf( '%s', esc_url( $product->add_to_cart_url() ), - esc_attr( $quantity ), + esc_attr( isset( $quantity ) ? $quantity : 1 ), esc_attr( $product->id ), esc_attr( $product->get_sku() ), - esc_attr( $class ), + esc_attr( isset( $class ) ? $class : 'button' ), esc_html( $product->add_to_cart_text() ) ), $product ); diff --git a/templates/myaccount/form-add-payment-method.php b/templates/myaccount/form-add-payment-method.php index e1a9813ec2b..f1d21a123ff 100644 --- a/templates/myaccount/form-add-payment-method.php +++ b/templates/myaccount/form-add-payment-method.php @@ -16,48 +16,42 @@ */ if ( ! defined( 'ABSPATH' ) ) { - exit; // Exit if accessed directly + exit; } ?>
    -
      - payment_gateways->get_available_payment_gateways() ) { - // Chosen Method - if ( sizeof( $available_gateways ) ) - current( $available_gateways )->set_current(); - - foreach ( $available_gateways as $gateway ) { - ?> -
    • - chosen, true ); ?> /> - - has_fields() || $gateway->get_description() ) { - echo ''; - } - ?> -
    • - ' . __( 'Sorry, it seems that there are no payment methods which support adding a new payment method. Please contact us if you require assistance or wish to make alternate arrangements.', 'woocommerce' ) . '

      '; - + payment_gateways->get_available_payment_gateways() ) : ?> +
        set_current(); } - ?> -
      - -
      - - - -
      + foreach ( $available_gateways as $gateway ) { + ?> +
    • + chosen, true ); ?> /> + + has_fields() || $gateway->get_description() ) { + echo ''; + } + ?> +
    • +
    +
    + + + +
    + +

    +
    -
    diff --git a/templates/myaccount/form-edit-account.php b/templates/myaccount/form-edit-account.php index be085c403cc..53ea0d8c3e5 100644 --- a/templates/myaccount/form-edit-account.php +++ b/templates/myaccount/form-edit-account.php @@ -12,7 +12,7 @@ * @see http://docs.woothemes.com/document/template-structure/ * @author WooThemes * @package WooCommerce/Templates - * @version 2.2.7 + * @version 2.5.1 */ if ( ! defined( 'ABSPATH' ) ) { @@ -22,7 +22,7 @@ if ( ! defined( 'ABSPATH' ) ) { -
    + diff --git a/templates/myaccount/form-edit-address.php b/templates/myaccount/form-edit-address.php index b1362090689..3bfc4047318 100644 --- a/templates/myaccount/form-edit-address.php +++ b/templates/myaccount/form-edit-address.php @@ -19,12 +19,7 @@ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } -global $current_user; - -$page_title = ( $load_address === 'billing' ) ? __( 'Billing Address', 'woocommerce' ) : __( 'Shipping Address', 'woocommerce' ); - -get_currentuserinfo(); - +$page_title = ( $load_address === 'billing' ) ? __( 'Billing Address', 'woocommerce' ) : __( 'Shipping Address', 'woocommerce' ); ?> diff --git a/templates/product-searchform.php b/templates/product-searchform.php index a31d8e0c3a8..39a8a4e1991 100644 --- a/templates/product-searchform.php +++ b/templates/product-searchform.php @@ -23,8 +23,8 @@ if ( ! defined( 'ABSPATH' ) ) { ?> - - + +
    diff --git a/templates/single-product/add-to-cart/variable.php b/templates/single-product/add-to-cart/variable.php index 679124b82cc..266299ff4ae 100644 --- a/templates/single-product/add-to-cart/variable.php +++ b/templates/single-product/add-to-cart/variable.php @@ -39,7 +39,7 @@ do_action( 'woocommerce_before_add_to_cart_form' ); ?> get_variation_default_attribute( $attribute_name ); wc_dropdown_variation_attribute_options( array( 'options' => $options, 'attribute' => $attribute_name, 'product' => $product, 'selected' => $selected ) ); - echo end( $attribute_keys ) === $attribute_name ? '' . __( 'Clear', 'woocommerce' ) . '' : ''; + echo end( $attribute_keys ) === $attribute_name ? apply_filters( 'woocommerce_reset_variations_link', '' . __( 'Clear', 'woocommerce' ) . '' ) : ''; ?> @@ -77,4 +77,5 @@ do_action( 'woocommerce_before_add_to_cart_form' ); ?> - +
    - isset( $_POST['quantity'] ) ? wc_stock_amount( $_POST['quantity'] ) : 1 ) ); ?> + is_sold_individually() ) : ?> + isset( $_POST['quantity'] ) ? wc_stock_amount( $_POST['quantity'] ) : 1 ) ); ?> + diff --git a/tests/unit-tests/cart/functions.php b/tests/unit-tests/cart/functions.php index 6c494219911..f4b8639b7c5 100644 --- a/tests/unit-tests/cart/functions.php +++ b/tests/unit-tests/cart/functions.php @@ -110,7 +110,7 @@ class Functions extends \WC_Unit_Test_Case { public function test_wc_format_list_of_items() { $items = array( 'Title 1', 'Title 2' ); - $this->assertEquals( "“Title 1” and “Title 2”", wc_format_list_of_items( $items ) ); + $this->assertEquals( 'Title 1 and Title 2', wc_format_list_of_items( $items ) ); } /** diff --git a/tests/unit-tests/formatting/functions.php b/tests/unit-tests/formatting/functions.php index 10107b09883..92b1490c071 100644 --- a/tests/unit-tests/formatting/functions.php +++ b/tests/unit-tests/formatting/functions.php @@ -95,10 +95,17 @@ class Functions extends \WC_Unit_Test_Case { array( 0, wc_get_dimension( -10, 'mm' ) ), ); + $custom = array( + array( 25.4, wc_get_dimension( 10, 'cm', 'in' ) ), + array( 914.4, wc_get_dimension( 10, 'cm', 'yd' ) ), + array( 393.7, wc_get_dimension( 10, 'in', 'm' ) ), + array( 0.010936133, wc_get_dimension( 10, 'yd', 'mm' ) ) + ); + // restore default update_option( 'woocommerce_dimension_unit', $default_unit ); - return array_merge( $cm, $in, $m, $mm, $yd, $n ); + return array_merge( $cm, $in, $m, $mm, $yd, $n, $custom ); } @@ -152,6 +159,12 @@ class Functions extends \WC_Unit_Test_Case { $this->assertEquals( 0.6249987469, wc_get_weight( 10, 'lbs' ) ); $this->assertEquals( 10, wc_get_weight( 10, 'oz' ) ); + // custom from unit + $this->assertEquals( 0.283495, wc_get_weight( 10, 'kg', 'oz' ) ); + $this->assertEquals( 0.01, wc_get_weight( 10, 'kg', 'g' ) ); + $this->assertEquals( 4.53592, wc_get_weight( 10, 'kg', 'lbs' ) ); + $this->assertEquals( 10, wc_get_weight( 10, 'kg', 'kg' ) ); + // negative $this->assertEquals( 0, wc_get_weight( -10, 'g' ) ); diff --git a/tests/unit-tests/util/core-functions.php b/tests/unit-tests/util/core-functions.php index 84f5661ad80..00d1c424a0f 100644 --- a/tests/unit-tests/util/core-functions.php +++ b/tests/unit-tests/util/core-functions.php @@ -53,8 +53,8 @@ class Core_Functions extends \WC_Unit_Test_Case { 'ISK' => __( 'Icelandic krona', 'woocommerce' ), 'JPY' => __( 'Japanese Yen', 'woocommerce' ), 'KES' => __( 'Kenyan shilling', 'woocommerce' ), - 'LAK' => __( 'Lao Kip', 'woocommerce' ), 'KRW' => __( 'South Korean Won', 'woocommerce' ), + 'LAK' => __( 'Lao Kip', 'woocommerce' ), 'MXN' => __( 'Mexican Peso', 'woocommerce' ), 'MYR' => __( 'Malaysian Ringgits', 'woocommerce' ), 'NGN' => __( 'Nigerian Naira', 'woocommerce' ), @@ -67,6 +67,7 @@ class Core_Functions extends \WC_Unit_Test_Case { 'PYG' => __( 'Paraguayan Guaraní', 'woocommerce' ), 'RON' => __( 'Romanian Leu', 'woocommerce' ), 'RUB' => __( 'Russian Ruble', 'woocommerce' ), + 'SAR' => __( 'Saudi Riyal', 'woocommerce' ), 'SEK' => __( 'Swedish Krona', 'woocommerce' ), 'SGD' => __( 'Singapore Dollar', 'woocommerce' ), 'THB' => __( 'Thai Baht', 'woocommerce' ), @@ -78,7 +79,6 @@ class Core_Functions extends \WC_Unit_Test_Case { 'ZAR' => __( 'South African rand', 'woocommerce' ), ); - $this->assertEquals( $expected_currencies, get_woocommerce_currencies() ); } diff --git a/uninstall.php b/uninstall.php index 34e903218a6..18a40a03693 100644 --- a/uninstall.php +++ b/uninstall.php @@ -14,12 +14,17 @@ if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) { exit; } +global $wpdb; + +wp_clear_scheduled_hook( 'woocommerce_scheduled_sales' ); +wp_clear_scheduled_hook( 'woocommerce_cancel_unpaid_orders' ); +wp_clear_scheduled_hook( 'woocommerce_cleanup_sessions' ); +wp_clear_scheduled_hook( 'woocommerce_geoip_updater' ); +wp_clear_scheduled_hook( 'woocommerce_tracker_send_event' ); + $status_options = get_option( 'woocommerce_status_options', array() ); if ( ! empty( $status_options['uninstall_data'] ) ) { - - global $wpdb; - // Roles + caps. include_once( 'includes/class-wc-install.php' ); WC_Install::remove_roles(); @@ -41,6 +46,7 @@ if ( ! empty( $status_options['uninstall_data'] ) ) { $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_termmeta" ); $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_tax_rates" ); $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_tax_rate_locations" ); + $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}woocommerce_sessions" ); // Delete options. $wpdb->query("DELETE FROM $wpdb->options WHERE option_name LIKE 'woocommerce\_%';"); diff --git a/woocommerce.php b/woocommerce.php index 480d1687d12..f87bca1bfd3 100644 --- a/woocommerce.php +++ b/woocommerce.php @@ -3,7 +3,7 @@ * Plugin Name: WooCommerce * Plugin URI: http://www.woothemes.com/woocommerce/ * Description: An e-commerce toolkit that helps you sell anything. Beautifully. - * Version: 2.5.0-RC1 + * Version: 2.6.0-dev * Author: WooThemes * Author URI: http://woothemes.com * Requires at least: 4.1 @@ -26,58 +26,78 @@ if ( ! class_exists( 'WooCommerce' ) ) : * Main WooCommerce Class. * * @class WooCommerce - * @version 2.4.0 + * @version 2.5.0 */ final class WooCommerce { /** + * WooCommerce version. + * * @var string */ - public $version = '2.5.0'; + public $version = '2.6.0'; /** - * @var WooCommerce The single instance of the class. + * The single instance of the class. + * + * @var WooCommerce * @since 2.1 */ protected static $_instance = null; /** - * @var WC_Session session + * Session instance. + * + * @var WC_Session */ public $session = null; /** - * @var WC_Query $query + * Query instance. + * + * @var WC_Query */ public $query = null; /** - * @var WC_Product_Factory $product_factory + * Product factory instance. + * + * @var WC_Product_Factory */ public $product_factory = null; /** - * @var WC_Countries $countries + * Countries instance. + * + * @var WC_Countries */ public $countries = null; /** - * @var WC_Integrations $integrations + * Integrations instance. + * + * @var WC_Integrations */ public $integrations = null; /** - * @var WC_Cart $cart + * Cart instance. + * + * @var WC_Cart */ public $cart = null; /** - * @var WC_Customer $customer + * Customer instance. + * + * @var WC_Customer */ public $customer = null; /** - * @var WC_Order_Factory $order_factory + * Order factory instance. + * + * @var WC_Order_Factory */ public $order_factory = null; @@ -420,7 +440,7 @@ final class WooCommerce { $api_request_url = add_query_arg( 'wc-api', $request, trailingslashit( home_url( '', $scheme ) ) ); } - return esc_url_raw( $api_request_url ); + return esc_url_raw( apply_filters( 'woocommerce_api_request_url', $api_request_url, $request, $ssl ) ); } /**