Easy Digital Downloads - Version 2.5.7

Version Description

Download this release

Release Info

Developer mordauk
Plugin Icon 128x128 Easy Digital Downloads
Version 2.5.7
Comparing to
See all releases

Code changes from version 2.5.6 to 2.5.7

Files changed (43) hide show
  1. assets/js/admin-scripts.js +29 -10
  2. assets/js/admin-scripts.min.js +1 -1
  3. assets/js/edd-ajax.js +12 -2
  4. assets/js/edd-ajax.min.js +1 -1
  5. easy-digital-downloads.php +3 -3
  6. includes/admin/admin-pages.php +3 -1
  7. includes/admin/class-api-keys-table.php +1 -1
  8. includes/admin/discounts/add-discount.php +1 -2
  9. includes/admin/downloads/metabox.php +1 -1
  10. includes/admin/payments/actions.php +7 -7
  11. includes/admin/payments/view-order-details.php +2 -0
  12. includes/admin/reporting/class-export-customers.php +1 -1
  13. includes/admin/reporting/class-sales-logs-list-table.php +7 -4
  14. includes/admin/reporting/export/export-functions.php +1 -1
  15. includes/admin/reporting/graphing.php +1 -1
  16. includes/admin/reporting/reports.php +47 -57
  17. includes/admin/settings/register-settings.php +54 -54
  18. includes/admin/tools.php +44 -44
  19. includes/admin/upload-functions.php +1 -1
  20. includes/api/class-edd-api.php +8 -3
  21. includes/checkout/template.php +4 -2
  22. includes/class-edd-html-elements.php +24 -11
  23. includes/class-edd-license-handler.php +4 -0
  24. includes/class-edd-stats.php +15 -15
  25. includes/discount-functions.php +61 -10
  26. includes/download-functions.php +27 -4
  27. includes/emails/actions.php +7 -5
  28. includes/emails/class-edd-emails.php +3 -2
  29. includes/emails/functions.php +3 -3
  30. includes/gateways/functions.php +1 -2
  31. includes/misc-functions.php +42 -2
  32. includes/payments/actions.php +4 -47
  33. includes/payments/class-edd-payment.php +176 -36
  34. includes/payments/functions.php +35 -22
  35. includes/plugin-compatibility.php +2 -0
  36. includes/post-types.php +19 -19
  37. includes/query-filters.php +39 -1
  38. includes/shortcodes.php +25 -13
  39. includes/widgets.php +2 -2
  40. languages/easy-digital-downloads.pot +697 -594
  41. readme.txt +37 -1
  42. templates/edd.css +548 -552
  43. templates/edd.min.css +1 -1
assets/js/admin-scripts.js CHANGED
@@ -444,10 +444,10 @@ jQuery(document).ready(function ($) {
444
 
445
  e.preventDefault();
446
 
447
- var order_download_select = $( '#edd_order_download_select' ),
448
- order_download_quantity = $( '#edd-order-download-quantity' ),
449
- order_download_amount = $( '#edd-order-download-amount' ),
450
- selected_price_option = $( '.edd_price_options_select option:selected' );
451
 
452
  var download_id = order_download_select.val();
453
  var download_title = order_download_select.find(':selected').text();
@@ -470,6 +470,8 @@ jQuery(document).ready(function ($) {
470
  return false;
471
  }
472
 
 
 
473
  if ( edd_vars.quantities_enabled === '1' ) {
474
  if ( !isNaN( parseInt( quantity ) ) ) {
475
  amount = amount * quantity;
@@ -501,6 +503,7 @@ jQuery(document).ready(function ($) {
501
  clone.find( '.item-price' ).text( edd_vars.currency_sign + ( amount / quantity ).toFixed( edd_vars.currency_decimals ) );
502
  clone.find( 'input.edd-payment-details-download-id' ).val( download_id );
503
  clone.find( 'input.edd-payment-details-download-price-id' ).val( price_id );
 
504
  clone.find( 'input.edd-payment-details-download-amount' ).val( amount );
505
  clone.find( 'input.edd-payment-details-download-quantity' ).val( quantity );
506
  clone.find( 'input.edd-payment-details-download-has-log').val(0);
@@ -1131,13 +1134,15 @@ jQuery(document).ready(function ($) {
1131
  // Replace options with search results
1132
  $( document.body ).on( 'keyup', '.edd-select.chosen-container .chosen-search input, .edd-select.chosen-container .search-field input', function(e) {
1133
 
1134
- var val = $(this).val(), container = $(this).closest( '.edd-select-chosen' );
1135
- var menu_id = container.attr('id').replace( '_chosen', '' );
1136
- var no_bundles = container.hasClass( 'no-bundles' );
1137
- var lastKey = e.which;
1138
  var search_type = 'edd_download_search';
1139
- if( container.attr( 'id' ).indexOf( "customer" ) >= 0 ) {
1140
- search_type = 'edd_customer_search';
 
 
1141
  }
1142
 
1143
  // Don't fire if short or is a modifier key (shift, ctrl, apple command key, or arrow keys)
@@ -1211,6 +1216,7 @@ jQuery(document).ready(function ($) {
1211
  init : function() {
1212
  this.revoke_api_key();
1213
  this.regenerate_api_key();
 
1214
  this.recount_stats();
1215
  },
1216
 
@@ -1224,6 +1230,19 @@ jQuery(document).ready(function ($) {
1224
  return confirm( edd_vars.regenerate_api_key );
1225
  } );
1226
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
1227
  recount_stats : function() {
1228
  $( 'body').on( 'change', '#recount-stats-type', function() {
1229
 
444
 
445
  e.preventDefault();
446
 
447
+ var order_download_select = $( '#edd_order_download_select' ),
448
+ order_download_quantity = $( '#edd-order-download-quantity' ),
449
+ order_download_amount = $( '#edd-order-download-amount' ),
450
+ selected_price_option = $( '.edd_price_options_select option:selected' );
451
 
452
  var download_id = order_download_select.val();
453
  var download_title = order_download_select.find(':selected').text();
470
  return false;
471
  }
472
 
473
+ var item_price = amount;
474
+
475
  if ( edd_vars.quantities_enabled === '1' ) {
476
  if ( !isNaN( parseInt( quantity ) ) ) {
477
  amount = amount * quantity;
503
  clone.find( '.item-price' ).text( edd_vars.currency_sign + ( amount / quantity ).toFixed( edd_vars.currency_decimals ) );
504
  clone.find( 'input.edd-payment-details-download-id' ).val( download_id );
505
  clone.find( 'input.edd-payment-details-download-price-id' ).val( price_id );
506
+ clone.find( 'input.edd-payment-details-download-item-price' ).val( item_price );
507
  clone.find( 'input.edd-payment-details-download-amount' ).val( amount );
508
  clone.find( 'input.edd-payment-details-download-quantity' ).val( quantity );
509
  clone.find( 'input.edd-payment-details-download-has-log').val(0);
1134
  // Replace options with search results
1135
  $( document.body ).on( 'keyup', '.edd-select.chosen-container .chosen-search input, .edd-select.chosen-container .search-field input', function(e) {
1136
 
1137
+ var val = $(this).val(), container = $(this).closest( '.edd-select-chosen' );
1138
+ var menu_id = container.attr('id').replace( '_chosen', '' );
1139
+ var no_bundles = container.hasClass( 'no-bundles' );
1140
+ var lastKey = e.which;
1141
  var search_type = 'edd_download_search';
1142
+
1143
+ // Detect if we have a defined search type, otherwise default to downloads
1144
+ if ( container.prev().data('search-type') ) {
1145
+ search_type = 'edd_' + container.prev().data('search-type') + '_search';
1146
  }
1147
 
1148
  // Don't fire if short or is a modifier key (shift, ctrl, apple command key, or arrow keys)
1216
  init : function() {
1217
  this.revoke_api_key();
1218
  this.regenerate_api_key();
1219
+ this.create_api_key();
1220
  this.recount_stats();
1221
  },
1222
 
1230
  return confirm( edd_vars.regenerate_api_key );
1231
  } );
1232
  },
1233
+ create_api_key : function() {
1234
+ $( document.body).on( 'submit', '#api-key-generate-form', function( e ) {
1235
+ var input = $( 'input[type="text"][name="user_id"]' );
1236
+
1237
+ input.css('border-color', '#ddd');
1238
+
1239
+ var user_id = input.val();
1240
+ if ( user_id.length < 1 || user_id == 0 ) {
1241
+ input.css('border-color', '#ff0000');
1242
+ return false;
1243
+ }
1244
+ } );
1245
+ },
1246
  recount_stats : function() {
1247
  $( 'body').on( 'change', '#recount-stats-type', function() {
1248
 
assets/js/admin-scripts.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(e){var t={init:function(){this.add(),this.move(),this.remove(),this.type(),this.prices(),this.files(),this.updatePrices()},clone_repeatable:function(t){var d=highest=1;return t.parent().find("tr.edd_repeatable_row").each(function(){var t=e(this).data("key");parseInt(t)>highest&&(highest=t)}),d=highest+=1,clone=t.clone(),clone.find("select").each(function(){e(this).val(t.find('select[name="'+e(this).attr("name")+'"]').val())}),clone.removeClass("edd_add_blank"),clone.attr("data-key",d),clone.find("td input, td select, textarea").val(""),clone.find("input, select, textarea").each(function(){var t=e(this).attr("name"),n=e(this).attr("id");t&&(t=t.replace(/\[(\d+)\]/,"["+parseInt(d)+"]"),e(this).attr("name",t)),"undefined"!=typeof n&&(n=n.replace(/(\d+)/,parseInt(d)),e(this).attr("id",n))}),clone.find("span.edd_price_id").each(function(){e(this).text(parseInt(d))}),clone.find("span.edd_file_id").each(function(){e(this).text(parseInt(d))}),clone.find(".edd_repeatable_default_input").each(function(){e(this).val(parseInt(d)).removeAttr("checked")}),clone.find(".search-choice").remove(),clone.find(".chosen-container").remove(),clone},add:function(){e(document.body).on("click",".submit .edd_add_repeatable",function(d){d.preventDefault();var n=e(this),a=n.parent().parent().prev("tr"),i=t.clone_repeatable(a);i.insertAfter(a).find("input, textarea, select").filter(":visible").eq(0).focus(),i.find(".edd-select-chosen").chosen({inherit_select_classes:!0,placeholder_text_single:edd_vars.one_option,placeholder_text_multiple:edd_vars.one_or_more_option}),i.find(".edd-select-chosen").css("width","100%")})},move:function(){e(".edd_repeatable_table tbody").sortable({handle:".edd_draghandle",items:".edd_repeatable_row",opacity:.6,cursor:"move",axis:"y",update:function(){var t=0;e(this).find("tr").each(function(){e(this).find("input.edd_repeatable_index").each(function(){e(this).val(t)}),t++})}})},remove:function(){e(document.body).on("click",".edd_remove_repeatable",function(t){t.preventDefault();var d=e(this).parent().parent("tr"),n=d.parent().find("tr").length-1,a=e(this).data("type"),i="tr.edd_repeatable_"+a+"s";if("price"===a){var o=d.data("key");e('.edd_repeatable_condition_field option[value="'+o+'"]').remove()}if(n>1)e("input, select",d).val(""),d.fadeOut("fast").remove();else switch(a){case"price":alert(edd_vars.one_price_min);break;case"file":e("input, select",d).val("");break;default:alert(edd_vars.one_field_min)}e(i).each(function(t){e(this).find("input, select").each(function(){var d=e(this).attr("name");d=d.replace(/\[(\d+)\]/,"["+t+"]"),e(this).attr("name",d).attr("id",d)})})})},type:function(){e(document.body).on("change","#_edd_product_type",function(t){var d=e("#edd_products"),n=e("#edd_download_files"),a=e("#edd_download_limit_wrap");"bundle"===e(this).val()?(d.show(),n.hide(),a.hide()):(d.hide(),n.show(),a.show())})},prices:function(){e(document.body).on("change","#edd_variable_pricing",function(t){e(".edd_pricing_fields,.edd_repeatable_table .pricing").toggle()})},files:function(){if("undefined"==typeof wp||"1"!==edd_vars.new_media_ui)e(".edd_upload_file_button").length>0&&(window.formfield="",e(document.body).on("click",".edd_upload_file_button",function(t){if(t.preventDefault(),window.formfield=e(this).parent().prev(),window.tbframe_interval=setInterval(function(){jQuery("#TB_iframeContent").contents().find(".savesend .button").val(edd_vars.use_this_file).end().find("#insert-gallery, .wp-post-thumbnail").hide()},2e3),null!=edd_vars.post_id)var d="post_id="+edd_vars.post_id+"&";tb_show(edd_vars.add_new_download,"media-upload.php?"+d+"TB_iframe=true")}),window.edd_send_to_editor=window.send_to_editor,window.send_to_editor=function(t){window.formfield?(imgurl=e("a","<div>"+t+"</div>").attr("href"),window.formfield.val(imgurl),window.clearInterval(window.tbframe_interval),tb_remove()):window.edd_send_to_editor(t),window.send_to_editor=window.edd_send_to_editor,window.formfield="",window.imagefield=!1});else{var d;window.formfield="",e(document.body).on("click",".edd_upload_file_button",function(n){n.preventDefault();var a=e(this);return window.formfield=e(this).closest(".edd_repeatable_upload_wrapper"),d?void d.open():(d=wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:a.data("uploader-title"),button:{text:a.data("uploader-button-text")},multiple:"0"==e(this).data("multiple")?!1:!0}),d.on("menu:render:default",function(e){var t={};e.unset("library-separator"),e.unset("gallery"),e.unset("featured-image"),e.unset("embed"),e.set(t)}),d.on("insert",function(){var e=d.state().get("selection");e.each(function(e,d){if(e=e.toJSON(),0===d)window.formfield.find(".edd_repeatable_attachment_id_field").val(e.id),window.formfield.find(".edd_repeatable_upload_field").val(e.url),window.formfield.find(".edd_repeatable_name_field").val(e.title);else{var n=window.formfield,a=t.clone_repeatable(n);a.find(".edd_repeatable_attachment_id_field").val(e.id),a.find(".edd_repeatable_upload_field").val(e.url),e.title.length>0?a.find(".edd_repeatable_name_field").val(e.title):a.find(".edd_repeatable_name_field").val(e.filename),a.insertAfter(n)}})}),void d.open())});var d;window.formfield=""}},updatePrices:function(){e("#edd_price_fields").on("keyup",".edd_variable_prices_name",function(){var t=e(this).parents("tr").data("key"),d=e(this).val(),n=e(".edd_repeatable_condition_field option[value="+t+"]");n.length>0?n.text(d):e(".edd_repeatable_condition_field").append(e("<option></option>").attr("value",t).text(d))})}};t.init();var d=e(".edd_datepicker");if(d.length>0){var n="mm/dd/yy";d.datepicker({dateFormat:n})}var a={init:function(){this.edit_address(),this.remove_download(),this.add_download(),this.new_customer(),this.recalculate_total(),this.variable_prices_check(),this.add_note(),this.remove_note(),this.resend_receipt(),this.copy_download_link()},edit_address:function(){e('select[name="edd-payment-address[0][country]"]').change(function(){var t=e(this);return data={action:"edd_get_shop_states",country:t.val(),field_name:"edd-payment-address[0][state]"},e.post(ajaxurl,data,function(t){var d=e("#edd-order-address-state-wrap select, #edd-order-address-state-wrap input");"nostates"==t?d.replaceWith('<input type="text" name="edd-payment-address[0][state]" value="" class="edd-edit-toggles medium-text"/>'):d.replaceWith(t)}),!1})},remove_download:function(){e("#edd-purchased-files").on("click",".edd-order-remove-download",function(){var t=e(document.body).find("#edd-purchased-files > .row").length;if(1===t)return alert(edd_vars.one_download_min),!1;if(confirm(edd_vars.delete_payment_download)){var d=e(this).data("key"),n=(e(".edd-payment-id").val(),e('input[name="edd-payment-details-downloads['+d+'][id]"]').val()),a=e('input[name="edd-payment-details-downloads['+d+'][price_id]"]').val(),i=e('input[name="edd-payment-details-downloads['+d+'][quantity]"]').val(),o=e('input[name="edd-payment-details-downloads['+d+'][amount]"]').val(),r=e('input[name="edd-payment-removed"]').val();r=e.parseJSON(r),r.length<1&&(r={});var s=[{id:n,price_id:a,quantity:i,amount:o}];r[d]=s,e('input[name="edd-payment-removed"]').val(JSON.stringify(r)),e(this).parent().parent().parent().remove(),e("#edd-payment-downloads-changed").val(1),e(".edd-order-payment-recalc-totals").show()}return!1})},new_customer:function(){e("#edd-customer-details").on("click",".edd-payment-new-customer, .edd-payment-new-customer-cancel",function(t){t.preventDefault(),e(".customer-info").toggle(),e(".new-customer").toggle();var d=e("#edd-new-customer");e(".new-customer").is(":visible")?d.val(1):d.val(0)})},add_download:function(){e("#edd-purchased-files").on("click","#edd-order-add-download",function(t){t.preventDefault();var d=e("#edd_order_download_select"),n=e("#edd-order-download-quantity"),a=e("#edd-order-download-amount"),i=e(".edd_price_options_select option:selected"),o=d.val(),r=d.find(":selected").text(),s=n.val(),c=a.val(),l=i.val(),u=i.text();if(1>o)return!1;if(c||(c=0),c=parseFloat(c),isNaN(c))return alert(edd_vars.numeric_item_price),!1;if("1"===edd_vars.quantities_enabled){if(isNaN(parseInt(s)))return alert(edd_vars.numeric_quantity),!1;c*=s}c=c.toFixed(edd_vars.currency_decimals);var p=c+edd_vars.currency_sign;"before"===edd_vars.currency_pos&&(p=edd_vars.currency_sign+c),u&&(r=r+" - "+u);var _=e("#edd-purchased-files div.row").length,f=e("#edd-purchased-files div.row:last").clone();f.find(".download span").html('<a href="post.php?post='+o+'&action=edit"></a>'),f.find(".download span a").text(r),f.find(".price-text").text(p),f.find(".item-quantity").text(s),f.find(".item-price").text(edd_vars.currency_sign+(c/s).toFixed(edd_vars.currency_decimals)),f.find("input.edd-payment-details-download-id").val(o),f.find("input.edd-payment-details-download-price-id").val(l),f.find("input.edd-payment-details-download-amount").val(c),f.find("input.edd-payment-details-download-quantity").val(s),f.find("input.edd-payment-details-download-has-log").val(0),f.find("input").each(function(){var t=e(this).attr("name");t=t.replace(/\[(\d+)\]/,"["+parseInt(_)+"]"),e(this).attr("name",t).attr("id",t)}),e("#edd-payment-downloads-changed").val(1),e(f).insertAfter("#edd-purchased-files div.row:last"),e(".edd-order-payment-recalc-totals").show()})},recalculate_total:function(){e("#edd-order-recalc-total").on("click",function(t){t.preventDefault();var d=0,n=e("#edd-purchased-files .row .edd-payment-details-download-amount");n.length&&n.each(function(){d+=parseFloat(e(this).val())}),e(".edd-payment-fees").length&&e(".edd-payment-fees span.fee-amount").each(function(){d+=parseFloat(e(this).data("fee"))}),e("input[name=edd-payment-total]").val(d.toFixed(edd_vars.currency_decimals))})},variable_prices_check:function(){e("#edd-purchased-files").on("change","select#edd_order_download_select",function(){var t=e(this),d=t.val();if(parseInt(d)>0){var n={action:"edd_check_for_download_price_variations",download_id:d};e.ajax({type:"POST",data:n,url:ajaxurl,success:function(d){e(".edd_price_options_select").remove(),e(d).insertAfter(t.next())}}).fail(function(e){window.console&&window.console.log&&console.log(e)})}})},add_note:function(){e("#edd-add-payment-note").on("click",function(t){t.preventDefault();var d={action:"edd_insert_payment_note",payment_id:e(this).data("payment-id"),note:e("#edd-payment-note").val()};if(d.note)e.ajax({type:"POST",data:d,url:ajaxurl,success:function(t){e("#edd-payment-notes-inner").append(t),e(".edd-no-payment-notes").hide(),e("#edd-payment-note").val("")}}).fail(function(e){window.console&&window.console.log&&console.log(e)});else{var n=e("#edd-payment-note").css("border-color");e("#edd-payment-note").css("border-color","red"),setTimeout(function(){e("#edd-payment-note").css("border-color",n)},500)}})},remove_note:function(){e(document.body).on("click",".edd-delete-payment-note",function(t){if(t.preventDefault(),confirm(edd_vars.delete_payment_note)){var d={action:"edd_delete_payment_note",payment_id:e(this).data("payment-id"),note_id:e(this).data("note-id")};return e.ajax({type:"POST",data:d,url:ajaxurl,success:function(t){return e("#edd-payment-note-"+d.note_id).remove(),e(".edd-payment-note").length||e(".edd-no-payment-notes").show(),!1}}).fail(function(e){window.console&&window.console.log&&console.log(e)}),!0}})},resend_receipt:function(){e(document.body).on("click","#edd-resend-receipt",function(e){return confirm(edd_vars.resend_receipt)})},copy_download_link:function(){e(document.body).on("click",".edd-copy-download-link",function(t){t.preventDefault();var d=e(this),n={action:"edd_get_file_download_link",payment_id:e('input[name="edd_payment_id"]').val(),download_id:d.data("download-id"),price_id:d.data("price-id")};e.ajax({type:"POST",data:n,url:ajaxurl,success:function(t){return e("#edd-download-link").dialog({width:400}).html('<textarea rows="10" cols="40" id="edd-download-link-textarea">'+t+"</textarea>"),e("#edd-download-link-textarea").focus().select(),!1}}).fail(function(e){window.console&&window.console.log&&console.log(e)})})}};a.init();var i={init:function(){this.type_select(),this.product_requirements()},type_select:function(){e("#edd-edit-discount #edd-type, #edd-add-discount #edd-type").change(function(){e(".edd-amount-description").toggle()})},product_requirements:function(){e("#products").change(function(){var t=e("#edd-discount-product-conditions");e(this).val()?t.show():t.hide()})}};i.init();var o={init:function(){this.date_options(),this.customers_export()},date_options:function(){e("#edd-graphs-date-options").change(function(){var t=e(this),d=e("#edd-date-range-options");"other"===t.val()?d.show():d.hide()})},customers_export:function(){e("#edd_customer_export_download").change(function(){var t=e(this),d=e("option:selected",t).val(),n=e("#edd_customer_export_option");if("0"===t.val()?n.show():n.hide(),0!=parseInt(d)){var a={action:"edd_check_for_download_price_variations",download_id:d,all_prices:!0},i=e(".edd_price_options_select");e.post(ajaxurl,a,function(t){i.remove(),e("#edd_customer_export_download_chosen").after(t)})}else i.remove()})}};o.init();var r={init:function(){this.general(),this.taxes(),this.emails(),this.misc()},general:function(){var t=e(".edd-color-picker");if(t.length&&t.wpColorPicker(),"undefined"==typeof wp||"1"!==edd_vars.new_media_ui){var d=e(".edd_settings_upload_button");d.length>0&&(window.formfield="",e(document.body).on("click",d,function(t){t.preventDefault(),window.formfield=e(this).parent().prev(),window.tbframe_interval=setInterval(function(){jQuery("#TB_iframeContent").contents().find(".savesend .button").val(edd_vars.use_this_file).end().find("#insert-gallery, .wp-post-thumbnail").hide()},2e3),tb_show(edd_vars.add_new_download,"media-upload.php?TB_iframe=true")}),window.edd_send_to_editor=window.send_to_editor,window.send_to_editor=function(t){window.formfield?(imgurl=e("a","<div>"+t+"</div>").attr("href"),window.formfield.val(imgurl),window.clearInterval(window.tbframe_interval),tb_remove()):window.edd_send_to_editor(t),window.send_to_editor=window.edd_send_to_editor,window.formfield="",window.imagefield=!1})}else{var n;window.formfield="",e(document.body).on("click",".edd_settings_upload_button",function(t){t.preventDefault();var d=e(this);return window.formfield=e(this).parent().prev(),n?void n.open():(n=wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:d.data("uploader_title"),button:{text:d.data("uploader_button_text")},multiple:!1}),n.on("menu:render:default",function(e){var t={};e.unset("library-separator"),e.unset("gallery"),e.unset("featured-image"),e.unset("embed"),e.set(t)}),n.on("insert",function(){var e=n.state().get("selection");e.each(function(e,t){e=e.toJSON(),window.formfield.val(e.url)})}),void n.open())});var n;window.formfield=""}},taxes:function(){var t=e("select.edd-no-states");t.length&&t.closest("tr").hide(),e('select[name="edd_settings[base_country]"]').change(function(){var t=e(this),d=t.closest("tr");return data={action:"edd_get_shop_states",country:e(this).val(),field_name:"edd_settings[base_state]"},e.post(ajaxurl,data,function(e){"nostates"==e?d.next().hide():(d.next().show(),d.next().find("select").replaceWith(e))}),!1}),e(document.body).on("change","#edd_tax_rates select.edd-tax-country",function(){var t=e(this);return data={action:"edd_get_shop_states",country:e(this).val(),field_name:t.attr("name").replace("country","state")},e.post(ajaxurl,data,function(e){if("nostates"==e){var d='<input type="text" name="'+data.field_name+'" value=""/>';t.parent().next().find("select").replaceWith(d)}else t.parent().next().find("input,select").show(),t.parent().next().find("input,select").replaceWith(e)}),!1}),e("#edd_add_tax_rate").on("click",function(){var t=e("#edd_tax_rates tr:last"),d=t.clone(),n=t.parent().find("tr").length;return d.find("td input").not(":input[type=checkbox]").val(""),d.find('td [type="checkbox"]').attr("checked",!1),d.find("input, select").each(function(){var t=e(this).attr("name");t=t.replace(/\[(\d+)\]/,"["+parseInt(n)+"]"),e(this).attr("name",t).attr("id",t)}),d.find("label").each(function(){var t=e(this).attr("for");t=t.replace(/\[(\d+)\]/,"["+parseInt(n)+"]"),e(this).attr("for",t)}),d.insertAfter(t),!1}),e(document.body).on("click","#edd_tax_rates .edd_remove_tax_rate",function(){if(confirm(edd_vars.delete_tax_rate)){var t=e("#edd_tax_rates tr:visible"),d=t.length;2===d?(e("#edd_tax_rates select").val(""),e('#edd_tax_rates input[type="text"]').val(""),e('#edd_tax_rates input[type="number"]').val(""),e('#edd_tax_rates input[type="checkbox"]').attr("checked",!1)):e(this).closest("tr").remove(),e("#edd_tax_rates tr").each(function(t){e(this).children().find("input, select").each(function(){var d=e(this).attr("name");d=d.replace(/\[(\d+)\]/,"["+(t-1)+"]"),e(this).attr("name",d).attr("id",d)})})}return!1})},emails:function(){var t=e("#email-preview-wrap");if(t.length){var d=e("#email-preview");t.colorbox({inline:!0,href:d,width:"80%",height:"auto"})}},misc:function(){var t=e('select[name="edd_settings[download_method]"]'),d=t.parent().parent().next();"direct"==t.val()&&(d.hide(),d.find("input").prop("checked",!1)),t.on("change",function(){"direct"==e(this).val()?(d.hide(),d.find("input").prop("checked",!1)):d.show()})}};r.init(),e(".download_page_edd-payment-history .row-actions .delete a").on("click",function(){return confirm(edd_vars.delete_payment)?!0:!1}),e("#the-list").on("click",".editinline",function(){var t=e(this).closest("tr").attr("id");t=t.replace("post-","");var d=e("#post-"+t),n=d.find(".column-price .downloadprice-"+t).val();n!=e("#post-"+t+".column-price .downloadprice-"+t).val()?e(".regprice","#edd-download-data").val(n).attr("disabled",!1):e(".regprice","#edd-download-data").val(edd_vars.quick_edit_warning).attr("disabled","disabled")}),e(document.body).on("click","#bulk_edit",function(){var t=e("#bulk-edit"),d=new Array;t.find("#bulk-titles").children().each(function(){d.push(e(this).attr("id").replace(/^(ttle)/i,""))});var n=e('#edd-download-data input[name="_edd_regprice"]').val(),a={action:"edd_save_bulk_edit",edd_bulk_nonce:d,post_ids:d,price:n};e.post(ajaxurl,a)}),e(".edd-select-chosen").chosen({inherit_select_classes:!0,placeholder_text_single:edd_vars.one_option,placeholder_text_multiple:edd_vars.one_or_more_option}),e(".chosen-choices").on("click",function(){e(this).children("li").children("input").attr("placeholder",edd_vars.type_to_search)});var s,c=342;e(document.body).on("keyup",".edd-select.chosen-container .chosen-search input, .edd-select.chosen-container .search-field input",function(t){var d=e(this).val(),n=e(this).closest(".edd-select-chosen"),a=n.attr("id").replace("_chosen",""),i=n.hasClass("no-bundles"),o=(t.which,"edd_download_search");n.attr("id").indexOf("customer")>=0&&(o="edd_customer_search"),d.length<=3&&"edd_download_search"==o||16==t.which||13==t.which||91==t.which||17==t.which||37==t.which||38==t.which||39==t.which||40==t.which||(clearTimeout(s),s=setTimeout(function(){e.ajax({type:"GET",url:ajaxurl,data:{action:o,s:d,current_id:edd_vars.post_id,no_bundles:i},dataType:"json",beforeSend:function(){e("ul.chosen-results").empty()},success:function(t){e("#"+a+" option:not(:selected)").remove(),e.each(t,function(t,d){e("#"+a+' option[value="'+d.id+'"]').length||e("#"+a).prepend('<option value="'+d.id+'">'+d.name+"</option>")}),e(".edd-select-chosen").trigger("chosen:updated"),e("#"+a).next().find("input").val(d)}}).fail(function(e){window.console&&window.console.log&&console.log(e)}).done(function(e){})},c))}),e("#post").on("click",".edd-thickbox",function(){e(".edd-select-chosen","#choose-download").css("width","100%")});var l={init:function(){this.revoke_api_key(),this.regenerate_api_key(),this.recount_stats()},revoke_api_key:function(){e(document.body).on("click",".edd-revoke-api-key",function(e){return confirm(edd_vars.revoke_api_key)})},regenerate_api_key:function(){e(document.body).on("click",".edd-regenerate-api-key",function(e){return confirm(edd_vars.regenerate_api_key)})},recount_stats:function(){e("body").on("change","#recount-stats-type",function(){var t=e("#edd-tools-recount-form"),d=e("option:selected",this).data("type"),n=e("#recount-stats-submit"),a=e("#tools-product-dropdown");if(t.find(".notice-wrap").remove(),n.removeClass("button-disabled").attr("disabled",!1),a.hide(),e(".edd-recount-stats-descriptions span").hide(),"recount-download"===d)a.show(),a.find(".edd-select-chosen").css("width","auto");else if("reset-stats"===d){t.append('<div class="notice-wrap"></div>');var i=t.find(".notice-wrap");i.html('<div class="notice notice-warning"><p><input type="checkbox" id="confirm-reset" name="confirm_reset_store" value="1" /> <label for="confirm-reset">'+edd_vars.reset_stats_warn+"</label></p></div>"),e("#recount-stats-submit").addClass("button-disabled").attr("disabled","disabled")}else a.hide(),a.val(0);e("#"+d).show()}),e("body").on("change","#confirm-reset",function(){var t=e(this).is(":checked");t?e("#recount-stats-submit").removeClass("button-disabled").removeAttr("disabled"):e("#recount-stats-submit").addClass("button-disabled").attr("disabled","disabled")}),e("#edd-tools-recount-form").submit(function(t){var d=e("#recount-stats-type").val(),n=e(this),a=e("option:selected",this).data("type");if("reset-stats"===a){var i=e("#confirm-reset").is(":checked");if(i)return!0;r=!0}n.find(".notice-wrap").remove(),n.append('<div class="notice-wrap"></div>');var o=n.find(".notice-wrap"),r=!1;if((null===d||0===d)&&(o.html('<div class="updated error"><p>'+edd_vars.batch_export_no_class+"</p></div>"),r=!0),"recount-download"===a){var s=e('select[name="download_id"]').val();0==s&&(o.html('<div class="updated error"><p>'+edd_vars.batch_export_no_reqs+"</p></div>"),r=!0)}return r?(n.find(".button-disabled").removeClass("button-disabled"),!1):void 0})}};l.init();var u={init:function(){this.submit(),this.dismiss_message()},submit:function(){var t=this;e(document.body).on("submit",".edd-export-form",function(d){d.preventDefault();var n=e(this).find('input[type="submit"]');if(!n.hasClass("button-disabled")){var a=e(this).serialize();n.addClass("button-disabled"),e(this).find(".notice-wrap").remove(),e(this).append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),t.process_step(1,a,t)}})},process_step:function(t,d,n){e.ajax({type:"POST",url:ajaxurl,data:{form:d,action:"edd_do_ajax_export",step:t},dataType:"json",success:function(t){if("done"==t.step||t.error||t.success){var a=e(".edd-export-form").find(".edd-progress").parent().parent(),i=a.find(".notice-wrap");if(a.find(".button-disabled").removeClass("button-disabled"),t.error){var o=t.message;i.html('<div class="updated error"><p>'+o+"</p></div>")}else if(t.success){var r=t.message;i.html('<div id="edd-batch-success" class="updated notice is-dismissible"><p>'+r+'<span class="notice-dismiss"></span></p></div>')}else i.remove(),window.location=t.url}else e(".edd-progress div").animate({width:t.percentage+"%"},50,function(){}),n.process_step(parseInt(t.step),d,n)}}).fail(function(e){window.console&&window.console.log&&console.log(e)})},dismiss_message:function(){e("body").on("click","#edd-batch-success .notice-dismiss",function(){e("#edd-batch-success").parent().slideUp("fast")})}};u.init();var p={vars:{customer_card_wrap_editable:e(".edd-customer-card-wrapper .editable"),customer_card_wrap_edit_item:e(".edd-customer-card-wrapper .edit-item"),user_id:e('input[name="customerinfo[user_id]"]'),state_input:e(':input[name="customerinfo[state]"]'),note:e("#customer-note")},init:function(){this.edit_customer(),this.user_search(),this.remove_user(),this.cancel_edit(),this.change_country(),this.add_note(),this.delete_checked()},edit_customer:function(){e(document.body).on("click","#edit-customer",function(e){e.preventDefault(),p.vars.customer_card_wrap_editable.hide(),p.vars.customer_card_wrap_edit_item.fadeIn().css("display","block")})},user_search:function(){e(document.body).on("click.eddSelectUser",".edd_user_search_results a",function(t){t.preventDefault();var d=e(this).data("userid");p.vars.user_id.val(d)})},remove_user:function(){e(document.body).on("click","#disconnect-customer",function(t){t.preventDefault();var d=e('input[name="customerinfo[id]"]').val(),n={edd_action:"disconnect-userid",customer_id:d,_wpnonce:e("#edit-customer-info #_wpnonce").val()};e.post(ajaxurl,n,function(e){window.location.href=window.location.href},"json")})},cancel_edit:function(){e(document.body).on("click","#edd-edit-customer-cancel",function(t){t.preventDefault(),p.vars.customer_card_wrap_edit_item.hide(),p.vars.customer_card_wrap_editable.show(),e(".edd_user_search_results").html("")})},change_country:function(){e('select[name="customerinfo[country]"]').change(function(){var t=e(this);return data={action:"edd_get_shop_states",country:t.val(),field_name:"customerinfo[state]"},e.post(ajaxurl,data,function(e){"nostates"==e?p.vars.state_input.replaceWith('<input type="text" name="'+data.field_name+'" value="" class="edd-edit-toggles medium-text"/>'):p.vars.state_input.replaceWith(e)}),!1})},add_note:function(){e(document.body).on("click","#add-customer-note",function(t){t.preventDefault();var d={edd_action:"add-customer-note",customer_id:e("#customer-id").val(),customer_note:p.vars.note.val(),add_customer_note_nonce:e("#add_customer_note_nonce").val()};if(d.customer_note)e.ajax({type:"POST",data:d,url:ajaxurl,success:function(t){e("#edd-customer-notes").prepend(t),e(".edd-no-customer-notes").hide(),p.vars.note.val("")}}).fail(function(e){window.console&&window.console.log&&console.log(e)});else{var n=p.vars.note.css("border-color");p.vars.note.css("border-color","red"),setTimeout(function(){p.vars.note.css("border-color",n)},500)}})},delete_checked:function(){e("#edd-customer-delete-confirm").change(function(){var t=e("#edd-customer-delete-records"),d=e("#edd-delete-customer");e(this).prop("checked")?(t.attr("disabled",!1),d.attr("disabled",!1)):(t.attr("disabled",!0),t.prop("checked",!1),d.attr("disabled",!0))})}};p.init(),e(".edd-ajax-user-search").keyup(function(){var t=e(this).val(),d="";e(this).data("exclude")&&(d=e(this).data("exclude")),e(".edd-ajax").show(),data={action:"edd_search_users",user_name:t,exclude:d},document.body.style.cursor="wait",e.ajax({type:"POST",data:data,dataType:"json",url:ajaxurl,success:function(t){e(".edd-ajax").hide(),e(".edd_user_search_results").removeClass("hidden"),e(".edd_user_search_results span").html(""),e(t.results).appendTo(".edd_user_search_results span"),document.body.style.cursor="default"}})}),e(document.body).on("click.eddSelectUser",".edd_user_search_results span a",function(t){t.preventDefault();var d=e(this).data("login");e(".edd-ajax-user-search").val(d),e(".edd_user_search_results").addClass("hidden"),e(".edd_user_search_results span").html("")}),e(document.body).on("click.eddCancelUserSearch",".edd_user_search_results a.edd-ajax-user-cancel",function(t){t.preventDefault(),e(".edd-ajax-user-search").val(""),e(".edd_user_search_results").addClass("hidden"),e(".edd_user_search_results span").html("")}),e("#edd_dashboard_sales").length&&e.ajax({type:"GET",data:{action:"edd_load_dashboard_widget"},url:ajaxurl,success:function(t){e("#edd_dashboard_sales .inside").html(t)}}),e(document).on("keydown",".customer-note-input",function(t){13==t.keyCode&&(t.metaKey||t.ctrlKey)&&e("#add-customer-note").click()})});var eddFormatCurrency=function(e){var t=parseFloat(e),d=edd_vars.currency,n=edd_vars.currency_decimals;return t.toLocaleString(d,{style:"currency",currency:d,minimumFractionDigits:n,maximumFractionDigits:n})},eddFormatNumber=function(e){var t=parseFloat(e),d=edd_vars.currency;edd_vars.currency_decimals;return t.toLocaleString(d,{style:"decimal",minimumFractionDigits:0,maximumFractionDigits:0})},eddLabelFormatter=function(e,t){return'<div style="font-size:12px; text-align:center; padding:2px">'+e+"</div>"},eddLegendFormatterSales=function(e,t){var d=e.toLowerCase().replace(/\s/g,"-"),n='<div class="edd-legend-color" style="background-color: '+t.color+'"></div>',a='<div class="edd-pie-legend-item">'+e+": "+Math.round(t.percent)+"% ("+eddFormatNumber(t.data[0][1])+")</div>",i='<div id="'+t.edd_vars.id+d+'" class="edd-legend-item-wrapper">'+n+a+"</div>";return jQuery("#edd-pie-legend-"+t.edd_vars.id).append(i),i},eddLegendFormatterEarnings=function(e,t){var d=e.toLowerCase().replace(/\s/g,"-"),n='<div class="edd-legend-color" style="background-color: '+t.color+'"></div>',a='<div class="edd-pie-legend-item">'+e+": "+Math.round(t.percent)+"% ("+eddFormatCurrency(t.data[0][1])+")</div>",i='<div id="'+t.edd_vars.id+d+'" class="edd-legend-item-wrapper">'+n+a+"</div>";return jQuery("#edd-pie-legend-"+t.edd_vars.id).append(i),i};
1
+ jQuery(document).ready(function(e){var t={init:function(){this.add(),this.move(),this.remove(),this.type(),this.prices(),this.files(),this.updatePrices()},clone_repeatable:function(t){var d=highest=1;return t.parent().find("tr.edd_repeatable_row").each(function(){var t=e(this).data("key");parseInt(t)>highest&&(highest=t)}),d=highest+=1,clone=t.clone(),clone.find("select").each(function(){e(this).val(t.find('select[name="'+e(this).attr("name")+'"]').val())}),clone.removeClass("edd_add_blank"),clone.attr("data-key",d),clone.find("td input, td select, textarea").val(""),clone.find("input, select, textarea").each(function(){var t=e(this).attr("name"),n=e(this).attr("id");t&&(t=t.replace(/\[(\d+)\]/,"["+parseInt(d)+"]"),e(this).attr("name",t)),"undefined"!=typeof n&&(n=n.replace(/(\d+)/,parseInt(d)),e(this).attr("id",n))}),clone.find("span.edd_price_id").each(function(){e(this).text(parseInt(d))}),clone.find("span.edd_file_id").each(function(){e(this).text(parseInt(d))}),clone.find(".edd_repeatable_default_input").each(function(){e(this).val(parseInt(d)).removeAttr("checked")}),clone.find(".search-choice").remove(),clone.find(".chosen-container").remove(),clone},add:function(){e(document.body).on("click",".submit .edd_add_repeatable",function(d){d.preventDefault();var n=e(this),a=n.parent().parent().prev("tr"),i=t.clone_repeatable(a);i.insertAfter(a).find("input, textarea, select").filter(":visible").eq(0).focus(),i.find(".edd-select-chosen").chosen({inherit_select_classes:!0,placeholder_text_single:edd_vars.one_option,placeholder_text_multiple:edd_vars.one_or_more_option}),i.find(".edd-select-chosen").css("width","100%")})},move:function(){e(".edd_repeatable_table tbody").sortable({handle:".edd_draghandle",items:".edd_repeatable_row",opacity:.6,cursor:"move",axis:"y",update:function(){var t=0;e(this).find("tr").each(function(){e(this).find("input.edd_repeatable_index").each(function(){e(this).val(t)}),t++})}})},remove:function(){e(document.body).on("click",".edd_remove_repeatable",function(t){t.preventDefault();var d=e(this).parent().parent("tr"),n=d.parent().find("tr").length-1,a=e(this).data("type"),i="tr.edd_repeatable_"+a+"s";if("price"===a){var o=d.data("key");e('.edd_repeatable_condition_field option[value="'+o+'"]').remove()}if(n>1)e("input, select",d).val(""),d.fadeOut("fast").remove();else switch(a){case"price":alert(edd_vars.one_price_min);break;case"file":e("input, select",d).val("");break;default:alert(edd_vars.one_field_min)}e(i).each(function(t){e(this).find("input, select").each(function(){var d=e(this).attr("name");d=d.replace(/\[(\d+)\]/,"["+t+"]"),e(this).attr("name",d).attr("id",d)})})})},type:function(){e(document.body).on("change","#_edd_product_type",function(t){var d=e("#edd_products"),n=e("#edd_download_files"),a=e("#edd_download_limit_wrap");"bundle"===e(this).val()?(d.show(),n.hide(),a.hide()):(d.hide(),n.show(),a.show())})},prices:function(){e(document.body).on("change","#edd_variable_pricing",function(t){e(".edd_pricing_fields,.edd_repeatable_table .pricing").toggle()})},files:function(){if("undefined"==typeof wp||"1"!==edd_vars.new_media_ui)e(".edd_upload_file_button").length>0&&(window.formfield="",e(document.body).on("click",".edd_upload_file_button",function(t){if(t.preventDefault(),window.formfield=e(this).parent().prev(),window.tbframe_interval=setInterval(function(){jQuery("#TB_iframeContent").contents().find(".savesend .button").val(edd_vars.use_this_file).end().find("#insert-gallery, .wp-post-thumbnail").hide()},2e3),null!=edd_vars.post_id)var d="post_id="+edd_vars.post_id+"&";tb_show(edd_vars.add_new_download,"media-upload.php?"+d+"TB_iframe=true")}),window.edd_send_to_editor=window.send_to_editor,window.send_to_editor=function(t){window.formfield?(imgurl=e("a","<div>"+t+"</div>").attr("href"),window.formfield.val(imgurl),window.clearInterval(window.tbframe_interval),tb_remove()):window.edd_send_to_editor(t),window.send_to_editor=window.edd_send_to_editor,window.formfield="",window.imagefield=!1});else{var d;window.formfield="",e(document.body).on("click",".edd_upload_file_button",function(n){n.preventDefault();var a=e(this);return window.formfield=e(this).closest(".edd_repeatable_upload_wrapper"),d?void d.open():(d=wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:a.data("uploader-title"),button:{text:a.data("uploader-button-text")},multiple:"0"==e(this).data("multiple")?!1:!0}),d.on("menu:render:default",function(e){var t={};e.unset("library-separator"),e.unset("gallery"),e.unset("featured-image"),e.unset("embed"),e.set(t)}),d.on("insert",function(){var e=d.state().get("selection");e.each(function(e,d){if(e=e.toJSON(),0===d)window.formfield.find(".edd_repeatable_attachment_id_field").val(e.id),window.formfield.find(".edd_repeatable_upload_field").val(e.url),window.formfield.find(".edd_repeatable_name_field").val(e.title);else{var n=window.formfield,a=t.clone_repeatable(n);a.find(".edd_repeatable_attachment_id_field").val(e.id),a.find(".edd_repeatable_upload_field").val(e.url),e.title.length>0?a.find(".edd_repeatable_name_field").val(e.title):a.find(".edd_repeatable_name_field").val(e.filename),a.insertAfter(n)}})}),void d.open())});var d;window.formfield=""}},updatePrices:function(){e("#edd_price_fields").on("keyup",".edd_variable_prices_name",function(){var t=e(this).parents("tr").data("key"),d=e(this).val(),n=e(".edd_repeatable_condition_field option[value="+t+"]");n.length>0?n.text(d):e(".edd_repeatable_condition_field").append(e("<option></option>").attr("value",t).text(d))})}};t.init();var d=e(".edd_datepicker");if(d.length>0){var n="mm/dd/yy";d.datepicker({dateFormat:n})}var a={init:function(){this.edit_address(),this.remove_download(),this.add_download(),this.new_customer(),this.recalculate_total(),this.variable_prices_check(),this.add_note(),this.remove_note(),this.resend_receipt(),this.copy_download_link()},edit_address:function(){e('select[name="edd-payment-address[0][country]"]').change(function(){var t=e(this);return data={action:"edd_get_shop_states",country:t.val(),field_name:"edd-payment-address[0][state]"},e.post(ajaxurl,data,function(t){var d=e("#edd-order-address-state-wrap select, #edd-order-address-state-wrap input");"nostates"==t?d.replaceWith('<input type="text" name="edd-payment-address[0][state]" value="" class="edd-edit-toggles medium-text"/>'):d.replaceWith(t)}),!1})},remove_download:function(){e("#edd-purchased-files").on("click",".edd-order-remove-download",function(){var t=e(document.body).find("#edd-purchased-files > .row").length;if(1===t)return alert(edd_vars.one_download_min),!1;if(confirm(edd_vars.delete_payment_download)){var d=e(this).data("key"),n=(e(".edd-payment-id").val(),e('input[name="edd-payment-details-downloads['+d+'][id]"]').val()),a=e('input[name="edd-payment-details-downloads['+d+'][price_id]"]').val(),i=e('input[name="edd-payment-details-downloads['+d+'][quantity]"]').val(),o=e('input[name="edd-payment-details-downloads['+d+'][amount]"]').val(),r=e('input[name="edd-payment-removed"]').val();r=e.parseJSON(r),r.length<1&&(r={});var s=[{id:n,price_id:a,quantity:i,amount:o}];r[d]=s,e('input[name="edd-payment-removed"]').val(JSON.stringify(r)),e(this).parent().parent().parent().remove(),e("#edd-payment-downloads-changed").val(1),e(".edd-order-payment-recalc-totals").show()}return!1})},new_customer:function(){e("#edd-customer-details").on("click",".edd-payment-new-customer, .edd-payment-new-customer-cancel",function(t){t.preventDefault(),e(".customer-info").toggle(),e(".new-customer").toggle();var d=e("#edd-new-customer");e(".new-customer").is(":visible")?d.val(1):d.val(0)})},add_download:function(){e("#edd-purchased-files").on("click","#edd-order-add-download",function(t){t.preventDefault();var d=e("#edd_order_download_select"),n=e("#edd-order-download-quantity"),a=e("#edd-order-download-amount"),i=e(".edd_price_options_select option:selected"),o=d.val(),r=d.find(":selected").text(),s=n.val(),c=a.val(),l=i.val(),u=i.text();if(1>o)return!1;if(c||(c=0),c=parseFloat(c),isNaN(c))return alert(edd_vars.numeric_item_price),!1;var p=c;if("1"===edd_vars.quantities_enabled){if(isNaN(parseInt(s)))return alert(edd_vars.numeric_quantity),!1;c*=s}c=c.toFixed(edd_vars.currency_decimals);var _=c+edd_vars.currency_sign;"before"===edd_vars.currency_pos&&(_=edd_vars.currency_sign+c),u&&(r=r+" - "+u);var f=e("#edd-purchased-files div.row").length,m=e("#edd-purchased-files div.row:last").clone();m.find(".download span").html('<a href="post.php?post='+o+'&action=edit"></a>'),m.find(".download span a").text(r),m.find(".price-text").text(_),m.find(".item-quantity").text(s),m.find(".item-price").text(edd_vars.currency_sign+(c/s).toFixed(edd_vars.currency_decimals)),m.find("input.edd-payment-details-download-id").val(o),m.find("input.edd-payment-details-download-price-id").val(l),m.find("input.edd-payment-details-download-item-price").val(p),m.find("input.edd-payment-details-download-amount").val(c),m.find("input.edd-payment-details-download-quantity").val(s),m.find("input.edd-payment-details-download-has-log").val(0),m.find("input").each(function(){var t=e(this).attr("name");t=t.replace(/\[(\d+)\]/,"["+parseInt(f)+"]"),e(this).attr("name",t).attr("id",t)}),e("#edd-payment-downloads-changed").val(1),e(m).insertAfter("#edd-purchased-files div.row:last"),e(".edd-order-payment-recalc-totals").show()})},recalculate_total:function(){e("#edd-order-recalc-total").on("click",function(t){t.preventDefault();var d=0,n=e("#edd-purchased-files .row .edd-payment-details-download-amount");n.length&&n.each(function(){d+=parseFloat(e(this).val())}),e(".edd-payment-fees").length&&e(".edd-payment-fees span.fee-amount").each(function(){d+=parseFloat(e(this).data("fee"))}),e("input[name=edd-payment-total]").val(d.toFixed(edd_vars.currency_decimals))})},variable_prices_check:function(){e("#edd-purchased-files").on("change","select#edd_order_download_select",function(){var t=e(this),d=t.val();if(parseInt(d)>0){var n={action:"edd_check_for_download_price_variations",download_id:d};e.ajax({type:"POST",data:n,url:ajaxurl,success:function(d){e(".edd_price_options_select").remove(),e(d).insertAfter(t.next())}}).fail(function(e){window.console&&window.console.log&&console.log(e)})}})},add_note:function(){e("#edd-add-payment-note").on("click",function(t){t.preventDefault();var d={action:"edd_insert_payment_note",payment_id:e(this).data("payment-id"),note:e("#edd-payment-note").val()};if(d.note)e.ajax({type:"POST",data:d,url:ajaxurl,success:function(t){e("#edd-payment-notes-inner").append(t),e(".edd-no-payment-notes").hide(),e("#edd-payment-note").val("")}}).fail(function(e){window.console&&window.console.log&&console.log(e)});else{var n=e("#edd-payment-note").css("border-color");e("#edd-payment-note").css("border-color","red"),setTimeout(function(){e("#edd-payment-note").css("border-color",n)},500)}})},remove_note:function(){e(document.body).on("click",".edd-delete-payment-note",function(t){if(t.preventDefault(),confirm(edd_vars.delete_payment_note)){var d={action:"edd_delete_payment_note",payment_id:e(this).data("payment-id"),note_id:e(this).data("note-id")};return e.ajax({type:"POST",data:d,url:ajaxurl,success:function(t){return e("#edd-payment-note-"+d.note_id).remove(),e(".edd-payment-note").length||e(".edd-no-payment-notes").show(),!1}}).fail(function(e){window.console&&window.console.log&&console.log(e)}),!0}})},resend_receipt:function(){e(document.body).on("click","#edd-resend-receipt",function(e){return confirm(edd_vars.resend_receipt)})},copy_download_link:function(){e(document.body).on("click",".edd-copy-download-link",function(t){t.preventDefault();var d=e(this),n={action:"edd_get_file_download_link",payment_id:e('input[name="edd_payment_id"]').val(),download_id:d.data("download-id"),price_id:d.data("price-id")};e.ajax({type:"POST",data:n,url:ajaxurl,success:function(t){return e("#edd-download-link").dialog({width:400}).html('<textarea rows="10" cols="40" id="edd-download-link-textarea">'+t+"</textarea>"),e("#edd-download-link-textarea").focus().select(),!1}}).fail(function(e){window.console&&window.console.log&&console.log(e)})})}};a.init();var i={init:function(){this.type_select(),this.product_requirements()},type_select:function(){e("#edd-edit-discount #edd-type, #edd-add-discount #edd-type").change(function(){e(".edd-amount-description").toggle()})},product_requirements:function(){e("#products").change(function(){var t=e("#edd-discount-product-conditions");e(this).val()?t.show():t.hide()})}};i.init();var o={init:function(){this.date_options(),this.customers_export()},date_options:function(){e("#edd-graphs-date-options").change(function(){var t=e(this),d=e("#edd-date-range-options");"other"===t.val()?d.show():d.hide()})},customers_export:function(){e("#edd_customer_export_download").change(function(){var t=e(this),d=e("option:selected",t).val(),n=e("#edd_customer_export_option");if("0"===t.val()?n.show():n.hide(),0!=parseInt(d)){var a={action:"edd_check_for_download_price_variations",download_id:d,all_prices:!0},i=e(".edd_price_options_select");e.post(ajaxurl,a,function(t){i.remove(),e("#edd_customer_export_download_chosen").after(t)})}else i.remove()})}};o.init();var r={init:function(){this.general(),this.taxes(),this.emails(),this.misc()},general:function(){var t=e(".edd-color-picker");if(t.length&&t.wpColorPicker(),"undefined"==typeof wp||"1"!==edd_vars.new_media_ui){var d=e(".edd_settings_upload_button");d.length>0&&(window.formfield="",e(document.body).on("click",d,function(t){t.preventDefault(),window.formfield=e(this).parent().prev(),window.tbframe_interval=setInterval(function(){jQuery("#TB_iframeContent").contents().find(".savesend .button").val(edd_vars.use_this_file).end().find("#insert-gallery, .wp-post-thumbnail").hide()},2e3),tb_show(edd_vars.add_new_download,"media-upload.php?TB_iframe=true")}),window.edd_send_to_editor=window.send_to_editor,window.send_to_editor=function(t){window.formfield?(imgurl=e("a","<div>"+t+"</div>").attr("href"),window.formfield.val(imgurl),window.clearInterval(window.tbframe_interval),tb_remove()):window.edd_send_to_editor(t),window.send_to_editor=window.edd_send_to_editor,window.formfield="",window.imagefield=!1})}else{var n;window.formfield="",e(document.body).on("click",".edd_settings_upload_button",function(t){t.preventDefault();var d=e(this);return window.formfield=e(this).parent().prev(),n?void n.open():(n=wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:d.data("uploader_title"),button:{text:d.data("uploader_button_text")},multiple:!1}),n.on("menu:render:default",function(e){var t={};e.unset("library-separator"),e.unset("gallery"),e.unset("featured-image"),e.unset("embed"),e.set(t)}),n.on("insert",function(){var e=n.state().get("selection");e.each(function(e,t){e=e.toJSON(),window.formfield.val(e.url)})}),void n.open())});var n;window.formfield=""}},taxes:function(){var t=e("select.edd-no-states");t.length&&t.closest("tr").hide(),e('select[name="edd_settings[base_country]"]').change(function(){var t=e(this),d=t.closest("tr");return data={action:"edd_get_shop_states",country:e(this).val(),field_name:"edd_settings[base_state]"},e.post(ajaxurl,data,function(e){"nostates"==e?d.next().hide():(d.next().show(),d.next().find("select").replaceWith(e))}),!1}),e(document.body).on("change","#edd_tax_rates select.edd-tax-country",function(){var t=e(this);return data={action:"edd_get_shop_states",country:e(this).val(),field_name:t.attr("name").replace("country","state")},e.post(ajaxurl,data,function(e){if("nostates"==e){var d='<input type="text" name="'+data.field_name+'" value=""/>';t.parent().next().find("select").replaceWith(d)}else t.parent().next().find("input,select").show(),t.parent().next().find("input,select").replaceWith(e)}),!1}),e("#edd_add_tax_rate").on("click",function(){var t=e("#edd_tax_rates tr:last"),d=t.clone(),n=t.parent().find("tr").length;return d.find("td input").not(":input[type=checkbox]").val(""),d.find('td [type="checkbox"]').attr("checked",!1),d.find("input, select").each(function(){var t=e(this).attr("name");t=t.replace(/\[(\d+)\]/,"["+parseInt(n)+"]"),e(this).attr("name",t).attr("id",t)}),d.find("label").each(function(){var t=e(this).attr("for");t=t.replace(/\[(\d+)\]/,"["+parseInt(n)+"]"),e(this).attr("for",t)}),d.insertAfter(t),!1}),e(document.body).on("click","#edd_tax_rates .edd_remove_tax_rate",function(){if(confirm(edd_vars.delete_tax_rate)){var t=e("#edd_tax_rates tr:visible"),d=t.length;2===d?(e("#edd_tax_rates select").val(""),e('#edd_tax_rates input[type="text"]').val(""),e('#edd_tax_rates input[type="number"]').val(""),e('#edd_tax_rates input[type="checkbox"]').attr("checked",!1)):e(this).closest("tr").remove(),e("#edd_tax_rates tr").each(function(t){e(this).children().find("input, select").each(function(){var d=e(this).attr("name");d=d.replace(/\[(\d+)\]/,"["+(t-1)+"]"),e(this).attr("name",d).attr("id",d)})})}return!1})},emails:function(){var t=e("#email-preview-wrap");if(t.length){var d=e("#email-preview");t.colorbox({inline:!0,href:d,width:"80%",height:"auto"})}},misc:function(){var t=e('select[name="edd_settings[download_method]"]'),d=t.parent().parent().next();"direct"==t.val()&&(d.hide(),d.find("input").prop("checked",!1)),t.on("change",function(){"direct"==e(this).val()?(d.hide(),d.find("input").prop("checked",!1)):d.show()})}};r.init(),e(".download_page_edd-payment-history .row-actions .delete a").on("click",function(){return confirm(edd_vars.delete_payment)?!0:!1}),e("#the-list").on("click",".editinline",function(){var t=e(this).closest("tr").attr("id");t=t.replace("post-","");var d=e("#post-"+t),n=d.find(".column-price .downloadprice-"+t).val();n!=e("#post-"+t+".column-price .downloadprice-"+t).val()?e(".regprice","#edd-download-data").val(n).attr("disabled",!1):e(".regprice","#edd-download-data").val(edd_vars.quick_edit_warning).attr("disabled","disabled")}),e(document.body).on("click","#bulk_edit",function(){var t=e("#bulk-edit"),d=new Array;t.find("#bulk-titles").children().each(function(){d.push(e(this).attr("id").replace(/^(ttle)/i,""))});var n=e('#edd-download-data input[name="_edd_regprice"]').val(),a={action:"edd_save_bulk_edit",edd_bulk_nonce:d,post_ids:d,price:n};e.post(ajaxurl,a)}),e(".edd-select-chosen").chosen({inherit_select_classes:!0,placeholder_text_single:edd_vars.one_option,placeholder_text_multiple:edd_vars.one_or_more_option}),e(".chosen-choices").on("click",function(){e(this).children("li").children("input").attr("placeholder",edd_vars.type_to_search)});var s,c=342;e(document.body).on("keyup",".edd-select.chosen-container .chosen-search input, .edd-select.chosen-container .search-field input",function(t){var d=e(this).val(),n=e(this).closest(".edd-select-chosen"),a=n.attr("id").replace("_chosen",""),i=n.hasClass("no-bundles"),o=(t.which,"edd_download_search");n.prev().data("search-type")&&(o="edd_"+n.prev().data("search-type")+"_search"),d.length<=3&&"edd_download_search"==o||16==t.which||13==t.which||91==t.which||17==t.which||37==t.which||38==t.which||39==t.which||40==t.which||(clearTimeout(s),s=setTimeout(function(){e.ajax({type:"GET",url:ajaxurl,data:{action:o,s:d,current_id:edd_vars.post_id,no_bundles:i},dataType:"json",beforeSend:function(){e("ul.chosen-results").empty()},success:function(t){e("#"+a+" option:not(:selected)").remove(),e.each(t,function(t,d){e("#"+a+' option[value="'+d.id+'"]').length||e("#"+a).prepend('<option value="'+d.id+'">'+d.name+"</option>")}),e(".edd-select-chosen").trigger("chosen:updated"),e("#"+a).next().find("input").val(d)}}).fail(function(e){window.console&&window.console.log&&console.log(e)}).done(function(e){})},c))}),e("#post").on("click",".edd-thickbox",function(){e(".edd-select-chosen","#choose-download").css("width","100%")});var l={init:function(){this.revoke_api_key(),this.regenerate_api_key(),this.create_api_key(),this.recount_stats()},revoke_api_key:function(){e(document.body).on("click",".edd-revoke-api-key",function(e){return confirm(edd_vars.revoke_api_key)})},regenerate_api_key:function(){e(document.body).on("click",".edd-regenerate-api-key",function(e){return confirm(edd_vars.regenerate_api_key)})},create_api_key:function(){e(document.body).on("submit","#api-key-generate-form",function(t){var d=e('input[type="text"][name="user_id"]');d.css("border-color","#ddd");var n=d.val();return n.length<1||0==n?(d.css("border-color","#ff0000"),!1):void 0})},recount_stats:function(){e("body").on("change","#recount-stats-type",function(){var t=e("#edd-tools-recount-form"),d=e("option:selected",this).data("type"),n=e("#recount-stats-submit"),a=e("#tools-product-dropdown");if(t.find(".notice-wrap").remove(),n.removeClass("button-disabled").attr("disabled",!1),a.hide(),e(".edd-recount-stats-descriptions span").hide(),"recount-download"===d)a.show(),a.find(".edd-select-chosen").css("width","auto");else if("reset-stats"===d){t.append('<div class="notice-wrap"></div>');var i=t.find(".notice-wrap");i.html('<div class="notice notice-warning"><p><input type="checkbox" id="confirm-reset" name="confirm_reset_store" value="1" /> <label for="confirm-reset">'+edd_vars.reset_stats_warn+"</label></p></div>"),e("#recount-stats-submit").addClass("button-disabled").attr("disabled","disabled")}else a.hide(),a.val(0);e("#"+d).show()}),e("body").on("change","#confirm-reset",function(){var t=e(this).is(":checked");t?e("#recount-stats-submit").removeClass("button-disabled").removeAttr("disabled"):e("#recount-stats-submit").addClass("button-disabled").attr("disabled","disabled")}),e("#edd-tools-recount-form").submit(function(t){var d=e("#recount-stats-type").val(),n=e(this),a=e("option:selected",this).data("type");if("reset-stats"===a){var i=e("#confirm-reset").is(":checked");if(i)return!0;r=!0}n.find(".notice-wrap").remove(),n.append('<div class="notice-wrap"></div>');var o=n.find(".notice-wrap"),r=!1;if((null===d||0===d)&&(o.html('<div class="updated error"><p>'+edd_vars.batch_export_no_class+"</p></div>"),r=!0),"recount-download"===a){var s=e('select[name="download_id"]').val();0==s&&(o.html('<div class="updated error"><p>'+edd_vars.batch_export_no_reqs+"</p></div>"),r=!0)}return r?(n.find(".button-disabled").removeClass("button-disabled"),!1):void 0})}};l.init();var u={init:function(){this.submit(),this.dismiss_message()},submit:function(){var t=this;e(document.body).on("submit",".edd-export-form",function(d){d.preventDefault();var n=e(this).find('input[type="submit"]');if(!n.hasClass("button-disabled")){var a=e(this).serialize();n.addClass("button-disabled"),e(this).find(".notice-wrap").remove(),e(this).append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),t.process_step(1,a,t)}})},process_step:function(t,d,n){e.ajax({type:"POST",url:ajaxurl,data:{form:d,action:"edd_do_ajax_export",step:t},dataType:"json",success:function(t){if("done"==t.step||t.error||t.success){var a=e(".edd-export-form").find(".edd-progress").parent().parent(),i=a.find(".notice-wrap");if(a.find(".button-disabled").removeClass("button-disabled"),t.error){var o=t.message;i.html('<div class="updated error"><p>'+o+"</p></div>")}else if(t.success){var r=t.message;i.html('<div id="edd-batch-success" class="updated notice is-dismissible"><p>'+r+'<span class="notice-dismiss"></span></p></div>')}else i.remove(),window.location=t.url}else e(".edd-progress div").animate({width:t.percentage+"%"},50,function(){}),n.process_step(parseInt(t.step),d,n)}}).fail(function(e){window.console&&window.console.log&&console.log(e)})},dismiss_message:function(){e("body").on("click","#edd-batch-success .notice-dismiss",function(){e("#edd-batch-success").parent().slideUp("fast")})}};u.init();var p={vars:{customer_card_wrap_editable:e(".edd-customer-card-wrapper .editable"),customer_card_wrap_edit_item:e(".edd-customer-card-wrapper .edit-item"),user_id:e('input[name="customerinfo[user_id]"]'),state_input:e(':input[name="customerinfo[state]"]'),note:e("#customer-note")},init:function(){this.edit_customer(),this.user_search(),this.remove_user(),this.cancel_edit(),this.change_country(),this.add_note(),this.delete_checked()},edit_customer:function(){e(document.body).on("click","#edit-customer",function(e){e.preventDefault(),p.vars.customer_card_wrap_editable.hide(),p.vars.customer_card_wrap_edit_item.fadeIn().css("display","block")})},user_search:function(){e(document.body).on("click.eddSelectUser",".edd_user_search_results a",function(t){t.preventDefault();var d=e(this).data("userid");p.vars.user_id.val(d)})},remove_user:function(){e(document.body).on("click","#disconnect-customer",function(t){t.preventDefault();var d=e('input[name="customerinfo[id]"]').val(),n={edd_action:"disconnect-userid",customer_id:d,_wpnonce:e("#edit-customer-info #_wpnonce").val()};e.post(ajaxurl,n,function(e){window.location.href=window.location.href},"json")})},cancel_edit:function(){e(document.body).on("click","#edd-edit-customer-cancel",function(t){t.preventDefault(),p.vars.customer_card_wrap_edit_item.hide(),p.vars.customer_card_wrap_editable.show(),e(".edd_user_search_results").html("")})},change_country:function(){e('select[name="customerinfo[country]"]').change(function(){var t=e(this);return data={action:"edd_get_shop_states",country:t.val(),field_name:"customerinfo[state]"},e.post(ajaxurl,data,function(e){"nostates"==e?p.vars.state_input.replaceWith('<input type="text" name="'+data.field_name+'" value="" class="edd-edit-toggles medium-text"/>'):p.vars.state_input.replaceWith(e)}),!1})},add_note:function(){e(document.body).on("click","#add-customer-note",function(t){t.preventDefault();var d={edd_action:"add-customer-note",customer_id:e("#customer-id").val(),customer_note:p.vars.note.val(),add_customer_note_nonce:e("#add_customer_note_nonce").val()};if(d.customer_note)e.ajax({type:"POST",data:d,url:ajaxurl,success:function(t){e("#edd-customer-notes").prepend(t),e(".edd-no-customer-notes").hide(),p.vars.note.val("")}}).fail(function(e){window.console&&window.console.log&&console.log(e)});else{var n=p.vars.note.css("border-color");p.vars.note.css("border-color","red"),setTimeout(function(){p.vars.note.css("border-color",n)},500)}})},delete_checked:function(){e("#edd-customer-delete-confirm").change(function(){var t=e("#edd-customer-delete-records"),d=e("#edd-delete-customer");e(this).prop("checked")?(t.attr("disabled",!1),d.attr("disabled",!1)):(t.attr("disabled",!0),t.prop("checked",!1),d.attr("disabled",!0))})}};p.init(),e(".edd-ajax-user-search").keyup(function(){var t=e(this).val(),d="";e(this).data("exclude")&&(d=e(this).data("exclude")),e(".edd-ajax").show(),data={action:"edd_search_users",user_name:t,exclude:d},document.body.style.cursor="wait",e.ajax({type:"POST",data:data,dataType:"json",url:ajaxurl,success:function(t){e(".edd-ajax").hide(),e(".edd_user_search_results").removeClass("hidden"),e(".edd_user_search_results span").html(""),e(t.results).appendTo(".edd_user_search_results span"),document.body.style.cursor="default"}})}),e(document.body).on("click.eddSelectUser",".edd_user_search_results span a",function(t){t.preventDefault();var d=e(this).data("login");e(".edd-ajax-user-search").val(d),e(".edd_user_search_results").addClass("hidden"),e(".edd_user_search_results span").html("")}),e(document.body).on("click.eddCancelUserSearch",".edd_user_search_results a.edd-ajax-user-cancel",function(t){t.preventDefault(),e(".edd-ajax-user-search").val(""),e(".edd_user_search_results").addClass("hidden"),e(".edd_user_search_results span").html("")}),e("#edd_dashboard_sales").length&&e.ajax({type:"GET",data:{action:"edd_load_dashboard_widget"},url:ajaxurl,success:function(t){e("#edd_dashboard_sales .inside").html(t)}}),e(document).on("keydown",".customer-note-input",function(t){13==t.keyCode&&(t.metaKey||t.ctrlKey)&&e("#add-customer-note").click()})});var eddFormatCurrency=function(e){var t=parseFloat(e),d=edd_vars.currency,n=edd_vars.currency_decimals;return t.toLocaleString(d,{style:"currency",currency:d,minimumFractionDigits:n,maximumFractionDigits:n})},eddFormatNumber=function(e){var t=parseFloat(e),d=edd_vars.currency;edd_vars.currency_decimals;return t.toLocaleString(d,{style:"decimal",minimumFractionDigits:0,maximumFractionDigits:0})},eddLabelFormatter=function(e,t){return'<div style="font-size:12px; text-align:center; padding:2px">'+e+"</div>"},eddLegendFormatterSales=function(e,t){var d=e.toLowerCase().replace(/\s/g,"-"),n='<div class="edd-legend-color" style="background-color: '+t.color+'"></div>',a='<div class="edd-pie-legend-item">'+e+": "+Math.round(t.percent)+"% ("+eddFormatNumber(t.data[0][1])+")</div>",i='<div id="'+t.edd_vars.id+d+'" class="edd-legend-item-wrapper">'+n+a+"</div>";return jQuery("#edd-pie-legend-"+t.edd_vars.id).append(i),i},eddLegendFormatterEarnings=function(e,t){var d=e.toLowerCase().replace(/\s/g,"-"),n='<div class="edd-legend-color" style="background-color: '+t.color+'"></div>',a='<div class="edd-pie-legend-item">'+e+": "+Math.round(t.percent)+"% ("+eddFormatCurrency(t.data[0][1])+")</div>",i='<div id="'+t.edd_vars.id+d+'" class="edd-legend-item-wrapper">'+n+a+"</div>";return jQuery("#edd-pie-legend-"+t.edd_vars.id).append(i),i};
assets/js/edd-ajax.js CHANGED
@@ -40,7 +40,7 @@ jQuery(document).ready(function ($) {
40
  $(this).attr('data-cart-item', cart_item_counter);
41
  cart_item_counter = cart_item_counter + 1;
42
  });
43
-
44
  // Check to see if the purchase form(s) for this download is present on this page
45
  if( $( '[id^=edd_purchase_' + id + ']' ).length ) {
46
  $( '[id^=edd_purchase_' + id + '] .edd_go_to_checkout' ).hide();
@@ -374,7 +374,17 @@ function edd_load_gateway( payment_mode ) {
374
  jQuery('.edd-cart-ajax').show();
375
  jQuery('#edd_purchase_form_wrap').html('<img src="' + edd_scripts.ajax_loader + '"/>');
376
 
377
- jQuery.post(edd_scripts.ajaxurl + '?payment-mode=' + payment_mode, { action: 'edd_load_gateway', edd_payment_mode: payment_mode },
 
 
 
 
 
 
 
 
 
 
378
  function(response){
379
  jQuery('#edd_purchase_form_wrap').html(response);
380
  jQuery('.edd-no-js').hide();
40
  $(this).attr('data-cart-item', cart_item_counter);
41
  cart_item_counter = cart_item_counter + 1;
42
  });
43
+
44
  // Check to see if the purchase form(s) for this download is present on this page
45
  if( $( '[id^=edd_purchase_' + id + ']' ).length ) {
46
  $( '[id^=edd_purchase_' + id + '] .edd_go_to_checkout' ).hide();
374
  jQuery('.edd-cart-ajax').show();
375
  jQuery('#edd_purchase_form_wrap').html('<img src="' + edd_scripts.ajax_loader + '"/>');
376
 
377
+ var url = edd_scripts.ajaxurl;
378
+
379
+ if ( url.indexOf( '?' ) > 0 ) {
380
+ url = url + '&';
381
+ } else {
382
+ url = url + '?';
383
+ }
384
+
385
+ url = url + 'payment-mode=' + payment_mode;
386
+
387
+ jQuery.post(url, { action: 'edd_load_gateway', edd_payment_mode: payment_mode },
388
  function(response){
389
  jQuery('#edd_purchase_form_wrap').html(response);
390
  jQuery('.edd-no-js').hide();
assets/js/edd-ajax.min.js CHANGED
@@ -1 +1 @@
1
- function edd_load_gateway(e){jQuery(".edd-cart-ajax").show(),jQuery("#edd_purchase_form_wrap").html('<img src="'+edd_scripts.ajax_loader+'"/>'),jQuery.post(edd_scripts.ajaxurl+"?payment-mode="+e,{action:"edd_load_gateway",edd_payment_mode:e},function(e){jQuery("#edd_purchase_form_wrap").html(e),jQuery(".edd-no-js").hide()})}var edd_scripts;jQuery(document).ready(function(e){e(".edd-no-js").hide(),e("a.edd-add-to-cart").addClass("edd-has-js"),e("body").on("click.eddRemoveFromCart",".edd-remove-from-cart",function(d){var t=e(this),a=t.data("cart-item"),i=t.data("action"),r=t.data("download-id"),o={action:i,cart_item:a};return e.ajax({type:"POST",data:o,dataType:"json",url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(d){if(d.removed){if(parseInt(edd_scripts.position_in_cart,10)===parseInt(a,10))return window.location=window.location,!1;e(".edd-cart").find("[data-cart-item='"+a+"']").parent().remove();var t=0;e(".edd-cart").find("[data-cart-item]").each(function(){e(this).attr("data-cart-item",t),t+=1}),e("[id^=edd_purchase_"+r+"]").length&&(e("[id^=edd_purchase_"+r+"] .edd_go_to_checkout").hide(),e("[id^=edd_purchase_"+r+"] a.edd-add-to-cart").show().removeAttr("data-edd-loading"),"1"==edd_scripts.quantities_enabled&&e("[id^=edd_purchase_"+r+"] .edd_download_quantity_wrapper").show()),e("span.edd-cart-quantity").text(d.cart_quantity),e("body").trigger("edd_quantity_updated",[d.cart_quantity]),edd_scripts.taxes_enabled&&(e(".cart_item.edd_subtotal span").html(d.subtotal),e(".cart_item.edd_cart_tax span").html(d.tax)),e(".cart_item.edd_total span").html(d.total),0==d.cart_quantity&&(e(".cart_item.edd_subtotal,.edd-cart-number-of-items,.cart_item.edd_checkout,.cart_item.edd_cart_tax,.cart_item.edd_total").hide(),e(".edd-cart").append('<li class="cart_item empty">'+edd_scripts.empty_cart_message+"</li>")),e("body").trigger("edd_cart_item_removed",[d])}}}).fail(function(e){window.console&&window.console.log&&console.log(e)}).done(function(e){}),!1}),e("body").on("click.eddAddToCart",".edd-add-to-cart",function(d){d.preventDefault();var t=e(this),a=t.closest("form");t.prop("disabled",!0);var i=t.find(".edd-loading"),r=t.closest("div"),o=i.width(),c=i.height();t.attr("data-edd-loading",""),i.css({"margin-left":o/-2,"margin-top":c/-2});var a=t.parents("form").last(),n=t.data("download-id"),s=t.data("variable-price"),_=t.data("price-mode"),l=[],u=!0;if("yes"==s)if(a.find(".edd_price_option_"+n).is("input:hidden"))l[0]=e(".edd_price_option_"+n,a).val(),a.find(".edd-submit").data("price")&&a.find(".edd-submit").data("price")>0&&(u=!1);else{if(!a.find(".edd_price_option_"+n+":checked",a).length)return t.removeAttr("data-edd-loading"),void alert(edd_scripts.select_option);a.find(".edd_price_option_"+n+":checked",a).each(function(d){if(l[d]=e(this).val(),!0===u){var t=e(this).data("price");t&&t>0&&(u=!1)}})}else l[0]=n,t.data("price")&&t.data("price")>0&&(u=!1);if(u&&a.find(".edd_action_input").val("add_to_cart"),"straight_to_gateway"==a.find(".edd_action_input").val())return a.submit(),!0;var p=t.data("action"),m={action:p,download_id:n,price_ids:l,post_data:e(a).serialize()};return e.ajax({type:"POST",data:m,dataType:"json",url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(d){if("1"==edd_scripts.redirect_to_checkout&&"1"==a.find("#edd_redirect_to_checkout").val())window.location=edd_scripts.checkout_page;else{"1"===edd_scripts.taxes_enabled&&(e(".cart_item.edd_subtotal").show(),e(".cart_item.edd_cart_tax").show()),e(".cart_item.edd_total").show(),e(".cart_item.edd_checkout").show(),e(".cart_item.empty").length?(e(d.cart_item).insertBefore(".edd-cart-meta:first"),e(".cart_item.empty").hide()):e(d.cart_item).insertBefore(".edd-cart-meta:first"),"1"===edd_scripts.taxes_enabled&&(e(".edd-cart-meta.edd_subtotal span").html(d.subtotal),e(".edd-cart-meta.edd_cart_tax span").html(d.tax)),e(".edd-cart-meta.edd_total span").html(d.total);e(".edd-cart-item-title",d.cart_item).length;if(e("span.edd-cart-quantity").each(function(){e(this).text(d.cart_quantity),e("body").trigger("edd_quantity_updated",[d.cart_quantity])}),"none"==e(".edd-cart-number-of-items").css("display")&&e(".edd-cart-number-of-items").show("slow"),("no"==s||"multi"!=_)&&(e("a.edd-add-to-cart",r).toggle(),e(".edd_go_to_checkout",r).css("display","inline-block")),"multi"==_&&t.removeAttr("data-edd-loading"),e(".edd_download_purchase_form").length&&("no"==s||!a.find(".edd_price_option_"+n).is("input:hidden"))){var i=e('.edd_download_purchase_form *[data-download-id="'+n+'"]').parents("form");e("a.edd-add-to-cart",i).hide(),"multi"!=_&&i.find(".edd_download_quantity_wrapper").slideUp(),e(".edd_go_to_checkout",i).show().removeAttr("data-edd-loading")}"incart"!=d&&(e(".edd-cart-added-alert",r).fadeIn(),setTimeout(function(){e(".edd-cart-added-alert",r).fadeOut()},3e3)),t.prop("disabled",!1),e("body").trigger("edd_cart_item_added",[d])}}}).fail(function(e){window.console&&window.console.log&&console.log(e)}).done(function(e){}),!1}),e("#edd_checkout_form_wrap").on("click",".edd_checkout_register_login",function(){var d=e(this),t={action:d.data("action")};return e(".edd-cart-ajax").show(),e.post(edd_scripts.ajaxurl,t,function(d){e("#edd_checkout_login_register").html(edd_scripts.loading),e("#edd_checkout_login_register").html(d),e(".edd-cart-ajax").hide()}),!1}),e(document).on("click","#edd_purchase_form #edd_login_fields input[type=submit]",function(d){d.preventDefault();var t=e(this).val();e(this).val(edd_global_vars.purchase_loading),e(this).after('<span class="edd-cart-ajax"><i class="edd-icon-spinner edd-icon-spin"></i></span>');var a={action:"edd_process_checkout_login",edd_ajax:1,edd_user_login:e("#edd_login_fields #edd_user_login").val(),edd_user_pass:e("#edd_login_fields #edd_user_pass").val()};e.post(edd_global_vars.ajaxurl,a,function(d){"success"==e.trim(d)?(e(".edd_errors").remove(),window.location=edd_scripts.checkout_page):(e("#edd_login_fields input[type=submit]").val(t),e(".edd-cart-ajax").remove(),e(".edd_errors").remove(),e("#edd-user-login-submit").before(d))})}),e("select#edd-gateway, input.edd-gateway").change(function(d){var t=e("#edd-gateway option:selected, input.edd-gateway:checked").val();return"0"==t?!1:(edd_load_gateway(t),!1)}),"1"==edd_scripts.is_checkout&&e("select#edd-gateway, input.edd-gateway").length&&setTimeout(function(){edd_load_gateway(edd_scripts.default_gateway)},200),e(document).on("click","#edd_purchase_form #edd_purchase_submit input[type=submit]",function(d){var t=document.getElementById("edd_purchase_form");if("function"!=typeof t.checkValidity||!1!==t.checkValidity()){d.preventDefault();var a=e(this).val();e(this).val(edd_global_vars.purchase_loading),e(this).after('<span class="edd-cart-ajax"><i class="edd-icon-spinner edd-icon-spin"></i></span>'),e.post(edd_global_vars.ajaxurl,e("#edd_purchase_form").serialize()+"&action=edd_process_checkout&edd_ajax=true",function(d){"success"==e.trim(d)?(e(".edd_errors").remove(),e(".edd-error").hide(),e(t).submit()):(e("#edd-purchase-button").val(a),e(".edd-cart-ajax").remove(),e(".edd_errors").remove(),e(".edd-error").hide(),e("#edd_purchase_submit").before(d))})}})});
1
+ function edd_load_gateway(e){jQuery(".edd-cart-ajax").show(),jQuery("#edd_purchase_form_wrap").html('<img src="'+edd_scripts.ajax_loader+'"/>');var d=edd_scripts.ajaxurl;d+=d.indexOf("?")>0?"&":"?",d=d+"payment-mode="+e,jQuery.post(d,{action:"edd_load_gateway",edd_payment_mode:e},function(e){jQuery("#edd_purchase_form_wrap").html(e),jQuery(".edd-no-js").hide()})}var edd_scripts;jQuery(document).ready(function(e){e(".edd-no-js").hide(),e("a.edd-add-to-cart").addClass("edd-has-js"),e("body").on("click.eddRemoveFromCart",".edd-remove-from-cart",function(d){var t=e(this),a=t.data("cart-item"),i=t.data("action"),r=t.data("download-id"),o={action:i,cart_item:a};return e.ajax({type:"POST",data:o,dataType:"json",url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(d){if(d.removed){if(parseInt(edd_scripts.position_in_cart,10)===parseInt(a,10))return window.location=window.location,!1;e(".edd-cart").find("[data-cart-item='"+a+"']").parent().remove();var t=0;e(".edd-cart").find("[data-cart-item]").each(function(){e(this).attr("data-cart-item",t),t+=1}),e("[id^=edd_purchase_"+r+"]").length&&(e("[id^=edd_purchase_"+r+"] .edd_go_to_checkout").hide(),e("[id^=edd_purchase_"+r+"] a.edd-add-to-cart").show().removeAttr("data-edd-loading"),"1"==edd_scripts.quantities_enabled&&e("[id^=edd_purchase_"+r+"] .edd_download_quantity_wrapper").show()),e("span.edd-cart-quantity").text(d.cart_quantity),e("body").trigger("edd_quantity_updated",[d.cart_quantity]),edd_scripts.taxes_enabled&&(e(".cart_item.edd_subtotal span").html(d.subtotal),e(".cart_item.edd_cart_tax span").html(d.tax)),e(".cart_item.edd_total span").html(d.total),0==d.cart_quantity&&(e(".cart_item.edd_subtotal,.edd-cart-number-of-items,.cart_item.edd_checkout,.cart_item.edd_cart_tax,.cart_item.edd_total").hide(),e(".edd-cart").append('<li class="cart_item empty">'+edd_scripts.empty_cart_message+"</li>")),e("body").trigger("edd_cart_item_removed",[d])}}}).fail(function(e){window.console&&window.console.log&&console.log(e)}).done(function(e){}),!1}),e("body").on("click.eddAddToCart",".edd-add-to-cart",function(d){d.preventDefault();var t=e(this),a=t.closest("form");t.prop("disabled",!0);var i=t.find(".edd-loading"),r=t.closest("div"),o=i.width(),c=i.height();t.attr("data-edd-loading",""),i.css({"margin-left":o/-2,"margin-top":c/-2});var a=t.parents("form").last(),n=t.data("download-id"),s=t.data("variable-price"),_=t.data("price-mode"),l=[],u=!0;if("yes"==s)if(a.find(".edd_price_option_"+n).is("input:hidden"))l[0]=e(".edd_price_option_"+n,a).val(),a.find(".edd-submit").data("price")&&a.find(".edd-submit").data("price")>0&&(u=!1);else{if(!a.find(".edd_price_option_"+n+":checked",a).length)return t.removeAttr("data-edd-loading"),void alert(edd_scripts.select_option);a.find(".edd_price_option_"+n+":checked",a).each(function(d){if(l[d]=e(this).val(),!0===u){var t=e(this).data("price");t&&t>0&&(u=!1)}})}else l[0]=n,t.data("price")&&t.data("price")>0&&(u=!1);if(u&&a.find(".edd_action_input").val("add_to_cart"),"straight_to_gateway"==a.find(".edd_action_input").val())return a.submit(),!0;var p=t.data("action"),m={action:p,download_id:n,price_ids:l,post_data:e(a).serialize()};return e.ajax({type:"POST",data:m,dataType:"json",url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(d){if("1"==edd_scripts.redirect_to_checkout&&"1"==a.find("#edd_redirect_to_checkout").val())window.location=edd_scripts.checkout_page;else{"1"===edd_scripts.taxes_enabled&&(e(".cart_item.edd_subtotal").show(),e(".cart_item.edd_cart_tax").show()),e(".cart_item.edd_total").show(),e(".cart_item.edd_checkout").show(),e(".cart_item.empty").length?(e(d.cart_item).insertBefore(".edd-cart-meta:first"),e(".cart_item.empty").hide()):e(d.cart_item).insertBefore(".edd-cart-meta:first"),"1"===edd_scripts.taxes_enabled&&(e(".edd-cart-meta.edd_subtotal span").html(d.subtotal),e(".edd-cart-meta.edd_cart_tax span").html(d.tax)),e(".edd-cart-meta.edd_total span").html(d.total);e(".edd-cart-item-title",d.cart_item).length;if(e("span.edd-cart-quantity").each(function(){e(this).text(d.cart_quantity),e("body").trigger("edd_quantity_updated",[d.cart_quantity])}),"none"==e(".edd-cart-number-of-items").css("display")&&e(".edd-cart-number-of-items").show("slow"),("no"==s||"multi"!=_)&&(e("a.edd-add-to-cart",r).toggle(),e(".edd_go_to_checkout",r).css("display","inline-block")),"multi"==_&&t.removeAttr("data-edd-loading"),e(".edd_download_purchase_form").length&&("no"==s||!a.find(".edd_price_option_"+n).is("input:hidden"))){var i=e('.edd_download_purchase_form *[data-download-id="'+n+'"]').parents("form");e("a.edd-add-to-cart",i).hide(),"multi"!=_&&i.find(".edd_download_quantity_wrapper").slideUp(),e(".edd_go_to_checkout",i).show().removeAttr("data-edd-loading")}"incart"!=d&&(e(".edd-cart-added-alert",r).fadeIn(),setTimeout(function(){e(".edd-cart-added-alert",r).fadeOut()},3e3)),t.prop("disabled",!1),e("body").trigger("edd_cart_item_added",[d])}}}).fail(function(e){window.console&&window.console.log&&console.log(e)}).done(function(e){}),!1}),e("#edd_checkout_form_wrap").on("click",".edd_checkout_register_login",function(){var d=e(this),t={action:d.data("action")};return e(".edd-cart-ajax").show(),e.post(edd_scripts.ajaxurl,t,function(d){e("#edd_checkout_login_register").html(edd_scripts.loading),e("#edd_checkout_login_register").html(d),e(".edd-cart-ajax").hide()}),!1}),e(document).on("click","#edd_purchase_form #edd_login_fields input[type=submit]",function(d){d.preventDefault();var t=e(this).val();e(this).val(edd_global_vars.purchase_loading),e(this).after('<span class="edd-cart-ajax"><i class="edd-icon-spinner edd-icon-spin"></i></span>');var a={action:"edd_process_checkout_login",edd_ajax:1,edd_user_login:e("#edd_login_fields #edd_user_login").val(),edd_user_pass:e("#edd_login_fields #edd_user_pass").val()};e.post(edd_global_vars.ajaxurl,a,function(d){"success"==e.trim(d)?(e(".edd_errors").remove(),window.location=edd_scripts.checkout_page):(e("#edd_login_fields input[type=submit]").val(t),e(".edd-cart-ajax").remove(),e(".edd_errors").remove(),e("#edd-user-login-submit").before(d))})}),e("select#edd-gateway, input.edd-gateway").change(function(d){var t=e("#edd-gateway option:selected, input.edd-gateway:checked").val();return"0"==t?!1:(edd_load_gateway(t),!1)}),"1"==edd_scripts.is_checkout&&e("select#edd-gateway, input.edd-gateway").length&&setTimeout(function(){edd_load_gateway(edd_scripts.default_gateway)},200),e(document).on("click","#edd_purchase_form #edd_purchase_submit input[type=submit]",function(d){var t=document.getElementById("edd_purchase_form");if("function"!=typeof t.checkValidity||!1!==t.checkValidity()){d.preventDefault();var a=e(this).val();e(this).val(edd_global_vars.purchase_loading),e(this).after('<span class="edd-cart-ajax"><i class="edd-icon-spinner edd-icon-spin"></i></span>'),e.post(edd_global_vars.ajaxurl,e("#edd_purchase_form").serialize()+"&action=edd_process_checkout&edd_ajax=true",function(d){"success"==e.trim(d)?(e(".edd_errors").remove(),e(".edd-error").hide(),e(t).submit()):(e("#edd-purchase-button").val(a),e(".edd-cart-ajax").remove(),e(".edd_errors").remove(),e(".edd-error").hide(),e("#edd_purchase_submit").before(d))})}})});
easy-digital-downloads.php CHANGED
@@ -5,7 +5,7 @@
5
  * Description: Serve Digital Downloads Through WordPress.
6
  * Author: Pippin Williamson and Company
7
  * Author URI: https://easydigitaldownloads.com
8
- * Version: 2.5.6
9
  * Text Domain: easy-digital-downloads
10
  * Domain Path: languages
11
  *
@@ -25,7 +25,7 @@
25
  * @package EDD
26
  * @category Core
27
  * @author Pippin Williamson
28
- * @version 2.5.6
29
  */
30
 
31
  // Exit if accessed directly.
@@ -186,7 +186,7 @@ final class Easy_Digital_Downloads {
186
 
187
  // Plugin version.
188
  if ( ! defined( 'EDD_VERSION' ) ) {
189
- define( 'EDD_VERSION', '2.5.6' );
190
  }
191
 
192
  // Plugin Folder Path.
5
  * Description: Serve Digital Downloads Through WordPress.
6
  * Author: Pippin Williamson and Company
7
  * Author URI: https://easydigitaldownloads.com
8
+ * Version: 2.5.7
9
  * Text Domain: easy-digital-downloads
10
  * Domain Path: languages
11
  *
25
  * @package EDD
26
  * @category Core
27
  * @author Pippin Williamson
28
+ * @version 2.5.7
29
  */
30
 
31
  // Exit if accessed directly.
186
 
187
  // Plugin version.
188
  if ( ! defined( 'EDD_VERSION' ) ) {
189
+ define( 'EDD_VERSION', '2.5.7' );
190
  }
191
 
192
  // Plugin Folder Path.
includes/admin/admin-pages.php CHANGED
@@ -32,8 +32,10 @@ function edd_add_options_link() {
32
 
33
  $edd_payment = get_post_type_object( 'edd_payment' );
34
 
 
 
35
  $edd_payments_page = add_submenu_page( 'edit.php?post_type=download', $edd_payment->labels->name, $edd_payment->labels->menu_name, 'edit_shop_payments', 'edd-payment-history', 'edd_payment_history_page' );
36
- $edd_customers_page = add_submenu_page( 'edit.php?post_type=download', __( 'Customers', 'easy-digital-downloads' ), __( 'Customers', 'easy-digital-downloads' ), 'view_shop_reports', 'edd-customers', 'edd_customers_page' );
37
  $edd_discounts_page = add_submenu_page( 'edit.php?post_type=download', __( 'Discount Codes', 'easy-digital-downloads' ), __( 'Discount Codes', 'easy-digital-downloads' ), 'manage_shop_discounts', 'edd-discounts', 'edd_discounts_page' );
38
  $edd_reports_page = add_submenu_page( 'edit.php?post_type=download', __( 'Earnings and Sales Reports', 'easy-digital-downloads' ), __( 'Reports', 'easy-digital-downloads' ), 'view_shop_reports', 'edd-reports', 'edd_reports_page' );
39
  $edd_settings_page = add_submenu_page( 'edit.php?post_type=download', __( 'Easy Digital Download Settings', 'easy-digital-downloads' ), __( 'Settings', 'easy-digital-downloads' ), 'manage_shop_settings', 'edd-settings', 'edd_options_page' );
32
 
33
  $edd_payment = get_post_type_object( 'edd_payment' );
34
 
35
+ $customer_view_role = apply_filters( 'edd_view_customers_role', 'view_shop_reports' );
36
+
37
  $edd_payments_page = add_submenu_page( 'edit.php?post_type=download', $edd_payment->labels->name, $edd_payment->labels->menu_name, 'edit_shop_payments', 'edd-payment-history', 'edd_payment_history_page' );
38
+ $edd_customers_page = add_submenu_page( 'edit.php?post_type=download', __( 'Customers', 'easy-digital-downloads' ), __( 'Customers', 'easy-digital-downloads' ), $customer_view_role, 'edd-customers', 'edd_customers_page' );
39
  $edd_discounts_page = add_submenu_page( 'edit.php?post_type=download', __( 'Discount Codes', 'easy-digital-downloads' ), __( 'Discount Codes', 'easy-digital-downloads' ), 'manage_shop_discounts', 'edd-discounts', 'edd_discounts_page' );
40
  $edd_reports_page = add_submenu_page( 'edit.php?post_type=download', __( 'Earnings and Sales Reports', 'easy-digital-downloads' ), __( 'Reports', 'easy-digital-downloads' ), 'view_shop_reports', 'edd-reports', 'edd_reports_page' );
41
  $edd_settings_page = add_submenu_page( 'edit.php?post_type=download', __( 'Easy Digital Download Settings', 'easy-digital-downloads' ), __( 'Settings', 'easy-digital-downloads' ), 'manage_shop_settings', 'edd-settings', 'edd_options_page' );
includes/admin/class-api-keys-table.php CHANGED
@@ -197,7 +197,7 @@ class EDD_API_Keys_Table extends WP_List_Table {
197
  return;
198
  }
199
  ?>
200
- <form method="post" action="<?php echo admin_url( 'edit.php?post_type=download&page=edd-tools&tab=api_keys' ); ?>">
201
  <input type="hidden" name="edd_action" value="process_api_key" />
202
  <input type="hidden" name="edd_api_process" value="generate" />
203
  <?php wp_nonce_field( 'edd-api-nonce' ); ?>
197
  return;
198
  }
199
  ?>
200
+ <form id="api-key-generate-form" method="post" action="<?php echo admin_url( 'edit.php?post_type=download&page=edd-tools&tab=api_keys' ); ?>">
201
  <input type="hidden" name="edd_action" value="process_api_key" />
202
  <input type="hidden" name="edd_api_process" value="generate" />
203
  <?php wp_nonce_field( 'edd-api-nonce' ); ?>
includes/admin/discounts/add-discount.php CHANGED
@@ -11,7 +11,6 @@
11
 
12
  // Exit if accessed directly
13
  if ( ! defined( 'ABSPATH' ) ) exit;
14
- $downloads = get_posts( array( 'post_type' => 'download', 'nopaging' => true ) );
15
  ?>
16
  <h2><?php _e( 'Add New Discount', 'easy-digital-downloads' ); ?> - <a href="<?php echo admin_url( 'edit.php?post_type=download&page=edd-discounts' ); ?>" class="button-secondary"><?php _e( 'Go Back', 'easy-digital-downloads' ); ?></a></h2>
17
  <form id="edd-add-discount" action="" method="POST">
@@ -92,7 +91,7 @@ $downloads = get_posts( array( 'post_type' => 'download', 'nopaging' => true ) )
92
  <label>
93
  <input type="radio" class="tog" name="not_global" value="1"/>
94
  <?php printf( __( 'Apply discount only to selected %s.', 'easy-digital-downloads' ), edd_get_label_plural() ); ?>
95
- </label>
96
  </p>
97
  </div>
98
  <p class="description"><?php printf( __( 'Select %s relevant to this discount.', 'easy-digital-downloads' ), edd_get_label_plural() ); ?></p>
11
 
12
  // Exit if accessed directly
13
  if ( ! defined( 'ABSPATH' ) ) exit;
 
14
  ?>
15
  <h2><?php _e( 'Add New Discount', 'easy-digital-downloads' ); ?> - <a href="<?php echo admin_url( 'edit.php?post_type=download&page=edd-discounts' ); ?>" class="button-secondary"><?php _e( 'Go Back', 'easy-digital-downloads' ); ?></a></h2>
16
  <form id="edd-add-discount" action="" method="POST">
91
  <label>
92
  <input type="radio" class="tog" name="not_global" value="1"/>
93
  <?php printf( __( 'Apply discount only to selected %s.', 'easy-digital-downloads' ), edd_get_label_plural() ); ?>
94
+ </label>
95
  </p>
96
  </div>
97
  <p class="description"><?php printf( __( 'Select %s relevant to this discount.', 'easy-digital-downloads' ), edd_get_label_plural() ); ?></p>
includes/admin/downloads/metabox.php CHANGED
@@ -425,7 +425,7 @@ function edd_render_price_row( $key, $args = array(), $post_id, $index ) {
425
  $price_args = array(
426
  'name' => 'edd_variable_prices[' . $key . '][amount]',
427
  'value' => $args['amount'],
428
- 'placeholder' => '9.99',
429
  'class' => 'edd-price-field'
430
  );
431
  ?>
425
  $price_args = array(
426
  'name' => 'edd_variable_prices[' . $key . '][amount]',
427
  'value' => $args['amount'],
428
+ 'placeholder' => edd_format_amount( 9.99 ),
429
  'class' => 'edd-price-field'
430
  );
431
  ?>
includes/admin/payments/actions.php CHANGED
@@ -80,11 +80,11 @@ function edd_update_payment_details( $data ) {
80
  continue;
81
  }
82
 
83
- if ( empty( $download['amount'] ) ) {
84
- $download['amount'] = 0.00;
85
  }
86
 
87
- $amount = $download['amount'];
88
  $download_id = absint( $download['id'] );
89
  $quantity = absint( $download['quantity'] ) > 0 ? absint( $download['quantity'] ) : 1;
90
  $price_id = false;
@@ -96,7 +96,7 @@ function edd_update_payment_details( $data ) {
96
  // Set some defaults
97
  $args = array(
98
  'quantity' => $quantity,
99
- 'item_price' => $amount,
100
  'price_id' => $price_id,
101
  );
102
 
@@ -116,9 +116,9 @@ function edd_update_payment_details( $data ) {
116
  $price_id = empty( $deleted_download['price_id'] ) ? 0 : (int) $deleted_download['price_id'];
117
 
118
  $args = array(
119
- 'quantity' => $deleted_download['quantity'],
120
- 'price_id' => $price_id,
121
- 'amount' => $deleted_download['amount'],
122
  );
123
 
124
  $payment->remove_download( $deleted_download['id'], $args );
80
  continue;
81
  }
82
 
83
+ if ( empty( $download['item_price'] ) ) {
84
+ $download['item_price'] = 0.00;
85
  }
86
 
87
+ $item_price = $download['item_price'];
88
  $download_id = absint( $download['id'] );
89
  $quantity = absint( $download['quantity'] ) > 0 ? absint( $download['quantity'] ) : 1;
90
  $price_id = false;
96
  // Set some defaults
97
  $args = array(
98
  'quantity' => $quantity,
99
+ 'item_price' => $item_price,
100
  'price_id' => $price_id,
101
  );
102
 
116
  $price_id = empty( $deleted_download['price_id'] ) ? 0 : (int) $deleted_download['price_id'];
117
 
118
  $args = array(
119
+ 'quantity' => (int) $deleted_download['quantity'],
120
+ 'price_id' => (int) $price_id,
121
+ 'item_price' => (float) $deleted_download['amount'],
122
  );
123
 
124
  $payment->remove_download( $deleted_download['id'], $args );
includes/admin/payments/view-order-details.php CHANGED
@@ -274,6 +274,7 @@ $currency_code = $payment->currency;
274
  <div class="row">
275
  <ul>
276
  <?php
 
277
  // Item ID is checked if isset due to the near-1.0 cart data
278
  $item_id = isset( $cart_item['id'] ) ? $cart_item['id'] : $cart_item;
279
  $price = isset( $cart_item['price'] ) ? $cart_item['price'] : false;
@@ -305,6 +306,7 @@ $currency_code = $payment->currency;
305
  </span>
306
  <input type="hidden" name="edd-payment-details-downloads[<?php echo $key; ?>][id]" class="edd-payment-details-download-id" value="<?php echo esc_attr( $item_id ); ?>"/>
307
  <input type="hidden" name="edd-payment-details-downloads[<?php echo $key; ?>][price_id]" class="edd-payment-details-download-price-id" value="<?php echo esc_attr( $price_id ); ?>"/>
 
308
  <input type="hidden" name="edd-payment-details-downloads[<?php echo $key; ?>][amount]" class="edd-payment-details-download-amount" value="<?php echo esc_attr( $price ); ?>"/>
309
  <input type="hidden" name="edd-payment-details-downloads[<?php echo $key; ?>][quantity]" class="edd-payment-details-download-quantity" value="<?php echo esc_attr( $quantity ); ?>"/>
310
 
274
  <div class="row">
275
  <ul>
276
  <?php
277
+
278
  // Item ID is checked if isset due to the near-1.0 cart data
279
  $item_id = isset( $cart_item['id'] ) ? $cart_item['id'] : $cart_item;
280
  $price = isset( $cart_item['price'] ) ? $cart_item['price'] : false;
306
  </span>
307
  <input type="hidden" name="edd-payment-details-downloads[<?php echo $key; ?>][id]" class="edd-payment-details-download-id" value="<?php echo esc_attr( $item_id ); ?>"/>
308
  <input type="hidden" name="edd-payment-details-downloads[<?php echo $key; ?>][price_id]" class="edd-payment-details-download-price-id" value="<?php echo esc_attr( $price_id ); ?>"/>
309
+ <input type="hidden" name="edd-payment-details-downloads[<?php echo $key; ?>][item_price]" class="edd-payment-details-download-item-price" value="<?php echo esc_attr( $item_price ); ?>"/>
310
  <input type="hidden" name="edd-payment-details-downloads[<?php echo $key; ?>][amount]" class="edd-payment-details-download-amount" value="<?php echo esc_attr( $price ); ?>"/>
311
  <input type="hidden" name="edd-payment-details-downloads[<?php echo $key; ?>][quantity]" class="edd-payment-details-download-quantity" value="<?php echo esc_attr( $quantity ); ?>"/>
312
 
includes/admin/reporting/class-export-customers.php CHANGED
@@ -168,4 +168,4 @@ class EDD_Customers_Export extends EDD_Export {
168
 
169
  return $data;
170
  }
171
- }
168
 
169
  return $data;
170
  }
171
+ }
includes/admin/reporting/class-sales-logs-list-table.php CHANGED
@@ -75,7 +75,8 @@ class EDD_Sales_Log_Table extends WP_List_Table {
75
  * @return string Column Name
76
  */
77
  public function column_default( $item, $column_name ) {
78
- $return = '';
 
79
 
80
  switch ( $column_name ){
81
  case 'download' :
@@ -88,11 +89,11 @@ class EDD_Sales_Log_Table extends WP_List_Table {
88
  break;
89
 
90
  case 'item_price' :
91
- $return = edd_currency_filter( edd_format_amount( $item['item_price'] ) );
92
  break;
93
 
94
  case 'amount' :
95
- $return = edd_currency_filter( edd_format_amount( $item['amount'] / $item['quantity'] ) );
96
  break;
97
 
98
  case 'payment_id' :
@@ -344,6 +345,8 @@ class EDD_Sales_Log_Table extends WP_List_Table {
344
  'user_name' => $user_info['first_name'] . ' ' . $user_info['last_name'],
345
  'date' => get_post_field( 'post_date', $payment_id ),
346
  'quantity' => $item['quantity'],
 
 
347
  );
348
 
349
  }
@@ -396,4 +399,4 @@ class EDD_Sales_Log_Table extends WP_List_Table {
396
  public function has_items() {
397
  return true;
398
  }
399
- }
75
  * @return string Column Name
76
  */
77
  public function column_default( $item, $column_name ) {
78
+ $return = '';
79
+ $currency = $item['currency'];
80
 
81
  switch ( $column_name ){
82
  case 'download' :
89
  break;
90
 
91
  case 'item_price' :
92
+ $return = edd_currency_filter( edd_format_amount( $item['item_price'] ), $currency );
93
  break;
94
 
95
  case 'amount' :
96
+ $return = edd_currency_filter( edd_format_amount( $item['amount'] / $item['quantity'] ), $currency );
97
  break;
98
 
99
  case 'payment_id' :
345
  'user_name' => $user_info['first_name'] . ' ' . $user_info['last_name'],
346
  'date' => get_post_field( 'post_date', $payment_id ),
347
  'quantity' => $item['quantity'],
348
+ // Keep track of the currency. Vital to produce the correct report
349
+ 'currency' => $item['currency'],
350
  );
351
 
352
  }
399
  public function has_items() {
400
  return true;
401
  }
402
+ }
includes/admin/reporting/export/export-functions.php CHANGED
@@ -38,7 +38,7 @@ function edd_do_ajax_export() {
38
  do_action( 'edd_batch_export_class_include', $form['edd-export-class'] );
39
 
40
  $step = absint( $_POST['step'] );
41
- $class = $form['edd-export-class'];
42
  $export = new $class( $step );
43
 
44
  if( ! $export->can_export() ) {
38
  do_action( 'edd_batch_export_class_include', $form['edd-export-class'] );
39
 
40
  $step = absint( $_POST['step'] );
41
+ $class = sanitize_text_field( $form['edd-export-class'] );
42
  $export = new $class( $step );
43
 
44
  if( ! $export->can_export() ) {
includes/admin/reporting/graphing.php CHANGED
@@ -690,7 +690,7 @@ function edd_get_report_dates() {
690
 
691
  case 'this_week' :
692
  case 'last_week' :
693
- $base_time = $dates['range'] === 'this_week' ? current_time( 'mysql' ) : date( 'Y-n-d h:i:s', current_time( 'timestamp' ) - WEEK_IN_SECONDS );
694
  $start_end = get_weekstartend( $base_time, get_option( 'start_of_week' ) );
695
 
696
  $dates['day'] = date( 'd', $start_end['start'] );
690
 
691
  case 'this_week' :
692
  case 'last_week' :
693
+ $base_time = $dates['range'] === 'this_week' ? current_time( 'mysql' ) : date( 'Y-m-d h:i:s', current_time( 'timestamp' ) - WEEK_IN_SECONDS );
694
  $start_end = get_weekstartend( $base_time, get_option( 'start_of_week' ) );
695
 
696
  $dates['day'] = date( 'd', $start_end['start'] );
includes/admin/reporting/reports.php CHANGED
@@ -361,18 +361,16 @@ function edd_reports_tab_export() {
361
  <h3><span><?php _e( 'Export Earnings and Sales Stats', 'easy-digital-downloads' ); ?></span></h3>
362
  <div class="inside">
363
  <p><?php _e( 'Download a CSV of earnings and sales over time.', 'easy-digital-downloads' ); ?></p>
364
- <p>
365
- <form method="post">
366
- <?php echo EDD()->html->year_dropdown( 'start_year' ); ?>
367
- <?php echo EDD()->html->month_dropdown( 'start_month' ); ?>
368
- <?php echo _x( 'to', 'Date one to date two', 'easy-digital-downloads' ); ?>
369
- <?php echo EDD()->html->year_dropdown( 'end_year' ); ?>
370
- <?php echo EDD()->html->month_dropdown( 'end_month' ); ?>
371
- <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
372
- <input type="hidden" name="edd-action" value="earnings_export"/>
373
- <input type="submit" value="<?php _e( 'Generate CSV', 'easy-digital-downloads' ); ?>" class="button-secondary"/>
374
- </form>
375
- </p>
376
  </div><!-- .inside -->
377
  </div><!-- .postbox -->
378
 
@@ -380,27 +378,25 @@ function edd_reports_tab_export() {
380
  <h3><span><?php _e('Export Payment History','easy-digital-downloads' ); ?></span></h3>
381
  <div class="inside">
382
  <p><?php _e( 'Download a CSV of all payments recorded.', 'easy-digital-downloads' ); ?></p>
383
- <p>
384
- <form id="edd-export-payments" class="edd-export-form" method="post">
385
- <?php echo EDD()->html->date_field( array( 'id' => 'edd-payment-export-start', 'name' => 'start', 'placeholder' => __( 'Choose start date', 'easy-digital-downloads' ) )); ?>
386
- <?php echo EDD()->html->date_field( array( 'id' => 'edd-payment-export-end','name' => 'end', 'placeholder' => __( 'Choose end date', 'easy-digital-downloads' ) )); ?>
387
- <select name="status">
388
- <option value="any"><?php _e( 'All Statuses', 'easy-digital-downloads' ); ?></option>
389
- <?php
390
- $statuses = edd_get_payment_statuses();
391
- foreach( $statuses as $status => $label ) {
392
- echo '<option value="' . $status . '">' . $label . '</option>';
393
- }
394
- ?>
395
- </select>
396
- <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
397
- <input type="hidden" name="edd-export-class" value="EDD_Batch_Payments_Export"/>
398
- <span>
399
- <input type="submit" value="<?php _e( 'Generate CSV', 'easy-digital-downloads' ); ?>" class="button-secondary"/>
400
- <span class="spinner"></span>
401
- </span>
402
- </form>
403
- </p>
404
  </div><!-- .inside -->
405
  </div><!-- .postbox -->
406
 
@@ -408,14 +404,12 @@ function edd_reports_tab_export() {
408
  <h3><span><?php _e('Export Customers in CSV','easy-digital-downloads' ); ?></span></h3>
409
  <div class="inside">
410
  <p><?php _e( 'Download a CSV of customers.', 'easy-digital-downloads' ); ?></p>
411
- <p>
412
- <form id="edd-export-customers" class="edd-export-form" method="post">
413
- <?php echo EDD()->html->product_dropdown( array( 'name' => 'download', 'id' => 'edd_customer_export_download', 'chosen' => true ) ); ?>
414
- <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
415
- <input type="hidden" name="edd-export-class" value="EDD_Batch_Customers_Export"/>
416
- <input type="submit" value="<?php _e( 'Generate CSV', 'easy-digital-downloads' ); ?>" class="button-secondary"/>
417
- </form>
418
- </p>
419
  </div><!-- .inside -->
420
  </div><!-- .postbox -->
421
 
@@ -423,13 +417,11 @@ function edd_reports_tab_export() {
423
  <h3><span><?php _e('Export Download Products in CSV','easy-digital-downloads' ); ?></span></h3>
424
  <div class="inside">
425
  <p><?php _e( 'Download a CSV of download products.', 'easy-digital-downloads' ); ?></p>
426
- <p>
427
- <form id="edd-export-file-downloads" class="edd-export-form" method="post">
428
- <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
429
- <input type="hidden" name="edd-export-class" value="EDD_Batch_Downloads_Export"/>
430
- <input type="submit" value="<?php _e( 'Generate CSV', 'easy-digital-downloads' ); ?>" class="button-secondary"/>
431
- </form>
432
- </p>
433
  </div><!-- .inside -->
434
  </div><!-- .postbox -->
435
 
@@ -437,15 +429,13 @@ function edd_reports_tab_export() {
437
  <h3><span><?php _e('Export Download History in CSV','easy-digital-downloads' ); ?></span></h3>
438
  <div class="inside">
439
  <p><?php _e( 'Download a CSV of file downloads.', 'easy-digital-downloads' ); ?></p>
440
- <p>
441
- <form id="edd-export-file-downloads" class="edd-export-form" method="post">
442
- <?php echo EDD()->html->date_field( array( 'id' => 'edd-file-download-export-start', 'name' => 'start', 'placeholder' => __( 'Choose start date', 'easy-digital-downloads' ) )); ?>
443
- <?php echo EDD()->html->date_field( array( 'id' => 'edd-file-download-export-end', 'name' => 'end', 'placeholder' => __( 'Choose end date', 'easy-digital-downloads' ) )); ?>
444
- <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
445
- <input type="hidden" name="edd-export-class" value="EDD_Batch_File_Downloads_Export"/>
446
- <input type="submit" value="<?php _e( 'Generate CSV', 'easy-digital-downloads' ); ?>" class="button-secondary"/>
447
- </form>
448
- </p>
449
  </div><!-- .inside -->
450
  </div><!-- .postbox -->
451
 
361
  <h3><span><?php _e( 'Export Earnings and Sales Stats', 'easy-digital-downloads' ); ?></span></h3>
362
  <div class="inside">
363
  <p><?php _e( 'Download a CSV of earnings and sales over time.', 'easy-digital-downloads' ); ?></p>
364
+ <form method="post">
365
+ <?php echo EDD()->html->year_dropdown( 'start_year' ); ?>
366
+ <?php echo EDD()->html->month_dropdown( 'start_month' ); ?>
367
+ <?php echo _x( 'to', 'Date one to date two', 'easy-digital-downloads' ); ?>
368
+ <?php echo EDD()->html->year_dropdown( 'end_year' ); ?>
369
+ <?php echo EDD()->html->month_dropdown( 'end_month' ); ?>
370
+ <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
371
+ <input type="hidden" name="edd-action" value="earnings_export"/>
372
+ <input type="submit" value="<?php _e( 'Generate CSV', 'easy-digital-downloads' ); ?>" class="button-secondary"/>
373
+ </form>
 
 
374
  </div><!-- .inside -->
375
  </div><!-- .postbox -->
376
 
378
  <h3><span><?php _e('Export Payment History','easy-digital-downloads' ); ?></span></h3>
379
  <div class="inside">
380
  <p><?php _e( 'Download a CSV of all payments recorded.', 'easy-digital-downloads' ); ?></p>
381
+ <form id="edd-export-payments" class="edd-export-form" method="post">
382
+ <?php echo EDD()->html->date_field( array( 'id' => 'edd-payment-export-start', 'name' => 'start', 'placeholder' => __( 'Choose start date', 'easy-digital-downloads' ) )); ?>
383
+ <?php echo EDD()->html->date_field( array( 'id' => 'edd-payment-export-end','name' => 'end', 'placeholder' => __( 'Choose end date', 'easy-digital-downloads' ) )); ?>
384
+ <select name="status">
385
+ <option value="any"><?php _e( 'All Statuses', 'easy-digital-downloads' ); ?></option>
386
+ <?php
387
+ $statuses = edd_get_payment_statuses();
388
+ foreach( $statuses as $status => $label ) {
389
+ echo '<option value="' . $status . '">' . $label . '</option>';
390
+ }
391
+ ?>
392
+ </select>
393
+ <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
394
+ <input type="hidden" name="edd-export-class" value="EDD_Batch_Payments_Export"/>
395
+ <span>
396
+ <input type="submit" value="<?php _e( 'Generate CSV', 'easy-digital-downloads' ); ?>" class="button-secondary"/>
397
+ <span class="spinner"></span>
398
+ </span>
399
+ </form>
 
 
400
  </div><!-- .inside -->
401
  </div><!-- .postbox -->
402
 
404
  <h3><span><?php _e('Export Customers in CSV','easy-digital-downloads' ); ?></span></h3>
405
  <div class="inside">
406
  <p><?php _e( 'Download a CSV of customers.', 'easy-digital-downloads' ); ?></p>
407
+ <form id="edd-export-customers" class="edd-export-form" method="post">
408
+ <?php echo EDD()->html->product_dropdown( array( 'name' => 'download', 'id' => 'edd_customer_export_download', 'chosen' => true ) ); ?>
409
+ <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
410
+ <input type="hidden" name="edd-export-class" value="EDD_Batch_Customers_Export"/>
411
+ <input type="submit" value="<?php _e( 'Generate CSV', 'easy-digital-downloads' ); ?>" class="button-secondary"/>
412
+ </form>
 
 
413
  </div><!-- .inside -->
414
  </div><!-- .postbox -->
415
 
417
  <h3><span><?php _e('Export Download Products in CSV','easy-digital-downloads' ); ?></span></h3>
418
  <div class="inside">
419
  <p><?php _e( 'Download a CSV of download products.', 'easy-digital-downloads' ); ?></p>
420
+ <form id="edd-export-file-downloads" class="edd-export-form" method="post">
421
+ <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
422
+ <input type="hidden" name="edd-export-class" value="EDD_Batch_Downloads_Export"/>
423
+ <input type="submit" value="<?php _e( 'Generate CSV', 'easy-digital-downloads' ); ?>" class="button-secondary"/>
424
+ </form>
 
 
425
  </div><!-- .inside -->
426
  </div><!-- .postbox -->
427
 
429
  <h3><span><?php _e('Export Download History in CSV','easy-digital-downloads' ); ?></span></h3>
430
  <div class="inside">
431
  <p><?php _e( 'Download a CSV of file downloads.', 'easy-digital-downloads' ); ?></p>
432
+ <form id="edd-export-file-downloads" class="edd-export-form" method="post">
433
+ <?php echo EDD()->html->date_field( array( 'id' => 'edd-file-download-export-start', 'name' => 'start', 'placeholder' => __( 'Choose start date', 'easy-digital-downloads' ) )); ?>
434
+ <?php echo EDD()->html->date_field( array( 'id' => 'edd-file-download-export-end', 'name' => 'end', 'placeholder' => __( 'Choose end date', 'easy-digital-downloads' ) )); ?>
435
+ <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
436
+ <input type="hidden" name="edd-export-class" value="EDD_Batch_File_Downloads_Export"/>
437
+ <input type="submit" value="<?php _e( 'Generate CSV', 'easy-digital-downloads' ); ?>" class="button-secondary"/>
438
+ </form>
 
 
439
  </div><!-- .inside -->
440
  </div><!-- .postbox -->
441
 
includes/admin/settings/register-settings.php CHANGED
@@ -1208,12 +1208,12 @@ function edd_checkbox_callback( $args ) {
1208
  if ( isset( $args['faux'] ) && true === $args['faux'] ) {
1209
  $name = '';
1210
  } else {
1211
- $name = 'name="edd_settings[' . $args['id'] . ']"';
1212
  }
1213
 
1214
  $checked = isset( $edd_options[ $args['id'] ] ) ? checked( 1, $edd_options[ $args['id'] ], false ) : '';
1215
- $html = '<input type="checkbox" id="edd_settings[' . $args['id'] . ']"' . $name . ' value="1" ' . $checked . '/>';
1216
- $html .= '<label for="edd_settings[' . $args['id'] . ']"> ' . $args['desc'] . '</label>';
1217
 
1218
  echo $html;
1219
  }
@@ -1234,8 +1234,8 @@ function edd_multicheck_callback( $args ) {
1234
  if ( ! empty( $args['options'] ) ) {
1235
  foreach( $args['options'] as $key => $option ):
1236
  if( isset( $edd_options[$args['id']][$key] ) ) { $enabled = $option; } else { $enabled = NULL; }
1237
- echo '<input name="edd_settings[' . $args['id'] . '][' . $key . ']" id="edd_settings[' . $args['id'] . '][' . $key . ']" type="checkbox" value="' . $option . '" ' . checked($option, $enabled, false) . '/>&nbsp;';
1238
- echo '<label for="edd_settings[' . $args['id'] . '][' . $key . ']">' . $option . '</label><br/>';
1239
  endforeach;
1240
  echo '<p class="description">' . $args['desc'] . '</p>';
1241
  }
@@ -1261,9 +1261,9 @@ function edd_payment_icons_callback( $args ) {
1261
  $enabled = NULL;
1262
  }
1263
 
1264
- echo '<label for="edd_settings[' . $args['id'] . '][' . $key . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
1265
 
1266
- echo '<input name="edd_settings[' . $args['id'] . '][' . $key . ']" id="edd_settings[' . $args['id'] . '][' . $key . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/>&nbsp;';
1267
 
1268
  if( edd_string_is_image_url( $key ) ) {
1269
 
@@ -1301,7 +1301,7 @@ function edd_payment_icons_callback( $args ) {
1301
  echo $option . '</label>';
1302
 
1303
  }
1304
- echo '<p class="description" style="margin-top:16px;">' . $args['desc'] . '</p>';
1305
  }
1306
  }
1307
 
@@ -1326,11 +1326,11 @@ function edd_radio_callback( $args ) {
1326
  elseif( isset( $args['std'] ) && $args['std'] == $key && ! isset( $edd_options[ $args['id'] ] ) )
1327
  $checked = true;
1328
 
1329
- echo '<input name="edd_settings[' . $args['id'] . ']"" id="edd_settings[' . $args['id'] . '][' . $key . ']" type="radio" value="' . $key . '" ' . checked(true, $checked, false) . '/>&nbsp;';
1330
- echo '<label for="edd_settings[' . $args['id'] . '][' . $key . ']">' . $option . '</label><br/>';
1331
  endforeach;
1332
 
1333
- echo '<p class="description">' . $args['desc'] . '</p>';
1334
  }
1335
 
1336
  /**
@@ -1352,8 +1352,8 @@ function edd_gateways_callback( $args ) {
1352
  else
1353
  $enabled = null;
1354
 
1355
- echo '<input name="edd_settings[' . $args['id'] . '][' . $key . ']"" id="edd_settings[' . $args['id'] . '][' . $key . ']" type="checkbox" value="1" ' . checked('1', $enabled, false) . '/>&nbsp;';
1356
- echo '<label for="edd_settings[' . $args['id'] . '][' . $key . ']">' . $option['admin_label'] . '</label><br/>';
1357
  endforeach;
1358
  }
1359
 
@@ -1370,15 +1370,15 @@ function edd_gateways_callback( $args ) {
1370
  function edd_gateway_select_callback($args) {
1371
  global $edd_options;
1372
 
1373
- echo '<select name="edd_settings[' . $args['id'] . ']"" id="edd_settings[' . $args['id'] . ']">';
1374
 
1375
  foreach ( $args['options'] as $key => $option ) :
1376
  $selected = isset( $edd_options[ $args['id'] ] ) ? selected( $key, $edd_options[$args['id']], false ) : '';
1377
- echo '<option value="' . esc_attr( $key ) . '"' . $selected . '>' . esc_html( $option['admin_label'] ) . '</option>';
1378
  endforeach;
1379
 
1380
  echo '</select>';
1381
- echo '<label for="edd_settings[' . $args['id'] . ']"> ' . $args['desc'] . '</label>';
1382
  }
1383
 
1384
  /**
@@ -1405,13 +1405,13 @@ function edd_text_callback( $args ) {
1405
  $value = isset( $args['std'] ) ? $args['std'] : '';
1406
  $name = '';
1407
  } else {
1408
- $name = 'name="edd_settings[' . $args['id'] . ']"';
1409
  }
1410
 
1411
  $readonly = $args['readonly'] === true ? ' readonly="readonly"' : '';
1412
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1413
- $html = '<input type="text" class="' . $size . '-text" id="edd_settings[' . $args['id'] . ']"' . $name . ' value="' . esc_attr( stripslashes( $value ) ) . '"' . $readonly . '/>';
1414
- $html .= '<label for="edd_settings[' . $args['id'] . ']"> ' . $args['desc'] . '</label>';
1415
 
1416
  echo $html;
1417
  }
@@ -1440,7 +1440,7 @@ function edd_number_callback( $args ) {
1440
  $value = isset( $args['std'] ) ? $args['std'] : '';
1441
  $name = '';
1442
  } else {
1443
- $name = 'name="edd_settings[' . $args['id'] . ']"';
1444
  }
1445
 
1446
  $max = isset( $args['max'] ) ? $args['max'] : 999999;
@@ -1448,8 +1448,8 @@ function edd_number_callback( $args ) {
1448
  $step = isset( $args['step'] ) ? $args['step'] : 1;
1449
 
1450
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1451
- $html = '<input type="number" step="' . esc_attr( $step ) . '" max="' . esc_attr( $max ) . '" min="' . esc_attr( $min ) . '" class="' . $size . '-text" id="edd_settings[' . $args['id'] . ']" ' . $name . ' value="' . esc_attr( stripslashes( $value ) ) . '"/>';
1452
- $html .= '<label for="edd_settings[' . $args['id'] . ']"> ' . $args['desc'] . '</label>';
1453
 
1454
  echo $html;
1455
  }
@@ -1473,8 +1473,8 @@ function edd_textarea_callback( $args ) {
1473
  $value = isset( $args['std'] ) ? $args['std'] : '';
1474
  }
1475
 
1476
- $html = '<textarea class="large-text" cols="50" rows="5" id="edd_settings[' . $args['id'] . ']" name="edd_settings[' . $args['id'] . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
1477
- $html .= '<label for="edd_settings[' . $args['id'] . ']"> ' . $args['desc'] . '</label>';
1478
 
1479
  echo $html;
1480
  }
@@ -1499,8 +1499,8 @@ function edd_password_callback( $args ) {
1499
  }
1500
 
1501
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1502
- $html = '<input type="password" class="' . $size . '-text" id="edd_settings[' . $args['id'] . ']" name="edd_settings[' . $args['id'] . ']" value="' . esc_attr( $value ) . '"/>';
1503
- $html .= '<label for="edd_settings[' . $args['id'] . ']"> ' . $args['desc'] . '</label>';
1504
 
1505
  echo $html;
1506
  }
@@ -1552,15 +1552,15 @@ function edd_select_callback($args) {
1552
  $chosen = '';
1553
  }
1554
 
1555
- $html = '<select id="edd_settings[' . $args['id'] . ']" name="edd_settings[' . $args['id'] . ']" ' . $chosen . 'data-placeholder="' . $placeholder . '" />';
1556
 
1557
  foreach ( $args['options'] as $option => $name ) {
1558
  $selected = selected( $option, $value, false );
1559
- $html .= '<option value="' . $option . '" ' . $selected . '>' . $name . '</option>';
1560
  }
1561
 
1562
  $html .= '</select>';
1563
- $html .= '<label for="edd_settings[' . $args['id'] . ']"> ' . $args['desc'] . '</label>';
1564
 
1565
  echo $html;
1566
  }
@@ -1584,15 +1584,15 @@ function edd_color_select_callback( $args ) {
1584
  $value = isset( $args['std'] ) ? $args['std'] : '';
1585
  }
1586
 
1587
- $html = '<select id="edd_settings[' . $args['id'] . ']" name="edd_settings[' . $args['id'] . ']"/>';
1588
 
1589
  foreach ( $args['options'] as $option => $color ) {
1590
  $selected = selected( $option, $value, false );
1591
- $html .= '<option value="' . $option . '" ' . $selected . '>' . $color['label'] . '</option>';
1592
  }
1593
 
1594
  $html .= '</select>';
1595
- $html .= '<label for="edd_settings[' . $args['id'] . ']"> ' . $args['desc'] . '</label>';
1596
 
1597
  echo $html;
1598
  }
@@ -1624,13 +1624,13 @@ function edd_rich_editor_callback( $args ) {
1624
 
1625
  if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) {
1626
  ob_start();
1627
- wp_editor( stripslashes( $value ), 'edd_settings_' . $args['id'], array( 'textarea_name' => 'edd_settings[' . $args['id'] . ']', 'textarea_rows' => $rows ) );
1628
  $html = ob_get_clean();
1629
  } else {
1630
- $html = '<textarea class="large-text" rows="10" id="edd_settings[' . $args['id'] . ']" name="edd_settings[' . $args['id'] . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
1631
  }
1632
 
1633
- $html .= '<br/><label for="edd_settings[' . $args['id'] . ']"> ' . $args['desc'] . '</label>';
1634
 
1635
  echo $html;
1636
  }
@@ -1655,9 +1655,9 @@ function edd_upload_callback( $args ) {
1655
  }
1656
 
1657
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1658
- $html = '<input type="text" class="' . $size . '-text" id="edd_settings[' . $args['id'] . ']" name="edd_settings[' . $args['id'] . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>';
1659
  $html .= '<span>&nbsp;<input type="button" class="edd_settings_upload_button button-secondary" value="' . __( 'Upload File', 'easy-digital-downloads' ) . '"/></span>';
1660
- $html .= '<label for="edd_settings[' . $args['id'] . ']"> ' . $args['desc'] . '</label>';
1661
 
1662
  echo $html;
1663
  }
@@ -1684,9 +1684,8 @@ function edd_color_callback( $args ) {
1684
 
1685
  $default = isset( $args['std'] ) ? $args['std'] : '';
1686
 
1687
- $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1688
- $html = '<input type="text" class="edd-color-picker" id="edd_settings[' . $args['id'] . ']" name="edd_settings[' . $args['id'] . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $default ) . '" />';
1689
- $html .= '<label for="edd_settings[' . $args['id'] . ']"> ' . $args['desc'] . '</label>';
1690
 
1691
  echo $html;
1692
  }
@@ -1714,15 +1713,15 @@ function edd_shop_states_callback($args) {
1714
 
1715
  $chosen = ( $args['chosen'] ? ' edd-chosen' : '' );
1716
  $class = empty( $states ) ? ' class="edd-no-states' . $chosen . '"' : 'class="' . $chosen . '"';
1717
- $html = '<select id="edd_settings[' . $args['id'] . ']" name="edd_settings[' . $args['id'] . ']"' . $class . 'data-placeholder="' . $placeholder . '"/>';
1718
 
1719
  foreach ( $states as $option => $name ) {
1720
  $selected = isset( $edd_options[ $args['id'] ] ) ? selected( $option, $edd_options[$args['id']], false ) : '';
1721
- $html .= '<option value="' . $option . '" ' . $selected . '>' . $name . '</option>';
1722
  }
1723
 
1724
  $html .= '</select>';
1725
- $html .= '<label for="edd_settings[' . $args['id'] . ']"> ' . $args['desc'] . '</label>';
1726
 
1727
  echo $html;
1728
  }
@@ -1759,11 +1758,11 @@ function edd_tax_rates_callback($args) {
1759
  <?php
1760
  echo EDD()->html->select( array(
1761
  'options' => edd_get_country_list(),
1762
- 'name' => 'tax_rates[' . $key . '][country]',
1763
  'selected' => $rate['country'],
1764
  'show_option_all' => false,
1765
  'show_option_none' => false,
1766
- 'class' => 'edd-select edd-tax-country',
1767
  'chosen' => false,
1768
  'placeholder' => __( 'Choose a country', 'easy-digital-downloads' )
1769
  ) );
@@ -1775,7 +1774,7 @@ function edd_tax_rates_callback($args) {
1775
  if( ! empty( $states ) ) {
1776
  echo EDD()->html->select( array(
1777
  'options' => $states,
1778
- 'name' => 'tax_rates[' . $key . '][state]',
1779
  'selected' => $rate['state'],
1780
  'show_option_all' => false,
1781
  'show_option_none' => false,
@@ -1784,17 +1783,17 @@ function edd_tax_rates_callback($args) {
1784
  ) );
1785
  } else {
1786
  echo EDD()->html->text( array(
1787
- 'name' => 'tax_rates[' . $key . '][state]', $rate['state'],
1788
  'value' => ! empty( $rate['state'] ) ? $rate['state'] : '',
1789
  ) );
1790
  }
1791
  ?>
1792
  </td>
1793
  <td class="edd_tax_global">
1794
- <input type="checkbox" name="tax_rates[<?php echo $key; ?>][global]" id="tax_rates[<?php echo $key; ?>][global]" value="1"<?php checked( true, ! empty( $rate['global'] ) ); ?>/>
1795
- <label for="tax_rates[<?php echo $key; ?>][global]"><?php _e( 'Apply to whole country', 'easy-digital-downloads' ); ?></label>
1796
  </td>
1797
- <td class="edd_tax_rate"><input type="number" class="small-text" step="0.0001" min="0.0" max="99" name="tax_rates[<?php echo $key; ?>][rate]" value="<?php echo $rate['rate']; ?>"/></td>
1798
  <td><span class="edd_remove_tax_rate button-secondary"><?php _e( 'Remove Rate', 'easy-digital-downloads' ); ?></span></td>
1799
  </tr>
1800
  <?php endforeach; ?>
@@ -1807,7 +1806,7 @@ function edd_tax_rates_callback($args) {
1807
  'name' => 'tax_rates[0][country]',
1808
  'show_option_all' => false,
1809
  'show_option_none' => false,
1810
- 'class' => 'edd-select edd-tax-country',
1811
  'chosen' => false,
1812
  'placeholder' => __( 'Choose a country', 'easy-digital-downloads' )
1813
  ) ); ?>
@@ -1983,12 +1982,13 @@ if ( ! function_exists( 'edd_license_key_callback' ) ) {
1983
  }
1984
 
1985
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1986
- $html = '<input type="text" class="' . $size . '-text" id="edd_settings[' . $args['id'] . ']" name="edd_settings[' . $args['id'] . ']" value="' . esc_attr( $value ) . '"/>';
1987
 
1988
  if ( ( is_object( $license ) && 'valid' == $license->license ) || 'valid' == $license ) {
1989
  $html .= '<input type="submit" class="button-secondary" name="' . $args['id'] . '_deactivate" value="' . __( 'Deactivate License', 'easy-digital-downloads' ) . '"/>';
1990
  }
1991
- $html .= '<label for="edd_settings[' . $args['id'] . ']">' . $args['desc'] . '</label>';
 
1992
 
1993
  if ( ! empty( $messages ) ) {
1994
  foreach( $messages as $message ) {
@@ -2000,7 +2000,7 @@ if ( ! function_exists( 'edd_license_key_callback' ) ) {
2000
  }
2001
  }
2002
 
2003
- wp_nonce_field( $args['id'] . '-nonce', $args['id'] . '-nonce' );
2004
 
2005
  if ( isset( $license_status ) ) {
2006
  echo '<div class="' . $license_status . '">' . $html . '</div>';
1208
  if ( isset( $args['faux'] ) && true === $args['faux'] ) {
1209
  $name = '';
1210
  } else {
1211
+ $name = 'name="edd_settings[' . sanitize_key( $args['id'] ) . ']"';
1212
  }
1213
 
1214
  $checked = isset( $edd_options[ $args['id'] ] ) ? checked( 1, $edd_options[ $args['id'] ], false ) : '';
1215
+ $html = '<input type="checkbox" id="edd_settings[' . sanitize_key( $args['id'] ) . ']"' . $name . ' value="1" ' . $checked . '/>';
1216
+ $html .= '<label for="edd_settings[' . sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1217
 
1218
  echo $html;
1219
  }
1234
  if ( ! empty( $args['options'] ) ) {
1235
  foreach( $args['options'] as $key => $option ):
1236
  if( isset( $edd_options[$args['id']][$key] ) ) { $enabled = $option; } else { $enabled = NULL; }
1237
+ echo '<input name="edd_settings[' . sanitize_key( $args['id'] ) . '][' . sanitize_key( $key ) . ']" id="edd_settings[' . sanitize_key( $args['id'] ) . '][' . sanitize_key( $key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked($option, $enabled, false) . '/>&nbsp;';
1238
+ echo '<label for="edd_settings[' . sanitize_key( $args['id'] ) . '][' . sanitize_key( $key ) . ']">' . wp_kses_post( $option ) . '</label><br/>';
1239
  endforeach;
1240
  echo '<p class="description">' . $args['desc'] . '</p>';
1241
  }
1261
  $enabled = NULL;
1262
  }
1263
 
1264
+ echo '<label for="edd_settings[' . sanitize_key( $args['id'] ) . '][' . sanitize_key( $key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
1265
 
1266
+ echo '<input name="edd_settings[' . sanitize_key( $args['id'] ) . '][' . sanitize_key( $key ) . ']" id="edd_settings[' . sanitize_key( $args['id'] ) . '][' . sanitize_key( $key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/>&nbsp;';
1267
 
1268
  if( edd_string_is_image_url( $key ) ) {
1269
 
1301
  echo $option . '</label>';
1302
 
1303
  }
1304
+ echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>';
1305
  }
1306
  }
1307
 
1326
  elseif( isset( $args['std'] ) && $args['std'] == $key && ! isset( $edd_options[ $args['id'] ] ) )
1327
  $checked = true;
1328
 
1329
+ echo '<input name="edd_settings[' . sanitize_key( $args['id'] ) . ']" id="edd_settings[' . sanitize_key( $args['id'] ) . '][' . sanitize_key( $key ) . ']" type="radio" value="' . sanitize_key( $key ) . '" ' . checked(true, $checked, false) . '/>&nbsp;';
1330
+ echo '<label for="edd_settings[' . sanitize_key( $args['id'] ) . '][' . sanitize_key( $key ) . ']">' . esc_html( $option ) . '</label><br/>';
1331
  endforeach;
1332
 
1333
+ echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>';
1334
  }
1335
 
1336
  /**
1352
  else
1353
  $enabled = null;
1354
 
1355
+ echo '<input name="edd_settings[' . esc_attr( $args['id'] ) . '][' . sanitize_key( $key ) . ']"" id="edd_settings[' . sanitize_key( $args['id'] ) . '][' . sanitize_key( $key ) . ']" type="checkbox" value="1" ' . checked('1', $enabled, false) . '/>&nbsp;';
1356
+ echo '<label for="edd_settings[' . sanitize_key( $args['id'] ) . '][' . sanitize_key( $key ) . ']">' . esc_html( $option['admin_label'] ) . '</label><br/>';
1357
  endforeach;
1358
  }
1359
 
1370
  function edd_gateway_select_callback($args) {
1371
  global $edd_options;
1372
 
1373
+ echo '<select name="edd_settings[' . sanitize_key( $args['id'] ) . ']"" id="edd_settings[' . sanitize_key( $args['id'] ) . ']">';
1374
 
1375
  foreach ( $args['options'] as $key => $option ) :
1376
  $selected = isset( $edd_options[ $args['id'] ] ) ? selected( $key, $edd_options[$args['id']], false ) : '';
1377
+ echo '<option value="' . sanitize_key( $key ) . '"' . $selected . '>' . esc_html( $option['admin_label'] ) . '</option>';
1378
  endforeach;
1379
 
1380
  echo '</select>';
1381
+ echo '<label for="edd_settings[' . sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1382
  }
1383
 
1384
  /**
1405
  $value = isset( $args['std'] ) ? $args['std'] : '';
1406
  $name = '';
1407
  } else {
1408
+ $name = 'name="edd_settings[' . esc_attr( $args['id'] ) . ']"';
1409
  }
1410
 
1411
  $readonly = $args['readonly'] === true ? ' readonly="readonly"' : '';
1412
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1413
+ $html = '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="edd_settings[' . sanitize_key( $args['id'] ) . ']" ' . $name . ' value="' . esc_attr( stripslashes( $value ) ) . '"' . $readonly . '/>';
1414
+ $html .= '<label for="edd_settings[' . sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1415
 
1416
  echo $html;
1417
  }
1440
  $value = isset( $args['std'] ) ? $args['std'] : '';
1441
  $name = '';
1442
  } else {
1443
+ $name = 'name="edd_settings[' . esc_attr( $args['id'] ) . ']"';
1444
  }
1445
 
1446
  $max = isset( $args['max'] ) ? $args['max'] : 999999;
1448
  $step = isset( $args['step'] ) ? $args['step'] : 1;
1449
 
1450
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1451
+ $html = '<input type="number" step="' . esc_attr( $step ) . '" max="' . esc_attr( $max ) . '" min="' . esc_attr( $min ) . '" class="' . sanitize_html_class( $size ) . '-text" id="edd_settings[' . sanitize_key( $args['id'] ) . ']" ' . $name . ' value="' . esc_attr( stripslashes( $value ) ) . '"/>';
1452
+ $html .= '<label for="edd_settings[' . sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1453
 
1454
  echo $html;
1455
  }
1473
  $value = isset( $args['std'] ) ? $args['std'] : '';
1474
  }
1475
 
1476
+ $html = '<textarea class="large-text" cols="50" rows="5" id="edd_settings[' . sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
1477
+ $html .= '<label for="edd_settings[' . sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1478
 
1479
  echo $html;
1480
  }
1499
  }
1500
 
1501
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1502
+ $html = '<input type="password" class="' . sanitize_html_class( $size ) . '-text" id="edd_settings[' . sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
1503
+ $html .= '<label for="edd_settings[' . sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1504
 
1505
  echo $html;
1506
  }
1552
  $chosen = '';
1553
  }
1554
 
1555
+ $html = '<select id="edd_settings[' . sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']" ' . $chosen . 'data-placeholder="' . esc_html( $placeholder ) . '" />';
1556
 
1557
  foreach ( $args['options'] as $option => $name ) {
1558
  $selected = selected( $option, $value, false );
1559
+ $html .= '<option value="' . esc_attr( $option ) . '" ' . $selected . '>' . esc_html( $name ) . '</option>';
1560
  }
1561
 
1562
  $html .= '</select>';
1563
+ $html .= '<label for="edd_settings[' . sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1564
 
1565
  echo $html;
1566
  }
1584
  $value = isset( $args['std'] ) ? $args['std'] : '';
1585
  }
1586
 
1587
+ $html = '<select id="edd_settings[' . sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']"/>';
1588
 
1589
  foreach ( $args['options'] as $option => $color ) {
1590
  $selected = selected( $option, $value, false );
1591
+ $html .= '<option value="' . esc_attr( $option ) . '" ' . $selected . '>' . esc_html( $color['label'] ) . '</option>';
1592
  }
1593
 
1594
  $html .= '</select>';
1595
+ $html .= '<label for="edd_settings[' . sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1596
 
1597
  echo $html;
1598
  }
1624
 
1625
  if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) {
1626
  ob_start();
1627
+ wp_editor( stripslashes( $value ), 'edd_settings_' . esc_attr( $args['id'] ), array( 'textarea_name' => 'edd_settings[' . esc_attr( $args['id'] ) . ']', 'textarea_rows' => absint( $rows ) ) );
1628
  $html = ob_get_clean();
1629
  } else {
1630
+ $html = '<textarea class="large-text" rows="10" id="edd_settings[' . sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
1631
  }
1632
 
1633
+ $html .= '<br/><label for="edd_settings[' . sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1634
 
1635
  echo $html;
1636
  }
1655
  }
1656
 
1657
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1658
+ $html = '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="edd_settings[' . sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>';
1659
  $html .= '<span>&nbsp;<input type="button" class="edd_settings_upload_button button-secondary" value="' . __( 'Upload File', 'easy-digital-downloads' ) . '"/></span>';
1660
+ $html .= '<label for="edd_settings[' . sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1661
 
1662
  echo $html;
1663
  }
1684
 
1685
  $default = isset( $args['std'] ) ? $args['std'] : '';
1686
 
1687
+ $html = '<input type="text" class="edd-color-picker" id="edd_settings[' . sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $default ) . '" />';
1688
+ $html .= '<label for="edd_settings[' . sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
 
1689
 
1690
  echo $html;
1691
  }
1713
 
1714
  $chosen = ( $args['chosen'] ? ' edd-chosen' : '' );
1715
  $class = empty( $states ) ? ' class="edd-no-states' . $chosen . '"' : 'class="' . $chosen . '"';
1716
+ $html = '<select id="edd_settings[' . sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']"' . $class . 'data-placeholder="' . esc_html( $placeholder ) . '"/>';
1717
 
1718
  foreach ( $states as $option => $name ) {
1719
  $selected = isset( $edd_options[ $args['id'] ] ) ? selected( $option, $edd_options[$args['id']], false ) : '';
1720
+ $html .= '<option value="' . esc_attr( $option ) . '" ' . $selected . '>' . esc_html( $name ) . '</option>';
1721
  }
1722
 
1723
  $html .= '</select>';
1724
+ $html .= '<label for="edd_settings[' . sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1725
 
1726
  echo $html;
1727
  }
1758
  <?php
1759
  echo EDD()->html->select( array(
1760
  'options' => edd_get_country_list(),
1761
+ 'name' => 'tax_rates[' . sanitize_key( $key ) . '][country]',
1762
  'selected' => $rate['country'],
1763
  'show_option_all' => false,
1764
  'show_option_none' => false,
1765
+ 'class' => 'edd-tax-country',
1766
  'chosen' => false,
1767
  'placeholder' => __( 'Choose a country', 'easy-digital-downloads' )
1768
  ) );
1774
  if( ! empty( $states ) ) {
1775
  echo EDD()->html->select( array(
1776
  'options' => $states,
1777
+ 'name' => 'tax_rates[' . sanitize_key( $key ) . '][state]',
1778
  'selected' => $rate['state'],
1779
  'show_option_all' => false,
1780
  'show_option_none' => false,
1783
  ) );
1784
  } else {
1785
  echo EDD()->html->text( array(
1786
+ 'name' => 'tax_rates[' . sanitize_key( $key ) . '][state]', $rate['state'],
1787
  'value' => ! empty( $rate['state'] ) ? $rate['state'] : '',
1788
  ) );
1789
  }
1790
  ?>
1791
  </td>
1792
  <td class="edd_tax_global">
1793
+ <input type="checkbox" name="tax_rates[<?php echo sanitize_key( $key ); ?>][global]" id="tax_rates[<?php echo sanitize_key( $key ); ?>][global]" value="1"<?php checked( true, ! empty( $rate['global'] ) ); ?>/>
1794
+ <label for="tax_rates[<?php echo sanitize_key( $key ); ?>][global]"><?php _e( 'Apply to whole country', 'easy-digital-downloads' ); ?></label>
1795
  </td>
1796
+ <td class="edd_tax_rate"><input type="number" class="small-text" step="0.0001" min="0.0" max="99" name="tax_rates[<?php echo sanitize_key( $key ); ?>][rate]" value="<?php echo esc_html( $rate['rate'] ); ?>"/></td>
1797
  <td><span class="edd_remove_tax_rate button-secondary"><?php _e( 'Remove Rate', 'easy-digital-downloads' ); ?></span></td>
1798
  </tr>
1799
  <?php endforeach; ?>
1806
  'name' => 'tax_rates[0][country]',
1807
  'show_option_all' => false,
1808
  'show_option_none' => false,
1809
+ 'class' => 'edd-tax-country',
1810
  'chosen' => false,
1811
  'placeholder' => __( 'Choose a country', 'easy-digital-downloads' )
1812
  ) ); ?>
1982
  }
1983
 
1984
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1985
+ $html = '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="edd_settings[' . sanitize_key( $args['id'] ) . ']" name="edd_settings[' . sanitize_key( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
1986
 
1987
  if ( ( is_object( $license ) && 'valid' == $license->license ) || 'valid' == $license ) {
1988
  $html .= '<input type="submit" class="button-secondary" name="' . $args['id'] . '_deactivate" value="' . __( 'Deactivate License', 'easy-digital-downloads' ) . '"/>';
1989
  }
1990
+
1991
+ $html .= '<label for="edd_settings[' . sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1992
 
1993
  if ( ! empty( $messages ) ) {
1994
  foreach( $messages as $message ) {
2000
  }
2001
  }
2002
 
2003
+ wp_nonce_field( sanitize_key( $args['id'] ) . '-nonce', sanitize_key( $args['id'] ) . '-nonce' );
2004
 
2005
  if ( isset( $license_status ) ) {
2006
  echo '<div class="' . $license_status . '">' . $html . '</div>';
includes/admin/tools.php CHANGED
@@ -130,52 +130,50 @@ function edd_tools_recount_stats_display() {
130
  <h3><span><?php _e( 'Recount Stats', 'easy-digital-downloads' ); ?></span></h3>
131
  <div class="inside recount-stats-controls">
132
  <p><?php _e( 'Use these tools to recount / reset store stats.', 'easy-digital-downloads' ); ?></p>
133
- <p>
134
- <form method="post" id="edd-tools-recount-form" class="edd-export-form">
135
- <span>
136
-
137
- <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
138
-
139
- <select name="edd-export-class" id="recount-stats-type">
140
- <option value="0" selected="selected" disabled="disabled"><?php _e( 'Please select an option', 'easy-digital-downloads' ); ?></option>
141
- <option data-type="recount-store" value="EDD_Tools_Recount_Store_Earnings"><?php _e( 'Recount Store Earnings and Sales', 'easy-digital-downloads' ); ?></option>
142
- <option data-type="recount-download" value="EDD_Tools_Recount_Download_Stats"><?php printf( __( 'Recount Earnings and Sales for a %s', 'easy-digital-downloads' ), edd_get_label_singular( true ) ); ?></option>
143
- <option data-type="recount-all" value="EDD_Tools_Recount_All_Stats"><?php printf( __( 'Recount Earnings and Sales for All %s', 'easy-digital-downloads' ), edd_get_label_plural( true ) ); ?></option>
144
- <option data-type="recount-customer-stats" value="EDD_Tools_Recount_Customer_Stats"><?php _e( 'Recount Customer Stats', 'easy-digital-downloads' ); ?></option>
145
- <?php do_action( 'edd_recount_tool_options' ); ?>
146
- <option data-type="reset-stats" value="EDD_Tools_Reset_Stats"><?php _e( 'Reset Store', 'easy-digital-downloads' ); ?></option>
147
- </select>
148
-
149
- <span id="tools-product-dropdown" style="display: none">
150
- <?php
151
- $args = array(
152
- 'name' => 'download_id',
153
- 'number' => -1,
154
- 'chosen' => true,
155
- );
156
- echo EDD()->html->product_dropdown( $args );
157
- ?>
158
- </span>
159
-
160
- <input type="submit" id="recount-stats-submit" value="<?php _e( 'Submit', 'easy-digital-downloads' ); ?>" class="button-secondary"/>
161
-
162
- <br />
163
-
164
- <span class="edd-recount-stats-descriptions">
165
- <span id="recount-store"><?php _e( 'Recalculates the total store earnings and sales.', 'easy-digital-downloads' ); ?></span>
166
- <span id="recount-download"><?php printf( __( 'Recalculates the earnings and sales stats for a specific %s.', 'easy-digital-downloads' ), edd_get_label_singular( true ) ); ?></span>
167
- <span id="recount-all"><?php printf( __( 'Recalculates the earnings and sales stats for all %s.', 'easy-digital-downloads' ), edd_get_label_plural( true ) ); ?></span>
168
- <span id="recount-customer-stats"><?php _e( 'Recalculates the lifetime value and purchase counts for all customers.', 'easy-digital-downloads' ); ?></span>
169
- <?php do_action( 'edd_recount_tool_descriptions' ); ?>
170
- <span id="reset-stats"><?php _e( '<strong>Deletes</strong> all payment records, customers, and related log entries.', 'easy-digital-downloads' ); ?></span>
171
- </span>
172
-
173
- <span class="spinner"></span>
174
 
 
 
 
 
 
 
 
 
 
175
  </span>
176
- </form>
177
- <?php do_action( 'edd_tools_recount_forms' ); ?>
178
- </p>
 
 
 
179
  </div><!-- .inside -->
180
  </div><!-- .postbox -->
181
  <?php
@@ -525,6 +523,8 @@ function edd_tools_sysinfo_get() {
525
  $return .= 'Page For Posts: ' . ( $blog_page_id != 0 ? get_the_title( $blog_page_id ) . ' (#' . $blog_page_id . ')' : 'Unset' ) . "\n";
526
  }
527
 
 
 
528
  // Make sure wp_remote_post() is working
529
  $request['cmd'] = '_notify-validate';
530
 
130
  <h3><span><?php _e( 'Recount Stats', 'easy-digital-downloads' ); ?></span></h3>
131
  <div class="inside recount-stats-controls">
132
  <p><?php _e( 'Use these tools to recount / reset store stats.', 'easy-digital-downloads' ); ?></p>
133
+ <form method="post" id="edd-tools-recount-form" class="edd-export-form">
134
+ <span>
135
+
136
+ <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
137
+
138
+ <select name="edd-export-class" id="recount-stats-type">
139
+ <option value="0" selected="selected" disabled="disabled"><?php _e( 'Please select an option', 'easy-digital-downloads' ); ?></option>
140
+ <option data-type="recount-store" value="EDD_Tools_Recount_Store_Earnings"><?php _e( 'Recount Store Earnings and Sales', 'easy-digital-downloads' ); ?></option>
141
+ <option data-type="recount-download" value="EDD_Tools_Recount_Download_Stats"><?php printf( __( 'Recount Earnings and Sales for a %s', 'easy-digital-downloads' ), edd_get_label_singular( true ) ); ?></option>
142
+ <option data-type="recount-all" value="EDD_Tools_Recount_All_Stats"><?php printf( __( 'Recount Earnings and Sales for All %s', 'easy-digital-downloads' ), edd_get_label_plural( true ) ); ?></option>
143
+ <option data-type="recount-customer-stats" value="EDD_Tools_Recount_Customer_Stats"><?php _e( 'Recount Customer Stats', 'easy-digital-downloads' ); ?></option>
144
+ <?php do_action( 'edd_recount_tool_options' ); ?>
145
+ <option data-type="reset-stats" value="EDD_Tools_Reset_Stats"><?php _e( 'Reset Store', 'easy-digital-downloads' ); ?></option>
146
+ </select>
147
+
148
+ <span id="tools-product-dropdown" style="display: none">
149
+ <?php
150
+ $args = array(
151
+ 'name' => 'download_id',
152
+ 'number' => -1,
153
+ 'chosen' => true,
154
+ );
155
+ echo EDD()->html->product_dropdown( $args );
156
+ ?>
157
+ </span>
158
+
159
+ <input type="submit" id="recount-stats-submit" value="<?php _e( 'Submit', 'easy-digital-downloads' ); ?>" class="button-secondary"/>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160
 
161
+ <br />
162
+
163
+ <span class="edd-recount-stats-descriptions">
164
+ <span id="recount-store"><?php _e( 'Recalculates the total store earnings and sales.', 'easy-digital-downloads' ); ?></span>
165
+ <span id="recount-download"><?php printf( __( 'Recalculates the earnings and sales stats for a specific %s.', 'easy-digital-downloads' ), edd_get_label_singular( true ) ); ?></span>
166
+ <span id="recount-all"><?php printf( __( 'Recalculates the earnings and sales stats for all %s.', 'easy-digital-downloads' ), edd_get_label_plural( true ) ); ?></span>
167
+ <span id="recount-customer-stats"><?php _e( 'Recalculates the lifetime value and purchase counts for all customers.', 'easy-digital-downloads' ); ?></span>
168
+ <?php do_action( 'edd_recount_tool_descriptions' ); ?>
169
+ <span id="reset-stats"><?php _e( '<strong>Deletes</strong> all payment records, customers, and related log entries.', 'easy-digital-downloads' ); ?></span>
170
  </span>
171
+
172
+ <span class="spinner"></span>
173
+
174
+ </span>
175
+ </form>
176
+ <?php do_action( 'edd_tools_recount_forms' ); ?>
177
  </div><!-- .inside -->
178
  </div><!-- .postbox -->
179
  <?php
523
  $return .= 'Page For Posts: ' . ( $blog_page_id != 0 ? get_the_title( $blog_page_id ) . ' (#' . $blog_page_id . ')' : 'Unset' ) . "\n";
524
  }
525
 
526
+ $return .= 'ABSPATH: ' . ABSPATH . "\n";
527
+
528
  // Make sure wp_remote_post() is working
529
  $request['cmd'] = '_notify-validate';
530
 
includes/admin/upload-functions.php CHANGED
@@ -150,7 +150,7 @@ function edd_get_htaccess_rules( $method = false ) {
150
  case 'direct' :
151
  default :
152
  // Prevent directory browsing and direct access to all files, except images (they must be allowed for featured images / thumbnails)
153
- $allowed_filetypes = apply_filters( 'edd_protected_directory_allowed_filetypes', array( 'jpg', 'png', 'gif', 'mp3', 'ogg' ) );
154
  $rules = "Options -Indexes\n";
155
  $rules .= "deny from all\n";
156
  $rules .= "<FilesMatch '\.(" . implode( '|', $allowed_filetypes ) . ")$'>\n";
150
  case 'direct' :
151
  default :
152
  // Prevent directory browsing and direct access to all files, except images (they must be allowed for featured images / thumbnails)
153
+ $allowed_filetypes = apply_filters( 'edd_protected_directory_allowed_filetypes', array( 'jpg', 'jpeg', 'png', 'gif', 'mp3', 'ogg' ) );
154
  $rules = "Options -Indexes\n";
155
  $rules .= "deny from all\n";
156
  $rules .= "<FilesMatch '\.(" . implode( '|', $allowed_filetypes ) . ")$'>\n";
includes/api/class-edd-api.php CHANGED
@@ -461,7 +461,7 @@ class EDD_API {
461
  $error['error'] = __( 'Your request could not be authenticated!', 'easy-digital-downloads' );
462
 
463
  $this->data = $error;
464
- $this->output( 401 );
465
  }
466
 
467
  /**
@@ -479,7 +479,7 @@ class EDD_API {
479
  $error['error'] = __( 'Invalid API key!', 'easy-digital-downloads' );
480
 
481
  $this->data = $error;
482
- $this->output( 401 );
483
  }
484
 
485
  /**
@@ -652,7 +652,8 @@ class EDD_API {
652
  $error['error'] = __( 'Invalid query!', 'easy-digital-downloads' );
653
 
654
  $this->data = $error;
655
- $this->output();
 
656
  }
657
 
658
  $this->endpoint = $query;
@@ -1804,6 +1805,10 @@ class EDD_API {
1804
 
1805
  }
1806
 
 
 
 
 
1807
  if( is_numeric( $args['user_id'] ) ) {
1808
  $user_id = isset( $args['user_id'] ) ? absint( $args['user_id'] ) : get_current_user_id();
1809
  } else {
461
  $error['error'] = __( 'Your request could not be authenticated!', 'easy-digital-downloads' );
462
 
463
  $this->data = $error;
464
+ $this->output( 403 );
465
  }
466
 
467
  /**
479
  $error['error'] = __( 'Invalid API key!', 'easy-digital-downloads' );
480
 
481
  $this->data = $error;
482
+ $this->output( 403 );
483
  }
484
 
485
  /**
652
  $error['error'] = __( 'Invalid query!', 'easy-digital-downloads' );
653
 
654
  $this->data = $error;
655
+ // 400 is Bad Request
656
+ $this->output( 400 );
657
  }
658
 
659
  $this->endpoint = $query;
1805
 
1806
  }
1807
 
1808
+ if ( empty( $args['user_id'] ) ) {
1809
+ wp_die( sprintf( __( 'User ID Required', 'easy-digital-downloads' ), $process ), __( 'Error', 'easy-digital-downloads' ), array( 'response' => 401 ) );
1810
+ }
1811
+
1812
  if( is_numeric( $args['user_id'] ) ) {
1813
  $user_id = isset( $args['user_id'] ) ? absint( $args['user_id'] ) : get_current_user_id();
1814
  } else {
includes/checkout/template.php CHANGED
@@ -754,8 +754,10 @@ function edd_terms_agreement() {
754
  <a href="#" class="edd_terms_links"><?php _e( 'Show Terms', 'easy-digital-downloads' ); ?></a>
755
  <a href="#" class="edd_terms_links" style="display:none;"><?php _e( 'Hide Terms', 'easy-digital-downloads' ); ?></a>
756
  </div>
757
- <label for="edd_agree_to_terms"><?php echo stripslashes( $agree_label ); ?></label>
758
- <input name="edd_agree_to_terms" class="required" type="checkbox" id="edd_agree_to_terms" value="1"/>
 
 
759
  </fieldset>
760
  <?php
761
  }
754
  <a href="#" class="edd_terms_links"><?php _e( 'Show Terms', 'easy-digital-downloads' ); ?></a>
755
  <a href="#" class="edd_terms_links" style="display:none;"><?php _e( 'Hide Terms', 'easy-digital-downloads' ); ?></a>
756
  </div>
757
+ <div class="edd-terms-agreement">
758
+ <input name="edd_agree_to_terms" class="required" type="checkbox" id="edd_agree_to_terms" value="1"/>
759
+ <label for="edd_agree_to_terms"><?php echo stripslashes( $agree_label ); ?></label>
760
+ </div>
761
  </fieldset>
762
  <?php
763
  }
includes/class-edd-html-elements.php CHANGED
@@ -40,7 +40,8 @@ class EDD_HTML_Elements {
40
  'chosen' => false,
41
  'number' => 30,
42
  'bundles' => true,
43
- 'placeholder' => sprintf( __( 'Select a %s', 'easy-digital-downloads' ), edd_get_label_singular() )
 
44
  );
45
 
46
  $args = wp_parse_args( $args, $defaults );
@@ -104,7 +105,8 @@ class EDD_HTML_Elements {
104
  'multiple' => $args['multiple'],
105
  'placeholder' => $args['placeholder'],
106
  'show_option_all' => false,
107
- 'show_option_none' => false
 
108
  ) );
109
 
110
  return $output;
@@ -128,7 +130,8 @@ class EDD_HTML_Elements {
128
  'selected' => 0,
129
  'chosen' => true,
130
  'placeholder' => __( 'Select a Customer', 'easy-digital-downloads' ),
131
- 'number' => 30
 
132
  );
133
 
134
  $args = wp_parse_args( $args, $defaults );
@@ -175,7 +178,8 @@ class EDD_HTML_Elements {
175
  'multiple' => $args['multiple'],
176
  'chosen' => $args['chosen'],
177
  'show_option_all' => false,
178
- 'show_option_none' => false
 
179
  ) );
180
 
181
  return $output;
@@ -332,11 +336,16 @@ class EDD_HTML_Elements {
332
  'placeholder' => null,
333
  'multiple' => false,
334
  'show_option_all' => _x( 'All', 'all dropdown items', 'easy-digital-downloads' ),
335
- 'show_option_none' => _x( 'None', 'no dropdown items', 'easy-digital-downloads' )
 
336
  );
337
 
338
  $args = wp_parse_args( $args, $defaults );
339
 
 
 
 
 
340
 
341
  if( $args['multiple'] ) {
342
  $multiple = ' MULTIPLE';
@@ -354,7 +363,8 @@ class EDD_HTML_Elements {
354
  $placeholder = '';
355
  }
356
 
357
- $output = '<select name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( sanitize_key( str_replace( '-', '_', $args['id'] ) ) ) . '" class="edd-select ' . esc_attr( $args['class'] ) . '"' . $multiple . ' data-placeholder="' . $placeholder . '">';
 
358
 
359
  if ( $args['show_option_all'] ) {
360
  if( $args['multiple'] ) {
@@ -415,6 +425,7 @@ class EDD_HTML_Elements {
415
 
416
  $args = wp_parse_args( $args, $defaults );
417
 
 
418
  $options = '';
419
  if ( ! empty( $args['options']['disabled'] ) ) {
420
  $options .= ' disabled="disabled"';
@@ -422,7 +433,7 @@ class EDD_HTML_Elements {
422
  $options .= ' readonly';
423
  }
424
 
425
- $output = '<input type="checkbox"' . $options . ' name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['name'] ) . '" class="' . $args['class'] . ' ' . esc_attr( $args['name'] ) . '" ' . checked( 1, $args['current'], false ) . ' />';
426
 
427
  return $output;
428
  }
@@ -461,6 +472,7 @@ class EDD_HTML_Elements {
461
 
462
  $args = wp_parse_args( $args, $defaults );
463
 
 
464
  $disabled = '';
465
  if( $args['disabled'] ) {
466
  $disabled = ' disabled="disabled"';
@@ -469,7 +481,7 @@ class EDD_HTML_Elements {
469
  $data = '';
470
  if ( ! empty( $args['data'] ) ) {
471
  foreach ( $args['data'] as $key => $value ) {
472
- $data .= 'data-' . $key . '="' . $value . '" ';
473
  }
474
  }
475
 
@@ -481,7 +493,7 @@ class EDD_HTML_Elements {
481
  $output .= '<span class="edd-description">' . esc_html( $args['desc'] ) . '</span>';
482
  }
483
 
484
- $output .= '<input type="text" name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['id'] ) . '" autocomplete="' . esc_attr( $args['autocomplete'] ) . '" value="' . esc_attr( $args['value'] ) . '" placeholder="' . esc_attr( $args['placeholder'] ) . '" class="' . $args['class'] . '" ' . $data . '' . $disabled . '/>';
485
 
486
  $output .= '</span>';
487
 
@@ -526,6 +538,7 @@ class EDD_HTML_Elements {
526
 
527
  $args = wp_parse_args( $args, $defaults );
528
 
 
529
  $disabled = '';
530
  if( $args['disabled'] ) {
531
  $disabled = ' disabled="disabled"';
@@ -533,9 +546,9 @@ class EDD_HTML_Elements {
533
 
534
  $output = '<span id="edd-' . sanitize_key( $args['name'] ) . '-wrap">';
535
 
536
- $output .= '<label class="edd-label" for="edd-' . sanitize_key( $args['name'] ) . '">' . esc_html( $args['label'] ) . '</label>';
537
 
538
- $output .= '<textarea name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['name'] ) . '" class="' . $args['class'] . '"' . $disabled . '>' . esc_attr( $args['value'] ) . '</textarea>';
539
 
540
  if ( ! empty( $args['desc'] ) ) {
541
  $output .= '<span class="edd-description">' . esc_html( $args['desc'] ) . '</span>';
40
  'chosen' => false,
41
  'number' => 30,
42
  'bundles' => true,
43
+ 'placeholder' => sprintf( __( 'Select a %s', 'easy-digital-downloads' ), edd_get_label_singular() ),
44
+ 'data' => array( 'search-type' => 'download' ),
45
  );
46
 
47
  $args = wp_parse_args( $args, $defaults );
105
  'multiple' => $args['multiple'],
106
  'placeholder' => $args['placeholder'],
107
  'show_option_all' => false,
108
+ 'show_option_none' => false,
109
+ 'data' => $args['data'],
110
  ) );
111
 
112
  return $output;
130
  'selected' => 0,
131
  'chosen' => true,
132
  'placeholder' => __( 'Select a Customer', 'easy-digital-downloads' ),
133
+ 'number' => 30,
134
+ 'data' => array( 'search-type' => 'customer' ),
135
  );
136
 
137
  $args = wp_parse_args( $args, $defaults );
178
  'multiple' => $args['multiple'],
179
  'chosen' => $args['chosen'],
180
  'show_option_all' => false,
181
+ 'show_option_none' => false,
182
+ 'data' => $args['data'],
183
  ) );
184
 
185
  return $output;
336
  'placeholder' => null,
337
  'multiple' => false,
338
  'show_option_all' => _x( 'All', 'all dropdown items', 'easy-digital-downloads' ),
339
+ 'show_option_none' => _x( 'None', 'no dropdown items', 'easy-digital-downloads' ),
340
+ 'data' => array(),
341
  );
342
 
343
  $args = wp_parse_args( $args, $defaults );
344
 
345
+ $data_elements = '';
346
+ foreach ( $args['data'] as $key => $value ) {
347
+ $data_elements .= ' data-' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
348
+ }
349
 
350
  if( $args['multiple'] ) {
351
  $multiple = ' MULTIPLE';
363
  $placeholder = '';
364
  }
365
 
366
+ $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) );
367
+ $output = '<select name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( sanitize_key( str_replace( '-', '_', $args['id'] ) ) ) . '" class="edd-select ' . $class . '"' . $multiple . ' data-placeholder="' . $placeholder . '"'. $data_elements . '>';
368
 
369
  if ( $args['show_option_all'] ) {
370
  if( $args['multiple'] ) {
425
 
426
  $args = wp_parse_args( $args, $defaults );
427
 
428
+ $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) );
429
  $options = '';
430
  if ( ! empty( $args['options']['disabled'] ) ) {
431
  $options .= ' disabled="disabled"';
433
  $options .= ' readonly';
434
  }
435
 
436
+ $output = '<input type="checkbox"' . $options . ' name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['name'] ) . '" class="' . $class . ' ' . esc_attr( $args['name'] ) . '" ' . checked( 1, $args['current'], false ) . ' />';
437
 
438
  return $output;
439
  }
472
 
473
  $args = wp_parse_args( $args, $defaults );
474
 
475
+ $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) );
476
  $disabled = '';
477
  if( $args['disabled'] ) {
478
  $disabled = ' disabled="disabled"';
481
  $data = '';
482
  if ( ! empty( $args['data'] ) ) {
483
  foreach ( $args['data'] as $key => $value ) {
484
+ $data .= 'data-' . sanitize_key( $key ) . '="' . esc_attr( $value ) . '" ';
485
  }
486
  }
487
 
493
  $output .= '<span class="edd-description">' . esc_html( $args['desc'] ) . '</span>';
494
  }
495
 
496
+ $output .= '<input type="text" name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['id'] ) . '" autocomplete="' . esc_attr( $args['autocomplete'] ) . '" value="' . esc_attr( $args['value'] ) . '" placeholder="' . esc_attr( $args['placeholder'] ) . '" class="' . $class . '" ' . $data . '' . $disabled . '/>';
497
 
498
  $output .= '</span>';
499
 
538
 
539
  $args = wp_parse_args( $args, $defaults );
540
 
541
+ $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) );
542
  $disabled = '';
543
  if( $args['disabled'] ) {
544
  $disabled = ' disabled="disabled"';
546
 
547
  $output = '<span id="edd-' . sanitize_key( $args['name'] ) . '-wrap">';
548
 
549
+ $output .= '<label class="edd-label" for="' . sanitize_key( $args['name'] ) . '">' . esc_html( $args['label'] ) . '</label>';
550
 
551
+ $output .= '<textarea name="' . esc_attr( $args['name'] ) . '" id="' . sanitize_key( $args['name'] ) . '" class="' . $class . '"' . $disabled . '>' . esc_attr( $args['value'] ) . '</textarea>';
552
 
553
  if ( ! empty( $args['desc'] ) ) {
554
  $output .= '<span class="edd-description">' . esc_html( $args['desc'] ) . '</span>';
includes/class-edd-license-handler.php CHANGED
@@ -405,6 +405,10 @@ class EDD_License {
405
  return;
406
  }
407
 
 
 
 
 
408
  $messages = array();
409
 
410
  $license = get_option( $this->item_shortname . '_license_active' );
405
  return;
406
  }
407
 
408
+ if( ! current_user_can( 'manage_shop_settings' ) ) {
409
+ return;
410
+ }
411
+
412
  $messages = array();
413
 
414
  $license = get_option( $this->item_shortname . '_license_active' );
includes/class-edd-stats.php CHANGED
@@ -129,9 +129,9 @@ class EDD_Stats {
129
  public function convert_date( $date, $end_date = false ) {
130
 
131
  $this->timestamp = false;
132
- $second = 0;
133
- $minute = 0;
134
- $hour = 0;
135
  $day = 1;
136
  $month = date( 'n', current_time( 'timestamp' ) );
137
  $year = date( 'Y', current_time( 'timestamp' ) );
@@ -178,7 +178,7 @@ class EDD_Stats {
178
  $day = date( 'd', current_time( 'timestamp' ) );
179
 
180
  if( $end_date ) {
181
- $hour = 11;
182
  $minute = 59;
183
  $second = 59;
184
  }
@@ -287,7 +287,7 @@ class EDD_Stats {
287
  } else {
288
  $month = 3;
289
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
290
- $hour = 11;
291
  $minute = 59;
292
  $second = 59;
293
  }
@@ -299,7 +299,7 @@ class EDD_Stats {
299
  } else {
300
  $month = 6;
301
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
302
- $hour = 11;
303
  $minute = 59;
304
  $second = 59;
305
  }
@@ -311,7 +311,7 @@ class EDD_Stats {
311
  } else {
312
  $month = 9;
313
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
314
- $hour = 11;
315
  $minute = 59;
316
  $second = 59;
317
  }
@@ -323,7 +323,7 @@ class EDD_Stats {
323
  } else {
324
  $month = 12;
325
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
326
- $hour = 11;
327
  $minute = 59;
328
  $second = 59;
329
  }
@@ -344,7 +344,7 @@ class EDD_Stats {
344
  $year -= 1;
345
  $month = 12;
346
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
347
- $hour = 11;
348
  $minute = 59;
349
  $second = 59;
350
  }
@@ -356,7 +356,7 @@ class EDD_Stats {
356
  } else {
357
  $month = 3;
358
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
359
- $hour = 11;
360
  $minute = 59;
361
  $second = 59;
362
  }
@@ -368,7 +368,7 @@ class EDD_Stats {
368
  } else {
369
  $month = 6;
370
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
371
- $hour = 11;
372
  $minute = 59;
373
  $second = 59;
374
  }
@@ -380,7 +380,7 @@ class EDD_Stats {
380
  } else {
381
  $month = 9;
382
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
383
- $hour = 11;
384
  $minute = 59;
385
  $second = 59;
386
  }
@@ -396,7 +396,7 @@ class EDD_Stats {
396
  } else {
397
  $month = 12;
398
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
399
- $hour = 11;
400
  $minute = 59;
401
  $second = 59;
402
  }
@@ -411,7 +411,7 @@ class EDD_Stats {
411
  } else {
412
  $month = 12;
413
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
414
- $hour = 11;
415
  $minute = 59;
416
  $second = 59;
417
  }
@@ -437,7 +437,7 @@ class EDD_Stats {
437
 
438
  }
439
 
440
- if( ! is_wp_error( $date ) && false === $this->timestamp ) {
441
 
442
  // Create an exact timestamp
443
  $date = mktime( $hour, $minute, $second, $month, $day, $year );
129
  public function convert_date( $date, $end_date = false ) {
130
 
131
  $this->timestamp = false;
132
+ $second = $end_date ? 59 : 0;
133
+ $minute = $end_date ? 59 : 0;
134
+ $hour = $end_date ? 23 : 0;
135
  $day = 1;
136
  $month = date( 'n', current_time( 'timestamp' ) );
137
  $year = date( 'Y', current_time( 'timestamp' ) );
178
  $day = date( 'd', current_time( 'timestamp' ) );
179
 
180
  if( $end_date ) {
181
+ $hour = 23;
182
  $minute = 59;
183
  $second = 59;
184
  }
287
  } else {
288
  $month = 3;
289
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
290
+ $hour = 23;
291
  $minute = 59;
292
  $second = 59;
293
  }
299
  } else {
300
  $month = 6;
301
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
302
+ $hour = 23;
303
  $minute = 59;
304
  $second = 59;
305
  }
311
  } else {
312
  $month = 9;
313
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
314
+ $hour = 23;
315
  $minute = 59;
316
  $second = 59;
317
  }
323
  } else {
324
  $month = 12;
325
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
326
+ $hour = 23;
327
  $minute = 59;
328
  $second = 59;
329
  }
344
  $year -= 1;
345
  $month = 12;
346
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
347
+ $hour = 23;
348
  $minute = 59;
349
  $second = 59;
350
  }
356
  } else {
357
  $month = 3;
358
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
359
+ $hour = 23;
360
  $minute = 59;
361
  $second = 59;
362
  }
368
  } else {
369
  $month = 6;
370
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
371
+ $hour = 23;
372
  $minute = 59;
373
  $second = 59;
374
  }
380
  } else {
381
  $month = 9;
382
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
383
+ $hour = 23;
384
  $minute = 59;
385
  $second = 59;
386
  }
396
  } else {
397
  $month = 12;
398
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
399
+ $hour = 23;
400
  $minute = 59;
401
  $second = 59;
402
  }
411
  } else {
412
  $month = 12;
413
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
414
+ $hour = 23;
415
  $minute = 59;
416
  $second = 59;
417
  }
437
 
438
  }
439
 
440
+ if( ! is_wp_error( $end_date ) && false === $this->timestamp ) {
441
 
442
  // Create an exact timestamp
443
  $date = mktime( $hour, $minute, $second, $month, $day, $year );
includes/discount-functions.php CHANGED
@@ -785,7 +785,7 @@ function edd_discount_product_reqs_met( $code_id = null ) {
785
  */
786
  function edd_is_discount_used( $code = null, $user = '', $code_id = 0 ) {
787
 
788
- $return = false;
789
 
790
  if ( empty( $code_id ) ) {
791
  $code_id = edd_get_discount_id_by_code( $code );
@@ -830,15 +830,15 @@ function edd_is_discount_used( $code = null, $user = '', $code_id = 0 ) {
830
 
831
  if ( $user_found ) {
832
  $query_args = array(
833
- 'post_type' => 'edd_payment',
834
- 'meta_query' => array(
835
  array(
836
  'key' => $key,
837
  'value' => $value,
838
  'compare' => '='
839
  )
840
  ),
841
- 'fields' => 'ids'
842
  );
843
 
844
  $payments = get_posts( $query_args ); // Get all payments with matching email
@@ -847,16 +847,37 @@ function edd_is_discount_used( $code = null, $user = '', $code_id = 0 ) {
847
  }
848
 
849
  if ( $payments ) {
 
850
  foreach ( $payments as $payment ) {
851
- // Check all matching payments for discount code.
852
- $payment_meta = edd_get_payment_meta( $payment );
853
- $user_info = maybe_unserialize( $payment_meta['user_info'] );
854
- if ( strtolower( $user_info['discount'] ) == strtolower( $code ) ) {
855
- edd_set_error( 'edd-discount-error', __( 'This discount has already been redeemed.', 'easy-digital-downloads' ) );
856
- $return = true;
 
 
 
857
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
858
  }
 
859
  }
 
860
  }
861
 
862
  return apply_filters( 'edd_is_discount_used', $return, $code, $user );
@@ -985,6 +1006,36 @@ function edd_increase_discount_usage( $code ) {
985
 
986
  }
987
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
988
  /**
989
  * Format Discount Rate
990
  *
785
  */
786
  function edd_is_discount_used( $code = null, $user = '', $code_id = 0 ) {
787
 
788
+ $return = false;
789
 
790
  if ( empty( $code_id ) ) {
791
  $code_id = edd_get_discount_id_by_code( $code );
830
 
831
  if ( $user_found ) {
832
  $query_args = array(
833
+ 'post_type' => 'edd_payment',
834
+ 'meta_query' => array(
835
  array(
836
  'key' => $key,
837
  'value' => $value,
838
  'compare' => '='
839
  )
840
  ),
841
+ 'fields' => 'ids'
842
  );
843
 
844
  $payments = get_posts( $query_args ); // Get all payments with matching email
847
  }
848
 
849
  if ( $payments ) {
850
+
851
  foreach ( $payments as $payment ) {
852
+
853
+ $payment = new EDD_Payment( $payment );
854
+
855
+ if( empty( $payment->discounts ) ) {
856
+ continue;
857
+ }
858
+
859
+ if( in_array( $payment->status, array( 'abandoned', 'failed' ) ) ) {
860
+ continue;
861
  }
862
+
863
+ $discounts = explode( ',', $payment->discounts );
864
+
865
+ if( is_array( $discounts ) ) {
866
+
867
+ if( in_array( strtolower( $code ), $discounts ) ) {
868
+
869
+ edd_set_error( 'edd-discount-error', __( 'This discount has already been redeemed.', 'easy-digital-downloads' ) );
870
+ $return = true;
871
+ break;
872
+
873
+ }
874
+
875
+ }
876
+
877
  }
878
+
879
  }
880
+
881
  }
882
 
883
  return apply_filters( 'edd_is_discount_used', $return, $code, $user );
1006
 
1007
  }
1008
 
1009
+ /**
1010
+ * Decrease Discount Usage
1011
+ *
1012
+ * Decreases the use count of a discount code.
1013
+ *
1014
+ * @since 2.5.7
1015
+ * @param string $code Discount code to be decremented
1016
+ * @return int
1017
+ */
1018
+ function edd_decrease_discount_usage( $code ) {
1019
+
1020
+ $id = edd_get_discount_id_by_code( $code );
1021
+ $uses = edd_get_discount_uses( $id );
1022
+
1023
+ if ( $uses ) {
1024
+ $uses--;
1025
+ }
1026
+
1027
+ if ( $uses < 0 ) {
1028
+ $uses = 0;
1029
+ }
1030
+
1031
+ update_post_meta( $id, '_edd_discount_uses', $uses );
1032
+
1033
+ do_action( 'edd_discount_decrease_use_count', $uses, $id, $code );
1034
+
1035
+ return $uses;
1036
+
1037
+ }
1038
+
1039
  /**
1040
  * Format Discount Rate
1041
  *
includes/download-functions.php CHANGED
@@ -460,9 +460,9 @@ function edd_get_highest_price_option( $download_id = 0 ) {
460
  function edd_price_range( $download_id = 0 ) {
461
  $low = edd_get_lowest_price_option( $download_id );
462
  $high = edd_get_highest_price_option( $download_id );
463
- $range = '<span class="edd_price_range_low">' . edd_currency_filter( edd_format_amount( $low ) ) . '</span>';
464
  $range .= '<span class="edd_price_range_sep">&nbsp;&ndash;&nbsp;</span>';
465
- $range .= '<span class="edd_price_range_high">' . edd_currency_filter( edd_format_amount( $high ) ) . '</span>';
466
 
467
  return apply_filters( 'edd_price_range', $range, $download_id, $low, $high );
468
  }
@@ -587,8 +587,8 @@ function edd_record_sale_in_log( $download_id = 0, $payment_id, $price_id = fals
587
  $log_data = array(
588
  'post_parent' => $download_id,
589
  'log_type' => 'sale',
590
- 'post_date' => isset( $sale_date ) ? $sale_date : null,
591
- 'post_date_gmt' => isset( $sale_date ) ? get_gmt_from_date( $sale_date ) : null
592
  );
593
 
594
  $log_meta = array(
@@ -1190,6 +1190,29 @@ function edd_validate_url_token( $url = '' ) {
1190
 
1191
  wp_parse_str( $parts['query'], $query_args );
1192
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1193
  if ( isset( $query_args['ttl'] ) && current_time( 'timestamp' ) > $query_args['ttl'] ) {
1194
 
1195
  wp_die( apply_filters( 'edd_download_link_expired_text', __( 'Sorry but your download link has expired.', 'easy-digital-downloads' ) ), __( 'Error', 'easy-digital-downloads' ), array( 'response' => 403 ) );
460
  function edd_price_range( $download_id = 0 ) {
461
  $low = edd_get_lowest_price_option( $download_id );
462
  $high = edd_get_highest_price_option( $download_id );
463
+ $range = '<span class="edd_price edd_price_range_low" id="edd_price_low_' . $download_id . '">' . edd_currency_filter( edd_format_amount( $low ) ) . '</span>';
464
  $range .= '<span class="edd_price_range_sep">&nbsp;&ndash;&nbsp;</span>';
465
+ $range .= '<span class="edd_price edd_price_range_high" id="edd_price_high_' . $download_id . '">' . edd_currency_filter( edd_format_amount( $high ) ) . '</span>';
466
 
467
  return apply_filters( 'edd_price_range', $range, $download_id, $low, $high );
468
  }
587
  $log_data = array(
588
  'post_parent' => $download_id,
589
  'log_type' => 'sale',
590
+ 'post_date' => ! empty( $sale_date ) ? $sale_date : null,
591
+ 'post_date_gmt' => ! empty( $sale_date ) ? get_gmt_from_date( $sale_date ) : null
592
  );
593
 
594
  $log_meta = array(
1190
 
1191
  wp_parse_str( $parts['query'], $query_args );
1192
 
1193
+ // These are the only URL parameters that are allowed to affect the token validation
1194
+ $allowed = apply_filters( 'edd_url_token_allowed_params', array(
1195
+ 'eddfile',
1196
+ 'file',
1197
+ 'ttl',
1198
+ 'token'
1199
+ ) );
1200
+
1201
+ // Parameters that will be removed from the URL before testing the token
1202
+ $remove = array();
1203
+
1204
+ foreach( $query_args as $key => $value ) {
1205
+ if( false === in_array( $key, $allowed ) ) {
1206
+ $remove[] = $key;
1207
+ }
1208
+ }
1209
+
1210
+ if( ! empty( $remove ) ) {
1211
+
1212
+ $url = remove_query_arg( $remove, $url );
1213
+
1214
+ }
1215
+
1216
  if ( isset( $query_args['ttl'] ) && current_time( 'timestamp' ) > $query_args['ttl'] ) {
1217
 
1218
  wp_die( apply_filters( 'edd_download_link_expired_text', __( 'Sorry but your download link has expired.', 'easy-digital-downloads' ) ), __( 'Error', 'easy-digital-downloads' ), array( 'response' => 403 ) );
includes/emails/actions.php CHANGED
@@ -21,8 +21,9 @@ if ( ! defined( 'ABSPATH' ) ) exit;
21
  */
22
  function edd_trigger_purchase_receipt( $payment_id ) {
23
  // Make sure we don't send a purchase receipt while editing a payment
24
- if ( isset( $_POST['edd-action'] ) && 'edit_payment' == $_POST['edd-action'] )
25
  return;
 
26
 
27
  // Send email with secure download link
28
  edd_email_purchase_receipt( $payment_id );
@@ -76,13 +77,14 @@ add_action( 'edd_email_links', 'edd_resend_purchase_receipt' );
76
  * @return void
77
  */
78
  function edd_send_test_email( $data ) {
79
- if ( ! wp_verify_nonce( $data['_wpnonce'], 'edd-test-email' ) )
80
  return;
 
81
 
82
  // Send a test email
83
- edd_email_test_purchase_receipt();
84
 
85
- // Remove the test email query arg
86
- wp_redirect( remove_query_arg( 'edd_action' ) ); exit;
87
  }
88
  add_action( 'edd_send_test_email', 'edd_send_test_email' );
21
  */
22
  function edd_trigger_purchase_receipt( $payment_id ) {
23
  // Make sure we don't send a purchase receipt while editing a payment
24
+ if ( isset( $_POST['edd-action'] ) && 'edit_payment' == $_POST['edd-action'] ) {
25
  return;
26
+ }
27
 
28
  // Send email with secure download link
29
  edd_email_purchase_receipt( $payment_id );
77
  * @return void
78
  */
79
  function edd_send_test_email( $data ) {
80
+ if ( ! wp_verify_nonce( $data['_wpnonce'], 'edd-test-email' ) ) {
81
  return;
82
+ }
83
 
84
  // Send a test email
85
+ edd_email_test_purchase_receipt();
86
 
87
+ // Remove the test email query arg
88
+ wp_redirect( remove_query_arg( 'edd_action' ) ); exit;
89
  }
90
  add_action( 'edd_send_test_email', 'edd_send_test_email' );
includes/emails/class-edd-emails.php CHANGED
@@ -293,9 +293,10 @@ class EDD_Emails {
293
 
294
  $attachments = apply_filters( 'edd_email_attachments', $attachments, $this );
295
 
296
- $sent = wp_mail( $to, $subject, $message, $this->get_headers(), $attachments );
 
297
 
298
- if( ! $sent ) {
299
  if ( is_array( $to ) ) {
300
  $to = implode( ',', $to );
301
  }
293
 
294
  $attachments = apply_filters( 'edd_email_attachments', $attachments, $this );
295
 
296
+ $sent = wp_mail( $to, $subject, $message, $this->get_headers(), $attachments );
297
+ $log_errors = apply_filters( 'edd_log_email_errors', true, $to, $subject, $message );
298
 
299
+ if( ! $sent && true === $log_errors ) {
300
  if ( is_array( $to ) ) {
301
  $to = implode( ',', $to );
302
  }
includes/emails/functions.php CHANGED
@@ -79,16 +79,16 @@ function edd_email_test_purchase_receipt() {
79
  $subject = edd_do_email_tags( $subject, 0 );
80
 
81
  $heading = edd_get_option( 'purchase_heading', __( 'Purchase Receipt', 'easy-digital-downloads' ) );
82
- $heading = apply_filters( 'edd_purchase_heading', $heading, 0, $payment_data );
83
 
84
  $attachments = apply_filters( 'edd_receipt_attachments', array(), 0, array() );
85
 
86
  $message = edd_do_email_tags( edd_get_email_body_content( 0, array() ), 0 );
87
 
88
  $emails = EDD()->emails;
89
- $emails->__set( 'from_name', $from_name );
90
  $emails->__set( 'from_email', $from_email );
91
- $emails->__set( 'heading', $heading );
92
 
93
  $headers = apply_filters( 'edd_receipt_headers', $emails->get_headers(), 0, array() );
94
  $emails->__set( 'headers', $headers );
79
  $subject = edd_do_email_tags( $subject, 0 );
80
 
81
  $heading = edd_get_option( 'purchase_heading', __( 'Purchase Receipt', 'easy-digital-downloads' ) );
82
+ $heading = apply_filters( 'edd_purchase_heading', $heading, 0, array() );
83
 
84
  $attachments = apply_filters( 'edd_receipt_attachments', array(), 0, array() );
85
 
86
  $message = edd_do_email_tags( edd_get_email_body_content( 0, array() ), 0 );
87
 
88
  $emails = EDD()->emails;
89
+ $emails->__set( 'from_name' , $from_name );
90
  $emails->__set( 'from_email', $from_email );
91
+ $emails->__set( 'heading' , $heading );
92
 
93
  $headers = apply_filters( 'edd_receipt_headers', $emails->get_headers(), 0, array() );
94
  $emails->__set( 'headers', $headers );
includes/gateways/functions.php CHANGED
@@ -255,8 +255,7 @@ function edd_build_straight_to_gateway_data( $download_id = 0, $options = array(
255
  );
256
 
257
  if( is_user_logged_in() ) {
258
- global $current_user;
259
- get_currentuserinfo();
260
  }
261
 
262
 
255
  );
256
 
257
  if( is_user_logged_in() ) {
258
+ $current_user = wp_get_current_user();
 
259
  }
260
 
261
 
includes/misc-functions.php CHANGED
@@ -511,8 +511,7 @@ function _edd_deprecated_function( $function, $version, $replacement = null, $ba
511
  trigger_error( sprintf( __( '%1$s is <strong>deprecated</strong> since Easy Digital Downloads version %2$s! Use %3$s instead.', 'easy-digital-downloads' ), $function, $version, $replacement ) );
512
  trigger_error( print_r( $backtrace, 1 ) ); // Limited to previous 1028 characters, but since we only need to move back 1 in stack that should be fine.
513
  // Alternatively we could dump this to a file.
514
- }
515
- else {
516
  trigger_error( sprintf( __( '%1$s is <strong>deprecated</strong> since Easy Digital Downloads version %2$s with no alternative available.', 'easy-digital-downloads' ), $function, $version ) );
517
  trigger_error( print_r( $backtrace, 1 ) );// Limited to previous 1028 characters, but since we only need to move back 1 in stack that should be fine.
518
  // Alternatively we could dump this to a file.
@@ -520,6 +519,47 @@ function _edd_deprecated_function( $function, $version, $replacement = null, $ba
520
  }
521
  }
522
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
523
 
524
  /**
525
  * Checks whether function is disabled.
511
  trigger_error( sprintf( __( '%1$s is <strong>deprecated</strong> since Easy Digital Downloads version %2$s! Use %3$s instead.', 'easy-digital-downloads' ), $function, $version, $replacement ) );
512
  trigger_error( print_r( $backtrace, 1 ) ); // Limited to previous 1028 characters, but since we only need to move back 1 in stack that should be fine.
513
  // Alternatively we could dump this to a file.
514
+ } else {
 
515
  trigger_error( sprintf( __( '%1$s is <strong>deprecated</strong> since Easy Digital Downloads version %2$s with no alternative available.', 'easy-digital-downloads' ), $function, $version ) );
516
  trigger_error( print_r( $backtrace, 1 ) );// Limited to previous 1028 characters, but since we only need to move back 1 in stack that should be fine.
517
  // Alternatively we could dump this to a file.
519
  }
520
  }
521
 
522
+ /**
523
+ * Marks an argument in a function deprecated and informs when it's been used
524
+ *
525
+ * There is a hook edd_deprecated_argument_run that will be called that can be used
526
+ * to get the backtrace up to what file and function called the deprecated
527
+ * function.
528
+ *
529
+ * The current behavior is to trigger a user error if WP_DEBUG is true.
530
+ *
531
+ * This function is to be used in every function that has an argument being deprecated.
532
+ *
533
+ * @uses do_action() Calls 'edd_deprecated_argument_run' and passes the argument, function name, what to use instead,
534
+ * and the version the function was deprecated in.
535
+ * @uses apply_filters() Calls 'edd_deprecated_argument_trigger_error' and expects boolean value of true to do
536
+ * trigger or false to not trigger error.
537
+ *
538
+ * @param string $argument The arguemnt that is being deprecated
539
+ * @param string $function The function that was called
540
+ * @param string $version The version of WordPress that deprecated the function
541
+ * @param string $replacement Optional. The function that should have been called
542
+ * @param array $backtrace Optional. Contains stack backtrace of deprecated function
543
+ */
544
+ function _edd_deprected_argument( $argument, $function, $version, $replacement = null, $backtrace = null ) {
545
+ do_action( 'edd_deprecated_argument_run', $argument, $function, $replacement, $version );
546
+
547
+ $show_errors = current_user_can( 'manage_options' );
548
+
549
+ // Allow plugin to filter the output error trigger
550
+ if ( WP_DEBUG && apply_filters( 'edd_deprecated_argument_trigger_error', $show_errors ) ) {
551
+ if ( ! is_null( $replacement ) ) {
552
+ trigger_error( sprintf( __( 'The %1$s argument of %2$s is <strong>deprecated</strong> since Easy Digital Downloads version %3$s! Please use %4$s instead.', 'easy-digital-downloads' ), $argument, $function, $version, $replacement ) );
553
+ trigger_error( print_r( $backtrace, 1 ) ); // Limited to previous 1028 characters, but since we only need to move back 1 in stack that should be fine.
554
+ // Alternatively we could dump this to a file.
555
+ } else {
556
+ trigger_error( sprintf( __( 'The %1$s argument of %2$s is <strong>deprecated</strong> since Easy Digital Downloads version %3$s with no alternative available.', 'easy-digital-downloads' ), $argument, $function, $version ) );
557
+ trigger_error( print_r( $backtrace, 1 ) );// Limited to previous 1028 characters, but since we only need to move back 1 in stack that should be fine.
558
+ // Alternatively we could dump this to a file.
559
+ }
560
+ }
561
+ }
562
+
563
 
564
  /**
565
  * Checks whether function is disabled.
includes/payments/actions.php CHANGED
@@ -87,7 +87,6 @@ function edd_complete_purchase( $payment_id, $new_status, $old_status ) {
87
 
88
  edd_increase_total_earnings( $amount );
89
 
90
-
91
  // Check for discount codes and increment their use counts
92
  if ( ! empty( $user_info['discount'] ) && $user_info['discount'] !== 'none' ) {
93
 
@@ -153,54 +152,12 @@ add_action( 'edd_update_payment_status', 'edd_record_status_change', 100, 3 );
153
  */
154
  function edd_undo_purchase_on_refund( $payment_id, $new_status, $old_status ) {
155
 
156
- global $edd_logs;
157
-
158
- if ( 'publish' != $old_status && 'revoked' != $old_status ) {
159
- return;
160
- }
161
-
162
- if ( 'refunded' != $new_status ) {
163
- return;
164
- }
165
-
166
- $payment = new EDD_Payment( $payment_id );
167
- $downloads = $payment->cart_details;
168
-
169
- if ( $downloads ) {
170
- foreach( $downloads as $download ) {
171
- edd_undo_purchase( $download['id'], $payment->ID );
172
- }
173
- }
174
-
175
- // Decrease store earnings
176
- edd_decrease_total_earnings( $payment->total );
177
-
178
- // Decrement the stats for the customer
179
- if ( ! empty( $payment->customer_id ) ) {
180
-
181
- $customer = new EDD_Customer( $payment->customer_id );
182
- $customer->decrease_value( $payment->total );
183
- $customer->decrease_purchase_count();
184
-
185
- }
186
-
187
- // Remove related sale log entries
188
- $edd_logs->delete_logs(
189
- null,
190
- 'sale',
191
- array(
192
- array(
193
- 'key' => '_edd_log_payment_id',
194
- 'value' => $payment->ID,
195
- ),
196
- )
197
- );
198
 
199
- // Clear the This Month earnings (this_monththis_month is NOT a typo)
200
- delete_transient( md5( 'edd_earnings_this_monththis_month' ) );
201
  }
202
- add_action( 'edd_update_payment_status', 'edd_undo_purchase_on_refund', 100, 3 );
203
-
204
 
205
  /**
206
  * Flushes the current user's purchase history transient when a payment status
87
 
88
  edd_increase_total_earnings( $amount );
89
 
 
90
  // Check for discount codes and increment their use counts
91
  if ( ! empty( $user_info['discount'] ) && $user_info['discount'] !== 'none' ) {
92
 
152
  */
153
  function edd_undo_purchase_on_refund( $payment_id, $new_status, $old_status ) {
154
 
155
+ $backtrace = debug_backtrace();
156
+ _edd_deprecated_function( 'edd_undo_purchase_on_refund', '2.5.7', 'EDD_Payment->refund()', $backtrace );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
 
158
+ $payment = new EDD_Payment( $payment_id );
159
+ $payment->refund();
160
  }
 
 
161
 
162
  /**
163
  * Flushes the current user's purchase history transient when a payment status
includes/payments/class-edd-payment.php CHANGED
@@ -403,6 +403,9 @@ final class EDD_Payment {
403
  return false;
404
  }
405
 
 
 
 
406
  // Primary Identifier
407
  $this->ID = absint( $payment_id );
408
 
@@ -467,7 +470,6 @@ final class EDD_Payment {
467
  * Create the base of a payment.
468
  *
469
  * @since 2.5
470
- * @param array $payment_data Base payment data.
471
  * @return int|bool Fale on failure, the payment ID on success.
472
  */
473
  private function insert_payment() {
@@ -579,7 +581,7 @@ final class EDD_Payment {
579
  /**
580
  * One items have been set, an update is needed to save them to the database.
581
  *
582
- * @return bool True of the save occured, false if it failed or wasn't needed
583
  */
584
  public function save() {
585
  $saved = false;
@@ -621,15 +623,13 @@ final class EDD_Payment {
621
  if ( 'publish' === $this->status || 'complete' === $this->status || 'revoked' === $this->status ) {
622
 
623
  // Add sales logs
624
- $log_date = date( 'Y-m-d G:i:s', current_time( 'timestamp', true ) );
625
  $price_id = isset( $item['item_number']['options']['price_id'] ) ? $item['item_number']['options']['price_id'] : 0;
626
 
627
  $y = 0;
628
-
629
  while ( $y < $item['quantity'] ) {
630
  edd_record_sale_in_log( $item['id'], $this->ID, $price_id, $log_date );
631
  $y++;
632
-
633
  }
634
 
635
  $download = new EDD_Download( $item['id'] );
@@ -744,7 +744,11 @@ final class EDD_Payment {
744
  break;
745
 
746
  case 'discounts':
747
- $this->user_info['discount'] = $this->discounts;
 
 
 
 
748
  break;
749
 
750
  case 'address':
@@ -767,6 +771,7 @@ final class EDD_Payment {
767
  $args = array(
768
  'ID' => $this->ID,
769
  'post_date' => $this->date,
 
770
  );
771
 
772
  wp_update_post( $args );
@@ -802,7 +807,7 @@ final class EDD_Payment {
802
  $total_change = $total_increase - $total_decrease;
803
  if ( $total_change < 0 ) {
804
 
805
- $total_chnage = -( $total_change );
806
  // Decrease the customer's purchase stats
807
  $customer->decrease_value( $total_change );
808
  edd_decrease_total_earnings( $total_change );
@@ -820,6 +825,8 @@ final class EDD_Payment {
820
  $this->update_meta( '_edd_payment_total', $this->total );
821
  $this->update_meta( '_edd_payment_tax', $this->tax );
822
 
 
 
823
  $new_meta = array(
824
  'downloads' => $this->downloads,
825
  'cart_details' => $this->cart_details,
@@ -854,8 +861,9 @@ final class EDD_Payment {
854
  * Add a download to a given payment
855
  *
856
  * @since 2.5
857
- * @param int $download_id The download to add
858
- * @param int $args Other arguments to pass to the function
 
859
  * @return void
860
  */
861
  public function add_download( $download_id = 0, $args = array(), $options = array() ) {
@@ -912,7 +920,7 @@ final class EDD_Payment {
912
  'quantity' => $quantity,
913
  );
914
 
915
- if ( ! empty( $args['price_id'] ) ) {
916
  $default_options['price_id'] = (int) $args['price_id'];
917
  }
918
 
@@ -931,7 +939,7 @@ final class EDD_Payment {
931
 
932
  $total = $subtotal - $discount + $tax;
933
 
934
- // Do not allow totals to go negatve
935
  if( $total < 0 ) {
936
  $total = 0;
937
  }
@@ -970,12 +978,12 @@ final class EDD_Payment {
970
  }
971
 
972
  /**
973
- * Remove a downoad from the payment
974
  *
975
  * @since 2.5
976
  * @param int $download_id The download ID to remove
977
- * @param array $args Arguements to pass to identify (quantity, amount, price_id)
978
- * @return bool If the item was remvoed or not
979
  */
980
  public function remove_download( $download_id, $args = array() ) {
981
 
@@ -995,9 +1003,6 @@ final class EDD_Payment {
995
  return false;
996
  }
997
 
998
- $total_reduced = 0;
999
- $tax_reduced = 0;
1000
-
1001
  foreach ( $this->downloads as $key => $item ) {
1002
 
1003
  if ( $download_id != $item['id'] ) {
@@ -1005,9 +1010,30 @@ final class EDD_Payment {
1005
  }
1006
 
1007
  if ( false !== $args['price_id'] ) {
1008
- if ( isset( $item['price_id'] ) && $args['price_id'] != $item['price_id'] ) {
 
1009
  continue;
1010
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1011
  }
1012
 
1013
  $item_quantity = $this->downloads[ $key ]['quantity'];
@@ -1015,10 +1041,12 @@ final class EDD_Payment {
1015
  if ( $item_quantity > $args['quantity'] ) {
1016
 
1017
  $this->downloads[ $key ]['quantity'] -= $args['quantity'];
 
1018
 
1019
  } else {
1020
 
1021
  unset( $this->downloads[ $key ] );
 
1022
 
1023
  }
1024
 
@@ -1035,13 +1063,19 @@ final class EDD_Payment {
1035
  }
1036
 
1037
  if ( false !== $args['price_id'] ) {
1038
- if ( isset( $item['price_id'] ) && $args['price_id'] != $item['item_number']['options']['price_id'] ) {
1039
  continue;
1040
  }
1041
  }
1042
 
1043
- $found_cart_key = $cart_key;
 
 
 
 
1044
 
 
 
1045
  }
1046
 
1047
  } else {
@@ -1057,10 +1091,8 @@ final class EDD_Payment {
1057
  }
1058
 
1059
  $found_cart_key = $cart_index;
1060
-
1061
  }
1062
 
1063
-
1064
  $orig_quantity = $this->cart_details[ $found_cart_key ]['quantity'];
1065
 
1066
  if ( $orig_quantity > $args['quantity'] ) {
@@ -1097,6 +1129,7 @@ final class EDD_Payment {
1097
 
1098
  $pending_args = $args;
1099
  $pending_args['id'] = $download_id;
 
1100
  $pending_args['price_id'] = false !== $args['price_id'] ? $args['price_id'] : false;
1101
  $pending_args['quantity'] = $args['quantity'];
1102
  $pending_args['action'] = 'remove';
@@ -1113,8 +1146,8 @@ final class EDD_Payment {
1113
  * Add a fee to a given payment
1114
  *
1115
  * @since 2.5
1116
- * @param array $args Array of arguements for the fee to add
1117
- * @return If the fee was added
1118
  */
1119
  public function add_fee( $args, $global = true ) {
1120
 
@@ -1331,7 +1364,6 @@ final class EDD_Payment {
1331
  * Set or update the total for a payment
1332
  *
1333
  * @since 2.5
1334
- * @param int $amount The amount of the payment
1335
  * @return void
1336
  */
1337
  private function recalculate_total() {
@@ -1371,7 +1403,7 @@ final class EDD_Payment {
1371
  }
1372
 
1373
  /**
1374
- * Set the payment status
1375
  *
1376
  * @since 2.5
1377
  *
@@ -1405,6 +1437,16 @@ final class EDD_Payment {
1405
  $all_payment_statuses = edd_get_payment_statuses();
1406
  $this->status_nicename = array_key_exists( $status, $all_payment_statuses ) ? $all_payment_statuses[ $status ] : ucfirst( $status );
1407
 
 
 
 
 
 
 
 
 
 
 
1408
  do_action( 'edd_update_payment_status', $this->ID, $status, $old_status );
1409
 
1410
  }
@@ -1413,6 +1455,20 @@ final class EDD_Payment {
1413
 
1414
  }
1415
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1416
  /**
1417
  * Get a post meta item for the payment
1418
  *
@@ -1486,6 +1542,98 @@ final class EDD_Payment {
1486
  return update_post_meta( $this->ID, $meta_key, $meta_value, $prev_value );
1487
  }
1488
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1489
  /**
1490
  * Setup functions only, these are not to be used by developers.
1491
  * These functions exist only to allow the setup routine to be backwards compatible with our old
@@ -1595,7 +1743,6 @@ final class EDD_Payment {
1595
  * Setup the payments discount codes
1596
  *
1597
  * @since 2.5
1598
- * @param array $payment_meta The payment Meta
1599
  * @return array Array of discount codes on this payment
1600
  */
1601
  private function setup_discounts() {
@@ -1607,11 +1754,10 @@ final class EDD_Payment {
1607
  * Setup the currency code
1608
  *
1609
  * @since 2.5
1610
- * @param array $payment_meta The payment meta
1611
  * @return string The currency for the payment
1612
  */
1613
  private function setup_currency() {
1614
- $currency = isset( $this->payment_meta['currency'] ) ? $this->payment_meta['currency'] : edd_get_currency();
1615
  return $currency;
1616
  }
1617
 
@@ -1619,7 +1765,6 @@ final class EDD_Payment {
1619
  * Setup any fees associated with the payment
1620
  *
1621
  * @since 2.5
1622
- * @param arra $payment_meta The Payment Meta
1623
  * @return array The Fees
1624
  */
1625
  private function setup_fees() {
@@ -1645,7 +1790,6 @@ final class EDD_Payment {
1645
  * @return string The transaction ID for the payment
1646
  */
1647
  private function setup_transaction_id() {
1648
- $transaction_id = false;
1649
  $transaction_id = $this->get_meta( '_edd_payment_transaction_id', true );
1650
 
1651
  if ( empty( $transaction_id ) ) {
@@ -1711,7 +1855,6 @@ final class EDD_Payment {
1711
  * Setup the user info
1712
  *
1713
  * @since 2.5
1714
- * @param array $payment_meta The payment meta
1715
  * @return array The user info associated with the payment
1716
  */
1717
  private function setup_user_info() {
@@ -1721,7 +1864,7 @@ final class EDD_Payment {
1721
  'discount' => $this->discounts,
1722
  );
1723
 
1724
- $user_info = isset( $this->payment_meta['user_info'] ) ? $this->payment_meta['user_info'] : array();
1725
  $user_info = wp_parse_args( $user_info, $defaults );
1726
 
1727
  return $user_info;
@@ -1731,7 +1874,6 @@ final class EDD_Payment {
1731
  * Setup the Address for the payment
1732
  *
1733
  * @since 2.5
1734
- * @param array $payment_meta The Payment Meta
1735
  * @return array The Address information for the payment
1736
  */
1737
  private function setup_address() {
@@ -1778,7 +1920,6 @@ final class EDD_Payment {
1778
  * Setup the cart details
1779
  *
1780
  * @since 2.5
1781
- * @param array $payment_meta The Payment Meta
1782
  * @return array The cart details
1783
  */
1784
  private function setup_cart_details() {
@@ -1790,7 +1931,6 @@ final class EDD_Payment {
1790
  * Setup the downloads array
1791
  *
1792
  * @since 2.5
1793
- * @param array $payment_meta Payment Meta
1794
  * @return array Downloads associated with this payment
1795
  */
1796
  private function setup_downloads() {
403
  return false;
404
  }
405
 
406
+ // Allow extensions to perform actions before the payment is loaded
407
+ do_action( 'edd_pre_setup_payment', $this, $payment_id );
408
+
409
  // Primary Identifier
410
  $this->ID = absint( $payment_id );
411
 
470
  * Create the base of a payment.
471
  *
472
  * @since 2.5
 
473
  * @return int|bool Fale on failure, the payment ID on success.
474
  */
475
  private function insert_payment() {
581
  /**
582
  * One items have been set, an update is needed to save them to the database.
583
  *
584
+ * @return bool True of the save occurred, false if it failed or wasn't needed
585
  */
586
  public function save() {
587
  $saved = false;
623
  if ( 'publish' === $this->status || 'complete' === $this->status || 'revoked' === $this->status ) {
624
 
625
  // Add sales logs
626
+ $log_date = date_i18n( 'Y-m-d G:i:s', current_time( 'timestamp' ) );
627
  $price_id = isset( $item['item_number']['options']['price_id'] ) ? $item['item_number']['options']['price_id'] : 0;
628
 
629
  $y = 0;
 
630
  while ( $y < $item['quantity'] ) {
631
  edd_record_sale_in_log( $item['id'], $this->ID, $price_id, $log_date );
632
  $y++;
 
633
  }
634
 
635
  $download = new EDD_Download( $item['id'] );
744
  break;
745
 
746
  case 'discounts':
747
+ if ( ! is_array( $this->discounts ) ) {
748
+ $this->discounts = explode( ',', $this->discounts );
749
+ }
750
+
751
+ $this->user_info['discount'] = implode( ',', $this->discounts );
752
  break;
753
 
754
  case 'address':
771
  $args = array(
772
  'ID' => $this->ID,
773
  'post_date' => $this->date,
774
+ 'edit_date' => true,
775
  );
776
 
777
  wp_update_post( $args );
807
  $total_change = $total_increase - $total_decrease;
808
  if ( $total_change < 0 ) {
809
 
810
+ $total_change = -( $total_change );
811
  // Decrease the customer's purchase stats
812
  $customer->decrease_value( $total_change );
813
  edd_decrease_total_earnings( $total_change );
825
  $this->update_meta( '_edd_payment_total', $this->total );
826
  $this->update_meta( '_edd_payment_tax', $this->tax );
827
 
828
+ $this->downloads = array_values( $this->downloads );
829
+
830
  $new_meta = array(
831
  'downloads' => $this->downloads,
832
  'cart_details' => $this->cart_details,
861
  * Add a download to a given payment
862
  *
863
  * @since 2.5
864
+ * @param int $download_id The download to add
865
+ * @param array $args Other arguments to pass to the function
866
+ * @param array $options List of download options
867
  * @return void
868
  */
869
  public function add_download( $download_id = 0, $args = array(), $options = array() ) {
920
  'quantity' => $quantity,
921
  );
922
 
923
+ if ( false !== $args['price_id'] ) {
924
  $default_options['price_id'] = (int) $args['price_id'];
925
  }
926
 
939
 
940
  $total = $subtotal - $discount + $tax;
941
 
942
+ // Do not allow totals to go negative
943
  if( $total < 0 ) {
944
  $total = 0;
945
  }
978
  }
979
 
980
  /**
981
+ * Remove a download from the payment
982
  *
983
  * @since 2.5
984
  * @param int $download_id The download ID to remove
985
+ * @param array $args Arguments to pass to identify (quantity, amount, price_id)
986
+ * @return bool If the item was removed or not
987
  */
988
  public function remove_download( $download_id, $args = array() ) {
989
 
1003
  return false;
1004
  }
1005
 
 
 
 
1006
  foreach ( $this->downloads as $key => $item ) {
1007
 
1008
  if ( $download_id != $item['id'] ) {
1010
  }
1011
 
1012
  if ( false !== $args['price_id'] ) {
1013
+
1014
+ if ( isset( $item['options']['price_id'] ) && $args['price_id'] != $item['options']['price_id'] ) {
1015
  continue;
1016
  }
1017
+
1018
+ } elseif ( false !== $args['cart_index'] ) {
1019
+
1020
+ $cart_index = absint( $args['cart_index'] );
1021
+ $cart_item = ! empty( $this->cart_details[ $cart_index ] ) ? $this->cart_details[ $cart_index ] : false;
1022
+
1023
+ if ( ! empty( $cart_item ) ) {
1024
+
1025
+ // If the cart index item isn't the same download ID, don't remove it
1026
+ if ( $cart_item['id'] != $item['id'] ) {
1027
+ continue;
1028
+ }
1029
+
1030
+ // If this item has a price ID, make sure it matches the cart indexed item's price ID before removing
1031
+ if ( isset( $item['options']['price_id'] ) && $item['options']['price_id'] != $cart_item['item_number']['options']['price_id'] ) {
1032
+ continue;
1033
+ }
1034
+
1035
+ }
1036
+
1037
  }
1038
 
1039
  $item_quantity = $this->downloads[ $key ]['quantity'];
1041
  if ( $item_quantity > $args['quantity'] ) {
1042
 
1043
  $this->downloads[ $key ]['quantity'] -= $args['quantity'];
1044
+ break;
1045
 
1046
  } else {
1047
 
1048
  unset( $this->downloads[ $key ] );
1049
+ break;
1050
 
1051
  }
1052
 
1063
  }
1064
 
1065
  if ( false !== $args['price_id'] ) {
1066
+ if ( isset( $item['item_number']['options']['price_id'] ) && $args['price_id'] != $item['item_number']['options']['price_id'] ) {
1067
  continue;
1068
  }
1069
  }
1070
 
1071
+ if ( false !== $args['item_price'] ) {
1072
+ if ( isset( $item['item_price'] ) && $args['item_price'] != $item['item_price'] ) {
1073
+ continue;
1074
+ }
1075
+ }
1076
 
1077
+ $found_cart_key = $cart_key;
1078
+ break;
1079
  }
1080
 
1081
  } else {
1091
  }
1092
 
1093
  $found_cart_key = $cart_index;
 
1094
  }
1095
 
 
1096
  $orig_quantity = $this->cart_details[ $found_cart_key ]['quantity'];
1097
 
1098
  if ( $orig_quantity > $args['quantity'] ) {
1129
 
1130
  $pending_args = $args;
1131
  $pending_args['id'] = $download_id;
1132
+ $pending_args['amount'] = $total_reduced;
1133
  $pending_args['price_id'] = false !== $args['price_id'] ? $args['price_id'] : false;
1134
  $pending_args['quantity'] = $args['quantity'];
1135
  $pending_args['action'] = 'remove';
1146
  * Add a fee to a given payment
1147
  *
1148
  * @since 2.5
1149
+ * @param array $args Array of arguments for the fee to add
1150
+ * @return bool If the fee was added
1151
  */
1152
  public function add_fee( $args, $global = true ) {
1153
 
1364
  * Set or update the total for a payment
1365
  *
1366
  * @since 2.5
 
1367
  * @return void
1368
  */
1369
  private function recalculate_total() {
1403
  }
1404
 
1405
  /**
1406
+ * Set the payment status and run any status specific changes necessary
1407
  *
1408
  * @since 2.5
1409
  *
1437
  $all_payment_statuses = edd_get_payment_statuses();
1438
  $this->status_nicename = array_key_exists( $status, $all_payment_statuses ) ? $all_payment_statuses[ $status ] : ucfirst( $status );
1439
 
1440
+ // Process any specific status functions
1441
+ switch( $status ) {
1442
+ case 'refunded':
1443
+ $this->process_refund();
1444
+ break;
1445
+ case 'failed':
1446
+ $this->process_failure();
1447
+ break;
1448
+ }
1449
+
1450
  do_action( 'edd_update_payment_status', $this->ID, $status, $old_status );
1451
 
1452
  }
1455
 
1456
  }
1457
 
1458
+ /**
1459
+ * Change the status of the payment to refunded, and run the necessary changes
1460
+ *
1461
+ * @since 2.5.7
1462
+ * @return void
1463
+ */
1464
+ public function refund() {
1465
+ $this->old_status = $this->status;
1466
+ $this->status = 'refunded';
1467
+ $this->pending['status'] = $this->status;
1468
+
1469
+ $this->save();
1470
+ }
1471
+
1472
  /**
1473
  * Get a post meta item for the payment
1474
  *
1542
  return update_post_meta( $this->ID, $meta_key, $meta_value, $prev_value );
1543
  }
1544
 
1545
+ /**
1546
+ * When a payment is set to a status of 'refunded' process the necessary actions to reduce stats
1547
+ *
1548
+ * @since 2.5.7
1549
+ * @access private
1550
+ * @return void
1551
+ */
1552
+ private function process_refund() {
1553
+ global $edd_logs;
1554
+
1555
+ $process_refund = true;
1556
+
1557
+ // If the payment was not in publish or revoked status, don't decrement stats as they were never incremented
1558
+ if ( ( 'publish' != $this->old_status && 'revoked' != $this->old_status ) || 'refunded' != $this->status ) {
1559
+ $process_refund = false;
1560
+ }
1561
+
1562
+ // Allow extensions to filter for their own payment types, Example: Recurring Payments
1563
+ $process_refund = apply_filters( 'edd_should_process_refund', $process_refund, $this );
1564
+
1565
+ if ( false === $process_refund ) {
1566
+ return;
1567
+ }
1568
+
1569
+ do_action( 'edd_pre_refund_payment', $this );
1570
+
1571
+ edd_undo_purchase( false, $this->ID );
1572
+
1573
+ // Decrease store earnings
1574
+ $maybe_decrease_store_earnings = apply_filters( 'edd_decrease_store_earnings_on_refund', true, $this );
1575
+ if ( true === $maybe_decrease_store_earnings ) {
1576
+ edd_decrease_total_earnings( $this->total );
1577
+ }
1578
+
1579
+ // Decrement the stats for the customer
1580
+ if ( ! empty( $this->customer_id ) ) {
1581
+
1582
+ $customer = new EDD_Customer( $this->customer_id );
1583
+
1584
+ $maybe_decrease_value = apply_filters( 'edd_decrease_customer_value_on_refund', true, $this );
1585
+ if ( true === $maybe_decrease_value ) {
1586
+ $customer->decrease_value( $this->total );
1587
+ }
1588
+
1589
+ $maybe_decrease_purchase_count = apply_filters( 'edd_decrease_customer_purchase_count_on_refund', true, $this );
1590
+ if ( true === $maybe_decrease_purchase_count ) {
1591
+ $customer->decrease_purchase_count();
1592
+ }
1593
+
1594
+ }
1595
+
1596
+ // Remove related sale log entries
1597
+ $edd_logs->delete_logs(
1598
+ null,
1599
+ 'sale',
1600
+ array(
1601
+ array(
1602
+ 'key' => '_edd_log_payment_id',
1603
+ 'value' => $this->ID,
1604
+ ),
1605
+ )
1606
+ );
1607
+
1608
+ // Clear the This Month earnings (this_monththis_month is NOT a typo)
1609
+ delete_transient( md5( 'edd_earnings_this_monththis_month' ) );
1610
+
1611
+ do_action( 'edd_post_refund_payment', $this );
1612
+ }
1613
+
1614
+ /**
1615
+ * Process when a payment is set to failed, decrement discount usages and other stats
1616
+ *
1617
+ * @since 2.5.7
1618
+ * @return void
1619
+ */
1620
+ private function process_failure() {
1621
+
1622
+ $discounts = $this->discounts;
1623
+ if ( 'none' === $discounts || empty( $discounts ) ) {
1624
+ return;
1625
+ }
1626
+
1627
+ if ( ! is_array( $discounts ) ) {
1628
+ $discounts = array_map( 'trim', explode( ',', $discounts ) );
1629
+ }
1630
+
1631
+ foreach ( $discounts as $discount ) {
1632
+ edd_decrease_discount_usage( $discount );
1633
+ }
1634
+
1635
+ }
1636
+
1637
  /**
1638
  * Setup functions only, these are not to be used by developers.
1639
  * These functions exist only to allow the setup routine to be backwards compatible with our old
1743
  * Setup the payments discount codes
1744
  *
1745
  * @since 2.5
 
1746
  * @return array Array of discount codes on this payment
1747
  */
1748
  private function setup_discounts() {
1754
  * Setup the currency code
1755
  *
1756
  * @since 2.5
 
1757
  * @return string The currency for the payment
1758
  */
1759
  private function setup_currency() {
1760
+ $currency = isset( $this->payment_meta['currency'] ) ? $this->payment_meta['currency'] : apply_filters( 'edd_payment_currency_default', edd_get_currency(), $this );
1761
  return $currency;
1762
  }
1763
 
1765
  * Setup any fees associated with the payment
1766
  *
1767
  * @since 2.5
 
1768
  * @return array The Fees
1769
  */
1770
  private function setup_fees() {
1790
  * @return string The transaction ID for the payment
1791
  */
1792
  private function setup_transaction_id() {
 
1793
  $transaction_id = $this->get_meta( '_edd_payment_transaction_id', true );
1794
 
1795
  if ( empty( $transaction_id ) ) {
1855
  * Setup the user info
1856
  *
1857
  * @since 2.5
 
1858
  * @return array The user info associated with the payment
1859
  */
1860
  private function setup_user_info() {
1864
  'discount' => $this->discounts,
1865
  );
1866
 
1867
+ $user_info = isset( $this->payment_meta['user_info'] ) ? maybe_unserialize( $this->payment_meta['user_info'] ) : array();
1868
  $user_info = wp_parse_args( $user_info, $defaults );
1869
 
1870
  return $user_info;
1874
  * Setup the Address for the payment
1875
  *
1876
  * @since 2.5
 
1877
  * @return array The Address information for the payment
1878
  */
1879
  private function setup_address() {
1920
  * Setup the cart details
1921
  *
1922
  * @since 2.5
 
1923
  * @return array The cart details
1924
  */
1925
  private function setup_cart_details() {
1931
  * Setup the downloads array
1932
  *
1933
  * @since 2.5
 
1934
  * @return array Downloads associated with this payment
1935
  */
1936
  private function setup_downloads() {
includes/payments/functions.php CHANGED
@@ -223,15 +223,9 @@ function edd_delete_purchase( $payment_id = 0, $update_customer = true, $delete_
223
  global $edd_logs;
224
 
225
  $payment = new EDD_Payment( $payment_id );
226
- $downloads = $payment->downloads;
227
-
228
- if ( is_array( $downloads ) ) {
229
- // Update sale counts and earnings for all purchased products
230
- foreach ( $downloads as $download ) {
231
- edd_undo_purchase( $download['id'], $payment_id );
232
- }
233
- }
234
 
 
 
235
 
236
  $amount = edd_get_payment_amount( $payment_id );
237
  $status = $payment->post_status;
@@ -303,7 +297,17 @@ function edd_delete_purchase( $payment_id = 0, $update_customer = true, $delete_
303
  * @param int $payment_id Payment ID
304
  * @return void
305
  */
306
- function edd_undo_purchase( $download_id, $payment_id ) {
 
 
 
 
 
 
 
 
 
 
307
 
308
  $payment = new EDD_Payment( $payment_id );
309
 
@@ -320,24 +324,30 @@ function edd_undo_purchase( $download_id, $payment_id ) {
320
  // Decrease earnings/sales and fire action once per quantity number
321
  for( $i = 0; $i < $item['quantity']; $i++ ) {
322
 
323
- // variable priced downloads
324
- if ( false === $amount && edd_has_variable_prices( $download_id ) ) {
325
  $price_id = isset( $item['item_number']['options']['price_id'] ) ? $item['item_number']['options']['price_id'] : null;
326
- $amount = ! isset( $item['price'] ) && 0 !== $item['price'] ? edd_get_price_option_amount( $download_id, $price_id ) : $item['price'];
327
  }
328
 
329
- if ( ! $amount ) {
330
- // This function is only used on payments with near 1.0 cart data structure
331
- $amount = edd_get_download_final_price( $download_id, $user_info, $amount );
332
- }
333
 
334
  }
335
 
336
- // decrease earnings
337
- edd_decrease_earnings( $download_id, $amount );
 
 
 
338
 
339
- // decrease purchase count
340
- edd_decrease_purchase_count( $download_id, $item['quantity'] );
 
 
 
341
 
342
  }
343
 
@@ -784,10 +794,10 @@ function edd_get_total_sales() {
784
  */
785
  function edd_get_total_earnings() {
786
 
787
- $total = get_option( 'edd_earnings_total', 0 );
788
 
789
  // If no total stored in DB, use old method of calculating total earnings
790
- if( ! $total ) {
791
 
792
  global $wpdb;
793
 
@@ -934,9 +944,12 @@ function edd_get_payment_meta_cart_details( $payment_id, $include_bundle_files =
934
  $payment = new EDD_Payment( $payment_id );
935
  $cart_details = $payment->cart_details;
936
 
 
 
937
  if ( ! empty( $cart_details ) && is_array( $cart_details ) ) {
938
 
939
  foreach ( $cart_details as $key => $cart_item ) {
 
940
 
941
  // Ensure subtotal is set, for pre-1.9 orders
942
  if ( ! isset( $cart_item['subtotal'] ) ) {
223
  global $edd_logs;
224
 
225
  $payment = new EDD_Payment( $payment_id );
 
 
 
 
 
 
 
 
226
 
227
+ // Update sale counts and earnings for all purchased products
228
+ edd_undo_purchase( false, $payment_id );
229
 
230
  $amount = edd_get_payment_amount( $payment_id );
231
  $status = $payment->post_status;
297
  * @param int $payment_id Payment ID
298
  * @return void
299
  */
300
+ function edd_undo_purchase( $download_id = false, $payment_id ) {
301
+
302
+ /**
303
+ * In 2.5.7, a bug was found that $download_id was an incorrect usage. Passing it in
304
+ * now does nothing, but we're holding it in place for legacy support of the argument order.
305
+ */
306
+
307
+ if ( ! empty( $download_id ) ) {
308
+ $download_id = false;
309
+ _edd_deprected_argument( 'download_id', 'edd_undo_purchase', '2.5.7' );
310
+ }
311
 
312
  $payment = new EDD_Payment( $payment_id );
313
 
324
  // Decrease earnings/sales and fire action once per quantity number
325
  for( $i = 0; $i < $item['quantity']; $i++ ) {
326
 
327
+ // variable priced downloads
328
+ if ( false === $amount && edd_has_variable_prices( $item['id'] ) ) {
329
  $price_id = isset( $item['item_number']['options']['price_id'] ) ? $item['item_number']['options']['price_id'] : null;
330
+ $amount = ! isset( $item['price'] ) && 0 !== $item['price'] ? edd_get_price_option_amount( $item['id'], $price_id ) : $item['price'];
331
  }
332
 
333
+ if ( ! $amount ) {
334
+ // This function is only used on payments with near 1.0 cart data structure
335
+ $amount = edd_get_download_final_price( $item['id'], $user_info, $amount );
336
+ }
337
 
338
  }
339
 
340
+ $maybe_decrease_earnings = apply_filters( 'edd_decrease_earnings_on_undo', true, $payment, $item['id'] );
341
+ if ( true === $maybe_decrease_earnings ) {
342
+ // decrease earnings
343
+ edd_decrease_earnings( $item['id'], $amount );
344
+ }
345
 
346
+ $maybe_decrease_sales = apply_filters( 'edd_decrease_sales_on_undo', true, $payment, $item['id'] );
347
+ if ( true === $maybe_decrease_sales ) {
348
+ // decrease purchase count
349
+ edd_decrease_purchase_count( $item['id'], $item['quantity'] );
350
+ }
351
 
352
  }
353
 
794
  */
795
  function edd_get_total_earnings() {
796
 
797
+ $total = get_option( 'edd_earnings_total', false );
798
 
799
  // If no total stored in DB, use old method of calculating total earnings
800
+ if( false === $total ) {
801
 
802
  global $wpdb;
803
 
944
  $payment = new EDD_Payment( $payment_id );
945
  $cart_details = $payment->cart_details;
946
 
947
+ $payment_currency = $payment->currency;
948
+
949
  if ( ! empty( $cart_details ) && is_array( $cart_details ) ) {
950
 
951
  foreach ( $cart_details as $key => $cart_item ) {
952
+ $cart_details[ $key ]['currency'] = $payment_currency;
953
 
954
  // Ensure subtotal is set, for pre-1.9 orders
955
  if ( ! isset( $cart_item['subtotal'] ) ) {
includes/plugin-compatibility.php CHANGED
@@ -105,6 +105,8 @@ function edd_qtranslate_prevent_redirect( $target ) {
105
 
106
  if( strpos( $target, 'eddfile' ) ) {
107
  $target = false;
 
 
108
  }
109
 
110
  return $target;
105
 
106
  if( strpos( $target, 'eddfile' ) ) {
107
  $target = false;
108
+ global $q_config;
109
+ $q_config['url_mode'] = '';
110
  }
111
 
112
  return $target;
includes/post-types.php CHANGED
@@ -203,16 +203,16 @@ function edd_setup_download_taxonomies() {
203
 
204
  /** Categories */
205
  $category_labels = array(
206
- 'name' => _x( 'Categories', 'taxonomy general name', 'easy-digital-downloads' ),
207
- 'singular_name' => _x( 'Category', 'taxonomy singular name', 'easy-digital-downloads' ),
208
- 'search_items' => __( 'Search Categories', 'easy-digital-downloads' ),
209
- 'all_items' => __( 'All Categories', 'easy-digital-downloads' ),
210
- 'parent_item' => __( 'Parent Category', 'easy-digital-downloads' ),
211
- 'parent_item_colon' => __( 'Parent Category:', 'easy-digital-downloads' ),
212
- 'edit_item' => __( 'Edit Category', 'easy-digital-downloads' ),
213
- 'update_item' => __( 'Update Category', 'easy-digital-downloads' ),
214
  'add_new_item' => sprintf( __( 'Add New %s Category', 'easy-digital-downloads' ), edd_get_label_singular() ),
215
- 'new_item_name' => __( 'New Category Name', 'easy-digital-downloads' ),
216
  'menu_name' => __( 'Categories', 'easy-digital-downloads' ),
217
  );
218
 
@@ -230,16 +230,16 @@ function edd_setup_download_taxonomies() {
230
 
231
  /** Tags */
232
  $tag_labels = array(
233
- 'name' => _x( 'Tags', 'taxonomy general name', 'easy-digital-downloads' ),
234
- 'singular_name' => _x( 'Tag', 'taxonomy singular name', 'easy-digital-downloads' ),
235
- 'search_items' => __( 'Search Tags', 'easy-digital-downloads' ),
236
- 'all_items' => __( 'All Tags', 'easy-digital-downloads' ),
237
- 'parent_item' => __( 'Parent Tag', 'easy-digital-downloads' ),
238
- 'parent_item_colon' => __( 'Parent Tag:', 'easy-digital-downloads' ),
239
- 'edit_item' => __( 'Edit Tag', 'easy-digital-downloads' ),
240
- 'update_item' => __( 'Update Tag', 'easy-digital-downloads' ),
241
- 'add_new_item' => __( 'Add New Tag', 'easy-digital-downloads' ),
242
- 'new_item_name' => __( 'New Tag Name', 'easy-digital-downloads' ),
243
  'menu_name' => __( 'Tags', 'easy-digital-downloads' ),
244
  'choose_from_most_used' => sprintf( __( 'Choose from most used %s tags', 'easy-digital-downloads' ), edd_get_label_singular() ),
245
  );
203
 
204
  /** Categories */
205
  $category_labels = array(
206
+ 'name' => sprintf( _x( '%s Categories', 'taxonomy general name', 'easy-digital-downloads' ), edd_get_label_singular() ),
207
+ 'singular_name' => sprintf( _x( '%s Category', 'taxonomy singular name', 'easy-digital-downloads' ), edd_get_label_singular() ),
208
+ 'search_items' => sprintf( __( 'Search %s Categories', 'easy-digital-downloads' ), edd_get_label_singular() ),
209
+ 'all_items' => sprintf( __( 'All %s Categories', 'easy-digital-downloads' ), edd_get_label_singular() ),
210
+ 'parent_item' => sprintf( __( 'Parent %s Category', 'easy-digital-downloads' ), edd_get_label_singular() ),
211
+ 'parent_item_colon' => sprintf( __( 'Parent %s Category:', 'easy-digital-downloads' ), edd_get_label_singular() ),
212
+ 'edit_item' => sprintf( __( 'Edit %s Category', 'easy-digital-downloads' ), edd_get_label_singular() ),
213
+ 'update_item' => sprintf( __( 'Update %s Category', 'easy-digital-downloads' ), edd_get_label_singular() ),
214
  'add_new_item' => sprintf( __( 'Add New %s Category', 'easy-digital-downloads' ), edd_get_label_singular() ),
215
+ 'new_item_name' => sprintf( __( 'New %s Category Name', 'easy-digital-downloads' ), edd_get_label_singular() ),
216
  'menu_name' => __( 'Categories', 'easy-digital-downloads' ),
217
  );
218
 
230
 
231
  /** Tags */
232
  $tag_labels = array(
233
+ 'name' => sprintf( _x( '%s Tags', 'taxonomy general name', 'easy-digital-downloads' ), edd_get_label_singular() ),
234
+ 'singular_name' => sprintf( _x( '%s Tag', 'taxonomy singular name', 'easy-digital-downloads' ), edd_get_label_singular() ),
235
+ 'search_items' => sprintf( __( 'Search %s Tags', 'easy-digital-downloads' ), edd_get_label_singular() ),
236
+ 'all_items' => sprintf( __( 'All %s Tags', 'easy-digital-downloads' ), edd_get_label_singular() ),
237
+ 'parent_item' => sprintf( __( 'Parent %s Tag', 'easy-digital-downloads' ), edd_get_label_singular() ),
238
+ 'parent_item_colon' => sprintf( __( 'Parent %s Tag:', 'easy-digital-downloads' ), edd_get_label_singular() ),
239
+ 'edit_item' => sprintf( __( 'Edit %s Tag', 'easy-digital-downloads' ), edd_get_label_singular() ),
240
+ 'update_item' => sprintf( __( 'Update %s Tag', 'easy-digital-downloads' ), edd_get_label_singular() ),
241
+ 'add_new_item' => sprintf( __( 'Add New %s Tag', 'easy-digital-downloads' ), edd_get_label_singular() ),
242
+ 'new_item_name' => sprintf( __( 'New %s Tag Name', 'easy-digital-downloads' ), edd_get_label_singular() ),
243
  'menu_name' => __( 'Tags', 'easy-digital-downloads' ),
244
  'choose_from_most_used' => sprintf( __( 'Choose from most used %s tags', 'easy-digital-downloads' ), edd_get_label_singular() ),
245
  );
includes/query-filters.php CHANGED
@@ -110,4 +110,42 @@ function edd_prevent_canonical_redirect( $redirect_url, $requested_url ) {
110
  return $redirect_url;
111
 
112
  }
113
- add_action( 'redirect_canonical', 'edd_prevent_canonical_redirect', 0, 2 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
  return $redirect_url;
111
 
112
  }
113
+ add_action( 'redirect_canonical', 'edd_prevent_canonical_redirect', 0, 2 );
114
+
115
+ /**
116
+ * Auto flush permalinks wth a soft flush when a 404 error is detected on an EDD page
117
+ *
118
+ * @since 2.4.3
119
+ * @return string
120
+ */
121
+ function edd_refresh_permalinks_on_bad_404() {
122
+
123
+ global $wp;
124
+
125
+ if( ! is_404() ) {
126
+ return;
127
+ }
128
+
129
+ if( isset( $_GET['edd-flush'] ) ) {
130
+ return;
131
+ }
132
+
133
+ if( false === get_transient( 'edd_refresh_404_permalinks' ) ) {
134
+
135
+ $slug = defined( 'EDD_SLUG' ) ? EDD_SLUG : 'downloads';
136
+
137
+ $parts = explode( '/', $wp->request );
138
+
139
+ if( $slug !== $parts[0] ) {
140
+ return;
141
+ }
142
+
143
+ flush_rewrite_rules( false );
144
+
145
+ set_transient( 'edd_refresh_404_permalinks', 1, HOUR_IN_SECONDS * 12 );
146
+
147
+ wp_redirect( home_url( add_query_arg( array( 'edd-flush' => 1 ), $wp->request ) ) ); exit;
148
+
149
+ }
150
+ }
151
+ add_action( 'template_redirect', 'edd_refresh_permalinks_on_bad_404' );
includes/shortcodes.php CHANGED
@@ -311,7 +311,7 @@ function edd_downloads_query( $atts, $content = null ) {
311
  'order' => $atts['order']
312
  );
313
 
314
- if( 'true' === $atts['pagination'] ) {
315
 
316
  $query['posts_per_page'] = (int) $atts['number'];
317
 
@@ -322,8 +322,6 @@ function edd_downloads_query( $atts, $content = null ) {
322
  $query['nopaging'] = true;
323
  }
324
 
325
-
326
-
327
  switch ( $atts['orderby'] ) {
328
  case 'price':
329
  $atts['orderby'] = 'meta_value';
@@ -547,6 +545,8 @@ function edd_downloads_query( $atts, $content = null ) {
547
 
548
  <?php wp_reset_postdata(); ?>
549
 
 
 
550
  <?php
551
  $pagination = false;
552
 
@@ -576,6 +576,8 @@ function edd_downloads_query( $atts, $content = null ) {
576
  </div>
577
  <?php endif; ?>
578
 
 
 
579
  </div>
580
  <?php
581
  $display = ob_get_clean();
@@ -762,16 +764,16 @@ function edd_process_profile_editor_updates( $data ) {
762
  $user_id = get_current_user_id();
763
  $old_user_data = get_userdata( $user_id );
764
 
765
- $display_name = isset( $data['edd_display_name'] ) ? sanitize_text_field( $data['edd_display_name'] ) : $old_user_data->display_name;
766
- $first_name = isset( $data['edd_first_name'] ) ? sanitize_text_field( $data['edd_first_name'] ) : $old_user_data->first_name;
767
- $last_name = isset( $data['edd_last_name'] ) ? sanitize_text_field( $data['edd_last_name'] ) : $old_user_data->last_name;
768
- $email = isset( $data['edd_email'] ) ? sanitize_email( $data['edd_email'] ) : $old_user_data->user_email;
769
- $line1 = ( isset( $data['edd_address_line1'] ) ? sanitize_text_field( $data['edd_address_line1'] ) : '' );
770
- $line2 = ( isset( $data['edd_address_line2'] ) ? sanitize_text_field( $data['edd_address_line2'] ) : '' );
771
- $city = ( isset( $data['edd_address_city'] ) ? sanitize_text_field( $data['edd_address_city'] ) : '' );
772
- $state = ( isset( $data['edd_address_state'] ) ? sanitize_text_field( $data['edd_address_state'] ) : '' );
773
- $zip = ( isset( $data['edd_address_zip'] ) ? sanitize_text_field( $data['edd_address_zip'] ) : '' );
774
- $country = ( isset( $data['edd_address_country'] ) ? sanitize_text_field( $data['edd_address_country'] ) : '' );
775
 
776
  $userdata = array(
777
  'ID' => $user_id,
@@ -828,6 +830,16 @@ function edd_process_profile_editor_updates( $data ) {
828
  $meta = update_user_meta( $user_id, '_edd_user_address', $address );
829
  $updated = wp_update_user( $userdata );
830
 
 
 
 
 
 
 
 
 
 
 
831
  if ( $updated ) {
832
  do_action( 'edd_user_profile_updated', $user_id, $userdata );
833
  wp_redirect( add_query_arg( 'updated', 'true', $data['edd_redirect'] ) );
311
  'order' => $atts['order']
312
  );
313
 
314
+ if ( filter_var( $atts['pagination'], FILTER_VALIDATE_BOOLEAN ) || ( ! filter_var( $atts['pagination'], FILTER_VALIDATE_BOOLEAN ) && $atts[ 'number' ] ) ) {
315
 
316
  $query['posts_per_page'] = (int) $atts['number'];
317
 
322
  $query['nopaging'] = true;
323
  }
324
 
 
 
325
  switch ( $atts['orderby'] ) {
326
  case 'price':
327
  $atts['orderby'] = 'meta_value';
545
 
546
  <?php wp_reset_postdata(); ?>
547
 
548
+ <?php if ( filter_var( $atts['pagination'], FILTER_VALIDATE_BOOLEAN ) ) : ?>
549
+
550
  <?php
551
  $pagination = false;
552
 
576
  </div>
577
  <?php endif; ?>
578
 
579
+ <?php endif; ?>
580
+
581
  </div>
582
  <?php
583
  $display = ob_get_clean();
764
  $user_id = get_current_user_id();
765
  $old_user_data = get_userdata( $user_id );
766
 
767
+ $display_name = isset( $data['edd_display_name'] ) ? sanitize_text_field( $data['edd_display_name'] ) : $old_user_data->display_name;
768
+ $first_name = isset( $data['edd_first_name'] ) ? sanitize_text_field( $data['edd_first_name'] ) : $old_user_data->first_name;
769
+ $last_name = isset( $data['edd_last_name'] ) ? sanitize_text_field( $data['edd_last_name'] ) : $old_user_data->last_name;
770
+ $email = isset( $data['edd_email'] ) ? sanitize_email( $data['edd_email'] ) : $old_user_data->user_email;
771
+ $line1 = isset( $data['edd_address_line1'] ) ? sanitize_text_field( $data['edd_address_line1'] ) : '';
772
+ $line2 = isset( $data['edd_address_line2'] ) ? sanitize_text_field( $data['edd_address_line2'] ) : '';
773
+ $city = isset( $data['edd_address_city'] ) ? sanitize_text_field( $data['edd_address_city'] ) : '';
774
+ $state = isset( $data['edd_address_state'] ) ? sanitize_text_field( $data['edd_address_state'] ) : '';
775
+ $zip = isset( $data['edd_address_zip'] ) ? sanitize_text_field( $data['edd_address_zip'] ) : '';
776
+ $country = isset( $data['edd_address_country'] ) ? sanitize_text_field( $data['edd_address_country'] ) : '';
777
 
778
  $userdata = array(
779
  'ID' => $user_id,
830
  $meta = update_user_meta( $user_id, '_edd_user_address', $address );
831
  $updated = wp_update_user( $userdata );
832
 
833
+ // Possibly update the customer
834
+ $customer = new EDD_Customer( $user_id, true );
835
+ if ( $customer->id > 0 ) {
836
+ $update_args = array(
837
+ 'name' => $first_name . ' ' . $last_name,
838
+ );
839
+
840
+ $customer->update( $update_args );
841
+ }
842
+
843
  if ( $updated ) {
844
  do_action( 'edd_user_profile_updated', $user_id, $userdata );
845
  wp_redirect( add_query_arg( 'updated', 'true', $data['edd_redirect'] ) );
includes/widgets.php CHANGED
@@ -41,7 +41,7 @@ class edd_cart_widget extends WP_Widget {
41
  /** @see WP_Widget::widget */
42
  function widget( $args, $instance ) {
43
 
44
- if ( isset( $instance['hide_on_checkout'] ) && edd_is_checkout() ) {
45
  return;
46
  }
47
 
@@ -80,7 +80,7 @@ class edd_cart_widget extends WP_Widget {
80
 
81
  $defaults = array(
82
  'title' => '',
83
- 'hide_on_checkout' => ''
84
  );
85
 
86
  $instance = wp_parse_args( (array) $instance, $defaults ); ?>
41
  /** @see WP_Widget::widget */
42
  function widget( $args, $instance ) {
43
 
44
+ if ( ! empty( $instance['hide_on_checkout'] ) && edd_is_checkout() ) {
45
  return;
46
  }
47
 
80
 
81
  $defaults = array(
82
  'title' => '',
83
+ 'hide_on_checkout' => false,
84
  );
85
 
86
  $instance = wp_parse_args( (array) $instance, $defaults ); ?>
languages/easy-digital-downloads.pot CHANGED
@@ -4,8 +4,8 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: Easy Digital Downloads 2.4.7\n"
6
  "Report-Msgid-Bugs-To: https://easydigitaldownloads.com/\n"
7
- "POT-Creation-Date: 2015-12-04 12:00-0500\n"
8
- "PO-Revision-Date: 2015-12-04 12:00-0500\n"
9
  "Last-Translator: Chris Christoff <chriscct7@gmail.com>\n"
10
  "Language-Team: WP-Translations <wpt@wp-translations.org>\n"
11
  "Language: en_US\n"
@@ -26,15 +26,15 @@ msgstr ""
26
  msgid "Cheatin&#8217; huh?"
27
  msgstr ""
28
 
29
- #: includes/ajax-functions.php:544 includes/ajax-functions.php:595
30
  msgid "No results found"
31
  msgstr ""
32
 
33
- #: includes/ajax-functions.php:637
34
  msgid "All Prices"
35
  msgstr ""
36
 
37
- #: includes/ajax-functions.php:687
38
  msgid "No users found"
39
  msgstr ""
40
 
@@ -218,7 +218,7 @@ msgstr ""
218
  msgid "%d customers created in %d seconds"
219
  msgstr ""
220
 
221
- #: includes/class-edd-cli.php:311 includes/class-edd-html-elements.php:144
222
  msgid "No customers found"
223
  msgstr ""
224
 
@@ -320,7 +320,7 @@ msgstr ""
320
  msgid " Product: %s - %s"
321
  msgstr ""
322
 
323
- #: includes/class-edd-cli.php:419 includes/class-edd-html-elements.php:204
324
  #: includes/shortcodes.php:237
325
  msgid "No discounts found"
326
  msgstr ""
@@ -351,7 +351,6 @@ msgid "Max Uses: %s"
351
  msgstr ""
352
 
353
  #: includes/class-edd-cli.php:436
354
- #: includes/admin/discounts/class-discount-codes-table.php:394
355
  msgid "Unlimited"
356
  msgstr ""
357
 
@@ -428,56 +427,56 @@ msgid "New Download Product"
428
  msgstr ""
429
 
430
  #: includes/class-edd-html-elements.php:43
431
- #: includes/class-edd-html-elements.php:72
432
  #, php-format
433
  msgid "Select a %s"
434
  msgstr ""
435
 
436
- #: includes/class-edd-html-elements.php:77
437
  msgid "No products found"
438
  msgstr ""
439
 
440
- #: includes/class-edd-html-elements.php:126
441
  msgid "Select a Customer"
442
  msgstr ""
443
 
444
- #: includes/class-edd-html-elements.php:139
445
  msgid "No customer attached"
446
  msgstr ""
447
 
448
- #: includes/class-edd-html-elements.php:240
449
  #, php-format
450
  msgctxt "plural: Example: \"All Categories\""
451
  msgid "All %s"
452
  msgstr ""
453
 
454
- #: includes/class-edd-html-elements.php:330
455
  msgctxt "all dropdown items"
456
  msgid "All"
457
  msgstr ""
458
 
459
- #: includes/class-edd-html-elements.php:331
460
  msgctxt "no dropdown items"
461
  msgid "None"
462
  msgstr ""
463
 
464
- #: includes/class-edd-html-elements.php:558
465
  msgid "Enter username"
466
  msgstr ""
467
 
468
- #: includes/class-edd-html-elements.php:573 includes/admin/thickbox.php:135
469
  #: includes/admin/customers/customers.php:305
470
  #: includes/admin/customers/customers.php:520
471
- #: includes/admin/payments/view-order-details.php:426
472
  msgid "Cancel"
473
  msgstr ""
474
 
475
- #: includes/class-edd-license-handler.php:171
476
  #, php-format
477
  msgid "%1$s License Key"
478
  msgstr ""
479
 
480
- #: includes/class-edd-license-handler.php:204
481
  #, php-format
482
  msgid ""
483
  "Enter your extension license keys here to receive updates for purchased "
@@ -485,18 +484,18 @@ msgid ""
485
  "\"_blank\" title=\"License renewal FAQ\">renew your license</a>."
486
  msgstr ""
487
 
488
- #: includes/class-edd-license-handler.php:312
489
  #: includes/admin/customers/customer-actions.php:393
490
  #: includes/admin/reporting/pdf-reports.php:33
491
  #: includes/admin/reporting/export/export-actions.php:23
492
- #: includes/api/class-edd-api.php:1795
493
  msgid "Nonce verification failed"
494
  msgstr ""
495
 
496
- #: includes/class-edd-license-handler.php:312
497
  #: includes/deprecated-functions.php:517 includes/deprecated-functions.php:532
498
- #: includes/deprecated-functions.php:542 includes/download-functions.php:1196
499
- #: includes/EDD_SL_Plugin_Updater.php:339 includes/error-tracking.php:36
500
  #: includes/process-download.php:235 includes/process-download.php:707
501
  #: includes/query-filters.php:48 includes/user-functions.php:777
502
  #: includes/user-functions.php:802 includes/user-functions.php:855
@@ -527,10 +526,10 @@ msgstr ""
527
  #: includes/admin/reporting/reports.php:97
528
  #: includes/admin/reporting/export/class-batch-export.php:131
529
  #: includes/admin/reporting/export/export-actions.php:23
530
- #: includes/admin/tools/class-edd-tools-recount-all-stats.php:208
531
  #: includes/admin/tools/class-edd-tools-recount-customer-stats.php:180
532
  #: includes/admin/tools/class-edd-tools-recount-download-stats.php:211
533
- #: includes/admin/tools/class-edd-tools-recount-single-customer-stats.php:144
534
  #: includes/admin/tools/class-edd-tools-recount-store-earnings.php:154
535
  #: includes/admin/tools/class-edd-tools-reset-stats.php:180
536
  #: includes/admin/upgrades/upgrade-functions.php:167
@@ -541,15 +540,16 @@ msgstr ""
541
  #: includes/admin/upgrades/upgrade-functions.php:847
542
  #: includes/admin/upgrades/upgrade-functions.php:975
543
  #: includes/admin/upgrades/upgrade-functions.php:1060
544
- #: includes/api/class-edd-api.php:1795 includes/api/class-edd-api.php:1808
545
- #: includes/api/class-edd-api.php:1810 includes/cart/functions.php:1138
546
- #: includes/cart/functions.php:1155 includes/emails/actions.php:48
547
- #: includes/emails/template.php:241 includes/gateways/functions.php:221
548
- #: includes/gateways/manual.php:33 includes/gateways/paypal-standard.php:34
 
549
  msgid "Error"
550
  msgstr ""
551
 
552
- #: includes/class-edd-license-handler.php:425
553
  #, php-format
554
  msgid ""
555
  "You have invalid or expired license keys for Easy Digital Downloads. Please "
@@ -557,6 +557,10 @@ msgid ""
557
  "correct this issue."
558
  msgstr ""
559
 
 
 
 
 
560
  #: includes/class-edd-logging.php:48
561
  #: includes/admin/payments/view-order-details.php:226
562
  #: includes/admin/reporting/reports.php:33
@@ -935,7 +939,7 @@ msgstr ""
935
  msgid "Sorry but you have hit your download limit for this file."
936
  msgstr ""
937
 
938
- #: includes/deprecated-functions.php:532 includes/download-functions.php:1196
939
  msgid "Sorry but your download link has expired."
940
  msgstr ""
941
 
@@ -972,11 +976,11 @@ msgstr ""
972
  msgid "This discount is not valid for the cart contents."
973
  msgstr ""
974
 
975
- #: includes/discount-functions.php:855
976
  msgid "This discount has already been redeemed."
977
  msgstr ""
978
 
979
- #: includes/discount-functions.php:894
980
  msgid "This discount is invalid."
981
  msgstr ""
982
 
@@ -989,22 +993,20 @@ msgstr ""
989
  msgid "Bundle"
990
  msgstr ""
991
 
992
- #: includes/EDD_SL_Plugin_Updater.php:182
993
  #, php-format
994
  msgid ""
995
- "There is a new version of %1$s available. <a target=\"_blank\" class="
996
- "\"thickbox\" href=\"%2$s\">View version %3$s details</a>."
997
  msgstr ""
998
 
999
- #: includes/EDD_SL_Plugin_Updater.php:189
1000
  #, php-format
1001
  msgid ""
1002
- "There is a new version of %1$s available. <a target=\"_blank\" class="
1003
- "\"thickbox\" href=\"%2$s\">View version %3$s details</a> or <a href=\"%4$s"
1004
- "\">update now</a>."
1005
  msgstr ""
1006
 
1007
- #: includes/EDD_SL_Plugin_Updater.php:339
1008
  msgid "You do not have permission to install plugin updates"
1009
  msgstr ""
1010
 
@@ -1186,13 +1188,27 @@ msgid ""
1186
  "%2$s! Use %3$s instead."
1187
  msgstr ""
1188
 
1189
- #: includes/misc-functions.php:516
1190
  #, php-format
1191
  msgid ""
1192
  "%1$s is <strong>deprecated</strong> since Easy Digital Downloads version "
1193
  "%2$s with no alternative available."
1194
  msgstr ""
1195
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1196
  #: includes/plugin-compatibility.php:73
1197
  #: tests/tests-plugin-compatibility.php:85
1198
  msgid "No Caching on Checkout?"
@@ -1344,7 +1360,7 @@ msgctxt "post type singular name"
1344
  msgid "Discount"
1345
  msgstr ""
1346
 
1347
- #: includes/post-types.php:103 includes/admin/discounts/add-discount.php:16
1348
  msgid "Add New Discount"
1349
  msgstr ""
1350
 
@@ -1394,37 +1410,45 @@ msgid "Enter %s name here"
1394
  msgstr ""
1395
 
1396
  #: includes/post-types.php:206
 
1397
  msgctxt "taxonomy general name"
1398
- msgid "Categories"
1399
  msgstr ""
1400
 
1401
  #: includes/post-types.php:207
 
1402
  msgctxt "taxonomy singular name"
1403
- msgid "Category"
1404
  msgstr ""
1405
 
1406
  #: includes/post-types.php:208
1407
- msgid "Search Categories"
 
1408
  msgstr ""
1409
 
1410
  #: includes/post-types.php:209
1411
- msgid "All Categories"
 
1412
  msgstr ""
1413
 
1414
  #: includes/post-types.php:210
1415
- msgid "Parent Category"
 
1416
  msgstr ""
1417
 
1418
  #: includes/post-types.php:211
1419
- msgid "Parent Category:"
 
1420
  msgstr ""
1421
 
1422
  #: includes/post-types.php:212
1423
- msgid "Edit Category"
 
1424
  msgstr ""
1425
 
1426
  #: includes/post-types.php:213
1427
- msgid "Update Category"
 
1428
  msgstr ""
1429
 
1430
  #: includes/post-types.php:214
@@ -1433,7 +1457,8 @@ msgid "Add New %s Category"
1433
  msgstr ""
1434
 
1435
  #: includes/post-types.php:215
1436
- msgid "New Category Name"
 
1437
  msgstr ""
1438
 
1439
  #: includes/post-types.php:216
@@ -1442,45 +1467,55 @@ msgid "Categories"
1442
  msgstr ""
1443
 
1444
  #: includes/post-types.php:233
 
1445
  msgctxt "taxonomy general name"
1446
- msgid "Tags"
1447
  msgstr ""
1448
 
1449
  #: includes/post-types.php:234
 
1450
  msgctxt "taxonomy singular name"
1451
- msgid "Tag"
1452
  msgstr ""
1453
 
1454
  #: includes/post-types.php:235
1455
- msgid "Search Tags"
 
1456
  msgstr ""
1457
 
1458
  #: includes/post-types.php:236
1459
- msgid "All Tags"
 
1460
  msgstr ""
1461
 
1462
  #: includes/post-types.php:237
1463
- msgid "Parent Tag"
 
1464
  msgstr ""
1465
 
1466
  #: includes/post-types.php:238
1467
- msgid "Parent Tag:"
 
1468
  msgstr ""
1469
 
1470
  #: includes/post-types.php:239
1471
- msgid "Edit Tag"
 
1472
  msgstr ""
1473
 
1474
  #: includes/post-types.php:240
1475
- msgid "Update Tag"
 
1476
  msgstr ""
1477
 
1478
  #: includes/post-types.php:241
1479
- msgid "Add New Tag"
 
1480
  msgstr ""
1481
 
1482
  #: includes/post-types.php:242
1483
- msgid "New Tag Name"
 
1484
  msgstr ""
1485
 
1486
  #: includes/post-types.php:243 includes/admin/reporting/pdf-reports.php:72
@@ -1761,8 +1796,8 @@ msgstr ""
1761
  #: includes/scripts.php:58 includes/shortcodes.php:49
1762
  #: includes/template-functions.php:67 includes/admin/thickbox.php:62
1763
  #: includes/admin/downloads/metabox.php:839
1764
- #: includes/admin/settings/register-settings.php:766
1765
- #: includes/checkout/template.php:841
1766
  msgid "Purchase"
1767
  msgstr ""
1768
 
@@ -1774,7 +1809,7 @@ msgstr ""
1774
  msgid "Loading"
1775
  msgstr ""
1776
 
1777
- #: includes/scripts.php:75 includes/admin/tools.php:140
1778
  msgid "Please select an option"
1779
  msgstr ""
1780
 
@@ -1853,8 +1888,8 @@ msgstr ""
1853
  msgid "Quantity must be numeric"
1854
  msgstr ""
1855
 
1856
- #: includes/scripts.php:210 includes/admin/payments/view-order-details.php:332
1857
- #: includes/admin/settings/register-settings.php:1549
1858
  #: templates/checkout_cart.php:49 templates/checkout_cart.php:67
1859
  msgid "Remove"
1860
  msgstr ""
@@ -1880,7 +1915,7 @@ msgstr ""
1880
 
1881
  #: includes/shortcodes.php:47 includes/template-functions.php:67
1882
  #: includes/admin/downloads/metabox.php:909
1883
- #: includes/admin/settings/register-settings.php:780
1884
  msgid "Buy Now"
1885
  msgstr ""
1886
 
@@ -1888,33 +1923,33 @@ msgstr ""
1888
  msgid "Purchase All Items"
1889
  msgstr ""
1890
 
1891
- #: includes/shortcodes.php:583
1892
  #, php-format
1893
  msgctxt "download post type name"
1894
  msgid "No %s found"
1895
  msgstr ""
1896
 
1897
- #: includes/shortcodes.php:629
1898
  msgid "Sorry, trouble retrieving payment receipt."
1899
  msgstr ""
1900
 
1901
- #: includes/shortcodes.php:664
1902
  msgid "You must be logged in to view this payment receipt."
1903
  msgstr ""
1904
 
1905
- #: includes/shortcodes.php:799
1906
  msgid "The passwords you entered do not match. Please try again."
1907
  msgstr ""
1908
 
1909
- #: includes/shortcodes.php:809
1910
  msgid "The email you entered is invalid. Please enter a valid email."
1911
  msgstr ""
1912
 
1913
- #: includes/shortcodes.php:814
1914
  msgid "The email you entered belongs to another user. Please use another."
1915
  msgstr ""
1916
 
1917
- #: includes/template-functions.php:54 includes/admin/class-edd-notices.php:46
1918
  #, php-format
1919
  msgid ""
1920
  "No checkout page has been configured. Visit <a href=\"%s\">Settings</a> to "
@@ -2149,55 +2184,55 @@ msgid ""
2149
  "href=\"%2$s\" target=\"_blank\">WordPress.org</a>"
2150
  msgstr ""
2151
 
2152
- #: includes/admin/admin-pages.php:36
2153
  #: includes/admin/customers/class-customer-table.php:65
2154
  #: includes/admin/customers/customers.php:63
2155
  msgid "Customers"
2156
  msgstr ""
2157
 
2158
- #: includes/admin/admin-pages.php:37
2159
  #: includes/admin/discounts/discount-codes.php:33
2160
  msgid "Discount Codes"
2161
  msgstr ""
2162
 
2163
- #: includes/admin/admin-pages.php:38
2164
  msgid "Earnings and Sales Reports"
2165
  msgstr ""
2166
 
2167
- #: includes/admin/admin-pages.php:38
2168
  #: includes/admin/reporting/contextual-help.php:42
2169
  #: includes/admin/reporting/reports.php:29
2170
  msgid "Reports"
2171
  msgstr ""
2172
 
2173
- #: includes/admin/admin-pages.php:39
2174
  msgid "Easy Digital Download Settings"
2175
  msgstr ""
2176
 
2177
- #: includes/admin/admin-pages.php:39
2178
  msgid "Settings"
2179
  msgstr ""
2180
 
2181
- #: includes/admin/admin-pages.php:40
2182
  msgid "Easy Digital Download Info and Tools"
2183
  msgstr ""
2184
 
2185
- #: includes/admin/admin-pages.php:40
2186
  #: includes/admin/customers/customers.php:545
2187
  msgid "Tools"
2188
  msgstr ""
2189
 
2190
- #: includes/admin/admin-pages.php:41
2191
  msgid "Easy Digital Download Extensions"
2192
  msgstr ""
2193
 
2194
- #: includes/admin/admin-pages.php:41 includes/admin/plugins.php:58
2195
  #: includes/admin/settings/contextual-help.php:87
2196
- #: includes/admin/settings/register-settings.php:941
2197
  msgid "Extensions"
2198
  msgstr ""
2199
 
2200
- #: includes/admin/admin-pages.php:42
2201
  msgid "EDD Upgrades"
2202
  msgstr ""
2203
 
@@ -2245,45 +2280,45 @@ msgstr ""
2245
  msgid "Generate New API Keys"
2246
  msgstr ""
2247
 
2248
- #: includes/admin/class-edd-notices.php:47
2249
- #: includes/admin/class-edd-notices.php:61
2250
- #: includes/admin/class-edd-notices.php:74
2251
  msgid "Dismiss Notice"
2252
  msgstr ""
2253
 
2254
- #: includes/admin/class-edd-notices.php:52
2255
  #, php-format
2256
  msgid ""
2257
  "Note: Test Mode is enabled, only test payments are shown below. <a href=\"%s"
2258
  "\">Settings</a>."
2259
  msgstr ""
2260
 
2261
- #: includes/admin/class-edd-notices.php:58
2262
  #, php-format
2263
  msgid ""
2264
  "The download files in %s are not currently protected due to your site "
2265
  "running on NGINX."
2266
  msgstr ""
2267
 
2268
- #: includes/admin/class-edd-notices.php:59
2269
  msgid ""
2270
  "To protect them, you must add a redirect rule as explained in <a href="
2271
  "\"http://docs.easydigitaldownloads.com/article/682-protected-download-files-"
2272
  "on-nginx\">this guide</a>."
2273
  msgstr ""
2274
 
2275
- #: includes/admin/class-edd-notices.php:60
2276
  msgid ""
2277
  "If you have already added the redirect rule, you may safely dismiss this "
2278
  "notice"
2279
  msgstr ""
2280
 
2281
- #: includes/admin/class-edd-notices.php:71
2282
  #, php-format
2283
  msgid "The Easy Digital Downloads .htaccess file is missing from %s!"
2284
  msgstr ""
2285
 
2286
- #: includes/admin/class-edd-notices.php:72
2287
  #, php-format
2288
  msgid ""
2289
  "First, please resave the Misc settings tab a few times. If this warning "
@@ -2291,71 +2326,79 @@ msgid ""
2291
  "and copy the following into it:"
2292
  msgstr ""
2293
 
2294
- #: includes/admin/class-edd-notices.php:93
 
 
 
 
 
 
 
 
2295
  msgid "Discount code added."
2296
  msgstr ""
2297
 
2298
- #: includes/admin/class-edd-notices.php:96
2299
  msgid "There was a problem adding your discount code, please try again."
2300
  msgstr ""
2301
 
2302
- #: includes/admin/class-edd-notices.php:99
2303
  msgid "A discount with that code already exists, please use a different code."
2304
  msgstr ""
2305
 
2306
- #: includes/admin/class-edd-notices.php:102
2307
  msgid "Discount code updated."
2308
  msgstr ""
2309
 
2310
- #: includes/admin/class-edd-notices.php:105
2311
  msgid "There was a problem updating your discount code, please try again."
2312
  msgstr ""
2313
 
2314
- #: includes/admin/class-edd-notices.php:114
2315
  msgid "The payment has been deleted."
2316
  msgstr ""
2317
 
2318
- #: includes/admin/class-edd-notices.php:117
2319
  msgid "The purchase receipt has been resent."
2320
  msgstr ""
2321
 
2322
- #: includes/admin/class-edd-notices.php:120
2323
  msgid "The payment note has been deleted."
2324
  msgstr ""
2325
 
2326
- #: includes/admin/class-edd-notices.php:129
2327
  msgid "The settings have been imported."
2328
  msgstr ""
2329
 
2330
- #: includes/admin/class-edd-notices.php:132
2331
  msgid "API keys successfully generated."
2332
  msgstr ""
2333
 
2334
- #: includes/admin/class-edd-notices.php:135
2335
  msgid "The specified user already has API keys."
2336
  msgstr ""
2337
 
2338
- #: includes/admin/class-edd-notices.php:138
2339
  msgid "API keys successfully regenerated."
2340
  msgstr ""
2341
 
2342
- #: includes/admin/class-edd-notices.php:141
2343
  msgid "API keys successfully revoked."
2344
  msgstr ""
2345
 
2346
- #: includes/admin/class-edd-notices.php:150
2347
  msgid "The payment note has been added successfully."
2348
  msgstr ""
2349
 
2350
- #: includes/admin/class-edd-notices.php:153
2351
  msgid "The payment has been successfully updated."
2352
  msgstr ""
2353
 
2354
- #: includes/admin/class-edd-notices.php:162
2355
  msgid "Customer successfully deleted"
2356
  msgstr ""
2357
 
2358
- #: includes/admin/class-edd-notices.php:165
2359
  msgid "User successfully verified"
2360
  msgstr ""
2361
 
@@ -2437,6 +2480,7 @@ msgstr[0] ""
2437
  msgstr[1] ""
2438
 
2439
  #: includes/admin/plugins.php:27
 
2440
  msgid "General Settings"
2441
  msgstr ""
2442
 
@@ -2468,7 +2512,7 @@ msgid "Choose the button behavior"
2468
  msgstr ""
2469
 
2470
  #: includes/admin/thickbox.php:100 includes/admin/downloads/metabox.php:908
2471
- #: includes/admin/settings/register-settings.php:773
2472
  msgid "Add to Cart"
2473
  msgstr ""
2474
 
@@ -2490,7 +2534,7 @@ msgstr ""
2490
 
2491
  #: includes/admin/tools.php:68 includes/admin/discounts/contextual-help.php:38
2492
  #: includes/admin/settings/contextual-help.php:42
2493
- #: includes/admin/settings/register-settings.php:934
2494
  msgid "General"
2495
  msgstr ""
2496
 
@@ -2529,21 +2573,21 @@ msgstr ""
2529
  msgid "Use these tools to recount / reset store stats."
2530
  msgstr ""
2531
 
2532
- #: includes/admin/tools.php:141
2533
  msgid "Recount Store Earnings and Sales"
2534
  msgstr ""
2535
 
2536
- #: includes/admin/tools.php:142
2537
  #, php-format
2538
  msgid "Recount Earnings and Sales for a %s"
2539
  msgstr ""
2540
 
2541
- #: includes/admin/tools.php:143
2542
  #, php-format
2543
  msgid "Recount Earnings and Sales for All %s"
2544
  msgstr ""
2545
 
2546
- #: includes/admin/tools.php:144 includes/admin/customers/customers.php:548
2547
  msgid "Recount Customer Stats"
2548
  msgstr ""
2549
 
@@ -2573,7 +2617,7 @@ msgstr ""
2573
  msgid "Recalculates the lifetime value and purchase counts for all customers."
2574
  msgstr ""
2575
 
2576
- #: includes/admin/tools.php:168
2577
  msgid ""
2578
  "<strong>Deletes</strong> all payment records, customers, and related log "
2579
  "entries."
@@ -2708,7 +2752,7 @@ msgstr ""
2708
  msgid "Credits"
2709
  msgstr ""
2710
 
2711
- #: includes/admin/welcome.php:185
2712
  msgid "Amazon Payments"
2713
  msgstr ""
2714
 
@@ -3095,11 +3139,11 @@ msgid "Download log"
3095
  msgstr ""
3096
 
3097
  #: includes/admin/customers/class-customer-table.php:153
3098
- #: includes/admin/discounts/class-discount-codes-table.php:222
3099
- #: includes/admin/discounts/class-discount-codes-table.php:290
3100
- #: includes/admin/payments/class-payments-table.php:315
3101
- #: includes/admin/payments/class-payments-table.php:389
3102
- #: includes/payments/functions.php:1560
3103
  msgid "Delete"
3104
  msgstr ""
3105
 
@@ -3108,7 +3152,7 @@ msgid "(Pending Verification)"
3108
  msgstr ""
3109
 
3110
  #: includes/admin/customers/class-customer-table.php:171
3111
- #: includes/admin/discounts/add-discount.php:24
3112
  #: includes/admin/discounts/class-discount-codes-table.php:145
3113
  #: includes/admin/discounts/edit-discount.php:37
3114
  #: includes/admin/downloads/dashboard-columns.php:31
@@ -3211,7 +3255,7 @@ msgstr ""
3211
  msgid "Delete Customer"
3212
  msgstr ""
3213
 
3214
- #: includes/admin/customers/customer-functions.php:99
3215
  #: templates/account-pending.php:8
3216
  #, php-format
3217
  msgid ""
@@ -3220,7 +3264,7 @@ msgid ""
3220
  "activation code."
3221
  msgstr ""
3222
 
3223
- #: includes/admin/customers/customer-functions.php:100
3224
  msgid "Account Pending Verification"
3225
  msgstr ""
3226
 
@@ -3238,7 +3282,7 @@ msgid "Invalid Customer ID Provided."
3238
  msgstr ""
3239
 
3240
  #: includes/admin/customers/customers.php:115
3241
- #: includes/admin/payments/view-order-details.php:392
3242
  msgid "Customer Details"
3243
  msgstr ""
3244
 
@@ -3267,7 +3311,7 @@ msgid "City"
3267
  msgstr ""
3268
 
3269
  #: includes/admin/customers/customers.php:246
3270
- #: includes/admin/settings/register-settings.php:1546
3271
  #: includes/checkout/template.php:416
3272
  #: templates/shortcode-profile-editor.php:82
3273
  msgid "State / Province"
@@ -3344,7 +3388,7 @@ msgid "ID"
3344
  msgstr ""
3345
 
3346
  #: includes/admin/customers/customers.php:345
3347
- #: includes/admin/discounts/add-discount.php:57
3348
  #: includes/admin/discounts/class-discount-codes-table.php:147
3349
  #: includes/admin/discounts/edit-discount.php:70
3350
  #: includes/admin/payments/class-payments-table.php:224
@@ -3364,7 +3408,7 @@ msgstr ""
3364
  #: includes/admin/reporting/class-export.php:70
3365
  #: includes/admin/reporting/class-file-downloads-logs-list-table.php:150
3366
  #: includes/admin/reporting/class-gateway-error-logs-list-table.php:134
3367
- #: includes/admin/reporting/class-sales-logs-list-table.php:124
3368
  #: includes/admin/reporting/export/class-batch-export-file-downloads.php:42
3369
  #: includes/admin/reporting/export/class-batch-export-payments.php:59
3370
  #: templates/history-purchases.php:19 templates/shortcode-receipt.php:59
@@ -3372,7 +3416,7 @@ msgid "Date"
3372
  msgstr ""
3373
 
3374
  #: includes/admin/customers/customers.php:347
3375
- #: includes/admin/discounts/class-discount-codes-table.php:152
3376
  #: includes/admin/discounts/edit-discount.php:175
3377
  #: includes/admin/payments/class-payments-table.php:227
3378
  #: includes/admin/reporting/class-export-payments.php:82
@@ -3444,120 +3488,120 @@ msgstr ""
3444
  msgid "Verify account."
3445
  msgstr ""
3446
 
3447
- #: includes/admin/discounts/add-discount.php:16
3448
  #: includes/admin/discounts/edit-discount.php:29
3449
  #: includes/admin/reporting/reports.php:189
3450
  msgid "Go Back"
3451
  msgstr ""
3452
 
3453
- #: includes/admin/discounts/add-discount.php:28
3454
  #: includes/admin/discounts/edit-discount.php:41
3455
  msgid "The name of this discount"
3456
  msgstr ""
3457
 
3458
- #: includes/admin/discounts/add-discount.php:34
3459
  #: includes/admin/discounts/class-discount-codes-table.php:146
3460
  #: includes/admin/discounts/edit-discount.php:47
3461
  msgid "Code"
3462
  msgstr ""
3463
 
3464
- #: includes/admin/discounts/add-discount.php:38
3465
  #: includes/admin/discounts/edit-discount.php:51
3466
  msgid "Enter a code for this discount, such as 10PERCENT"
3467
  msgstr ""
3468
 
3469
- #: includes/admin/discounts/add-discount.php:44
3470
  #: includes/admin/discounts/edit-discount.php:57
3471
  msgid "Type"
3472
  msgstr ""
3473
 
3474
- #: includes/admin/discounts/add-discount.php:48
3475
  #: includes/admin/discounts/edit-discount.php:61
3476
  msgid "Percentage"
3477
  msgstr ""
3478
 
3479
- #: includes/admin/discounts/add-discount.php:49
3480
  #: includes/admin/discounts/edit-discount.php:62
3481
  msgid "Flat amount"
3482
  msgstr ""
3483
 
3484
- #: includes/admin/discounts/add-discount.php:51
3485
  #: includes/admin/discounts/edit-discount.php:64
3486
  msgid "The kind of discount to apply for this discount."
3487
  msgstr ""
3488
 
3489
- #: includes/admin/discounts/add-discount.php:61
3490
  #: includes/admin/discounts/edit-discount.php:74
3491
  #, php-format
3492
  msgid "Enter the discount amount in %s"
3493
  msgstr ""
3494
 
3495
- #: includes/admin/discounts/add-discount.php:62
3496
  #: includes/admin/discounts/edit-discount.php:75
3497
  msgid "Enter the discount percentage. 10 = 10%"
3498
  msgstr ""
3499
 
3500
- #: includes/admin/discounts/add-discount.php:68
3501
  #: includes/admin/discounts/edit-discount.php:81
3502
  #, php-format
3503
  msgid "%s Requirements"
3504
  msgstr ""
3505
 
3506
- #: includes/admin/discounts/add-discount.php:77
3507
- #: includes/admin/discounts/add-discount.php:113
3508
  #: includes/admin/discounts/edit-discount.php:91
3509
  #: includes/admin/discounts/edit-discount.php:127
3510
  #, php-format
3511
  msgid "Select one or more %s"
3512
  msgstr ""
3513
 
3514
- #: includes/admin/discounts/add-discount.php:83
3515
  #: includes/admin/discounts/edit-discount.php:97
3516
  #, php-format
3517
  msgid "Cart must contain all selected %s"
3518
  msgstr ""
3519
 
3520
- #: includes/admin/discounts/add-discount.php:84
3521
  #: includes/admin/discounts/edit-discount.php:98
3522
  #, php-format
3523
  msgid "Cart needs one or more of the selected %s"
3524
  msgstr ""
3525
 
3526
- #: includes/admin/discounts/add-discount.php:90
3527
  #: includes/admin/discounts/edit-discount.php:104
3528
  msgid "Apply discount to entire purchase."
3529
  msgstr ""
3530
 
3531
- #: includes/admin/discounts/add-discount.php:94
3532
  #: includes/admin/discounts/edit-discount.php:108
3533
  #, php-format
3534
  msgid "Apply discount only to selected %s."
3535
  msgstr ""
3536
 
3537
- #: includes/admin/discounts/add-discount.php:98
3538
  #: includes/admin/discounts/edit-discount.php:112
3539
  #, php-format
3540
  msgid "Select %s relevant to this discount."
3541
  msgstr ""
3542
 
3543
- #: includes/admin/discounts/add-discount.php:104
3544
  #: includes/admin/discounts/edit-discount.php:118
3545
  #, php-format
3546
  msgid "Excluded %s"
3547
  msgstr ""
3548
 
3549
- #: includes/admin/discounts/add-discount.php:115
3550
  #: includes/admin/discounts/edit-discount.php:129
3551
  #, php-format
3552
  msgid "%s that this discount code cannot be applied to."
3553
  msgstr ""
3554
 
3555
- #: includes/admin/discounts/add-discount.php:121
3556
  #: includes/admin/discounts/edit-discount.php:135
3557
  msgid "Start date"
3558
  msgstr ""
3559
 
3560
- #: includes/admin/discounts/add-discount.php:125
3561
  #: includes/admin/discounts/edit-discount.php:139
3562
  msgid ""
3563
  "Enter the start date for this discount code in the format of mm/dd/yyyy. For "
@@ -3565,72 +3609,71 @@ msgid ""
3565
  "or on this date."
3566
  msgstr ""
3567
 
3568
- #: includes/admin/discounts/add-discount.php:131
3569
  #: includes/admin/discounts/edit-discount.php:145
3570
  msgid "Expiration date"
3571
  msgstr ""
3572
 
3573
- #: includes/admin/discounts/add-discount.php:135
3574
  #: includes/admin/discounts/edit-discount.php:149
3575
  msgid ""
3576
  "Enter the expiration date for this discount code in the format of mm/dd/"
3577
  "yyyy. For no expiration, leave blank"
3578
  msgstr ""
3579
 
3580
- #: includes/admin/discounts/add-discount.php:141
3581
  #: includes/admin/discounts/edit-discount.php:165
3582
  msgid "Minimum Amount"
3583
  msgstr ""
3584
 
3585
- #: includes/admin/discounts/add-discount.php:145
3586
  #: includes/admin/discounts/edit-discount.php:169
3587
  msgid ""
3588
  "The minimum amount that must be purchased before this discount can be used. "
3589
  "Leave blank for no minimum."
3590
  msgstr ""
3591
 
3592
- #: includes/admin/discounts/add-discount.php:151
3593
- #: includes/admin/discounts/class-discount-codes-table.php:149
3594
  #: includes/admin/discounts/edit-discount.php:155
3595
  msgid "Max Uses"
3596
  msgstr ""
3597
 
3598
- #: includes/admin/discounts/add-discount.php:155
3599
  #: includes/admin/discounts/edit-discount.php:159
3600
  msgid ""
3601
  "The maximum number of times this discount can be used. Leave blank for "
3602
  "unlimited."
3603
  msgstr ""
3604
 
3605
- #: includes/admin/discounts/add-discount.php:161
3606
  #: includes/admin/discounts/edit-discount.php:188
3607
  msgid "Use Once Per Customer"
3608
  msgstr ""
3609
 
3610
- #: includes/admin/discounts/add-discount.php:165
3611
  #: includes/admin/discounts/edit-discount.php:192
3612
  msgid "Limit this discount to a single-use per customer?"
3613
  msgstr ""
3614
 
3615
- #: includes/admin/discounts/add-discount.php:175
3616
  msgid "Add Discount Code"
3617
  msgstr ""
3618
 
3619
  #: includes/admin/discounts/class-discount-codes-table.php:127
3620
  #: includes/admin/payments/class-payments-table.php:199
3621
  #: includes/admin/reporting/class-file-downloads-logs-list-table.php:348
3622
- #: includes/admin/reporting/class-sales-logs-list-table.php:279
3623
  msgid "All"
3624
  msgstr ""
3625
 
3626
  #: includes/admin/discounts/class-discount-codes-table.php:128
3627
- #: includes/admin/discounts/class-discount-codes-table.php:263
3628
  #: includes/admin/discounts/edit-discount.php:179
3629
  msgid "Active"
3630
  msgstr ""
3631
 
3632
  #: includes/admin/discounts/class-discount-codes-table.php:129
3633
- #: includes/admin/discounts/class-discount-codes-table.php:259
3634
  #: includes/admin/discounts/edit-discount.php:180
3635
  msgid "Inactive"
3636
  msgstr ""
@@ -3639,45 +3682,41 @@ msgstr ""
3639
  msgid "Uses"
3640
  msgstr ""
3641
 
3642
- #: includes/admin/discounts/class-discount-codes-table.php:150
3643
  msgid "Start Date"
3644
  msgstr ""
3645
 
3646
- #: includes/admin/discounts/class-discount-codes-table.php:151
3647
  msgid "Expiration"
3648
  msgstr ""
3649
 
3650
- #: includes/admin/discounts/class-discount-codes-table.php:214
3651
  msgid "Edit"
3652
  msgstr ""
3653
 
3654
- #: includes/admin/discounts/class-discount-codes-table.php:217
3655
- #: includes/admin/discounts/class-discount-codes-table.php:289
3656
  msgid "Deactivate"
3657
  msgstr ""
3658
 
3659
- #: includes/admin/discounts/class-discount-codes-table.php:219
3660
- #: includes/admin/discounts/class-discount-codes-table.php:288
3661
  msgid "Activate"
3662
  msgstr ""
3663
 
3664
- #: includes/admin/discounts/class-discount-codes-table.php:256
3665
  msgid "Expired"
3666
  msgstr ""
3667
 
3668
- #: includes/admin/discounts/class-discount-codes-table.php:276
3669
  msgid "No discounts found."
3670
  msgstr ""
3671
 
3672
- #: includes/admin/discounts/class-discount-codes-table.php:392
3673
- msgid "unlimited"
3674
- msgstr ""
3675
-
3676
- #: includes/admin/discounts/class-discount-codes-table.php:402
3677
  msgid "No start date"
3678
  msgstr ""
3679
 
3680
- #: includes/admin/discounts/class-discount-codes-table.php:408
3681
  msgid "No expiration"
3682
  msgstr ""
3683
 
@@ -4154,7 +4193,7 @@ msgstr ""
4154
  #: includes/admin/payments/actions.php:285
4155
  #: includes/admin/payments/actions.php:301
4156
  #: includes/admin/payments/actions.php:328
4157
- #: includes/admin/payments/actions.php:348 includes/emails/actions.php:48
4158
  msgid "You do not have permission to edit this payment record"
4159
  msgstr ""
4160
 
@@ -4192,27 +4231,27 @@ msgid "Completed"
4192
  msgstr ""
4193
 
4194
  #: includes/admin/payments/class-payments-table.php:201
4195
- #: includes/payments/functions.php:591
4196
  msgid "Pending"
4197
  msgstr ""
4198
 
4199
  #: includes/admin/payments/class-payments-table.php:202
4200
- #: includes/payments/functions.php:593
4201
  msgid "Refunded"
4202
  msgstr ""
4203
 
4204
  #: includes/admin/payments/class-payments-table.php:203
4205
- #: includes/payments/functions.php:596
4206
  msgid "Revoked"
4207
  msgstr ""
4208
 
4209
  #: includes/admin/payments/class-payments-table.php:204
4210
- #: includes/payments/functions.php:594
4211
  msgid "Failed"
4212
  msgstr ""
4213
 
4214
  #: includes/admin/payments/class-payments-table.php:205
4215
- #: includes/payments/functions.php:595
4216
  msgid "Abandoned"
4217
  msgstr ""
4218
 
@@ -4226,51 +4265,51 @@ msgstr ""
4226
  msgid "View Order Details"
4227
  msgstr ""
4228
 
4229
- #: includes/admin/payments/class-payments-table.php:311
4230
  msgid "Resend Purchase Receipt"
4231
  msgstr ""
4232
 
4233
- #: includes/admin/payments/class-payments-table.php:322
4234
  msgid "(unknown)"
4235
  msgstr ""
4236
 
4237
- #: includes/admin/payments/class-payments-table.php:375
4238
  msgid "(customer missing)"
4239
  msgstr ""
4240
 
4241
- #: includes/admin/payments/class-payments-table.php:390
4242
  msgid "Set To Completed"
4243
  msgstr ""
4244
 
4245
- #: includes/admin/payments/class-payments-table.php:391
4246
  msgid "Set To Pending"
4247
  msgstr ""
4248
 
4249
- #: includes/admin/payments/class-payments-table.php:392
4250
  msgid "Set To Refunded"
4251
  msgstr ""
4252
 
4253
- #: includes/admin/payments/class-payments-table.php:393
4254
  msgid "Set To Revoked"
4255
  msgstr ""
4256
 
4257
- #: includes/admin/payments/class-payments-table.php:394
4258
  msgid "Set To Failed"
4259
  msgstr ""
4260
 
4261
- #: includes/admin/payments/class-payments-table.php:395
4262
  msgid "Set To Abandoned"
4263
  msgstr ""
4264
 
4265
- #: includes/admin/payments/class-payments-table.php:396
4266
  msgid "Set To Preapproval"
4267
  msgstr ""
4268
 
4269
- #: includes/admin/payments/class-payments-table.php:397
4270
  msgid "Set To Cancelled"
4271
  msgstr ""
4272
 
4273
- #: includes/admin/payments/class-payments-table.php:398
4274
  msgid "Resend Email Receipts"
4275
  msgstr ""
4276
 
@@ -4408,7 +4447,7 @@ msgid "Discount Code"
4408
  msgstr ""
4409
 
4410
  #: includes/admin/payments/view-order-details.php:102
4411
- #: includes/admin/settings/register-settings.php:633
4412
  msgid "None"
4413
  msgstr ""
4414
 
@@ -4487,116 +4526,116 @@ msgstr ""
4487
  msgid "View all purchases of customer"
4488
  msgstr ""
4489
 
4490
- #: includes/admin/payments/view-order-details.php:322
4491
  #: templates/widget-cart-checkout.php:5 templates/widget-cart-empty.php:6
4492
  msgid "Total:"
4493
  msgstr ""
4494
 
4495
- #: includes/admin/payments/view-order-details.php:330
4496
- #: includes/admin/payments/view-order-details.php:564
4497
  msgid "Copy Download Link(s)"
4498
  msgstr ""
4499
 
4500
- #: includes/admin/payments/view-order-details.php:351
4501
  #: includes/emails/class-edd-email-tags.php:407
4502
  #: includes/emails/class-edd-email-tags.php:518
4503
  #: templates/shortcode-receipt.php:128
4504
  msgid "Quantity"
4505
  msgstr ""
4506
 
4507
- #: includes/admin/payments/view-order-details.php:362
4508
  msgid "Item Price: "
4509
  msgstr ""
4510
 
4511
- #: includes/admin/payments/view-order-details.php:370
4512
  #, php-format
4513
  msgid "Add %s to Payment"
4514
  msgstr ""
4515
 
4516
- #: includes/admin/payments/view-order-details.php:381
4517
  #, php-format
4518
  msgid "No %s included with this purchase"
4519
  msgstr ""
4520
 
4521
- #: includes/admin/payments/view-order-details.php:408
4522
  msgid "View Customer Details"
4523
  msgstr ""
4524
 
4525
- #: includes/admin/payments/view-order-details.php:411
4526
  msgid "New Customer"
4527
  msgstr ""
4528
 
4529
- #: includes/admin/payments/view-order-details.php:417
4530
  msgid "Name:"
4531
  msgstr ""
4532
 
4533
- #: includes/admin/payments/view-order-details.php:421
4534
  msgid "Email:"
4535
  msgstr ""
4536
 
4537
- #: includes/admin/payments/view-order-details.php:429
4538
  msgid "Click \"Save Payment\" to create new customer"
4539
  msgstr ""
4540
 
4541
- #: includes/admin/payments/view-order-details.php:444
4542
  #: includes/checkout/template.php:329
4543
  msgid "Billing Address"
4544
  msgstr ""
4545
 
4546
- #: includes/admin/payments/view-order-details.php:454
4547
  msgid "Street Address Line 1:"
4548
  msgstr ""
4549
 
4550
- #: includes/admin/payments/view-order-details.php:458
4551
  msgid "Street Address Line 2:"
4552
  msgstr ""
4553
 
4554
- #: includes/admin/payments/view-order-details.php:465
4555
  msgctxt "Address City"
4556
  msgid "City:"
4557
  msgstr ""
4558
 
4559
- #: includes/admin/payments/view-order-details.php:470
4560
  msgctxt "Zip / Postal code of address"
4561
  msgid "Zip / Postal Code:"
4562
  msgstr ""
4563
 
4564
- #: includes/admin/payments/view-order-details.php:477
4565
  msgctxt "Address country"
4566
  msgid "Country:"
4567
  msgstr ""
4568
 
4569
- #: includes/admin/payments/view-order-details.php:486
4570
- #: includes/admin/settings/register-settings.php:263
4571
  msgid "Select a country"
4572
  msgstr ""
4573
 
4574
- #: includes/admin/payments/view-order-details.php:491
4575
  msgctxt "State / province of address"
4576
  msgid "State / Province:"
4577
  msgstr ""
4578
 
4579
- #: includes/admin/payments/view-order-details.php:502
4580
- #: includes/admin/settings/register-settings.php:271
4581
  msgid "Select a state"
4582
  msgstr ""
4583
 
4584
- #: includes/admin/payments/view-order-details.php:522
4585
  msgid "Payment Notes"
4586
  msgstr ""
4587
 
4588
- #: includes/admin/payments/view-order-details.php:537
4589
  msgid "No payment notes"
4590
  msgstr ""
4591
 
4592
- #: includes/admin/payments/view-order-details.php:543
4593
  msgid "Add Note"
4594
  msgstr ""
4595
 
4596
  #: includes/admin/reporting/class-api-requests-logs-list-table.php:89
4597
  #: includes/admin/reporting/class-file-downloads-logs-list-table.php:144
4598
  #: includes/admin/reporting/class-gateway-error-logs-list-table.php:129
4599
- #: includes/admin/reporting/class-sales-logs-list-table.php:119
4600
  msgid "Log ID"
4601
  msgstr ""
4602
 
@@ -4748,7 +4787,7 @@ msgstr ""
4748
 
4749
  #: includes/admin/reporting/class-export-payments.php:70
4750
  #: includes/admin/reporting/export/class-batch-export-payments.php:49
4751
- #: includes/admin/settings/register-settings.php:1545
4752
  #: templates/shortcode-profile-editor.php:75
4753
  msgid "Country"
4754
  msgstr ""
@@ -4789,7 +4828,7 @@ msgstr ""
4789
 
4790
  #: includes/admin/reporting/class-export-payments.php:81
4791
  #: includes/admin/reporting/class-file-downloads-logs-list-table.php:146
4792
- #: includes/admin/reporting/class-sales-logs-list-table.php:120
4793
  #: includes/admin/reporting/export/class-batch-export-payments.php:60
4794
  msgid "User"
4795
  msgstr ""
@@ -4801,7 +4840,7 @@ msgstr ""
4801
 
4802
  #: includes/admin/reporting/class-export.php:172
4803
  #: includes/admin/reporting/export/class-batch-export.php:131
4804
- #: includes/admin/tools/class-edd-tools-recount-all-stats.php:208
4805
  #: includes/admin/tools/class-edd-tools-recount-customer-stats.php:180
4806
  #: includes/admin/tools/class-edd-tools-recount-download-stats.php:211
4807
  #: includes/admin/tools/class-edd-tools-recount-store-earnings.php:154
@@ -4811,7 +4850,7 @@ msgstr ""
4811
 
4812
  #: includes/admin/reporting/class-file-downloads-logs-list-table.php:147
4813
  #: includes/admin/reporting/class-gateway-error-logs-list-table.php:130
4814
- #: includes/admin/reporting/class-sales-logs-list-table.php:123
4815
  msgid "Payment ID"
4816
  msgstr ""
4817
 
@@ -4845,7 +4884,7 @@ msgstr ""
4845
  msgid "Pending / Failed Sales"
4846
  msgstr ""
4847
 
4848
- #: includes/admin/reporting/class-sales-logs-list-table.php:122
4849
  msgid "Item Amount"
4850
  msgstr ""
4851
 
@@ -4969,7 +5008,7 @@ msgid "Filter"
4969
  msgstr ""
4970
 
4971
  #: includes/admin/reporting/logs.php:144
4972
- #: includes/admin/settings/register-settings.php:656
4973
  msgid "File Downloads"
4974
  msgstr ""
4975
 
@@ -5089,7 +5128,7 @@ msgstr ""
5089
 
5090
  #: includes/admin/reporting/reports.php:58
5091
  #: includes/admin/settings/contextual-help.php:71
5092
- #: includes/admin/settings/register-settings.php:938
5093
  msgid "Taxes"
5094
  msgstr ""
5095
 
@@ -5157,62 +5196,62 @@ msgstr ""
5157
  msgid "Download a CSV of earnings and sales over time."
5158
  msgstr ""
5159
 
5160
- #: includes/admin/reporting/reports.php:368
5161
  msgctxt "Date one to date two"
5162
  msgid "to"
5163
  msgstr ""
5164
 
5165
- #: includes/admin/reporting/reports.php:373
5166
- #: includes/admin/reporting/reports.php:399
5167
- #: includes/admin/reporting/reports.php:416
5168
- #: includes/admin/reporting/reports.php:430
5169
- #: includes/admin/reporting/reports.php:446
5170
  msgid "Generate CSV"
5171
  msgstr ""
5172
 
5173
- #: includes/admin/reporting/reports.php:380
5174
  msgid "Export Payment History"
5175
  msgstr ""
5176
 
5177
- #: includes/admin/reporting/reports.php:382
5178
  msgid "Download a CSV of all payments recorded."
5179
  msgstr ""
5180
 
5181
- #: includes/admin/reporting/reports.php:385
5182
- #: includes/admin/reporting/reports.php:442
5183
  msgid "Choose start date"
5184
  msgstr ""
5185
 
5186
- #: includes/admin/reporting/reports.php:386
5187
- #: includes/admin/reporting/reports.php:443
5188
  msgid "Choose end date"
5189
  msgstr ""
5190
 
5191
- #: includes/admin/reporting/reports.php:388
5192
  msgid "All Statuses"
5193
  msgstr ""
5194
 
5195
- #: includes/admin/reporting/reports.php:408
5196
  msgid "Export Customers in CSV"
5197
  msgstr ""
5198
 
5199
- #: includes/admin/reporting/reports.php:410
5200
  msgid "Download a CSV of customers."
5201
  msgstr ""
5202
 
5203
- #: includes/admin/reporting/reports.php:423
5204
  msgid "Export Download Products in CSV"
5205
  msgstr ""
5206
 
5207
- #: includes/admin/reporting/reports.php:425
5208
  msgid "Download a CSV of download products."
5209
  msgstr ""
5210
 
5211
- #: includes/admin/reporting/reports.php:437
5212
  msgid "Export Download History in CSV"
5213
  msgstr ""
5214
 
5215
- #: includes/admin/reporting/reports.php:439
5216
  msgid "Download a CSV of file downloads."
5217
  msgstr ""
5218
 
@@ -5246,7 +5285,7 @@ msgid "Files"
5246
  msgstr ""
5247
 
5248
  #: includes/admin/reporting/export/class-batch-export-downloads.php:54
5249
- #: includes/admin/settings/register-settings.php:678
5250
  msgid "File Download Limit"
5251
  msgstr ""
5252
 
@@ -5280,8 +5319,8 @@ msgid ""
5280
  msgstr ""
5281
 
5282
  #: includes/admin/settings/contextual-help.php:48
5283
- #: includes/admin/settings/register-settings.php:359
5284
- #: includes/admin/settings/register-settings.php:935
5285
  msgid "Payment Gateways"
5286
  msgstr ""
5287
 
@@ -5310,7 +5349,7 @@ msgid ""
5310
  msgstr ""
5311
 
5312
  #: includes/admin/settings/contextual-help.php:57
5313
- #: includes/admin/settings/register-settings.php:936
5314
  msgid "Emails"
5315
  msgstr ""
5316
 
@@ -5330,7 +5369,7 @@ msgid ""
5330
  msgstr ""
5331
 
5332
  #: includes/admin/settings/contextual-help.php:65
5333
- #: includes/admin/settings/register-settings.php:937
5334
  msgid "Styles"
5335
  msgstr ""
5336
 
@@ -5427,765 +5466,825 @@ msgstr ""
5427
  msgid "A description of all the options are provided beside their input boxes."
5428
  msgstr ""
5429
 
5430
- #: includes/admin/settings/register-settings.php:222
 
 
 
 
5431
  msgid "Checkout Page"
5432
  msgstr ""
5433
 
5434
- #: includes/admin/settings/register-settings.php:223
5435
  msgid ""
5436
  "This is the checkout page where buyers will complete their purchases. The "
5437
  "[download_checkout] short code must be on this page."
5438
  msgstr ""
5439
 
5440
- #: includes/admin/settings/register-settings.php:227
5441
- #: includes/admin/settings/register-settings.php:236
5442
- #: includes/admin/settings/register-settings.php:245
5443
- #: includes/admin/settings/register-settings.php:254
5444
  msgid "Select a page"
5445
  msgstr ""
5446
 
5447
- #: includes/admin/settings/register-settings.php:231
5448
  msgid "Success Page"
5449
  msgstr ""
5450
 
5451
- #: includes/admin/settings/register-settings.php:232
5452
  msgid ""
5453
  "This is the page buyers are sent to after completing their purchases. The "
5454
  "[edd_receipt] short code should be on this page."
5455
  msgstr ""
5456
 
5457
- #: includes/admin/settings/register-settings.php:240
5458
  msgid "Failed Transaction Page"
5459
  msgstr ""
5460
 
5461
- #: includes/admin/settings/register-settings.php:241
5462
  msgid ""
5463
  "This is the page buyers are sent to if their transaction is cancelled or "
5464
  "fails"
5465
  msgstr ""
5466
 
5467
- #: includes/admin/settings/register-settings.php:249
5468
  msgid "Purchase History Page"
5469
  msgstr ""
5470
 
5471
- #: includes/admin/settings/register-settings.php:250
5472
  msgid ""
5473
  "This page shows a complete purchase history for the current user, including "
5474
  "download links"
5475
  msgstr ""
5476
 
5477
- #: includes/admin/settings/register-settings.php:258
 
 
 
 
5478
  msgid "Base Country"
5479
  msgstr ""
5480
 
5481
- #: includes/admin/settings/register-settings.php:259
5482
  msgid "Where does your store operate from?"
5483
  msgstr ""
5484
 
5485
- #: includes/admin/settings/register-settings.php:267
5486
  msgid "Base State / Province"
5487
  msgstr ""
5488
 
5489
- #: includes/admin/settings/register-settings.php:268
5490
  msgid "What state / province does your store operate from?"
5491
  msgstr ""
5492
 
5493
- #: includes/admin/settings/register-settings.php:275
5494
- msgid "Currency Settings"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5495
  msgstr ""
5496
 
5497
- #: includes/admin/settings/register-settings.php:276
5498
- msgid "Configure the currency options"
 
5499
  msgstr ""
5500
 
5501
- #: includes/admin/settings/register-settings.php:281
5502
  msgid "Currency"
5503
  msgstr ""
5504
 
5505
- #: includes/admin/settings/register-settings.php:282
5506
  msgid ""
5507
  "Choose your currency. Note that some payment gateways have currency "
5508
  "restrictions."
5509
  msgstr ""
5510
 
5511
- #: includes/admin/settings/register-settings.php:289
5512
  msgid "Currency Position"
5513
  msgstr ""
5514
 
5515
- #: includes/admin/settings/register-settings.php:290
5516
  msgid "Choose the location of the currency sign."
5517
  msgstr ""
5518
 
5519
- #: includes/admin/settings/register-settings.php:293
5520
  msgid "Before - $10"
5521
  msgstr ""
5522
 
5523
- #: includes/admin/settings/register-settings.php:294
5524
  msgid "After - 10$"
5525
  msgstr ""
5526
 
5527
- #: includes/admin/settings/register-settings.php:299
5528
  msgid "Thousands Separator"
5529
  msgstr ""
5530
 
5531
- #: includes/admin/settings/register-settings.php:300
5532
  msgid "The symbol (usually , or .) to separate thousands"
5533
  msgstr ""
5534
 
5535
- #: includes/admin/settings/register-settings.php:307
5536
  msgid "Decimal Separator"
5537
  msgstr ""
5538
 
5539
- #: includes/admin/settings/register-settings.php:308
5540
  msgid "The symbol (usually , or .) to separate decimal points"
5541
  msgstr ""
5542
 
5543
- #: includes/admin/settings/register-settings.php:315
 
5544
  msgid "API Settings"
5545
  msgstr ""
5546
 
5547
- #: includes/admin/settings/register-settings.php:321
5548
  msgid "Allow User Keys"
5549
  msgstr ""
5550
 
5551
- #: includes/admin/settings/register-settings.php:322
5552
  msgid ""
5553
  "Check this box to allow all users to generate API keys. Users with the "
5554
  "'manage_shop_settings' capability are always allowed to generate keys."
5555
  msgstr ""
5556
 
5557
- #: includes/admin/settings/register-settings.php:327
5558
- msgid "Tracking Settings"
5559
- msgstr ""
5560
-
5561
- #: includes/admin/settings/register-settings.php:333
5562
- msgid "Allow Usage Tracking?"
5563
- msgstr ""
5564
-
5565
- #: includes/admin/settings/register-settings.php:335
5566
- #, php-format
5567
- msgid ""
5568
- "Allow Easy Digital Downloads to anonymously track how this plugin is used "
5569
- "and help us make the plugin better. Opt-in to tracking and our newsletter "
5570
- "and immediately be emailed a 20&#37; discount to the EDD shop, valid towards "
5571
- "the <a href=\"%s\" target=\"_blank\">purchase of extensions</a>. No "
5572
- "sensitive data is tracked."
5573
- msgstr ""
5574
-
5575
- #: includes/admin/settings/register-settings.php:342
5576
- msgid "Remove Data on Uninstall?"
5577
  msgstr ""
5578
 
5579
- #: includes/admin/settings/register-settings.php:343
5580
- msgid ""
5581
- "Check this box if you would like EDD to completely remove all of its data "
5582
- "when the plugin is deleted."
5583
- msgstr ""
5584
-
5585
- #: includes/admin/settings/register-settings.php:353
5586
  msgid "Test Mode"
5587
  msgstr ""
5588
 
5589
- #: includes/admin/settings/register-settings.php:354
5590
  msgid ""
5591
  "While in test mode no live transactions are processed. To fully use test "
5592
  "mode, you must have a sandbox (test) account for the payment gateway you are "
5593
  "testing."
5594
  msgstr ""
5595
 
5596
- #: includes/admin/settings/register-settings.php:360
5597
  msgid "Choose the payment gateways you want to enable."
5598
  msgstr ""
5599
 
5600
- #: includes/admin/settings/register-settings.php:366
5601
  msgid "Default Gateway"
5602
  msgstr ""
5603
 
5604
- #: includes/admin/settings/register-settings.php:367
5605
  msgid "This gateway will be loaded automatically with the checkout page."
5606
  msgstr ""
5607
 
5608
- #: includes/admin/settings/register-settings.php:373
5609
  msgid "Accepted Payment Method Icons"
5610
  msgstr ""
5611
 
5612
- #: includes/admin/settings/register-settings.php:374
5613
  msgid "Display icons for the selected payment methods"
5614
  msgstr ""
5615
 
5616
- #: includes/admin/settings/register-settings.php:374
5617
  msgid ""
5618
  "You will also need to configure your gateway settings if you are accepting "
5619
  "credit cards"
5620
  msgstr ""
5621
 
5622
- #: includes/admin/settings/register-settings.php:387
5623
- msgid "PayPal Settings"
5624
  msgstr ""
5625
 
5626
- #: includes/admin/settings/register-settings.php:388
5627
- msgid "Configure the PayPal settings"
5628
- msgstr ""
5629
-
5630
- #: includes/admin/settings/register-settings.php:393
5631
  msgid "PayPal Email"
5632
  msgstr ""
5633
 
5634
- #: includes/admin/settings/register-settings.php:394
5635
  msgid "Enter your PayPal account's email"
5636
  msgstr ""
5637
 
5638
- #: includes/admin/settings/register-settings.php:400
5639
  msgid "PayPal Page Style"
5640
  msgstr ""
5641
 
5642
- #: includes/admin/settings/register-settings.php:401
5643
  msgid "Enter the name of the page style to use, or leave blank for default"
5644
  msgstr ""
5645
 
5646
- #: includes/admin/settings/register-settings.php:407
5647
  msgid "Disable PayPal IPN Verification"
5648
  msgstr ""
5649
 
5650
- #: includes/admin/settings/register-settings.php:408
5651
  msgid ""
5652
  "If payments are not getting marked as complete, then check this box. This "
5653
  "forces the site to use a slightly less secure method of verifying purchases."
5654
  msgstr ""
5655
 
5656
- #: includes/admin/settings/register-settings.php:418
 
 
 
 
 
5657
  msgid "Email Template"
5658
  msgstr ""
5659
 
5660
- #: includes/admin/settings/register-settings.php:419
5661
  msgid ""
5662
  "Choose a template. Click \"Save Changes\" then \"Preview Purchase Receipt\" "
5663
  "to see the new template."
5664
  msgstr ""
5665
 
5666
- #: includes/admin/settings/register-settings.php:425
5667
  msgid "Logo"
5668
  msgstr ""
5669
 
5670
- #: includes/admin/settings/register-settings.php:426
5671
  msgid ""
5672
  "Upload or choose a logo to be displayed at the top of the purchase receipt "
5673
  "emails. Displayed on HTML emails only."
5674
  msgstr ""
5675
 
5676
- #: includes/admin/settings/register-settings.php:437
 
 
 
 
 
5677
  msgid "From Name"
5678
  msgstr ""
5679
 
5680
- #: includes/admin/settings/register-settings.php:438
5681
  msgid ""
5682
  "The name purchase receipts are said to come from. This should probably be "
5683
  "your site or shop name."
5684
  msgstr ""
5685
 
5686
- #: includes/admin/settings/register-settings.php:444
5687
  msgid "From Email"
5688
  msgstr ""
5689
 
5690
- #: includes/admin/settings/register-settings.php:445
5691
  msgid ""
5692
  "Email to send purchase receipts from. This will act as the \"from\" and "
5693
  "\"reply-to\" address."
5694
  msgstr ""
5695
 
5696
- #: includes/admin/settings/register-settings.php:451
5697
  msgid "Purchase Email Subject"
5698
  msgstr ""
5699
 
5700
- #: includes/admin/settings/register-settings.php:452
5701
  msgid "Enter the subject line for the purchase receipt email"
5702
  msgstr ""
5703
 
5704
- #: includes/admin/settings/register-settings.php:454
5705
- #: includes/admin/settings/register-settings.php:461
5706
- #: includes/admin/settings/register-settings.php:465
5707
  #: includes/emails/functions.php:36 includes/emails/functions.php:40
5708
  #: includes/emails/functions.php:77 includes/emails/functions.php:81
5709
  #: includes/emails/template.php:139
5710
  msgid "Purchase Receipt"
5711
  msgstr ""
5712
 
5713
- #: includes/admin/settings/register-settings.php:458
5714
  msgid "Purchase Email Heading"
5715
  msgstr ""
5716
 
5717
- #: includes/admin/settings/register-settings.php:459
5718
  msgid "Enter the heading for the purchase receipt email"
5719
  msgstr ""
5720
 
5721
- #: includes/admin/settings/register-settings.php:466
5722
  msgid ""
5723
  "Enter the text that is sent as purchase receipt email to users after "
5724
  "completion of a successful purchase. HTML is accepted. Available template "
5725
  "tags:"
5726
  msgstr ""
5727
 
5728
- #: includes/admin/settings/register-settings.php:468
5729
  #: includes/emails/template.php:157
5730
  msgid "Dear"
5731
  msgstr ""
5732
 
5733
- #: includes/admin/settings/register-settings.php:468
5734
  #: includes/emails/template.php:158
5735
  msgid ""
5736
  "Thank you for your purchase. Please click on the link(s) below to download "
5737
  "your files."
5738
  msgstr ""
5739
 
5740
- #: includes/admin/settings/register-settings.php:472
5741
- msgid "New Sale Notifications"
5742
- msgstr ""
5743
-
5744
- #: includes/admin/settings/register-settings.php:473
5745
- msgid "Configure new sale notification emails"
5746
  msgstr ""
5747
 
5748
- #: includes/admin/settings/register-settings.php:478
5749
  msgid "Sale Notification Subject"
5750
  msgstr ""
5751
 
5752
- #: includes/admin/settings/register-settings.php:479
5753
  msgid "Enter the subject line for the sale notification email"
5754
  msgstr ""
5755
 
5756
- #: includes/admin/settings/register-settings.php:485
5757
  msgid "Sale Notification"
5758
  msgstr ""
5759
 
5760
- #: includes/admin/settings/register-settings.php:486
5761
  msgid ""
5762
  "Enter the text that is sent as sale notification email after completion of a "
5763
  "purchase. HTML is accepted. Available template tags:"
5764
  msgstr ""
5765
 
5766
- #: includes/admin/settings/register-settings.php:492
5767
  msgid "Sale Notification Emails"
5768
  msgstr ""
5769
 
5770
- #: includes/admin/settings/register-settings.php:493
5771
  msgid ""
5772
  "Enter the email address(es) that should receive a notification anytime a "
5773
  "sale is made, one per line"
5774
  msgstr ""
5775
 
5776
- #: includes/admin/settings/register-settings.php:499
5777
  msgid "Disable Admin Notifications"
5778
  msgstr ""
5779
 
5780
- #: includes/admin/settings/register-settings.php:500
5781
  msgid "Check this box if you do not want to receive sales notification emails."
5782
  msgstr ""
5783
 
5784
- #: includes/admin/settings/register-settings.php:510
 
 
 
 
 
5785
  msgid "Disable Styles"
5786
  msgstr ""
5787
 
5788
- #: includes/admin/settings/register-settings.php:511
5789
  msgid ""
5790
  "Check this to disable all included styling of buttons, checkout fields, and "
5791
  "all other elements."
5792
  msgstr ""
5793
 
5794
- #: includes/admin/settings/register-settings.php:516
5795
  msgid "Buttons"
5796
  msgstr ""
5797
 
5798
- #: includes/admin/settings/register-settings.php:517
5799
  msgid "Options for add to cart and purchase buttons"
5800
  msgstr ""
5801
 
5802
- #: includes/admin/settings/register-settings.php:522
5803
  msgid "Default Button Style"
5804
  msgstr ""
5805
 
5806
- #: includes/admin/settings/register-settings.php:523
5807
  msgid "Choose the style you want to use for the buttons."
5808
  msgstr ""
5809
 
5810
- #: includes/admin/settings/register-settings.php:529
5811
  msgid "Default Button Color"
5812
  msgstr ""
5813
 
5814
- #: includes/admin/settings/register-settings.php:530
5815
  msgid "Choose the color you want to use for the buttons."
5816
  msgstr ""
5817
 
5818
- #: includes/admin/settings/register-settings.php:541
 
 
 
 
 
5819
  msgid "Enable Taxes"
5820
  msgstr ""
5821
 
5822
- #: includes/admin/settings/register-settings.php:542
5823
  msgid "Check this to enable taxes on purchases."
5824
  msgstr ""
5825
 
5826
- #: includes/admin/settings/register-settings.php:547
5827
  msgid "Tax Rates"
5828
  msgstr ""
5829
 
5830
- #: includes/admin/settings/register-settings.php:548
5831
  msgid "Enter tax rates for specific regions."
5832
  msgstr ""
5833
 
5834
- #: includes/admin/settings/register-settings.php:553
5835
  msgid "Fallback Tax Rate"
5836
  msgstr ""
5837
 
5838
- #: includes/admin/settings/register-settings.php:554
5839
  msgid ""
5840
  "Enter a percentage, such as 6.5. Customers not in a specific rate will be "
5841
  "charged this rate."
5842
  msgstr ""
5843
 
5844
- #: includes/admin/settings/register-settings.php:560
5845
  msgid "Prices entered with tax"
5846
  msgstr ""
5847
 
5848
- #: includes/admin/settings/register-settings.php:561
5849
  msgid "This option affects how you enter prices."
5850
  msgstr ""
5851
 
5852
- #: includes/admin/settings/register-settings.php:565
5853
  msgid "Yes, I will enter prices inclusive of tax"
5854
  msgstr ""
5855
 
5856
- #: includes/admin/settings/register-settings.php:566
5857
  msgid "No, I will enter prices exclusive of tax"
5858
  msgstr ""
5859
 
5860
- #: includes/admin/settings/register-settings.php:571
5861
  msgid "Display Tax Rate on Prices"
5862
  msgstr ""
5863
 
5864
- #: includes/admin/settings/register-settings.php:572
5865
  msgid "Some countries require a notice when product prices include tax."
5866
  msgstr ""
5867
 
5868
- #: includes/admin/settings/register-settings.php:577
5869
  msgid "Display during checkout"
5870
  msgstr ""
5871
 
5872
- #: includes/admin/settings/register-settings.php:578
5873
  msgid "Should prices on the checkout page be shown with or without tax?"
5874
  msgstr ""
5875
 
5876
- #: includes/admin/settings/register-settings.php:582
5877
  msgid "Including tax"
5878
  msgstr ""
5879
 
5880
- #: includes/admin/settings/register-settings.php:583
5881
  msgid "Excluding tax"
5882
  msgstr ""
5883
 
5884
- #: includes/admin/settings/register-settings.php:600
 
 
 
 
 
5885
  msgid "Enable Ajax"
5886
  msgstr ""
5887
 
5888
- #: includes/admin/settings/register-settings.php:601
5889
  msgid "Check this to enable AJAX for the shopping cart."
5890
  msgstr ""
5891
 
5892
- #: includes/admin/settings/register-settings.php:607
5893
  msgid "Redirect to Checkout"
5894
  msgstr ""
5895
 
5896
- #: includes/admin/settings/register-settings.php:608
5897
  msgid "Immediately redirect to checkout after adding an item to the cart?"
5898
  msgstr ""
5899
 
5900
- #: includes/admin/settings/register-settings.php:613
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5901
  msgid "Enforce SSL on Checkout"
5902
  msgstr ""
5903
 
5904
- #: includes/admin/settings/register-settings.php:614
5905
  msgid ""
5906
  "Check this to force users to be redirected to the secure checkout page. You "
5907
  "must have an SSL certificate installed to use this option."
5908
  msgstr ""
5909
 
5910
- #: includes/admin/settings/register-settings.php:619
5911
  msgid "Disable Guest Checkout"
5912
  msgstr ""
5913
 
5914
- #: includes/admin/settings/register-settings.php:620
5915
  msgid "Require that users be logged-in to purchase files."
5916
  msgstr ""
5917
 
5918
- #: includes/admin/settings/register-settings.php:625
5919
  msgid "Show Register / Login Form?"
5920
  msgstr ""
5921
 
5922
- #: includes/admin/settings/register-settings.php:626
5923
  msgid ""
5924
  "Display the registration and login forms on the checkout page for non-logged-"
5925
  "in users."
5926
  msgstr ""
5927
 
5928
- #: includes/admin/settings/register-settings.php:630
5929
  msgid "Registration and Login Forms"
5930
  msgstr ""
5931
 
5932
- #: includes/admin/settings/register-settings.php:631
5933
  msgid "Registration Form Only"
5934
  msgstr ""
5935
 
5936
- #: includes/admin/settings/register-settings.php:632
5937
  msgid "Login Form Only"
5938
  msgstr ""
5939
 
5940
- #: includes/admin/settings/register-settings.php:638
5941
- msgid "Item Quantities"
5942
- msgstr ""
5943
-
5944
- #: includes/admin/settings/register-settings.php:639
5945
- msgid "Allow item quantities to be changed."
5946
- msgstr ""
5947
-
5948
- #: includes/admin/settings/register-settings.php:644
5949
  msgid "Multiple Discounts"
5950
  msgstr ""
5951
 
5952
- #: includes/admin/settings/register-settings.php:645
5953
  msgid "Allow customers to use multiple discounts on the same purchase?"
5954
  msgstr ""
5955
 
5956
- #: includes/admin/settings/register-settings.php:650
5957
  msgid "Enable Cart Saving"
5958
  msgstr ""
5959
 
5960
- #: includes/admin/settings/register-settings.php:651
5961
  msgid "Check this to enable cart saving on the checkout."
5962
  msgstr ""
5963
 
5964
- #: includes/admin/settings/register-settings.php:662
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5965
  msgid "Download Method"
5966
  msgstr ""
5967
 
5968
- #: includes/admin/settings/register-settings.php:663
5969
  msgid ""
5970
  "Select the file download method. Note, not all methods work on all servers."
5971
  msgstr ""
5972
 
5973
- #: includes/admin/settings/register-settings.php:666
5974
  msgid "Forced"
5975
  msgstr ""
5976
 
5977
- #: includes/admin/settings/register-settings.php:667
5978
  msgid "Redirect"
5979
  msgstr ""
5980
 
5981
- #: includes/admin/settings/register-settings.php:672
5982
  msgid "Symlink File Downloads?"
5983
  msgstr ""
5984
 
5985
- #: includes/admin/settings/register-settings.php:673
5986
  msgid ""
5987
  "Check this if you are delivering really large files or having problems with "
5988
  "file downloads completing."
5989
  msgstr ""
5990
 
5991
- #: includes/admin/settings/register-settings.php:679
5992
  #, php-format
5993
  msgid ""
5994
  "The maximum number of times files can be downloaded for purchases. Can be "
5995
  "overwritten for each %s."
5996
  msgstr ""
5997
 
5998
- #: includes/admin/settings/register-settings.php:685
5999
  msgid "Download Link Expiration"
6000
  msgstr ""
6001
 
6002
- #: includes/admin/settings/register-settings.php:686
6003
  msgid ""
6004
  "How long should download links be valid for? Default is 24 hours from the "
6005
  "time they are generated. Enter a time in hours."
6006
  msgstr ""
6007
 
6008
- #: includes/admin/settings/register-settings.php:694
6009
  msgid "Disable Redownload?"
6010
  msgstr ""
6011
 
6012
- #: includes/admin/settings/register-settings.php:695
6013
  msgid ""
6014
  "Check this if you do not want to allow users to redownload items from their "
6015
  "purchase history."
6016
  msgstr ""
6017
 
6018
- #: includes/admin/settings/register-settings.php:700
 
6019
  msgid "Accounting Settings"
6020
  msgstr ""
6021
 
6022
- #: includes/admin/settings/register-settings.php:706
6023
  msgid "Enable SKU Entry"
6024
  msgstr ""
6025
 
6026
- #: includes/admin/settings/register-settings.php:707
6027
  msgid ""
6028
  "Check this box to allow entry of product SKUs. SKUs will be shown on "
6029
  "purchase receipt and exported purchase histories."
6030
  msgstr ""
6031
 
6032
- #: includes/admin/settings/register-settings.php:712
6033
  msgid "Sequential Order Numbers"
6034
  msgstr ""
6035
 
6036
- #: includes/admin/settings/register-settings.php:713
6037
  msgid "Check this box to enable sequential order numbers."
6038
  msgstr ""
6039
 
6040
- #: includes/admin/settings/register-settings.php:718
6041
  msgid "Sequential Starting Number"
6042
  msgstr ""
6043
 
6044
- #: includes/admin/settings/register-settings.php:719
6045
  msgid "The number at which the sequence should begin."
6046
  msgstr ""
6047
 
6048
- #: includes/admin/settings/register-settings.php:726
6049
  msgid "Sequential Number Prefix"
6050
  msgstr ""
6051
 
6052
- #: includes/admin/settings/register-settings.php:727
6053
  msgid "A prefix to prepend to all sequential order numbers."
6054
  msgstr ""
6055
 
6056
- #: includes/admin/settings/register-settings.php:732
6057
  msgid "Sequential Number Postfix"
6058
  msgstr ""
6059
 
6060
- #: includes/admin/settings/register-settings.php:733
6061
  msgid "A postfix to append to all sequential order numbers."
6062
  msgstr ""
6063
 
6064
- #: includes/admin/settings/register-settings.php:738
6065
- msgid "Terms of Agreement"
6066
  msgstr ""
6067
 
6068
- #: includes/admin/settings/register-settings.php:744
6069
  msgid "Agree to Terms"
6070
  msgstr ""
6071
 
6072
- #: includes/admin/settings/register-settings.php:745
6073
  msgid ""
6074
  "Check this to show an agree to terms on the checkout that users must agree "
6075
  "to before purchasing."
6076
  msgstr ""
6077
 
6078
- #: includes/admin/settings/register-settings.php:750
6079
  msgid "Agree to Terms Label"
6080
  msgstr ""
6081
 
6082
- #: includes/admin/settings/register-settings.php:751
6083
  msgid "Label shown next to the agree to terms check box."
6084
  msgstr ""
6085
 
6086
- #: includes/admin/settings/register-settings.php:757
6087
  msgid "Agreement Text"
6088
  msgstr ""
6089
 
6090
- #: includes/admin/settings/register-settings.php:758
6091
  msgid "If Agree to Terms is checked, enter the agreement terms here."
6092
  msgstr ""
6093
 
6094
- #: includes/admin/settings/register-settings.php:763
6095
- msgid "Complete Purchase Text"
6096
- msgstr ""
6097
-
6098
- #: includes/admin/settings/register-settings.php:764
6099
- msgid "The button label for completing a purchase."
6100
- msgstr ""
6101
-
6102
- #: includes/admin/settings/register-settings.php:770
6103
- msgid "Add to Cart Text"
6104
  msgstr ""
6105
 
6106
- #: includes/admin/settings/register-settings.php:771
6107
- msgid "Text shown on the Add to Cart Buttons."
6108
  msgstr ""
6109
 
6110
- #: includes/admin/settings/register-settings.php:777
6111
- msgid "Buy Now Text"
6112
  msgstr ""
6113
 
6114
- #: includes/admin/settings/register-settings.php:778
6115
- msgid "Text shown on the Buy Now Buttons."
 
6116
  msgstr ""
6117
 
6118
- #: includes/admin/settings/register-settings.php:851
6119
- msgid "Settings updated."
6120
  msgstr ""
6121
 
6122
- #: includes/admin/settings/register-settings.php:944
6123
- msgid "Licenses"
6124
  msgstr ""
6125
 
6126
- #: includes/admin/settings/register-settings.php:947
6127
- msgid "Misc"
6128
  msgstr ""
6129
 
6130
- #: includes/admin/settings/register-settings.php:1316
6131
  #, php-format
6132
  msgid "The callback function used for the %s setting is missing."
6133
  msgstr ""
6134
 
6135
- #: includes/admin/settings/register-settings.php:1456
6136
  msgid "Upload File"
6137
  msgstr ""
6138
 
6139
- #: includes/admin/settings/register-settings.php:1547
6140
  msgid "Apply rate to whole country, regardless of state / province"
6141
  msgstr ""
6142
 
6143
- #: includes/admin/settings/register-settings.php:1547
6144
  msgid "Country Wide"
6145
  msgstr ""
6146
 
6147
- #: includes/admin/settings/register-settings.php:1548
6148
  msgid "Rate"
6149
  msgstr ""
6150
 
6151
- #: includes/admin/settings/register-settings.php:1565
6152
- #: includes/admin/settings/register-settings.php:1609
6153
  msgid "Choose a country"
6154
  msgstr ""
6155
 
6156
- #: includes/admin/settings/register-settings.php:1580
6157
  msgid "Choose a state"
6158
  msgstr ""
6159
 
6160
- #: includes/admin/settings/register-settings.php:1592
6161
- #: includes/admin/settings/register-settings.php:1619
6162
  msgid "Apply to whole country"
6163
  msgstr ""
6164
 
6165
- #: includes/admin/settings/register-settings.php:1595
6166
- #: includes/admin/settings/register-settings.php:1622
6167
  msgid "Remove Rate"
6168
  msgstr ""
6169
 
6170
- #: includes/admin/settings/register-settings.php:1627
6171
  msgid "Add Tax Rate"
6172
  msgstr ""
6173
 
6174
- #: includes/admin/settings/register-settings.php:1690
6175
  #, php-format
6176
  msgid ""
6177
  "Your license key expired on %s. Please <a href=\"%s\" target=\"_blank\" "
6178
  "title=\"Renew your license key\">renew your license key</a>."
6179
  msgstr ""
6180
 
6181
- #: includes/admin/settings/register-settings.php:1703
6182
  #, php-format
6183
  msgid ""
6184
  "Invalid license. Please <a href=\"%s\" target=\"_blank\" title=\"Visit "
6185
  "account page\">visit your account page</a> and verify it."
6186
  msgstr ""
6187
 
6188
- #: includes/admin/settings/register-settings.php:1716
6189
  #, php-format
6190
  msgid ""
6191
  "Your %s is not active for this URL. Please <a href=\"%s\" target=\"_blank\" "
@@ -6193,32 +6292,39 @@ msgid ""
6193
  "license key URLs."
6194
  msgstr ""
6195
 
6196
- #: includes/admin/settings/register-settings.php:1728
6197
  #, php-format
6198
- msgid "This license %s does not belong to %s."
 
 
 
 
 
 
 
6199
  msgstr ""
6200
 
6201
- #: includes/admin/settings/register-settings.php:1743
6202
  msgid "License key never expires."
6203
  msgstr ""
6204
 
6205
- #: includes/admin/settings/register-settings.php:1750
6206
  #, php-format
6207
  msgid ""
6208
  "Your license key expires soon! It expires on %s. <a href=\"%s\" target="
6209
  "\"_blank\" title=\"Renew license\">Renew your license key</a>."
6210
  msgstr ""
6211
 
6212
- #: includes/admin/settings/register-settings.php:1760
6213
  #, php-format
6214
  msgid "Your license key expires on %s."
6215
  msgstr ""
6216
 
6217
- #: includes/admin/settings/register-settings.php:1780
6218
  msgid "Deactivate License"
6219
  msgstr ""
6220
 
6221
- #: includes/admin/tools/class-edd-tools-recount-all-stats.php:223
6222
  msgid "Earnings and sales stats successfully recounted."
6223
  msgstr ""
6224
 
@@ -6232,7 +6338,7 @@ msgstr ""
6232
  msgid "Earnings and sales stats successfully recounted for %s."
6233
  msgstr ""
6234
 
6235
- #: includes/admin/tools/class-edd-tools-recount-single-customer-stats.php:144
6236
  msgid "You do not have permission to modify this data."
6237
  msgstr ""
6238
 
@@ -6372,67 +6478,71 @@ msgstr ""
6372
  msgid "Invalid query!"
6373
  msgstr ""
6374
 
6375
- #: includes/api/class-edd-api.php:952
6376
  #, php-format
6377
  msgid "Customer %s not found!"
6378
  msgstr ""
6379
 
6380
- #: includes/api/class-edd-api.php:957
6381
  msgid "No customers found!"
6382
  msgstr ""
6383
 
6384
- #: includes/api/class-edd-api.php:1003 includes/api/class-edd-api.php:1197
6385
- #: includes/api/class-edd-api.php:1307
6386
  #, php-format
6387
  msgid "Product %s not found!"
6388
  msgstr ""
6389
 
6390
- #: includes/api/class-edd-api.php:1108 includes/api/class-edd-api.php:1214
6391
  msgid "The end date must be later than the start date!"
6392
  msgstr ""
6393
 
6394
- #: includes/api/class-edd-api.php:1113 includes/api/class-edd-api.php:1219
6395
  msgid "Invalid or no date range specified!"
6396
  msgstr ""
6397
 
6398
- #: includes/api/class-edd-api.php:1451
6399
  msgid "No discounts found!"
6400
  msgstr ""
6401
 
6402
- #: includes/api/class-edd-api.php:1498
6403
  #, php-format
6404
  msgid "Discount %s not found!"
6405
  msgstr ""
6406
 
6407
- #: includes/api/class-edd-api.php:1564
6408
  msgid "No download logs found!"
6409
  msgstr ""
6410
 
6411
- #: includes/api/class-edd-api.php:1759
6412
  msgid "Easy Digital Downloads API Keys"
6413
  msgstr ""
6414
 
6415
- #: includes/api/class-edd-api.php:1768
6416
  msgid "Generate API Key"
6417
  msgstr ""
6418
 
6419
- #: includes/api/class-edd-api.php:1770
6420
  msgid "Public key:"
6421
  msgstr ""
6422
 
6423
- #: includes/api/class-edd-api.php:1771
6424
  msgid "Secret key:"
6425
  msgstr ""
6426
 
6427
- #: includes/api/class-edd-api.php:1772
6428
  msgid "Token:"
6429
  msgstr ""
6430
 
6431
- #: includes/api/class-edd-api.php:1774
6432
  msgid "Revoke API Keys"
6433
  msgstr ""
6434
 
6435
- #: includes/api/class-edd-api.php:1808 includes/api/class-edd-api.php:1810
 
 
 
 
6436
  #, php-format
6437
  msgid "You do not have permission to %s API keys for this user"
6438
  msgstr ""
@@ -6739,19 +6849,19 @@ msgstr ""
6739
  msgid "Hide Terms"
6740
  msgstr ""
6741
 
6742
- #: includes/checkout/template.php:774
6743
  msgid "Purchase Total:"
6744
  msgstr ""
6745
 
6746
- #: includes/checkout/template.php:800
6747
  msgid "Go back"
6748
  msgstr ""
6749
 
6750
- #: includes/checkout/template.php:823
6751
  msgid "Next"
6752
  msgstr ""
6753
 
6754
- #: includes/checkout/template.php:843
6755
  msgid "Free Download"
6756
  msgstr ""
6757
 
@@ -6782,7 +6892,7 @@ msgid ""
6782
  "You cannot send email with EDD_Emails until init/admin_init has been reached"
6783
  msgstr ""
6784
 
6785
- #: includes/emails/class-edd-emails.php:304
6786
  #, php-format
6787
  msgid ""
6788
  "Email from Easy Digital Downloads failed to send.\n"
@@ -6875,149 +6985,141 @@ msgstr ""
6875
  msgid "You must enable a payment gateway to use Easy Digital Downloads"
6876
  msgstr ""
6877
 
6878
- #: includes/gateways/amazon-payments.php:228
6879
  #: includes/gateways/amazon-payments.php:229
 
6880
  msgid "Amazon"
6881
  msgstr ""
6882
 
6883
- #: includes/gateways/amazon-payments.php:268
6884
  msgid "Amazon Payments Settings"
6885
  msgstr ""
6886
 
6887
- #: includes/gateways/amazon-payments.php:269
6888
- msgid "Configure the Amazon settings"
6889
- msgstr ""
6890
-
6891
- #: includes/gateways/amazon-payments.php:274
6892
  msgid "Register with Amazon"
6893
  msgstr ""
6894
 
6895
- #: includes/gateways/amazon-payments.php:276
6896
  msgid "Connect Easy Digital Downloads to Amazon"
6897
  msgstr ""
6898
 
6899
- #: includes/gateways/amazon-payments.php:279
6900
  msgid "Once registration is complete, enter your API credentials below."
6901
  msgstr ""
6902
 
6903
- #: includes/gateways/amazon-payments.php:285
6904
  msgid "Seller ID"
6905
  msgstr ""
6906
 
6907
- #: includes/gateways/amazon-payments.php:286
6908
  msgid "Found in the Integration settings. Also called a Merchant ID"
6909
  msgstr ""
6910
 
6911
- #: includes/gateways/amazon-payments.php:292
6912
  msgid "MWS Access Key"
6913
  msgstr ""
6914
 
6915
- #: includes/gateways/amazon-payments.php:293
6916
- #: includes/gateways/amazon-payments.php:300
6917
  msgid "Found on Seller Central in the MWS Keys section"
6918
  msgstr ""
6919
 
6920
- #: includes/gateways/amazon-payments.php:299
6921
  msgid "MWS Secret Key"
6922
  msgstr ""
6923
 
6924
- #: includes/gateways/amazon-payments.php:306
6925
  msgid "Client ID"
6926
  msgstr ""
6927
 
6928
- #: includes/gateways/amazon-payments.php:307
6929
  msgid "The Amazon Client ID. Should look like `amzn1.application-oa2...`"
6930
  msgstr ""
6931
 
6932
- #: includes/gateways/amazon-payments.php:313
6933
  msgid "Amazon MWS Callback URL"
6934
  msgstr ""
6935
 
6936
- #: includes/gateways/amazon-payments.php:314
6937
  msgid ""
6938
  "The Return URL to provide in your MWS Application. Enter this under your "
6939
  "Login and Pay &rarr; Web Settings"
6940
  msgstr ""
6941
 
6942
- #: includes/gateways/amazon-payments.php:322
6943
  msgid "Amazon Merchant IPN URL"
6944
  msgstr ""
6945
 
6946
- #: includes/gateways/amazon-payments.php:323
6947
  #, php-format
6948
  msgid ""
6949
  "The IPN URL to provide in your MWS account. Enter this under your <a href="
6950
  "\"%s\">Integration Settings</a>"
6951
  msgstr ""
6952
 
6953
- #: includes/gateways/amazon-payments.php:616
6954
  msgid "Currently logged into Amazon as"
6955
  msgstr ""
6956
 
6957
- #: includes/gateways/amazon-payments.php:617
6958
  msgid "Logout"
6959
  msgstr ""
6960
 
6961
- #: includes/gateways/amazon-payments.php:770
6962
- #: includes/gateways/amazon-payments.php:785
6963
  msgid "Missing Reference ID, please try again"
6964
  msgstr ""
6965
 
6966
- #: includes/gateways/amazon-payments.php:821
6967
  #, php-format
6968
  msgid ""
6969
  "Your payment could not be authorized, please try a different payment method. "
6970
  "Reason: %s"
6971
  msgstr ""
6972
 
6973
- #: includes/gateways/amazon-payments.php:868
6974
  #, php-format
6975
  msgid "There was an issue processing your payment. Amazon error: %s"
6976
  msgstr ""
6977
 
6978
- #: includes/gateways/amazon-payments.php:1004
6979
  msgid "Invalid Amazon seller ID"
6980
  msgstr ""
6981
 
6982
- #: includes/gateways/amazon-payments.php:1004
6983
- #: includes/gateways/amazon-payments.php:1058
6984
- #: includes/gateways/paypal-standard.php:271
6985
- #: includes/gateways/paypal-standard.php:276
6986
- #: includes/gateways/paypal-standard.php:337
6987
- #: includes/gateways/paypal-standard.php:346
6988
- #: includes/gateways/paypal-standard.php:396
6989
- #: includes/gateways/paypal-standard.php:403
6990
  msgid "IPN Error"
6991
  msgstr ""
6992
 
6993
- #: includes/gateways/amazon-payments.php:1028
6994
  msgid "Capture declined in Amazon"
6995
  msgstr ""
6996
 
6997
- #: includes/gateways/amazon-payments.php:1046
6998
- #: includes/gateways/amazon-payments.php:1134
6999
  #, php-format
7000
  msgid "Refund completed in Amazon. Refund ID: %s"
7001
  msgstr ""
7002
 
7003
- #: includes/gateways/amazon-payments.php:1127
7004
  #, php-format
7005
  msgid "Refund declined in Amazon. Refund ID: %s"
7006
  msgstr ""
7007
 
7008
- #: includes/gateways/amazon-payments.php:1140
7009
  #, php-format
7010
  msgid "Refund initiated in Amazon. Reference ID: %s"
7011
  msgstr ""
7012
 
7013
- #: includes/gateways/amazon-payments.php:1149
7014
  msgid "Refund request failed in Amazon."
7015
  msgstr ""
7016
 
7017
- #: includes/gateways/functions.php:25
7018
- msgid "PayPal Standard"
7019
- msgstr ""
7020
-
7021
  #: includes/gateways/functions.php:26
7022
  msgid "PayPal"
7023
  msgstr ""
@@ -7051,133 +7153,134 @@ msgid ""
7051
  "Payment creation failed before sending buyer to PayPal. Payment data: %s"
7052
  msgstr ""
7053
 
7054
- #: includes/gateways/paypal-standard.php:271
7055
- #: includes/gateways/paypal-standard.php:276
7056
  #, php-format
7057
  msgid "Invalid IPN verification response. IPN data: %s"
7058
  msgstr ""
7059
 
7060
- #: includes/gateways/paypal-standard.php:337
7061
  #, php-format
7062
  msgid "Invalid business email in IPN response. IPN data: %s"
7063
  msgstr ""
7064
 
7065
- #: includes/gateways/paypal-standard.php:339
7066
  msgid "Payment failed due to invalid PayPal business email."
7067
  msgstr ""
7068
 
7069
- #: includes/gateways/paypal-standard.php:346
7070
  #, php-format
7071
  msgid "Invalid currency in IPN response. IPN data: %s"
7072
  msgstr ""
7073
 
7074
- #: includes/gateways/paypal-standard.php:348
7075
  msgid "Payment failed due to invalid currency in PayPal IPN."
7076
  msgstr ""
7077
 
7078
- #: includes/gateways/paypal-standard.php:396
7079
  #, php-format
7080
  msgid "Invalid payment amount in IPN response. IPN data: %s"
7081
  msgstr ""
7082
 
7083
- #: includes/gateways/paypal-standard.php:398
7084
  msgid "Payment failed due to invalid amount in PayPal IPN."
7085
  msgstr ""
7086
 
7087
- #: includes/gateways/paypal-standard.php:403
7088
  #, php-format
7089
  msgid "Invalid purchase key in IPN response. IPN data: %s"
7090
  msgstr ""
7091
 
7092
- #: includes/gateways/paypal-standard.php:405
7093
  msgid "Payment failed due to invalid purchase key in PayPal IPN."
7094
  msgstr ""
7095
 
7096
- #: includes/gateways/paypal-standard.php:411 tests/tests-payment-class.php:28
7097
  #: tests/tests-payments.php:28 tests/helpers/class-helper-payment.php:131
7098
  #: tests/helpers/class-helper-payment.php:234
7099
  #: tests/helpers/class-helper-payment.php:342
7100
  #: tests/helpers/class-helper-payment.php:452
 
7101
  #, php-format
7102
  msgid "PayPal Transaction ID: %s"
7103
  msgstr ""
7104
 
7105
- #: includes/gateways/paypal-standard.php:425
7106
  msgid "Payment made via eCheck and will clear automatically in 5-8 days"
7107
  msgstr ""
7108
 
7109
- #: includes/gateways/paypal-standard.php:431
7110
  msgid ""
7111
  "Payment requires a confirmed customer address and must be accepted manually "
7112
  "through PayPal"
7113
  msgstr ""
7114
 
7115
- #: includes/gateways/paypal-standard.php:437
7116
  msgid ""
7117
  "Payment must be accepted manually through PayPal due to international "
7118
  "account regulations"
7119
  msgstr ""
7120
 
7121
- #: includes/gateways/paypal-standard.php:443
7122
  msgid ""
7123
  "Payment received in non-shop currency and must be accepted manually through "
7124
  "PayPal"
7125
  msgstr ""
7126
 
7127
- #: includes/gateways/paypal-standard.php:450
7128
  msgid ""
7129
  "Payment is being reviewed by PayPal staff as high-risk or in possible "
7130
  "violation of government regulations"
7131
  msgstr ""
7132
 
7133
- #: includes/gateways/paypal-standard.php:456
7134
  msgid "Payment was sent to non-confirmed or non-registered email address."
7135
  msgstr ""
7136
 
7137
- #: includes/gateways/paypal-standard.php:462
7138
  msgid "PayPal account must be upgraded before this payment can be accepted"
7139
  msgstr ""
7140
 
7141
- #: includes/gateways/paypal-standard.php:468
7142
  msgid ""
7143
  "PayPal account is not verified. Verify account in order to accept this "
7144
  "payment"
7145
  msgstr ""
7146
 
7147
- #: includes/gateways/paypal-standard.php:474
7148
  msgid ""
7149
  "Payment is pending for unknown reasons. Contact PayPal support for assistance"
7150
  msgstr ""
7151
 
7152
- #: includes/gateways/paypal-standard.php:515
7153
  #, php-format
7154
  msgid "Partial PayPal refund processed: %s"
7155
  msgstr ""
7156
 
7157
- #: includes/gateways/paypal-standard.php:520
7158
  #, php-format
7159
  msgid "PayPal Payment #%s Refunded for reason: %s"
7160
  msgstr ""
7161
 
7162
- #: includes/gateways/paypal-standard.php:521
7163
  #, php-format
7164
  msgid "PayPal Refund Transaction ID: %s"
7165
  msgstr ""
7166
 
7167
- #: includes/payments/actions.php:141
7168
  #, php-format
7169
  msgid "Status changed from %s to %s"
7170
  msgstr ""
7171
 
7172
- #: includes/payments/functions.php:592
7173
  msgid "Complete"
7174
  msgstr ""
7175
 
7176
- #: includes/payments/functions.php:1545
7177
  msgid "EDD Bot"
7178
  msgstr ""
7179
 
7180
- #: includes/payments/functions.php:1560
7181
  msgid "Delete this payment note"
7182
  msgstr ""
7183
 
4
  msgstr ""
5
  "Project-Id-Version: Easy Digital Downloads 2.4.7\n"
6
  "Report-Msgid-Bugs-To: https://easydigitaldownloads.com/\n"
7
+ "POT-Creation-Date: 2016-02-10 08:25-0600\n"
8
+ "PO-Revision-Date: 2016-02-10 08:25-0600\n"
9
  "Last-Translator: Chris Christoff <chriscct7@gmail.com>\n"
10
  "Language-Team: WP-Translations <wpt@wp-translations.org>\n"
11
  "Language: en_US\n"
26
  msgid "Cheatin&#8217; huh?"
27
  msgstr ""
28
 
29
+ #: includes/ajax-functions.php:546 includes/ajax-functions.php:597
30
  msgid "No results found"
31
  msgstr ""
32
 
33
+ #: includes/ajax-functions.php:639
34
  msgid "All Prices"
35
  msgstr ""
36
 
37
+ #: includes/ajax-functions.php:689
38
  msgid "No users found"
39
  msgstr ""
40
 
218
  msgid "%d customers created in %d seconds"
219
  msgstr ""
220
 
221
+ #: includes/class-edd-cli.php:311 includes/class-edd-html-elements.php:151
222
  msgid "No customers found"
223
  msgstr ""
224
 
320
  msgid " Product: %s - %s"
321
  msgstr ""
322
 
323
+ #: includes/class-edd-cli.php:419 includes/class-edd-html-elements.php:212
324
  #: includes/shortcodes.php:237
325
  msgid "No discounts found"
326
  msgstr ""
351
  msgstr ""
352
 
353
  #: includes/class-edd-cli.php:436
 
354
  msgid "Unlimited"
355
  msgstr ""
356
 
427
  msgstr ""
428
 
429
  #: includes/class-edd-html-elements.php:43
430
+ #: includes/class-edd-html-elements.php:73
431
  #, php-format
432
  msgid "Select a %s"
433
  msgstr ""
434
 
435
+ #: includes/class-edd-html-elements.php:78
436
  msgid "No products found"
437
  msgstr ""
438
 
439
+ #: includes/class-edd-html-elements.php:132
440
  msgid "Select a Customer"
441
  msgstr ""
442
 
443
+ #: includes/class-edd-html-elements.php:146
444
  msgid "No customer attached"
445
  msgstr ""
446
 
447
+ #: includes/class-edd-html-elements.php:248
448
  #, php-format
449
  msgctxt "plural: Example: \"All Categories\""
450
  msgid "All %s"
451
  msgstr ""
452
 
453
+ #: includes/class-edd-html-elements.php:338
454
  msgctxt "all dropdown items"
455
  msgid "All"
456
  msgstr ""
457
 
458
+ #: includes/class-edd-html-elements.php:339
459
  msgctxt "no dropdown items"
460
  msgid "None"
461
  msgstr ""
462
 
463
+ #: includes/class-edd-html-elements.php:571
464
  msgid "Enter username"
465
  msgstr ""
466
 
467
+ #: includes/class-edd-html-elements.php:586 includes/admin/thickbox.php:135
468
  #: includes/admin/customers/customers.php:305
469
  #: includes/admin/customers/customers.php:520
470
+ #: includes/admin/payments/view-order-details.php:428
471
  msgid "Cancel"
472
  msgstr ""
473
 
474
+ #: includes/class-edd-license-handler.php:163
475
  #, php-format
476
  msgid "%1$s License Key"
477
  msgstr ""
478
 
479
+ #: includes/class-edd-license-handler.php:196
480
  #, php-format
481
  msgid ""
482
  "Enter your extension license keys here to receive updates for purchased "
484
  "\"_blank\" title=\"License renewal FAQ\">renew your license</a>."
485
  msgstr ""
486
 
487
+ #: includes/class-edd-license-handler.php:304
488
  #: includes/admin/customers/customer-actions.php:393
489
  #: includes/admin/reporting/pdf-reports.php:33
490
  #: includes/admin/reporting/export/export-actions.php:23
491
+ #: includes/api/class-edd-api.php:1804
492
  msgid "Nonce verification failed"
493
  msgstr ""
494
 
495
+ #: includes/class-edd-license-handler.php:304
496
  #: includes/deprecated-functions.php:517 includes/deprecated-functions.php:532
497
+ #: includes/deprecated-functions.php:542 includes/download-functions.php:1218
498
+ #: includes/EDD_SL_Plugin_Updater.php:337 includes/error-tracking.php:36
499
  #: includes/process-download.php:235 includes/process-download.php:707
500
  #: includes/query-filters.php:48 includes/user-functions.php:777
501
  #: includes/user-functions.php:802 includes/user-functions.php:855
526
  #: includes/admin/reporting/reports.php:97
527
  #: includes/admin/reporting/export/class-batch-export.php:131
528
  #: includes/admin/reporting/export/export-actions.php:23
529
+ #: includes/admin/tools/class-edd-tools-recount-all-stats.php:194
530
  #: includes/admin/tools/class-edd-tools-recount-customer-stats.php:180
531
  #: includes/admin/tools/class-edd-tools-recount-download-stats.php:211
532
+ #: includes/admin/tools/class-edd-tools-recount-single-customer-stats.php:143
533
  #: includes/admin/tools/class-edd-tools-recount-store-earnings.php:154
534
  #: includes/admin/tools/class-edd-tools-reset-stats.php:180
535
  #: includes/admin/upgrades/upgrade-functions.php:167
540
  #: includes/admin/upgrades/upgrade-functions.php:847
541
  #: includes/admin/upgrades/upgrade-functions.php:975
542
  #: includes/admin/upgrades/upgrade-functions.php:1060
543
+ #: includes/api/class-edd-api.php:1804 includes/api/class-edd-api.php:1809
544
+ #: includes/api/class-edd-api.php:1821 includes/api/class-edd-api.php:1823
545
+ #: includes/cart/functions.php:1138 includes/cart/functions.php:1155
546
+ #: includes/emails/actions.php:49 includes/emails/template.php:241
547
+ #: includes/gateways/functions.php:221 includes/gateways/manual.php:33
548
+ #: includes/gateways/paypal-standard.php:34
549
  msgid "Error"
550
  msgstr ""
551
 
552
+ #: includes/class-edd-license-handler.php:421
553
  #, php-format
554
  msgid ""
555
  "You have invalid or expired license keys for Easy Digital Downloads. Please "
557
  "correct this issue."
558
  msgstr ""
559
 
560
+ #: includes/class-edd-license-handler.php:460
561
+ msgid "Enter valid license key for automatic updates."
562
+ msgstr ""
563
+
564
  #: includes/class-edd-logging.php:48
565
  #: includes/admin/payments/view-order-details.php:226
566
  #: includes/admin/reporting/reports.php:33
939
  msgid "Sorry but you have hit your download limit for this file."
940
  msgstr ""
941
 
942
+ #: includes/deprecated-functions.php:532 includes/download-functions.php:1218
943
  msgid "Sorry but your download link has expired."
944
  msgstr ""
945
 
976
  msgid "This discount is not valid for the cart contents."
977
  msgstr ""
978
 
979
+ #: includes/discount-functions.php:869
980
  msgid "This discount has already been redeemed."
981
  msgstr ""
982
 
983
+ #: includes/discount-functions.php:915
984
  msgid "This discount is invalid."
985
  msgstr ""
986
 
993
  msgid "Bundle"
994
  msgstr ""
995
 
996
+ #: includes/EDD_SL_Plugin_Updater.php:186
997
  #, php-format
998
  msgid ""
999
+ "There is a new version of %1$s available. %2$sView version %3$s details%4$s."
 
1000
  msgstr ""
1001
 
1002
+ #: includes/EDD_SL_Plugin_Updater.php:194
1003
  #, php-format
1004
  msgid ""
1005
+ "There is a new version of %1$s available. %2$sView version %3$s details%4$s "
1006
+ "or %5$supdate now%6$s."
 
1007
  msgstr ""
1008
 
1009
+ #: includes/EDD_SL_Plugin_Updater.php:337
1010
  msgid "You do not have permission to install plugin updates"
1011
  msgstr ""
1012
 
1188
  "%2$s! Use %3$s instead."
1189
  msgstr ""
1190
 
1191
+ #: includes/misc-functions.php:515
1192
  #, php-format
1193
  msgid ""
1194
  "%1$s is <strong>deprecated</strong> since Easy Digital Downloads version "
1195
  "%2$s with no alternative available."
1196
  msgstr ""
1197
 
1198
+ #: includes/misc-functions.php:552
1199
+ #, php-format
1200
+ msgid ""
1201
+ "The %1$s argument of %2$s is <strong>deprecated</strong> since Easy Digital "
1202
+ "Downloads version %3$s! Please use %4$s instead."
1203
+ msgstr ""
1204
+
1205
+ #: includes/misc-functions.php:556
1206
+ #, php-format
1207
+ msgid ""
1208
+ "The %1$s argument of %2$s is <strong>deprecated</strong> since Easy Digital "
1209
+ "Downloads version %3$s with no alternative available."
1210
+ msgstr ""
1211
+
1212
  #: includes/plugin-compatibility.php:73
1213
  #: tests/tests-plugin-compatibility.php:85
1214
  msgid "No Caching on Checkout?"
1360
  msgid "Discount"
1361
  msgstr ""
1362
 
1363
+ #: includes/post-types.php:103 includes/admin/discounts/add-discount.php:15
1364
  msgid "Add New Discount"
1365
  msgstr ""
1366
 
1410
  msgstr ""
1411
 
1412
  #: includes/post-types.php:206
1413
+ #, php-format
1414
  msgctxt "taxonomy general name"
1415
+ msgid "%s Categories"
1416
  msgstr ""
1417
 
1418
  #: includes/post-types.php:207
1419
+ #, php-format
1420
  msgctxt "taxonomy singular name"
1421
+ msgid "%s Category"
1422
  msgstr ""
1423
 
1424
  #: includes/post-types.php:208
1425
+ #, php-format
1426
+ msgid "Search %s Categories"
1427
  msgstr ""
1428
 
1429
  #: includes/post-types.php:209
1430
+ #, php-format
1431
+ msgid "All %s Categories"
1432
  msgstr ""
1433
 
1434
  #: includes/post-types.php:210
1435
+ #, php-format
1436
+ msgid "Parent %s Category"
1437
  msgstr ""
1438
 
1439
  #: includes/post-types.php:211
1440
+ #, php-format
1441
+ msgid "Parent %s Category:"
1442
  msgstr ""
1443
 
1444
  #: includes/post-types.php:212
1445
+ #, php-format
1446
+ msgid "Edit %s Category"
1447
  msgstr ""
1448
 
1449
  #: includes/post-types.php:213
1450
+ #, php-format
1451
+ msgid "Update %s Category"
1452
  msgstr ""
1453
 
1454
  #: includes/post-types.php:214
1457
  msgstr ""
1458
 
1459
  #: includes/post-types.php:215
1460
+ #, php-format
1461
+ msgid "New %s Category Name"
1462
  msgstr ""
1463
 
1464
  #: includes/post-types.php:216
1467
  msgstr ""
1468
 
1469
  #: includes/post-types.php:233
1470
+ #, php-format
1471
  msgctxt "taxonomy general name"
1472
+ msgid "%s Tags"
1473
  msgstr ""
1474
 
1475
  #: includes/post-types.php:234
1476
+ #, php-format
1477
  msgctxt "taxonomy singular name"
1478
+ msgid "%s Tag"
1479
  msgstr ""
1480
 
1481
  #: includes/post-types.php:235
1482
+ #, php-format
1483
+ msgid "Search %s Tags"
1484
  msgstr ""
1485
 
1486
  #: includes/post-types.php:236
1487
+ #, php-format
1488
+ msgid "All %s Tags"
1489
  msgstr ""
1490
 
1491
  #: includes/post-types.php:237
1492
+ #, php-format
1493
+ msgid "Parent %s Tag"
1494
  msgstr ""
1495
 
1496
  #: includes/post-types.php:238
1497
+ #, php-format
1498
+ msgid "Parent %s Tag:"
1499
  msgstr ""
1500
 
1501
  #: includes/post-types.php:239
1502
+ #, php-format
1503
+ msgid "Edit %s Tag"
1504
  msgstr ""
1505
 
1506
  #: includes/post-types.php:240
1507
+ #, php-format
1508
+ msgid "Update %s Tag"
1509
  msgstr ""
1510
 
1511
  #: includes/post-types.php:241
1512
+ #, php-format
1513
+ msgid "Add New %s Tag"
1514
  msgstr ""
1515
 
1516
  #: includes/post-types.php:242
1517
+ #, php-format
1518
+ msgid "New %s Tag Name"
1519
  msgstr ""
1520
 
1521
  #: includes/post-types.php:243 includes/admin/reporting/pdf-reports.php:72
1796
  #: includes/scripts.php:58 includes/shortcodes.php:49
1797
  #: includes/template-functions.php:67 includes/admin/thickbox.php:62
1798
  #: includes/admin/downloads/metabox.php:839
1799
+ #: includes/admin/settings/register-settings.php:748
1800
+ #: includes/checkout/template.php:843
1801
  msgid "Purchase"
1802
  msgstr ""
1803
 
1809
  msgid "Loading"
1810
  msgstr ""
1811
 
1812
+ #: includes/scripts.php:75 includes/admin/tools.php:139
1813
  msgid "Please select an option"
1814
  msgstr ""
1815
 
1888
  msgid "Quantity must be numeric"
1889
  msgstr ""
1890
 
1891
+ #: includes/scripts.php:210 includes/admin/payments/view-order-details.php:334
1892
+ #: includes/admin/settings/register-settings.php:1752
1893
  #: templates/checkout_cart.php:49 templates/checkout_cart.php:67
1894
  msgid "Remove"
1895
  msgstr ""
1915
 
1916
  #: includes/shortcodes.php:47 includes/template-functions.php:67
1917
  #: includes/admin/downloads/metabox.php:909
1918
+ #: includes/admin/settings/register-settings.php:762
1919
  msgid "Buy Now"
1920
  msgstr ""
1921
 
1923
  msgid "Purchase All Items"
1924
  msgstr ""
1925
 
1926
+ #: includes/shortcodes.php:585
1927
  #, php-format
1928
  msgctxt "download post type name"
1929
  msgid "No %s found"
1930
  msgstr ""
1931
 
1932
+ #: includes/shortcodes.php:631
1933
  msgid "Sorry, trouble retrieving payment receipt."
1934
  msgstr ""
1935
 
1936
+ #: includes/shortcodes.php:666
1937
  msgid "You must be logged in to view this payment receipt."
1938
  msgstr ""
1939
 
1940
+ #: includes/shortcodes.php:801
1941
  msgid "The passwords you entered do not match. Please try again."
1942
  msgstr ""
1943
 
1944
+ #: includes/shortcodes.php:811
1945
  msgid "The email you entered is invalid. Please enter a valid email."
1946
  msgstr ""
1947
 
1948
+ #: includes/shortcodes.php:816
1949
  msgid "The email you entered belongs to another user. Please use another."
1950
  msgstr ""
1951
 
1952
+ #: includes/template-functions.php:54 includes/admin/class-edd-notices.php:48
1953
  #, php-format
1954
  msgid ""
1955
  "No checkout page has been configured. Visit <a href=\"%s\">Settings</a> to "
2184
  "href=\"%2$s\" target=\"_blank\">WordPress.org</a>"
2185
  msgstr ""
2186
 
2187
+ #: includes/admin/admin-pages.php:38
2188
  #: includes/admin/customers/class-customer-table.php:65
2189
  #: includes/admin/customers/customers.php:63
2190
  msgid "Customers"
2191
  msgstr ""
2192
 
2193
+ #: includes/admin/admin-pages.php:39
2194
  #: includes/admin/discounts/discount-codes.php:33
2195
  msgid "Discount Codes"
2196
  msgstr ""
2197
 
2198
+ #: includes/admin/admin-pages.php:40
2199
  msgid "Earnings and Sales Reports"
2200
  msgstr ""
2201
 
2202
+ #: includes/admin/admin-pages.php:40
2203
  #: includes/admin/reporting/contextual-help.php:42
2204
  #: includes/admin/reporting/reports.php:29
2205
  msgid "Reports"
2206
  msgstr ""
2207
 
2208
+ #: includes/admin/admin-pages.php:41
2209
  msgid "Easy Digital Download Settings"
2210
  msgstr ""
2211
 
2212
+ #: includes/admin/admin-pages.php:41
2213
  msgid "Settings"
2214
  msgstr ""
2215
 
2216
+ #: includes/admin/admin-pages.php:42
2217
  msgid "Easy Digital Download Info and Tools"
2218
  msgstr ""
2219
 
2220
+ #: includes/admin/admin-pages.php:42
2221
  #: includes/admin/customers/customers.php:545
2222
  msgid "Tools"
2223
  msgstr ""
2224
 
2225
+ #: includes/admin/admin-pages.php:43
2226
  msgid "Easy Digital Download Extensions"
2227
  msgstr ""
2228
 
2229
+ #: includes/admin/admin-pages.php:43 includes/admin/plugins.php:58
2230
  #: includes/admin/settings/contextual-help.php:87
2231
+ #: includes/admin/settings/register-settings.php:1069
2232
  msgid "Extensions"
2233
  msgstr ""
2234
 
2235
+ #: includes/admin/admin-pages.php:44
2236
  msgid "EDD Upgrades"
2237
  msgstr ""
2238
 
2280
  msgid "Generate New API Keys"
2281
  msgstr ""
2282
 
2283
+ #: includes/admin/class-edd-notices.php:49
2284
+ #: includes/admin/class-edd-notices.php:67
2285
+ #: includes/admin/class-edd-notices.php:84
2286
  msgid "Dismiss Notice"
2287
  msgstr ""
2288
 
2289
+ #: includes/admin/class-edd-notices.php:56
2290
  #, php-format
2291
  msgid ""
2292
  "Note: Test Mode is enabled, only test payments are shown below. <a href=\"%s"
2293
  "\">Settings</a>."
2294
  msgstr ""
2295
 
2296
+ #: includes/admin/class-edd-notices.php:64
2297
  #, php-format
2298
  msgid ""
2299
  "The download files in %s are not currently protected due to your site "
2300
  "running on NGINX."
2301
  msgstr ""
2302
 
2303
+ #: includes/admin/class-edd-notices.php:65
2304
  msgid ""
2305
  "To protect them, you must add a redirect rule as explained in <a href="
2306
  "\"http://docs.easydigitaldownloads.com/article/682-protected-download-files-"
2307
  "on-nginx\">this guide</a>."
2308
  msgstr ""
2309
 
2310
+ #: includes/admin/class-edd-notices.php:66
2311
  msgid ""
2312
  "If you have already added the redirect rule, you may safely dismiss this "
2313
  "notice"
2314
  msgstr ""
2315
 
2316
+ #: includes/admin/class-edd-notices.php:81
2317
  #, php-format
2318
  msgid "The Easy Digital Downloads .htaccess file is missing from %s!"
2319
  msgstr ""
2320
 
2321
+ #: includes/admin/class-edd-notices.php:82
2322
  #, php-format
2323
  msgid ""
2324
  "First, please resave the Misc settings tab a few times. If this warning "
2326
  "and copy the following into it:"
2327
  msgstr ""
2328
 
2329
+ #: includes/admin/class-edd-notices.php:96
2330
+ #, php-format
2331
+ msgid ""
2332
+ "Easy Digital Downloads 2.5 contains a <a href=\"%s\">built in recount tool</"
2333
+ "a>. Please <a href=\"%s\">deactivate the Easy Digital Downloads - Recount "
2334
+ "Earnings plugin</a>"
2335
+ msgstr ""
2336
+
2337
+ #: includes/admin/class-edd-notices.php:118
2338
  msgid "Discount code added."
2339
  msgstr ""
2340
 
2341
+ #: includes/admin/class-edd-notices.php:121
2342
  msgid "There was a problem adding your discount code, please try again."
2343
  msgstr ""
2344
 
2345
+ #: includes/admin/class-edd-notices.php:124
2346
  msgid "A discount with that code already exists, please use a different code."
2347
  msgstr ""
2348
 
2349
+ #: includes/admin/class-edd-notices.php:127
2350
  msgid "Discount code updated."
2351
  msgstr ""
2352
 
2353
+ #: includes/admin/class-edd-notices.php:130
2354
  msgid "There was a problem updating your discount code, please try again."
2355
  msgstr ""
2356
 
2357
+ #: includes/admin/class-edd-notices.php:139
2358
  msgid "The payment has been deleted."
2359
  msgstr ""
2360
 
2361
+ #: includes/admin/class-edd-notices.php:142
2362
  msgid "The purchase receipt has been resent."
2363
  msgstr ""
2364
 
2365
+ #: includes/admin/class-edd-notices.php:145
2366
  msgid "The payment note has been deleted."
2367
  msgstr ""
2368
 
2369
+ #: includes/admin/class-edd-notices.php:154
2370
  msgid "The settings have been imported."
2371
  msgstr ""
2372
 
2373
+ #: includes/admin/class-edd-notices.php:157
2374
  msgid "API keys successfully generated."
2375
  msgstr ""
2376
 
2377
+ #: includes/admin/class-edd-notices.php:160
2378
  msgid "The specified user already has API keys."
2379
  msgstr ""
2380
 
2381
+ #: includes/admin/class-edd-notices.php:163
2382
  msgid "API keys successfully regenerated."
2383
  msgstr ""
2384
 
2385
+ #: includes/admin/class-edd-notices.php:166
2386
  msgid "API keys successfully revoked."
2387
  msgstr ""
2388
 
2389
+ #: includes/admin/class-edd-notices.php:175
2390
  msgid "The payment note has been added successfully."
2391
  msgstr ""
2392
 
2393
+ #: includes/admin/class-edd-notices.php:178
2394
  msgid "The payment has been successfully updated."
2395
  msgstr ""
2396
 
2397
+ #: includes/admin/class-edd-notices.php:187
2398
  msgid "Customer successfully deleted"
2399
  msgstr ""
2400
 
2401
+ #: includes/admin/class-edd-notices.php:190
2402
  msgid "User successfully verified"
2403
  msgstr ""
2404
 
2480
  msgstr[1] ""
2481
 
2482
  #: includes/admin/plugins.php:27
2483
+ #: includes/admin/settings/register-settings.php:1117
2484
  msgid "General Settings"
2485
  msgstr ""
2486
 
2512
  msgstr ""
2513
 
2514
  #: includes/admin/thickbox.php:100 includes/admin/downloads/metabox.php:908
2515
+ #: includes/admin/settings/register-settings.php:755
2516
  msgid "Add to Cart"
2517
  msgstr ""
2518
 
2534
 
2535
  #: includes/admin/tools.php:68 includes/admin/discounts/contextual-help.php:38
2536
  #: includes/admin/settings/contextual-help.php:42
2537
+ #: includes/admin/settings/register-settings.php:1062
2538
  msgid "General"
2539
  msgstr ""
2540
 
2573
  msgid "Use these tools to recount / reset store stats."
2574
  msgstr ""
2575
 
2576
+ #: includes/admin/tools.php:140
2577
  msgid "Recount Store Earnings and Sales"
2578
  msgstr ""
2579
 
2580
+ #: includes/admin/tools.php:141
2581
  #, php-format
2582
  msgid "Recount Earnings and Sales for a %s"
2583
  msgstr ""
2584
 
2585
+ #: includes/admin/tools.php:142
2586
  #, php-format
2587
  msgid "Recount Earnings and Sales for All %s"
2588
  msgstr ""
2589
 
2590
+ #: includes/admin/tools.php:143 includes/admin/customers/customers.php:548
2591
  msgid "Recount Customer Stats"
2592
  msgstr ""
2593
 
2617
  msgid "Recalculates the lifetime value and purchase counts for all customers."
2618
  msgstr ""
2619
 
2620
+ #: includes/admin/tools.php:169
2621
  msgid ""
2622
  "<strong>Deletes</strong> all payment records, customers, and related log "
2623
  "entries."
2752
  msgid "Credits"
2753
  msgstr ""
2754
 
2755
+ #: includes/admin/welcome.php:185 includes/gateways/amazon-payments.php:264
2756
  msgid "Amazon Payments"
2757
  msgstr ""
2758
 
3139
  msgstr ""
3140
 
3141
  #: includes/admin/customers/class-customer-table.php:153
3142
+ #: includes/admin/discounts/class-discount-codes-table.php:221
3143
+ #: includes/admin/discounts/class-discount-codes-table.php:289
3144
+ #: includes/admin/payments/class-payments-table.php:316
3145
+ #: includes/admin/payments/class-payments-table.php:388
3146
+ #: includes/payments/functions.php:1565
3147
  msgid "Delete"
3148
  msgstr ""
3149
 
3152
  msgstr ""
3153
 
3154
  #: includes/admin/customers/class-customer-table.php:171
3155
+ #: includes/admin/discounts/add-discount.php:23
3156
  #: includes/admin/discounts/class-discount-codes-table.php:145
3157
  #: includes/admin/discounts/edit-discount.php:37
3158
  #: includes/admin/downloads/dashboard-columns.php:31
3255
  msgid "Delete Customer"
3256
  msgstr ""
3257
 
3258
+ #: includes/admin/customers/customer-functions.php:103
3259
  #: templates/account-pending.php:8
3260
  #, php-format
3261
  msgid ""
3264
  "activation code."
3265
  msgstr ""
3266
 
3267
+ #: includes/admin/customers/customer-functions.php:104
3268
  msgid "Account Pending Verification"
3269
  msgstr ""
3270
 
3282
  msgstr ""
3283
 
3284
  #: includes/admin/customers/customers.php:115
3285
+ #: includes/admin/payments/view-order-details.php:394
3286
  msgid "Customer Details"
3287
  msgstr ""
3288
 
3311
  msgstr ""
3312
 
3313
  #: includes/admin/customers/customers.php:246
3314
+ #: includes/admin/settings/register-settings.php:1749
3315
  #: includes/checkout/template.php:416
3316
  #: templates/shortcode-profile-editor.php:82
3317
  msgid "State / Province"
3388
  msgstr ""
3389
 
3390
  #: includes/admin/customers/customers.php:345
3391
+ #: includes/admin/discounts/add-discount.php:56
3392
  #: includes/admin/discounts/class-discount-codes-table.php:147
3393
  #: includes/admin/discounts/edit-discount.php:70
3394
  #: includes/admin/payments/class-payments-table.php:224
3408
  #: includes/admin/reporting/class-export.php:70
3409
  #: includes/admin/reporting/class-file-downloads-logs-list-table.php:150
3410
  #: includes/admin/reporting/class-gateway-error-logs-list-table.php:134
3411
+ #: includes/admin/reporting/class-sales-logs-list-table.php:125
3412
  #: includes/admin/reporting/export/class-batch-export-file-downloads.php:42
3413
  #: includes/admin/reporting/export/class-batch-export-payments.php:59
3414
  #: templates/history-purchases.php:19 templates/shortcode-receipt.php:59
3416
  msgstr ""
3417
 
3418
  #: includes/admin/customers/customers.php:347
3419
+ #: includes/admin/discounts/class-discount-codes-table.php:151
3420
  #: includes/admin/discounts/edit-discount.php:175
3421
  #: includes/admin/payments/class-payments-table.php:227
3422
  #: includes/admin/reporting/class-export-payments.php:82
3488
  msgid "Verify account."
3489
  msgstr ""
3490
 
3491
+ #: includes/admin/discounts/add-discount.php:15
3492
  #: includes/admin/discounts/edit-discount.php:29
3493
  #: includes/admin/reporting/reports.php:189
3494
  msgid "Go Back"
3495
  msgstr ""
3496
 
3497
+ #: includes/admin/discounts/add-discount.php:27
3498
  #: includes/admin/discounts/edit-discount.php:41
3499
  msgid "The name of this discount"
3500
  msgstr ""
3501
 
3502
+ #: includes/admin/discounts/add-discount.php:33
3503
  #: includes/admin/discounts/class-discount-codes-table.php:146
3504
  #: includes/admin/discounts/edit-discount.php:47
3505
  msgid "Code"
3506
  msgstr ""
3507
 
3508
+ #: includes/admin/discounts/add-discount.php:37
3509
  #: includes/admin/discounts/edit-discount.php:51
3510
  msgid "Enter a code for this discount, such as 10PERCENT"
3511
  msgstr ""
3512
 
3513
+ #: includes/admin/discounts/add-discount.php:43
3514
  #: includes/admin/discounts/edit-discount.php:57
3515
  msgid "Type"
3516
  msgstr ""
3517
 
3518
+ #: includes/admin/discounts/add-discount.php:47
3519
  #: includes/admin/discounts/edit-discount.php:61
3520
  msgid "Percentage"
3521
  msgstr ""
3522
 
3523
+ #: includes/admin/discounts/add-discount.php:48
3524
  #: includes/admin/discounts/edit-discount.php:62
3525
  msgid "Flat amount"
3526
  msgstr ""
3527
 
3528
+ #: includes/admin/discounts/add-discount.php:50
3529
  #: includes/admin/discounts/edit-discount.php:64
3530
  msgid "The kind of discount to apply for this discount."
3531
  msgstr ""
3532
 
3533
+ #: includes/admin/discounts/add-discount.php:60
3534
  #: includes/admin/discounts/edit-discount.php:74
3535
  #, php-format
3536
  msgid "Enter the discount amount in %s"
3537
  msgstr ""
3538
 
3539
+ #: includes/admin/discounts/add-discount.php:61
3540
  #: includes/admin/discounts/edit-discount.php:75
3541
  msgid "Enter the discount percentage. 10 = 10%"
3542
  msgstr ""
3543
 
3544
+ #: includes/admin/discounts/add-discount.php:67
3545
  #: includes/admin/discounts/edit-discount.php:81
3546
  #, php-format
3547
  msgid "%s Requirements"
3548
  msgstr ""
3549
 
3550
+ #: includes/admin/discounts/add-discount.php:76
3551
+ #: includes/admin/discounts/add-discount.php:112
3552
  #: includes/admin/discounts/edit-discount.php:91
3553
  #: includes/admin/discounts/edit-discount.php:127
3554
  #, php-format
3555
  msgid "Select one or more %s"
3556
  msgstr ""
3557
 
3558
+ #: includes/admin/discounts/add-discount.php:82
3559
  #: includes/admin/discounts/edit-discount.php:97
3560
  #, php-format
3561
  msgid "Cart must contain all selected %s"
3562
  msgstr ""
3563
 
3564
+ #: includes/admin/discounts/add-discount.php:83
3565
  #: includes/admin/discounts/edit-discount.php:98
3566
  #, php-format
3567
  msgid "Cart needs one or more of the selected %s"
3568
  msgstr ""
3569
 
3570
+ #: includes/admin/discounts/add-discount.php:89
3571
  #: includes/admin/discounts/edit-discount.php:104
3572
  msgid "Apply discount to entire purchase."
3573
  msgstr ""
3574
 
3575
+ #: includes/admin/discounts/add-discount.php:93
3576
  #: includes/admin/discounts/edit-discount.php:108
3577
  #, php-format
3578
  msgid "Apply discount only to selected %s."
3579
  msgstr ""
3580
 
3581
+ #: includes/admin/discounts/add-discount.php:97
3582
  #: includes/admin/discounts/edit-discount.php:112
3583
  #, php-format
3584
  msgid "Select %s relevant to this discount."
3585
  msgstr ""
3586
 
3587
+ #: includes/admin/discounts/add-discount.php:103
3588
  #: includes/admin/discounts/edit-discount.php:118
3589
  #, php-format
3590
  msgid "Excluded %s"
3591
  msgstr ""
3592
 
3593
+ #: includes/admin/discounts/add-discount.php:114
3594
  #: includes/admin/discounts/edit-discount.php:129
3595
  #, php-format
3596
  msgid "%s that this discount code cannot be applied to."
3597
  msgstr ""
3598
 
3599
+ #: includes/admin/discounts/add-discount.php:120
3600
  #: includes/admin/discounts/edit-discount.php:135
3601
  msgid "Start date"
3602
  msgstr ""
3603
 
3604
+ #: includes/admin/discounts/add-discount.php:124
3605
  #: includes/admin/discounts/edit-discount.php:139
3606
  msgid ""
3607
  "Enter the start date for this discount code in the format of mm/dd/yyyy. For "
3609
  "or on this date."
3610
  msgstr ""
3611
 
3612
+ #: includes/admin/discounts/add-discount.php:130
3613
  #: includes/admin/discounts/edit-discount.php:145
3614
  msgid "Expiration date"
3615
  msgstr ""
3616
 
3617
+ #: includes/admin/discounts/add-discount.php:134
3618
  #: includes/admin/discounts/edit-discount.php:149
3619
  msgid ""
3620
  "Enter the expiration date for this discount code in the format of mm/dd/"
3621
  "yyyy. For no expiration, leave blank"
3622
  msgstr ""
3623
 
3624
+ #: includes/admin/discounts/add-discount.php:140
3625
  #: includes/admin/discounts/edit-discount.php:165
3626
  msgid "Minimum Amount"
3627
  msgstr ""
3628
 
3629
+ #: includes/admin/discounts/add-discount.php:144
3630
  #: includes/admin/discounts/edit-discount.php:169
3631
  msgid ""
3632
  "The minimum amount that must be purchased before this discount can be used. "
3633
  "Leave blank for no minimum."
3634
  msgstr ""
3635
 
3636
+ #: includes/admin/discounts/add-discount.php:150
 
3637
  #: includes/admin/discounts/edit-discount.php:155
3638
  msgid "Max Uses"
3639
  msgstr ""
3640
 
3641
+ #: includes/admin/discounts/add-discount.php:154
3642
  #: includes/admin/discounts/edit-discount.php:159
3643
  msgid ""
3644
  "The maximum number of times this discount can be used. Leave blank for "
3645
  "unlimited."
3646
  msgstr ""
3647
 
3648
+ #: includes/admin/discounts/add-discount.php:160
3649
  #: includes/admin/discounts/edit-discount.php:188
3650
  msgid "Use Once Per Customer"
3651
  msgstr ""
3652
 
3653
+ #: includes/admin/discounts/add-discount.php:164
3654
  #: includes/admin/discounts/edit-discount.php:192
3655
  msgid "Limit this discount to a single-use per customer?"
3656
  msgstr ""
3657
 
3658
+ #: includes/admin/discounts/add-discount.php:174
3659
  msgid "Add Discount Code"
3660
  msgstr ""
3661
 
3662
  #: includes/admin/discounts/class-discount-codes-table.php:127
3663
  #: includes/admin/payments/class-payments-table.php:199
3664
  #: includes/admin/reporting/class-file-downloads-logs-list-table.php:348
3665
+ #: includes/admin/reporting/class-sales-logs-list-table.php:280
3666
  msgid "All"
3667
  msgstr ""
3668
 
3669
  #: includes/admin/discounts/class-discount-codes-table.php:128
3670
+ #: includes/admin/discounts/class-discount-codes-table.php:262
3671
  #: includes/admin/discounts/edit-discount.php:179
3672
  msgid "Active"
3673
  msgstr ""
3674
 
3675
  #: includes/admin/discounts/class-discount-codes-table.php:129
3676
+ #: includes/admin/discounts/class-discount-codes-table.php:258
3677
  #: includes/admin/discounts/edit-discount.php:180
3678
  msgid "Inactive"
3679
  msgstr ""
3682
  msgid "Uses"
3683
  msgstr ""
3684
 
3685
+ #: includes/admin/discounts/class-discount-codes-table.php:149
3686
  msgid "Start Date"
3687
  msgstr ""
3688
 
3689
+ #: includes/admin/discounts/class-discount-codes-table.php:150
3690
  msgid "Expiration"
3691
  msgstr ""
3692
 
3693
+ #: includes/admin/discounts/class-discount-codes-table.php:213
3694
  msgid "Edit"
3695
  msgstr ""
3696
 
3697
+ #: includes/admin/discounts/class-discount-codes-table.php:216
3698
+ #: includes/admin/discounts/class-discount-codes-table.php:288
3699
  msgid "Deactivate"
3700
  msgstr ""
3701
 
3702
+ #: includes/admin/discounts/class-discount-codes-table.php:218
3703
+ #: includes/admin/discounts/class-discount-codes-table.php:287
3704
  msgid "Activate"
3705
  msgstr ""
3706
 
3707
+ #: includes/admin/discounts/class-discount-codes-table.php:255
3708
  msgid "Expired"
3709
  msgstr ""
3710
 
3711
+ #: includes/admin/discounts/class-discount-codes-table.php:275
3712
  msgid "No discounts found."
3713
  msgstr ""
3714
 
3715
+ #: includes/admin/discounts/class-discount-codes-table.php:395
 
 
 
 
3716
  msgid "No start date"
3717
  msgstr ""
3718
 
3719
+ #: includes/admin/discounts/class-discount-codes-table.php:401
3720
  msgid "No expiration"
3721
  msgstr ""
3722
 
4193
  #: includes/admin/payments/actions.php:285
4194
  #: includes/admin/payments/actions.php:301
4195
  #: includes/admin/payments/actions.php:328
4196
+ #: includes/admin/payments/actions.php:348 includes/emails/actions.php:49
4197
  msgid "You do not have permission to edit this payment record"
4198
  msgstr ""
4199
 
4231
  msgstr ""
4232
 
4233
  #: includes/admin/payments/class-payments-table.php:201
4234
+ #: includes/payments/functions.php:611
4235
  msgid "Pending"
4236
  msgstr ""
4237
 
4238
  #: includes/admin/payments/class-payments-table.php:202
4239
+ #: includes/payments/functions.php:613
4240
  msgid "Refunded"
4241
  msgstr ""
4242
 
4243
  #: includes/admin/payments/class-payments-table.php:203
4244
+ #: includes/payments/functions.php:616
4245
  msgid "Revoked"
4246
  msgstr ""
4247
 
4248
  #: includes/admin/payments/class-payments-table.php:204
4249
+ #: includes/payments/functions.php:614
4250
  msgid "Failed"
4251
  msgstr ""
4252
 
4253
  #: includes/admin/payments/class-payments-table.php:205
4254
+ #: includes/payments/functions.php:615
4255
  msgid "Abandoned"
4256
  msgstr ""
4257
 
4265
  msgid "View Order Details"
4266
  msgstr ""
4267
 
4268
+ #: includes/admin/payments/class-payments-table.php:313
4269
  msgid "Resend Purchase Receipt"
4270
  msgstr ""
4271
 
4272
+ #: includes/admin/payments/class-payments-table.php:321
4273
  msgid "(unknown)"
4274
  msgstr ""
4275
 
4276
+ #: includes/admin/payments/class-payments-table.php:374
4277
  msgid "(customer missing)"
4278
  msgstr ""
4279
 
4280
+ #: includes/admin/payments/class-payments-table.php:389
4281
  msgid "Set To Completed"
4282
  msgstr ""
4283
 
4284
+ #: includes/admin/payments/class-payments-table.php:390
4285
  msgid "Set To Pending"
4286
  msgstr ""
4287
 
4288
+ #: includes/admin/payments/class-payments-table.php:391
4289
  msgid "Set To Refunded"
4290
  msgstr ""
4291
 
4292
+ #: includes/admin/payments/class-payments-table.php:392
4293
  msgid "Set To Revoked"
4294
  msgstr ""
4295
 
4296
+ #: includes/admin/payments/class-payments-table.php:393
4297
  msgid "Set To Failed"
4298
  msgstr ""
4299
 
4300
+ #: includes/admin/payments/class-payments-table.php:394
4301
  msgid "Set To Abandoned"
4302
  msgstr ""
4303
 
4304
+ #: includes/admin/payments/class-payments-table.php:395
4305
  msgid "Set To Preapproval"
4306
  msgstr ""
4307
 
4308
+ #: includes/admin/payments/class-payments-table.php:396
4309
  msgid "Set To Cancelled"
4310
  msgstr ""
4311
 
4312
+ #: includes/admin/payments/class-payments-table.php:397
4313
  msgid "Resend Email Receipts"
4314
  msgstr ""
4315
 
4447
  msgstr ""
4448
 
4449
  #: includes/admin/payments/view-order-details.php:102
4450
+ #: includes/admin/settings/register-settings.php:721
4451
  msgid "None"
4452
  msgstr ""
4453
 
4526
  msgid "View all purchases of customer"
4527
  msgstr ""
4528
 
4529
+ #: includes/admin/payments/view-order-details.php:324
4530
  #: templates/widget-cart-checkout.php:5 templates/widget-cart-empty.php:6
4531
  msgid "Total:"
4532
  msgstr ""
4533
 
4534
+ #: includes/admin/payments/view-order-details.php:332
4535
+ #: includes/admin/payments/view-order-details.php:566
4536
  msgid "Copy Download Link(s)"
4537
  msgstr ""
4538
 
4539
+ #: includes/admin/payments/view-order-details.php:353
4540
  #: includes/emails/class-edd-email-tags.php:407
4541
  #: includes/emails/class-edd-email-tags.php:518
4542
  #: templates/shortcode-receipt.php:128
4543
  msgid "Quantity"
4544
  msgstr ""
4545
 
4546
+ #: includes/admin/payments/view-order-details.php:364
4547
  msgid "Item Price: "
4548
  msgstr ""
4549
 
4550
+ #: includes/admin/payments/view-order-details.php:372
4551
  #, php-format
4552
  msgid "Add %s to Payment"
4553
  msgstr ""
4554
 
4555
+ #: includes/admin/payments/view-order-details.php:383
4556
  #, php-format
4557
  msgid "No %s included with this purchase"
4558
  msgstr ""
4559
 
4560
+ #: includes/admin/payments/view-order-details.php:410
4561
  msgid "View Customer Details"
4562
  msgstr ""
4563
 
4564
+ #: includes/admin/payments/view-order-details.php:413
4565
  msgid "New Customer"
4566
  msgstr ""
4567
 
4568
+ #: includes/admin/payments/view-order-details.php:419
4569
  msgid "Name:"
4570
  msgstr ""
4571
 
4572
+ #: includes/admin/payments/view-order-details.php:423
4573
  msgid "Email:"
4574
  msgstr ""
4575
 
4576
+ #: includes/admin/payments/view-order-details.php:431
4577
  msgid "Click \"Save Payment\" to create new customer"
4578
  msgstr ""
4579
 
4580
+ #: includes/admin/payments/view-order-details.php:446
4581
  #: includes/checkout/template.php:329
4582
  msgid "Billing Address"
4583
  msgstr ""
4584
 
4585
+ #: includes/admin/payments/view-order-details.php:456
4586
  msgid "Street Address Line 1:"
4587
  msgstr ""
4588
 
4589
+ #: includes/admin/payments/view-order-details.php:460
4590
  msgid "Street Address Line 2:"
4591
  msgstr ""
4592
 
4593
+ #: includes/admin/payments/view-order-details.php:467
4594
  msgctxt "Address City"
4595
  msgid "City:"
4596
  msgstr ""
4597
 
4598
+ #: includes/admin/payments/view-order-details.php:472
4599
  msgctxt "Zip / Postal code of address"
4600
  msgid "Zip / Postal Code:"
4601
  msgstr ""
4602
 
4603
+ #: includes/admin/payments/view-order-details.php:479
4604
  msgctxt "Address country"
4605
  msgid "Country:"
4606
  msgstr ""
4607
 
4608
+ #: includes/admin/payments/view-order-details.php:488
4609
+ #: includes/admin/settings/register-settings.php:289
4610
  msgid "Select a country"
4611
  msgstr ""
4612
 
4613
+ #: includes/admin/payments/view-order-details.php:493
4614
  msgctxt "State / province of address"
4615
  msgid "State / Province:"
4616
  msgstr ""
4617
 
4618
+ #: includes/admin/payments/view-order-details.php:504
4619
+ #: includes/admin/settings/register-settings.php:297
4620
  msgid "Select a state"
4621
  msgstr ""
4622
 
4623
+ #: includes/admin/payments/view-order-details.php:524
4624
  msgid "Payment Notes"
4625
  msgstr ""
4626
 
4627
+ #: includes/admin/payments/view-order-details.php:539
4628
  msgid "No payment notes"
4629
  msgstr ""
4630
 
4631
+ #: includes/admin/payments/view-order-details.php:545
4632
  msgid "Add Note"
4633
  msgstr ""
4634
 
4635
  #: includes/admin/reporting/class-api-requests-logs-list-table.php:89
4636
  #: includes/admin/reporting/class-file-downloads-logs-list-table.php:144
4637
  #: includes/admin/reporting/class-gateway-error-logs-list-table.php:129
4638
+ #: includes/admin/reporting/class-sales-logs-list-table.php:120
4639
  msgid "Log ID"
4640
  msgstr ""
4641
 
4787
 
4788
  #: includes/admin/reporting/class-export-payments.php:70
4789
  #: includes/admin/reporting/export/class-batch-export-payments.php:49
4790
+ #: includes/admin/settings/register-settings.php:1748
4791
  #: templates/shortcode-profile-editor.php:75
4792
  msgid "Country"
4793
  msgstr ""
4828
 
4829
  #: includes/admin/reporting/class-export-payments.php:81
4830
  #: includes/admin/reporting/class-file-downloads-logs-list-table.php:146
4831
+ #: includes/admin/reporting/class-sales-logs-list-table.php:121
4832
  #: includes/admin/reporting/export/class-batch-export-payments.php:60
4833
  msgid "User"
4834
  msgstr ""
4840
 
4841
  #: includes/admin/reporting/class-export.php:172
4842
  #: includes/admin/reporting/export/class-batch-export.php:131
4843
+ #: includes/admin/tools/class-edd-tools-recount-all-stats.php:194
4844
  #: includes/admin/tools/class-edd-tools-recount-customer-stats.php:180
4845
  #: includes/admin/tools/class-edd-tools-recount-download-stats.php:211
4846
  #: includes/admin/tools/class-edd-tools-recount-store-earnings.php:154
4850
 
4851
  #: includes/admin/reporting/class-file-downloads-logs-list-table.php:147
4852
  #: includes/admin/reporting/class-gateway-error-logs-list-table.php:130
4853
+ #: includes/admin/reporting/class-sales-logs-list-table.php:124
4854
  msgid "Payment ID"
4855
  msgstr ""
4856
 
4884
  msgid "Pending / Failed Sales"
4885
  msgstr ""
4886
 
4887
+ #: includes/admin/reporting/class-sales-logs-list-table.php:123
4888
  msgid "Item Amount"
4889
  msgstr ""
4890
 
5008
  msgstr ""
5009
 
5010
  #: includes/admin/reporting/logs.php:144
5011
+ #: includes/admin/settings/register-settings.php:1144
5012
  msgid "File Downloads"
5013
  msgstr ""
5014
 
5128
 
5129
  #: includes/admin/reporting/reports.php:58
5130
  #: includes/admin/settings/contextual-help.php:71
5131
+ #: includes/admin/settings/register-settings.php:1066
5132
  msgid "Taxes"
5133
  msgstr ""
5134
 
5196
  msgid "Download a CSV of earnings and sales over time."
5197
  msgstr ""
5198
 
5199
+ #: includes/admin/reporting/reports.php:367
5200
  msgctxt "Date one to date two"
5201
  msgid "to"
5202
  msgstr ""
5203
 
5204
+ #: includes/admin/reporting/reports.php:372
5205
+ #: includes/admin/reporting/reports.php:396
5206
+ #: includes/admin/reporting/reports.php:411
5207
+ #: includes/admin/reporting/reports.php:423
5208
+ #: includes/admin/reporting/reports.php:437
5209
  msgid "Generate CSV"
5210
  msgstr ""
5211
 
5212
+ #: includes/admin/reporting/reports.php:378
5213
  msgid "Export Payment History"
5214
  msgstr ""
5215
 
5216
+ #: includes/admin/reporting/reports.php:380
5217
  msgid "Download a CSV of all payments recorded."
5218
  msgstr ""
5219
 
5220
+ #: includes/admin/reporting/reports.php:382
5221
+ #: includes/admin/reporting/reports.php:433
5222
  msgid "Choose start date"
5223
  msgstr ""
5224
 
5225
+ #: includes/admin/reporting/reports.php:383
5226
+ #: includes/admin/reporting/reports.php:434
5227
  msgid "Choose end date"
5228
  msgstr ""
5229
 
5230
+ #: includes/admin/reporting/reports.php:385
5231
  msgid "All Statuses"
5232
  msgstr ""
5233
 
5234
+ #: includes/admin/reporting/reports.php:404
5235
  msgid "Export Customers in CSV"
5236
  msgstr ""
5237
 
5238
+ #: includes/admin/reporting/reports.php:406
5239
  msgid "Download a CSV of customers."
5240
  msgstr ""
5241
 
5242
+ #: includes/admin/reporting/reports.php:417
5243
  msgid "Export Download Products in CSV"
5244
  msgstr ""
5245
 
5246
+ #: includes/admin/reporting/reports.php:419
5247
  msgid "Download a CSV of download products."
5248
  msgstr ""
5249
 
5250
+ #: includes/admin/reporting/reports.php:429
5251
  msgid "Export Download History in CSV"
5252
  msgstr ""
5253
 
5254
+ #: includes/admin/reporting/reports.php:431
5255
  msgid "Download a CSV of file downloads."
5256
  msgstr ""
5257
 
5285
  msgstr ""
5286
 
5287
  #: includes/admin/reporting/export/class-batch-export-downloads.php:54
5288
+ #: includes/admin/settings/register-settings.php:789
5289
  msgid "File Download Limit"
5290
  msgstr ""
5291
 
5319
  msgstr ""
5320
 
5321
  #: includes/admin/settings/contextual-help.php:48
5322
+ #: includes/admin/settings/register-settings.php:391
5323
+ #: includes/admin/settings/register-settings.php:1063
5324
  msgid "Payment Gateways"
5325
  msgstr ""
5326
 
5349
  msgstr ""
5350
 
5351
  #: includes/admin/settings/contextual-help.php:57
5352
+ #: includes/admin/settings/register-settings.php:1064
5353
  msgid "Emails"
5354
  msgstr ""
5355
 
5369
  msgstr ""
5370
 
5371
  #: includes/admin/settings/contextual-help.php:65
5372
+ #: includes/admin/settings/register-settings.php:1065
5373
  msgid "Styles"
5374
  msgstr ""
5375
 
5466
  msgid "A description of all the options are provided beside their input boxes."
5467
  msgstr ""
5468
 
5469
+ #: includes/admin/settings/register-settings.php:236
5470
+ msgid "Page Settings"
5471
+ msgstr ""
5472
+
5473
+ #: includes/admin/settings/register-settings.php:242
5474
  msgid "Checkout Page"
5475
  msgstr ""
5476
 
5477
+ #: includes/admin/settings/register-settings.php:243
5478
  msgid ""
5479
  "This is the checkout page where buyers will complete their purchases. The "
5480
  "[download_checkout] short code must be on this page."
5481
  msgstr ""
5482
 
5483
+ #: includes/admin/settings/register-settings.php:247
5484
+ #: includes/admin/settings/register-settings.php:256
5485
+ #: includes/admin/settings/register-settings.php:265
5486
+ #: includes/admin/settings/register-settings.php:274
5487
  msgid "Select a page"
5488
  msgstr ""
5489
 
5490
+ #: includes/admin/settings/register-settings.php:251
5491
  msgid "Success Page"
5492
  msgstr ""
5493
 
5494
+ #: includes/admin/settings/register-settings.php:252
5495
  msgid ""
5496
  "This is the page buyers are sent to after completing their purchases. The "
5497
  "[edd_receipt] short code should be on this page."
5498
  msgstr ""
5499
 
5500
+ #: includes/admin/settings/register-settings.php:260
5501
  msgid "Failed Transaction Page"
5502
  msgstr ""
5503
 
5504
+ #: includes/admin/settings/register-settings.php:261
5505
  msgid ""
5506
  "This is the page buyers are sent to if their transaction is cancelled or "
5507
  "fails"
5508
  msgstr ""
5509
 
5510
+ #: includes/admin/settings/register-settings.php:269
5511
  msgid "Purchase History Page"
5512
  msgstr ""
5513
 
5514
+ #: includes/admin/settings/register-settings.php:270
5515
  msgid ""
5516
  "This page shows a complete purchase history for the current user, including "
5517
  "download links"
5518
  msgstr ""
5519
 
5520
+ #: includes/admin/settings/register-settings.php:278
5521
+ msgid "Store Location"
5522
+ msgstr ""
5523
+
5524
+ #: includes/admin/settings/register-settings.php:284
5525
  msgid "Base Country"
5526
  msgstr ""
5527
 
5528
+ #: includes/admin/settings/register-settings.php:285
5529
  msgid "Where does your store operate from?"
5530
  msgstr ""
5531
 
5532
+ #: includes/admin/settings/register-settings.php:293
5533
  msgid "Base State / Province"
5534
  msgstr ""
5535
 
5536
+ #: includes/admin/settings/register-settings.php:294
5537
  msgid "What state / province does your store operate from?"
5538
  msgstr ""
5539
 
5540
+ #: includes/admin/settings/register-settings.php:301
5541
+ msgid "Tracking Settings"
5542
+ msgstr ""
5543
+
5544
+ #: includes/admin/settings/register-settings.php:307
5545
+ msgid "Allow Usage Tracking?"
5546
+ msgstr ""
5547
+
5548
+ #: includes/admin/settings/register-settings.php:309
5549
+ #, php-format
5550
+ msgid ""
5551
+ "Allow Easy Digital Downloads to anonymously track how this plugin is used "
5552
+ "and help us make the plugin better. Opt-in to tracking and our newsletter "
5553
+ "and immediately be emailed a 20&#37; discount to the EDD shop, valid towards "
5554
+ "the <a href=\"%s\" target=\"_blank\">purchase of extensions</a>. No "
5555
+ "sensitive data is tracked."
5556
  msgstr ""
5557
 
5558
+ #: includes/admin/settings/register-settings.php:318
5559
+ #: includes/admin/settings/register-settings.php:1118
5560
+ msgid "Currency Settings"
5561
  msgstr ""
5562
 
5563
+ #: includes/admin/settings/register-settings.php:324
5564
  msgid "Currency"
5565
  msgstr ""
5566
 
5567
+ #: includes/admin/settings/register-settings.php:325
5568
  msgid ""
5569
  "Choose your currency. Note that some payment gateways have currency "
5570
  "restrictions."
5571
  msgstr ""
5572
 
5573
+ #: includes/admin/settings/register-settings.php:332
5574
  msgid "Currency Position"
5575
  msgstr ""
5576
 
5577
+ #: includes/admin/settings/register-settings.php:333
5578
  msgid "Choose the location of the currency sign."
5579
  msgstr ""
5580
 
5581
+ #: includes/admin/settings/register-settings.php:336
5582
  msgid "Before - $10"
5583
  msgstr ""
5584
 
5585
+ #: includes/admin/settings/register-settings.php:337
5586
  msgid "After - 10$"
5587
  msgstr ""
5588
 
5589
+ #: includes/admin/settings/register-settings.php:342
5590
  msgid "Thousands Separator"
5591
  msgstr ""
5592
 
5593
+ #: includes/admin/settings/register-settings.php:343
5594
  msgid "The symbol (usually , or .) to separate thousands"
5595
  msgstr ""
5596
 
5597
+ #: includes/admin/settings/register-settings.php:350
5598
  msgid "Decimal Separator"
5599
  msgstr ""
5600
 
5601
+ #: includes/admin/settings/register-settings.php:351
5602
  msgid "The symbol (usually , or .) to separate decimal points"
5603
  msgstr ""
5604
 
5605
+ #: includes/admin/settings/register-settings.php:360
5606
+ #: includes/admin/settings/register-settings.php:1119
5607
  msgid "API Settings"
5608
  msgstr ""
5609
 
5610
+ #: includes/admin/settings/register-settings.php:366
5611
  msgid "Allow User Keys"
5612
  msgstr ""
5613
 
5614
+ #: includes/admin/settings/register-settings.php:367
5615
  msgid ""
5616
  "Check this box to allow all users to generate API keys. Users with the "
5617
  "'manage_shop_settings' capability are always allowed to generate keys."
5618
  msgstr ""
5619
 
5620
+ #: includes/admin/settings/register-settings.php:379
5621
+ #: includes/admin/settings/register-settings.php:1122
5622
+ msgid "Gateway Settings"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5623
  msgstr ""
5624
 
5625
+ #: includes/admin/settings/register-settings.php:385
 
 
 
 
 
 
5626
  msgid "Test Mode"
5627
  msgstr ""
5628
 
5629
+ #: includes/admin/settings/register-settings.php:386
5630
  msgid ""
5631
  "While in test mode no live transactions are processed. To fully use test "
5632
  "mode, you must have a sandbox (test) account for the payment gateway you are "
5633
  "testing."
5634
  msgstr ""
5635
 
5636
+ #: includes/admin/settings/register-settings.php:392
5637
  msgid "Choose the payment gateways you want to enable."
5638
  msgstr ""
5639
 
5640
+ #: includes/admin/settings/register-settings.php:398
5641
  msgid "Default Gateway"
5642
  msgstr ""
5643
 
5644
+ #: includes/admin/settings/register-settings.php:399
5645
  msgid "This gateway will be loaded automatically with the checkout page."
5646
  msgstr ""
5647
 
5648
+ #: includes/admin/settings/register-settings.php:405
5649
  msgid "Accepted Payment Method Icons"
5650
  msgstr ""
5651
 
5652
+ #: includes/admin/settings/register-settings.php:406
5653
  msgid "Display icons for the selected payment methods"
5654
  msgstr ""
5655
 
5656
+ #: includes/admin/settings/register-settings.php:406
5657
  msgid ""
5658
  "You will also need to configure your gateway settings if you are accepting "
5659
  "credit cards"
5660
  msgstr ""
5661
 
5662
+ #: includes/admin/settings/register-settings.php:421
5663
+ msgid "PayPal Standard Settings"
5664
  msgstr ""
5665
 
5666
+ #: includes/admin/settings/register-settings.php:426
 
 
 
 
5667
  msgid "PayPal Email"
5668
  msgstr ""
5669
 
5670
+ #: includes/admin/settings/register-settings.php:427
5671
  msgid "Enter your PayPal account's email"
5672
  msgstr ""
5673
 
5674
+ #: includes/admin/settings/register-settings.php:433
5675
  msgid "PayPal Page Style"
5676
  msgstr ""
5677
 
5678
+ #: includes/admin/settings/register-settings.php:434
5679
  msgid "Enter the name of the page style to use, or leave blank for default"
5680
  msgstr ""
5681
 
5682
+ #: includes/admin/settings/register-settings.php:440
5683
  msgid "Disable PayPal IPN Verification"
5684
  msgstr ""
5685
 
5686
+ #: includes/admin/settings/register-settings.php:441
5687
  msgid ""
5688
  "If payments are not getting marked as complete, then check this box. This "
5689
  "forces the site to use a slightly less secure method of verifying purchases."
5690
  msgstr ""
5691
 
5692
+ #: includes/admin/settings/register-settings.php:453
5693
+ #: includes/admin/settings/register-settings.php:1126
5694
+ msgid "Email Settings"
5695
+ msgstr ""
5696
+
5697
+ #: includes/admin/settings/register-settings.php:458
5698
  msgid "Email Template"
5699
  msgstr ""
5700
 
5701
+ #: includes/admin/settings/register-settings.php:459
5702
  msgid ""
5703
  "Choose a template. Click \"Save Changes\" then \"Preview Purchase Receipt\" "
5704
  "to see the new template."
5705
  msgstr ""
5706
 
5707
+ #: includes/admin/settings/register-settings.php:465
5708
  msgid "Logo"
5709
  msgstr ""
5710
 
5711
+ #: includes/admin/settings/register-settings.php:466
5712
  msgid ""
5713
  "Upload or choose a logo to be displayed at the top of the purchase receipt "
5714
  "emails. Displayed on HTML emails only."
5715
  msgstr ""
5716
 
5717
+ #: includes/admin/settings/register-settings.php:479
5718
+ #: includes/admin/settings/register-settings.php:1127
5719
+ msgid "Purchase Receipts"
5720
+ msgstr ""
5721
+
5722
+ #: includes/admin/settings/register-settings.php:484
5723
  msgid "From Name"
5724
  msgstr ""
5725
 
5726
+ #: includes/admin/settings/register-settings.php:485
5727
  msgid ""
5728
  "The name purchase receipts are said to come from. This should probably be "
5729
  "your site or shop name."
5730
  msgstr ""
5731
 
5732
+ #: includes/admin/settings/register-settings.php:491
5733
  msgid "From Email"
5734
  msgstr ""
5735
 
5736
+ #: includes/admin/settings/register-settings.php:492
5737
  msgid ""
5738
  "Email to send purchase receipts from. This will act as the \"from\" and "
5739
  "\"reply-to\" address."
5740
  msgstr ""
5741
 
5742
+ #: includes/admin/settings/register-settings.php:498
5743
  msgid "Purchase Email Subject"
5744
  msgstr ""
5745
 
5746
+ #: includes/admin/settings/register-settings.php:499
5747
  msgid "Enter the subject line for the purchase receipt email"
5748
  msgstr ""
5749
 
5750
+ #: includes/admin/settings/register-settings.php:501
5751
+ #: includes/admin/settings/register-settings.php:508
5752
+ #: includes/admin/settings/register-settings.php:512
5753
  #: includes/emails/functions.php:36 includes/emails/functions.php:40
5754
  #: includes/emails/functions.php:77 includes/emails/functions.php:81
5755
  #: includes/emails/template.php:139
5756
  msgid "Purchase Receipt"
5757
  msgstr ""
5758
 
5759
+ #: includes/admin/settings/register-settings.php:505
5760
  msgid "Purchase Email Heading"
5761
  msgstr ""
5762
 
5763
+ #: includes/admin/settings/register-settings.php:506
5764
  msgid "Enter the heading for the purchase receipt email"
5765
  msgstr ""
5766
 
5767
+ #: includes/admin/settings/register-settings.php:513
5768
  msgid ""
5769
  "Enter the text that is sent as purchase receipt email to users after "
5770
  "completion of a successful purchase. HTML is accepted. Available template "
5771
  "tags:"
5772
  msgstr ""
5773
 
5774
+ #: includes/admin/settings/register-settings.php:515
5775
  #: includes/emails/template.php:157
5776
  msgid "Dear"
5777
  msgstr ""
5778
 
5779
+ #: includes/admin/settings/register-settings.php:515
5780
  #: includes/emails/template.php:158
5781
  msgid ""
5782
  "Thank you for your purchase. Please click on the link(s) below to download "
5783
  "your files."
5784
  msgstr ""
5785
 
5786
+ #: includes/admin/settings/register-settings.php:521
5787
+ msgid "Sale Notifications"
 
 
 
 
5788
  msgstr ""
5789
 
5790
+ #: includes/admin/settings/register-settings.php:526
5791
  msgid "Sale Notification Subject"
5792
  msgstr ""
5793
 
5794
+ #: includes/admin/settings/register-settings.php:527
5795
  msgid "Enter the subject line for the sale notification email"
5796
  msgstr ""
5797
 
5798
+ #: includes/admin/settings/register-settings.php:533
5799
  msgid "Sale Notification"
5800
  msgstr ""
5801
 
5802
+ #: includes/admin/settings/register-settings.php:534
5803
  msgid ""
5804
  "Enter the text that is sent as sale notification email after completion of a "
5805
  "purchase. HTML is accepted. Available template tags:"
5806
  msgstr ""
5807
 
5808
+ #: includes/admin/settings/register-settings.php:540
5809
  msgid "Sale Notification Emails"
5810
  msgstr ""
5811
 
5812
+ #: includes/admin/settings/register-settings.php:541
5813
  msgid ""
5814
  "Enter the email address(es) that should receive a notification anytime a "
5815
  "sale is made, one per line"
5816
  msgstr ""
5817
 
5818
+ #: includes/admin/settings/register-settings.php:547
5819
  msgid "Disable Admin Notifications"
5820
  msgstr ""
5821
 
5822
+ #: includes/admin/settings/register-settings.php:548
5823
  msgid "Check this box if you do not want to receive sales notification emails."
5824
  msgstr ""
5825
 
5826
+ #: includes/admin/settings/register-settings.php:560
5827
+ #: includes/admin/settings/register-settings.php:1131
5828
+ msgid "Style Settings"
5829
+ msgstr ""
5830
+
5831
+ #: includes/admin/settings/register-settings.php:565
5832
  msgid "Disable Styles"
5833
  msgstr ""
5834
 
5835
+ #: includes/admin/settings/register-settings.php:566
5836
  msgid ""
5837
  "Check this to disable all included styling of buttons, checkout fields, and "
5838
  "all other elements."
5839
  msgstr ""
5840
 
5841
+ #: includes/admin/settings/register-settings.php:571
5842
  msgid "Buttons"
5843
  msgstr ""
5844
 
5845
+ #: includes/admin/settings/register-settings.php:572
5846
  msgid "Options for add to cart and purchase buttons"
5847
  msgstr ""
5848
 
5849
+ #: includes/admin/settings/register-settings.php:577
5850
  msgid "Default Button Style"
5851
  msgstr ""
5852
 
5853
+ #: includes/admin/settings/register-settings.php:578
5854
  msgid "Choose the style you want to use for the buttons."
5855
  msgstr ""
5856
 
5857
+ #: includes/admin/settings/register-settings.php:584
5858
  msgid "Default Button Color"
5859
  msgstr ""
5860
 
5861
+ #: includes/admin/settings/register-settings.php:585
5862
  msgid "Choose the color you want to use for the buttons."
5863
  msgstr ""
5864
 
5865
+ #: includes/admin/settings/register-settings.php:598
5866
+ #: includes/admin/settings/register-settings.php:1134
5867
+ msgid "Tax Settings"
5868
+ msgstr ""
5869
+
5870
+ #: includes/admin/settings/register-settings.php:603
5871
  msgid "Enable Taxes"
5872
  msgstr ""
5873
 
5874
+ #: includes/admin/settings/register-settings.php:604
5875
  msgid "Check this to enable taxes on purchases."
5876
  msgstr ""
5877
 
5878
+ #: includes/admin/settings/register-settings.php:609
5879
  msgid "Tax Rates"
5880
  msgstr ""
5881
 
5882
+ #: includes/admin/settings/register-settings.php:610
5883
  msgid "Enter tax rates for specific regions."
5884
  msgstr ""
5885
 
5886
+ #: includes/admin/settings/register-settings.php:615
5887
  msgid "Fallback Tax Rate"
5888
  msgstr ""
5889
 
5890
+ #: includes/admin/settings/register-settings.php:616
5891
  msgid ""
5892
  "Enter a percentage, such as 6.5. Customers not in a specific rate will be "
5893
  "charged this rate."
5894
  msgstr ""
5895
 
5896
+ #: includes/admin/settings/register-settings.php:622
5897
  msgid "Prices entered with tax"
5898
  msgstr ""
5899
 
5900
+ #: includes/admin/settings/register-settings.php:623
5901
  msgid "This option affects how you enter prices."
5902
  msgstr ""
5903
 
5904
+ #: includes/admin/settings/register-settings.php:627
5905
  msgid "Yes, I will enter prices inclusive of tax"
5906
  msgstr ""
5907
 
5908
+ #: includes/admin/settings/register-settings.php:628
5909
  msgid "No, I will enter prices exclusive of tax"
5910
  msgstr ""
5911
 
5912
+ #: includes/admin/settings/register-settings.php:633
5913
  msgid "Display Tax Rate on Prices"
5914
  msgstr ""
5915
 
5916
+ #: includes/admin/settings/register-settings.php:634
5917
  msgid "Some countries require a notice when product prices include tax."
5918
  msgstr ""
5919
 
5920
+ #: includes/admin/settings/register-settings.php:639
5921
  msgid "Display during checkout"
5922
  msgstr ""
5923
 
5924
+ #: includes/admin/settings/register-settings.php:640
5925
  msgid "Should prices on the checkout page be shown with or without tax?"
5926
  msgstr ""
5927
 
5928
+ #: includes/admin/settings/register-settings.php:644
5929
  msgid "Including tax"
5930
  msgstr ""
5931
 
5932
+ #: includes/admin/settings/register-settings.php:645
5933
  msgid "Excluding tax"
5934
  msgstr ""
5935
 
5936
+ #: includes/admin/settings/register-settings.php:664
5937
+ #: includes/admin/settings/register-settings.php:1141
5938
+ msgid "Misc Settings"
5939
+ msgstr ""
5940
+
5941
+ #: includes/admin/settings/register-settings.php:669
5942
  msgid "Enable Ajax"
5943
  msgstr ""
5944
 
5945
+ #: includes/admin/settings/register-settings.php:670
5946
  msgid "Check this to enable AJAX for the shopping cart."
5947
  msgstr ""
5948
 
5949
+ #: includes/admin/settings/register-settings.php:676
5950
  msgid "Redirect to Checkout"
5951
  msgstr ""
5952
 
5953
+ #: includes/admin/settings/register-settings.php:677
5954
  msgid "Immediately redirect to checkout after adding an item to the cart?"
5955
  msgstr ""
5956
 
5957
+ #: includes/admin/settings/register-settings.php:682
5958
+ msgid "Item Quantities"
5959
+ msgstr ""
5960
+
5961
+ #: includes/admin/settings/register-settings.php:683
5962
+ msgid "Allow item quantities to be changed."
5963
+ msgstr ""
5964
+
5965
+ #: includes/admin/settings/register-settings.php:688
5966
+ msgid "Remove Data on Uninstall?"
5967
+ msgstr ""
5968
+
5969
+ #: includes/admin/settings/register-settings.php:689
5970
+ msgid ""
5971
+ "Check this box if you would like EDD to completely remove all of its data "
5972
+ "when the plugin is deleted."
5973
+ msgstr ""
5974
+
5975
+ #: includes/admin/settings/register-settings.php:696
5976
+ #: includes/admin/settings/register-settings.php:1142
5977
+ msgid "Checkout Settings"
5978
+ msgstr ""
5979
+
5980
+ #: includes/admin/settings/register-settings.php:701
5981
  msgid "Enforce SSL on Checkout"
5982
  msgstr ""
5983
 
5984
+ #: includes/admin/settings/register-settings.php:702
5985
  msgid ""
5986
  "Check this to force users to be redirected to the secure checkout page. You "
5987
  "must have an SSL certificate installed to use this option."
5988
  msgstr ""
5989
 
5990
+ #: includes/admin/settings/register-settings.php:707
5991
  msgid "Disable Guest Checkout"
5992
  msgstr ""
5993
 
5994
+ #: includes/admin/settings/register-settings.php:708
5995
  msgid "Require that users be logged-in to purchase files."
5996
  msgstr ""
5997
 
5998
+ #: includes/admin/settings/register-settings.php:713
5999
  msgid "Show Register / Login Form?"
6000
  msgstr ""
6001
 
6002
+ #: includes/admin/settings/register-settings.php:714
6003
  msgid ""
6004
  "Display the registration and login forms on the checkout page for non-logged-"
6005
  "in users."
6006
  msgstr ""
6007
 
6008
+ #: includes/admin/settings/register-settings.php:718
6009
  msgid "Registration and Login Forms"
6010
  msgstr ""
6011
 
6012
+ #: includes/admin/settings/register-settings.php:719
6013
  msgid "Registration Form Only"
6014
  msgstr ""
6015
 
6016
+ #: includes/admin/settings/register-settings.php:720
6017
  msgid "Login Form Only"
6018
  msgstr ""
6019
 
6020
+ #: includes/admin/settings/register-settings.php:726
 
 
 
 
 
 
 
 
6021
  msgid "Multiple Discounts"
6022
  msgstr ""
6023
 
6024
+ #: includes/admin/settings/register-settings.php:727
6025
  msgid "Allow customers to use multiple discounts on the same purchase?"
6026
  msgstr ""
6027
 
6028
+ #: includes/admin/settings/register-settings.php:732
6029
  msgid "Enable Cart Saving"
6030
  msgstr ""
6031
 
6032
+ #: includes/admin/settings/register-settings.php:733
6033
  msgid "Check this to enable cart saving on the checkout."
6034
  msgstr ""
6035
 
6036
+ #: includes/admin/settings/register-settings.php:740
6037
+ #: includes/admin/settings/register-settings.php:1143
6038
+ msgid "Button Text"
6039
+ msgstr ""
6040
+
6041
+ #: includes/admin/settings/register-settings.php:745
6042
+ msgid "Complete Purchase Text"
6043
+ msgstr ""
6044
+
6045
+ #: includes/admin/settings/register-settings.php:746
6046
+ msgid "The button label for completing a purchase."
6047
+ msgstr ""
6048
+
6049
+ #: includes/admin/settings/register-settings.php:752
6050
+ msgid "Add to Cart Text"
6051
+ msgstr ""
6052
+
6053
+ #: includes/admin/settings/register-settings.php:753
6054
+ msgid "Text shown on the Add to Cart Buttons."
6055
+ msgstr ""
6056
+
6057
+ #: includes/admin/settings/register-settings.php:759
6058
+ msgid "Buy Now Text"
6059
+ msgstr ""
6060
+
6061
+ #: includes/admin/settings/register-settings.php:760
6062
+ msgid "Text shown on the Buy Now Buttons."
6063
+ msgstr ""
6064
+
6065
+ #: includes/admin/settings/register-settings.php:768
6066
+ msgid "File Download Settings"
6067
+ msgstr ""
6068
+
6069
+ #: includes/admin/settings/register-settings.php:773
6070
  msgid "Download Method"
6071
  msgstr ""
6072
 
6073
+ #: includes/admin/settings/register-settings.php:774
6074
  msgid ""
6075
  "Select the file download method. Note, not all methods work on all servers."
6076
  msgstr ""
6077
 
6078
+ #: includes/admin/settings/register-settings.php:777
6079
  msgid "Forced"
6080
  msgstr ""
6081
 
6082
+ #: includes/admin/settings/register-settings.php:778
6083
  msgid "Redirect"
6084
  msgstr ""
6085
 
6086
+ #: includes/admin/settings/register-settings.php:783
6087
  msgid "Symlink File Downloads?"
6088
  msgstr ""
6089
 
6090
+ #: includes/admin/settings/register-settings.php:784
6091
  msgid ""
6092
  "Check this if you are delivering really large files or having problems with "
6093
  "file downloads completing."
6094
  msgstr ""
6095
 
6096
+ #: includes/admin/settings/register-settings.php:790
6097
  #, php-format
6098
  msgid ""
6099
  "The maximum number of times files can be downloaded for purchases. Can be "
6100
  "overwritten for each %s."
6101
  msgstr ""
6102
 
6103
+ #: includes/admin/settings/register-settings.php:796
6104
  msgid "Download Link Expiration"
6105
  msgstr ""
6106
 
6107
+ #: includes/admin/settings/register-settings.php:797
6108
  msgid ""
6109
  "How long should download links be valid for? Default is 24 hours from the "
6110
  "time they are generated. Enter a time in hours."
6111
  msgstr ""
6112
 
6113
+ #: includes/admin/settings/register-settings.php:805
6114
  msgid "Disable Redownload?"
6115
  msgstr ""
6116
 
6117
+ #: includes/admin/settings/register-settings.php:806
6118
  msgid ""
6119
  "Check this if you do not want to allow users to redownload items from their "
6120
  "purchase history."
6121
  msgstr ""
6122
 
6123
+ #: includes/admin/settings/register-settings.php:813
6124
+ #: includes/admin/settings/register-settings.php:1145
6125
  msgid "Accounting Settings"
6126
  msgstr ""
6127
 
6128
+ #: includes/admin/settings/register-settings.php:818
6129
  msgid "Enable SKU Entry"
6130
  msgstr ""
6131
 
6132
+ #: includes/admin/settings/register-settings.php:819
6133
  msgid ""
6134
  "Check this box to allow entry of product SKUs. SKUs will be shown on "
6135
  "purchase receipt and exported purchase histories."
6136
  msgstr ""
6137
 
6138
+ #: includes/admin/settings/register-settings.php:824
6139
  msgid "Sequential Order Numbers"
6140
  msgstr ""
6141
 
6142
+ #: includes/admin/settings/register-settings.php:825
6143
  msgid "Check this box to enable sequential order numbers."
6144
  msgstr ""
6145
 
6146
+ #: includes/admin/settings/register-settings.php:830
6147
  msgid "Sequential Starting Number"
6148
  msgstr ""
6149
 
6150
+ #: includes/admin/settings/register-settings.php:831
6151
  msgid "The number at which the sequence should begin."
6152
  msgstr ""
6153
 
6154
+ #: includes/admin/settings/register-settings.php:838
6155
  msgid "Sequential Number Prefix"
6156
  msgstr ""
6157
 
6158
+ #: includes/admin/settings/register-settings.php:839
6159
  msgid "A prefix to prepend to all sequential order numbers."
6160
  msgstr ""
6161
 
6162
+ #: includes/admin/settings/register-settings.php:844
6163
  msgid "Sequential Number Postfix"
6164
  msgstr ""
6165
 
6166
+ #: includes/admin/settings/register-settings.php:845
6167
  msgid "A postfix to append to all sequential order numbers."
6168
  msgstr ""
6169
 
6170
+ #: includes/admin/settings/register-settings.php:852
6171
+ msgid "Agreement Settings"
6172
  msgstr ""
6173
 
6174
+ #: includes/admin/settings/register-settings.php:857
6175
  msgid "Agree to Terms"
6176
  msgstr ""
6177
 
6178
+ #: includes/admin/settings/register-settings.php:858
6179
  msgid ""
6180
  "Check this to show an agree to terms on the checkout that users must agree "
6181
  "to before purchasing."
6182
  msgstr ""
6183
 
6184
+ #: includes/admin/settings/register-settings.php:863
6185
  msgid "Agree to Terms Label"
6186
  msgstr ""
6187
 
6188
+ #: includes/admin/settings/register-settings.php:864
6189
  msgid "Label shown next to the agree to terms check box."
6190
  msgstr ""
6191
 
6192
+ #: includes/admin/settings/register-settings.php:870
6193
  msgid "Agreement Text"
6194
  msgstr ""
6195
 
6196
+ #: includes/admin/settings/register-settings.php:871
6197
  msgid "If Agree to Terms is checked, enter the agreement terms here."
6198
  msgstr ""
6199
 
6200
+ #: includes/admin/settings/register-settings.php:955
6201
+ msgid "Settings updated."
 
 
 
 
 
 
 
 
6202
  msgstr ""
6203
 
6204
+ #: includes/admin/settings/register-settings.php:1072
6205
+ msgid "Licenses"
6206
  msgstr ""
6207
 
6208
+ #: includes/admin/settings/register-settings.php:1075
6209
+ msgid "Misc"
6210
  msgstr ""
6211
 
6212
+ #: includes/admin/settings/register-settings.php:1123
6213
+ #: includes/gateways/functions.php:25
6214
+ msgid "PayPal Standard"
6215
  msgstr ""
6216
 
6217
+ #: includes/admin/settings/register-settings.php:1128
6218
+ msgid "New Sale Notifications"
6219
  msgstr ""
6220
 
6221
+ #: includes/admin/settings/register-settings.php:1137
6222
+ msgid "Main"
6223
  msgstr ""
6224
 
6225
+ #: includes/admin/settings/register-settings.php:1146
6226
+ msgid "Terms of Agreement"
6227
  msgstr ""
6228
 
6229
+ #: includes/admin/settings/register-settings.php:1519
6230
  #, php-format
6231
  msgid "The callback function used for the %s setting is missing."
6232
  msgstr ""
6233
 
6234
+ #: includes/admin/settings/register-settings.php:1659
6235
  msgid "Upload File"
6236
  msgstr ""
6237
 
6238
+ #: includes/admin/settings/register-settings.php:1750
6239
  msgid "Apply rate to whole country, regardless of state / province"
6240
  msgstr ""
6241
 
6242
+ #: includes/admin/settings/register-settings.php:1750
6243
  msgid "Country Wide"
6244
  msgstr ""
6245
 
6246
+ #: includes/admin/settings/register-settings.php:1751
6247
  msgid "Rate"
6248
  msgstr ""
6249
 
6250
+ #: includes/admin/settings/register-settings.php:1768
6251
+ #: includes/admin/settings/register-settings.php:1812
6252
  msgid "Choose a country"
6253
  msgstr ""
6254
 
6255
+ #: includes/admin/settings/register-settings.php:1783
6256
  msgid "Choose a state"
6257
  msgstr ""
6258
 
6259
+ #: includes/admin/settings/register-settings.php:1795
6260
+ #: includes/admin/settings/register-settings.php:1822
6261
  msgid "Apply to whole country"
6262
  msgstr ""
6263
 
6264
+ #: includes/admin/settings/register-settings.php:1798
6265
+ #: includes/admin/settings/register-settings.php:1825
6266
  msgid "Remove Rate"
6267
  msgstr ""
6268
 
6269
+ #: includes/admin/settings/register-settings.php:1830
6270
  msgid "Add Tax Rate"
6271
  msgstr ""
6272
 
6273
+ #: includes/admin/settings/register-settings.php:1881
6274
  #, php-format
6275
  msgid ""
6276
  "Your license key expired on %s. Please <a href=\"%s\" target=\"_blank\" "
6277
  "title=\"Renew your license key\">renew your license key</a>."
6278
  msgstr ""
6279
 
6280
+ #: includes/admin/settings/register-settings.php:1894
6281
  #, php-format
6282
  msgid ""
6283
  "Invalid license. Please <a href=\"%s\" target=\"_blank\" title=\"Visit "
6284
  "account page\">visit your account page</a> and verify it."
6285
  msgstr ""
6286
 
6287
+ #: includes/admin/settings/register-settings.php:1907
6288
  #, php-format
6289
  msgid ""
6290
  "Your %s is not active for this URL. Please <a href=\"%s\" target=\"_blank\" "
6292
  "license key URLs."
6293
  msgstr ""
6294
 
6295
+ #: includes/admin/settings/register-settings.php:1919
6296
  #, php-format
6297
+ msgid "This is not a %s."
6298
+ msgstr ""
6299
+
6300
+ #: includes/admin/settings/register-settings.php:1928
6301
+ #, php-format
6302
+ msgid ""
6303
+ "Your license key has reached its activation limit. <a href=\"%s\">View "
6304
+ "possible upgrades</a> now."
6305
  msgstr ""
6306
 
6307
+ #: includes/admin/settings/register-settings.php:1950
6308
  msgid "License key never expires."
6309
  msgstr ""
6310
 
6311
+ #: includes/admin/settings/register-settings.php:1957
6312
  #, php-format
6313
  msgid ""
6314
  "Your license key expires soon! It expires on %s. <a href=\"%s\" target="
6315
  "\"_blank\" title=\"Renew license\">Renew your license key</a>."
6316
  msgstr ""
6317
 
6318
+ #: includes/admin/settings/register-settings.php:1967
6319
  #, php-format
6320
  msgid "Your license key expires on %s."
6321
  msgstr ""
6322
 
6323
+ #: includes/admin/settings/register-settings.php:1989
6324
  msgid "Deactivate License"
6325
  msgstr ""
6326
 
6327
+ #: includes/admin/tools/class-edd-tools-recount-all-stats.php:209
6328
  msgid "Earnings and sales stats successfully recounted."
6329
  msgstr ""
6330
 
6338
  msgid "Earnings and sales stats successfully recounted for %s."
6339
  msgstr ""
6340
 
6341
+ #: includes/admin/tools/class-edd-tools-recount-single-customer-stats.php:143
6342
  msgid "You do not have permission to modify this data."
6343
  msgstr ""
6344
 
6478
  msgid "Invalid query!"
6479
  msgstr ""
6480
 
6481
+ #: includes/api/class-edd-api.php:954
6482
  #, php-format
6483
  msgid "Customer %s not found!"
6484
  msgstr ""
6485
 
6486
+ #: includes/api/class-edd-api.php:959
6487
  msgid "No customers found!"
6488
  msgstr ""
6489
 
6490
+ #: includes/api/class-edd-api.php:1005 includes/api/class-edd-api.php:1199
6491
+ #: includes/api/class-edd-api.php:1309
6492
  #, php-format
6493
  msgid "Product %s not found!"
6494
  msgstr ""
6495
 
6496
+ #: includes/api/class-edd-api.php:1110 includes/api/class-edd-api.php:1216
6497
  msgid "The end date must be later than the start date!"
6498
  msgstr ""
6499
 
6500
+ #: includes/api/class-edd-api.php:1115 includes/api/class-edd-api.php:1221
6501
  msgid "Invalid or no date range specified!"
6502
  msgstr ""
6503
 
6504
+ #: includes/api/class-edd-api.php:1453
6505
  msgid "No discounts found!"
6506
  msgstr ""
6507
 
6508
+ #: includes/api/class-edd-api.php:1500
6509
  #, php-format
6510
  msgid "Discount %s not found!"
6511
  msgstr ""
6512
 
6513
+ #: includes/api/class-edd-api.php:1573
6514
  msgid "No download logs found!"
6515
  msgstr ""
6516
 
6517
+ #: includes/api/class-edd-api.php:1768
6518
  msgid "Easy Digital Downloads API Keys"
6519
  msgstr ""
6520
 
6521
+ #: includes/api/class-edd-api.php:1777
6522
  msgid "Generate API Key"
6523
  msgstr ""
6524
 
6525
+ #: includes/api/class-edd-api.php:1779
6526
  msgid "Public key:"
6527
  msgstr ""
6528
 
6529
+ #: includes/api/class-edd-api.php:1780
6530
  msgid "Secret key:"
6531
  msgstr ""
6532
 
6533
+ #: includes/api/class-edd-api.php:1781
6534
  msgid "Token:"
6535
  msgstr ""
6536
 
6537
+ #: includes/api/class-edd-api.php:1783
6538
  msgid "Revoke API Keys"
6539
  msgstr ""
6540
 
6541
+ #: includes/api/class-edd-api.php:1809
6542
+ msgid "User ID Required"
6543
+ msgstr ""
6544
+
6545
+ #: includes/api/class-edd-api.php:1821 includes/api/class-edd-api.php:1823
6546
  #, php-format
6547
  msgid "You do not have permission to %s API keys for this user"
6548
  msgstr ""
6849
  msgid "Hide Terms"
6850
  msgstr ""
6851
 
6852
+ #: includes/checkout/template.php:776
6853
  msgid "Purchase Total:"
6854
  msgstr ""
6855
 
6856
+ #: includes/checkout/template.php:802
6857
  msgid "Go back"
6858
  msgstr ""
6859
 
6860
+ #: includes/checkout/template.php:825
6861
  msgid "Next"
6862
  msgstr ""
6863
 
6864
+ #: includes/checkout/template.php:845
6865
  msgid "Free Download"
6866
  msgstr ""
6867
 
6892
  "You cannot send email with EDD_Emails until init/admin_init has been reached"
6893
  msgstr ""
6894
 
6895
+ #: includes/emails/class-edd-emails.php:305
6896
  #, php-format
6897
  msgid ""
6898
  "Email from Easy Digital Downloads failed to send.\n"
6985
  msgid "You must enable a payment gateway to use Easy Digital Downloads"
6986
  msgstr ""
6987
 
 
6988
  #: includes/gateways/amazon-payments.php:229
6989
+ #: includes/gateways/amazon-payments.php:230
6990
  msgid "Amazon"
6991
  msgstr ""
6992
 
6993
+ #: includes/gateways/amazon-payments.php:282
6994
  msgid "Amazon Payments Settings"
6995
  msgstr ""
6996
 
6997
+ #: includes/gateways/amazon-payments.php:287
 
 
 
 
6998
  msgid "Register with Amazon"
6999
  msgstr ""
7000
 
7001
+ #: includes/gateways/amazon-payments.php:289
7002
  msgid "Connect Easy Digital Downloads to Amazon"
7003
  msgstr ""
7004
 
7005
+ #: includes/gateways/amazon-payments.php:292
7006
  msgid "Once registration is complete, enter your API credentials below."
7007
  msgstr ""
7008
 
7009
+ #: includes/gateways/amazon-payments.php:298
7010
  msgid "Seller ID"
7011
  msgstr ""
7012
 
7013
+ #: includes/gateways/amazon-payments.php:299
7014
  msgid "Found in the Integration settings. Also called a Merchant ID"
7015
  msgstr ""
7016
 
7017
+ #: includes/gateways/amazon-payments.php:305
7018
  msgid "MWS Access Key"
7019
  msgstr ""
7020
 
7021
+ #: includes/gateways/amazon-payments.php:306
7022
+ #: includes/gateways/amazon-payments.php:313
7023
  msgid "Found on Seller Central in the MWS Keys section"
7024
  msgstr ""
7025
 
7026
+ #: includes/gateways/amazon-payments.php:312
7027
  msgid "MWS Secret Key"
7028
  msgstr ""
7029
 
7030
+ #: includes/gateways/amazon-payments.php:319
7031
  msgid "Client ID"
7032
  msgstr ""
7033
 
7034
+ #: includes/gateways/amazon-payments.php:320
7035
  msgid "The Amazon Client ID. Should look like `amzn1.application-oa2...`"
7036
  msgstr ""
7037
 
7038
+ #: includes/gateways/amazon-payments.php:326
7039
  msgid "Amazon MWS Callback URL"
7040
  msgstr ""
7041
 
7042
+ #: includes/gateways/amazon-payments.php:327
7043
  msgid ""
7044
  "The Return URL to provide in your MWS Application. Enter this under your "
7045
  "Login and Pay &rarr; Web Settings"
7046
  msgstr ""
7047
 
7048
+ #: includes/gateways/amazon-payments.php:335
7049
  msgid "Amazon Merchant IPN URL"
7050
  msgstr ""
7051
 
7052
+ #: includes/gateways/amazon-payments.php:336
7053
  #, php-format
7054
  msgid ""
7055
  "The IPN URL to provide in your MWS account. Enter this under your <a href="
7056
  "\"%s\">Integration Settings</a>"
7057
  msgstr ""
7058
 
7059
+ #: includes/gateways/amazon-payments.php:629
7060
  msgid "Currently logged into Amazon as"
7061
  msgstr ""
7062
 
7063
+ #: includes/gateways/amazon-payments.php:630
7064
  msgid "Logout"
7065
  msgstr ""
7066
 
7067
+ #: includes/gateways/amazon-payments.php:783
7068
+ #: includes/gateways/amazon-payments.php:798
7069
  msgid "Missing Reference ID, please try again"
7070
  msgstr ""
7071
 
7072
+ #: includes/gateways/amazon-payments.php:834
7073
  #, php-format
7074
  msgid ""
7075
  "Your payment could not be authorized, please try a different payment method. "
7076
  "Reason: %s"
7077
  msgstr ""
7078
 
7079
+ #: includes/gateways/amazon-payments.php:881
7080
  #, php-format
7081
  msgid "There was an issue processing your payment. Amazon error: %s"
7082
  msgstr ""
7083
 
7084
+ #: includes/gateways/amazon-payments.php:1017
7085
  msgid "Invalid Amazon seller ID"
7086
  msgstr ""
7087
 
7088
+ #: includes/gateways/amazon-payments.php:1017
7089
+ #: includes/gateways/amazon-payments.php:1071
7090
+ #: includes/gateways/paypal-standard.php:286
7091
+ #: includes/gateways/paypal-standard.php:291
7092
+ #: includes/gateways/paypal-standard.php:352
7093
+ #: includes/gateways/paypal-standard.php:361
7094
+ #: includes/gateways/paypal-standard.php:411
7095
+ #: includes/gateways/paypal-standard.php:418
7096
  msgid "IPN Error"
7097
  msgstr ""
7098
 
7099
+ #: includes/gateways/amazon-payments.php:1041
7100
  msgid "Capture declined in Amazon"
7101
  msgstr ""
7102
 
7103
+ #: includes/gateways/amazon-payments.php:1059
7104
+ #: includes/gateways/amazon-payments.php:1147
7105
  #, php-format
7106
  msgid "Refund completed in Amazon. Refund ID: %s"
7107
  msgstr ""
7108
 
7109
+ #: includes/gateways/amazon-payments.php:1140
7110
  #, php-format
7111
  msgid "Refund declined in Amazon. Refund ID: %s"
7112
  msgstr ""
7113
 
7114
+ #: includes/gateways/amazon-payments.php:1153
7115
  #, php-format
7116
  msgid "Refund initiated in Amazon. Reference ID: %s"
7117
  msgstr ""
7118
 
7119
+ #: includes/gateways/amazon-payments.php:1162
7120
  msgid "Refund request failed in Amazon."
7121
  msgstr ""
7122
 
 
 
 
 
7123
  #: includes/gateways/functions.php:26
7124
  msgid "PayPal"
7125
  msgstr ""
7153
  "Payment creation failed before sending buyer to PayPal. Payment data: %s"
7154
  msgstr ""
7155
 
7156
+ #: includes/gateways/paypal-standard.php:286
7157
+ #: includes/gateways/paypal-standard.php:291
7158
  #, php-format
7159
  msgid "Invalid IPN verification response. IPN data: %s"
7160
  msgstr ""
7161
 
7162
+ #: includes/gateways/paypal-standard.php:352
7163
  #, php-format
7164
  msgid "Invalid business email in IPN response. IPN data: %s"
7165
  msgstr ""
7166
 
7167
+ #: includes/gateways/paypal-standard.php:354
7168
  msgid "Payment failed due to invalid PayPal business email."
7169
  msgstr ""
7170
 
7171
+ #: includes/gateways/paypal-standard.php:361
7172
  #, php-format
7173
  msgid "Invalid currency in IPN response. IPN data: %s"
7174
  msgstr ""
7175
 
7176
+ #: includes/gateways/paypal-standard.php:363
7177
  msgid "Payment failed due to invalid currency in PayPal IPN."
7178
  msgstr ""
7179
 
7180
+ #: includes/gateways/paypal-standard.php:411
7181
  #, php-format
7182
  msgid "Invalid payment amount in IPN response. IPN data: %s"
7183
  msgstr ""
7184
 
7185
+ #: includes/gateways/paypal-standard.php:413
7186
  msgid "Payment failed due to invalid amount in PayPal IPN."
7187
  msgstr ""
7188
 
7189
+ #: includes/gateways/paypal-standard.php:418
7190
  #, php-format
7191
  msgid "Invalid purchase key in IPN response. IPN data: %s"
7192
  msgstr ""
7193
 
7194
+ #: includes/gateways/paypal-standard.php:420
7195
  msgid "Payment failed due to invalid purchase key in PayPal IPN."
7196
  msgstr ""
7197
 
7198
+ #: includes/gateways/paypal-standard.php:426 tests/tests-payment-class.php:28
7199
  #: tests/tests-payments.php:28 tests/helpers/class-helper-payment.php:131
7200
  #: tests/helpers/class-helper-payment.php:234
7201
  #: tests/helpers/class-helper-payment.php:342
7202
  #: tests/helpers/class-helper-payment.php:452
7203
+ #: tests/helpers/class-helper-payment.php:541
7204
  #, php-format
7205
  msgid "PayPal Transaction ID: %s"
7206
  msgstr ""
7207
 
7208
+ #: includes/gateways/paypal-standard.php:440
7209
  msgid "Payment made via eCheck and will clear automatically in 5-8 days"
7210
  msgstr ""
7211
 
7212
+ #: includes/gateways/paypal-standard.php:446
7213
  msgid ""
7214
  "Payment requires a confirmed customer address and must be accepted manually "
7215
  "through PayPal"
7216
  msgstr ""
7217
 
7218
+ #: includes/gateways/paypal-standard.php:452
7219
  msgid ""
7220
  "Payment must be accepted manually through PayPal due to international "
7221
  "account regulations"
7222
  msgstr ""
7223
 
7224
+ #: includes/gateways/paypal-standard.php:458
7225
  msgid ""
7226
  "Payment received in non-shop currency and must be accepted manually through "
7227
  "PayPal"
7228
  msgstr ""
7229
 
7230
+ #: includes/gateways/paypal-standard.php:465
7231
  msgid ""
7232
  "Payment is being reviewed by PayPal staff as high-risk or in possible "
7233
  "violation of government regulations"
7234
  msgstr ""
7235
 
7236
+ #: includes/gateways/paypal-standard.php:471
7237
  msgid "Payment was sent to non-confirmed or non-registered email address."
7238
  msgstr ""
7239
 
7240
+ #: includes/gateways/paypal-standard.php:477
7241
  msgid "PayPal account must be upgraded before this payment can be accepted"
7242
  msgstr ""
7243
 
7244
+ #: includes/gateways/paypal-standard.php:483
7245
  msgid ""
7246
  "PayPal account is not verified. Verify account in order to accept this "
7247
  "payment"
7248
  msgstr ""
7249
 
7250
+ #: includes/gateways/paypal-standard.php:489
7251
  msgid ""
7252
  "Payment is pending for unknown reasons. Contact PayPal support for assistance"
7253
  msgstr ""
7254
 
7255
+ #: includes/gateways/paypal-standard.php:530
7256
  #, php-format
7257
  msgid "Partial PayPal refund processed: %s"
7258
  msgstr ""
7259
 
7260
+ #: includes/gateways/paypal-standard.php:535
7261
  #, php-format
7262
  msgid "PayPal Payment #%s Refunded for reason: %s"
7263
  msgstr ""
7264
 
7265
+ #: includes/gateways/paypal-standard.php:536
7266
  #, php-format
7267
  msgid "PayPal Refund Transaction ID: %s"
7268
  msgstr ""
7269
 
7270
+ #: includes/payments/actions.php:140
7271
  #, php-format
7272
  msgid "Status changed from %s to %s"
7273
  msgstr ""
7274
 
7275
+ #: includes/payments/functions.php:612
7276
  msgid "Complete"
7277
  msgstr ""
7278
 
7279
+ #: includes/payments/functions.php:1550
7280
  msgid "EDD Bot"
7281
  msgstr ""
7282
 
7283
+ #: includes/payments/functions.php:1565
7284
  msgid "Delete this payment note"
7285
  msgstr ""
7286
 
readme.txt CHANGED
@@ -6,7 +6,7 @@ Donate link: https://pippinsplugins.com/support-the-site
6
  Tags: download, downloads, e-store, eshop, digital downloads, e-downloads, ecommerce, e commerce, e-commerce, selling, wp-ecommerce, wp ecommerce, mordauk, Pippin Williamson, pippinsplugins
7
  Requires at least: 4.0
8
  Tested up to: 4.5
9
- Stable Tag: 2.5.6
10
 
11
  License: GNU Version 2 or Any Later Version
12
 
@@ -214,6 +214,42 @@ Yes, through the addition of one or more of the add-on payment gateways, you can
214
 
215
  == Changelog ==
216
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
217
  = 2.5.6, January 13, 2016 =
218
 
219
  * Fix: Payment dates recorded with incorrect dates depending on the timezone selected in settings
6
  Tags: download, downloads, e-store, eshop, digital downloads, e-downloads, ecommerce, e commerce, e-commerce, selling, wp-ecommerce, wp ecommerce, mordauk, Pippin Williamson, pippinsplugins
7
  Requires at least: 4.0
8
  Tested up to: 4.5
9
+ Stable Tag: 2.5.7
10
 
11
  License: GNU Version 2 or Any Later Version
12
 
214
 
215
  == Changelog ==
216
 
217
+ = 2.5.7, February 10, 2016 =
218
+
219
+ * New: Added refund() method to EDD_Payment class
220
+ * New: Added filters to enable/disable product and customer stat adjustments during refunds
221
+ * New: Addded new hooks to EDD_Payment class that run before payment is setup
222
+ * Tweak: Improved taxonomy labels for categories and tags
223
+ * Tweak: Automatically flush permalinks when a 404 is detected on EDD archive pages
224
+ * Tweak: Add proper 403 headers to REST API
225
+ * Tweak: Removed usage of soon-to-be-deprecated function get_currentuserinfo()
226
+ * Tweak: Improved CSS formatting for edd.css
227
+ * Tweak: Improved label/field HTML markup on checkout
228
+ * Fix: Store earnings reports can cause memory problems when store has only 0.00 sales
229
+ * Fix: Incorrect query arguments when redirecting back to checkout with ?payment-mode if query args are already present
230
+ * Fix: Maybe unserialize user_info array in EDD_Payment
231
+ * Fix: Recalculate Totals button ignores item quantities
232
+ * Fix: Incorrect item price stored in sales log when adding item to existing payment
233
+ * Fix: .jpeg files blocked by .htaccess file
234
+ * Fix: Product search on customer export returns customer names instead of products
235
+ * Fix: Editing items on payment do not save properly in some instances
236
+ * Fix: File download links fail with qTranslate-X plugin active
237
+ * Fix: Admin notice about expired and invalid keys should show only to site admins
238
+ * Fix: Cart widget cannot be shown on checkout screen
239
+ * Fix: Incorrect date format when viewing Last Week report
240
+ * Fix: PHP notice when sending test payment receipt
241
+ * Fix: edit_date not passed in when updating payment record
242
+ * Fix: Unneeded product query on discount add/edit screen
243
+ * Fix: Profile editor does not update customer name
244
+ * Fix: Price not formatted in placeholder for price field
245
+ * Fix: Unnecessary paragraph tags inside of form elements on Export screen
246
+ * Fix: Payments list filters are off by one day
247
+ * Fix: File download links break if UTM variables are added to them
248
+ * Fix: pagination=false parameter in [downloads] shortcode does not work
249
+ * Fix: Coupon code use count not decremented when payment marked as failed
250
+ * Fix: Username field not validated before submitting form to generate new API key
251
+ * Fix: Download Details widget requires settings to be saved before it displays
252
+
253
  = 2.5.6, January 13, 2016 =
254
 
255
  * Fix: Payment dates recorded with incorrect dates depending on the timezone selected in settings
templates/edd.css CHANGED
@@ -1,791 +1,791 @@
1
  /**
2
  * Easy Digital Downloads Styles
3
  *
4
- * @package EDD
5
  * @subpackage CSS
6
  * @copyright Copyright (c) 2015, Pippin Williamson
7
- * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
  */
9
-
10
  @charset "UTF-8";
11
 
12
  /* Icon font generated by IconMoon */
13
-
14
  @font-face {
15
- font-family: 'EDD-Icons';
16
- src: url('fonts/EDD-Icons.eot');
17
- src: url('fonts/EDD-Icons.eot?#iefix') format('embedded-opentype'), url('fonts/EDD-Icons.woff') format('woff'), url('fonts/EDD-Icons.ttf') format('truetype'), url('fonts/EDD-Icons.svg#EDD-Icons') format('svg');
18
- font-weight: normal;
19
- font-style: normal;
 
 
 
20
  }
21
  [class*="edd-icon-"],
22
  [class*=" edd-icon-"] {
23
- font-family: 'EDD-Icons';
24
- speak: none;
25
- font-style: normal;
26
- font-weight: normal;
27
- font-variant: normal;
28
- text-transform: none;
29
- width: auto;
30
- height: auto;
31
- line-height: 1;
32
- -webkit-font-smoothing: antialiased;
33
  }
34
  [class*="edd-icon-"]:before,
35
  [class*=" edd-icon-"]:before {
36
- text-decoration: inherit;
37
- display: inline-block;
38
- cursor: default;
39
- speak: none;
40
  }
41
  .edd-icon-spinner:before {
42
- content: "\71";
43
  }
44
  .edd-icon-ok:before {
45
- content: "\77";
46
  }
47
  .edd-icon-remove:before {
48
- content: "\65";
49
  }
50
  .edd-icon-remove-circle:before {
51
- content: "\72";
52
  }
53
  .edd-icon-ok-circle:before {
54
- content: "\74";
55
  }
56
  .edd-icon-spin {
57
- display: inline-block;
58
- -moz-animation: edd-icon-spin 2s infinite linear;
59
- -o-animation: edd-icon-spin 2s infinite linear;
60
- -webkit-animation: edd-icon-spin 2s infinite linear;
61
- animation: edd-icon-spin 2s infinite linear;
62
  }
63
  @-moz-keyframes edd-icon-spin {
64
- 0% {
65
- -moz-transform: rotate(0deg)
66
- }
67
- 100% {
68
- -moz-transform: rotate(359deg)
69
- }
70
  }
71
  @-webkit-keyframes edd-icon-spin {
72
- 0% {
73
- -webkit-transform: rotate(0deg)
74
- }
75
- 100% {
76
- -webkit-transform: rotate(359deg)
77
- }
78
  }
79
  @-o-keyframes edd-icon-spin {
80
- 0% {
81
- -o-transform: rotate(0deg)
82
- }
83
- 100% {
84
- -o-transform: rotate(359deg)
85
- }
86
  }
87
  @-ms-keyframes edd-icon-spin {
88
- 0% {
89
- -ms-transform: rotate(0deg)
90
- }
91
- 100% {
92
- -ms-transform: rotate(359deg)
93
- }
94
  }
95
  @keyframes edd-icon-spin {
96
- 0% {
97
- transform: rotate(0deg)
98
- }
99
- 100% {
100
- transform: rotate(359deg)
101
- }
102
  }
 
 
103
  /* =Checkout Form
104
  -------------------------------------------------------------- */
105
-
106
  .edd_clearfix:after {
107
- display: block;
108
- visibility: hidden;
109
- float: none;
110
- clear: both;
111
- text-indent: -9999px;
112
- content: ".";
113
  }
 
114
  /* Cart Contents */
115
  #edd_checkout_cart {
116
- text-align: left;
117
- width: 100%;
118
- border: none;
119
- margin: 0 0 21px;
120
- table-layout: auto;
121
  }
122
  #edd_checkout_cart th,
123
  #edd_checkout_cart td {
124
- text-align: left;
125
- border: 1px solid #eee;
126
- color: #666;
127
- padding: 0.5em 1.387em;
128
  }
129
  #edd_checkout_cart .edd_cart_header_row th {
130
- background: #fafafa;
131
- padding: 1.387em;
132
  }
133
  #edd_checkout_cart .edd_cart_tax_row th,
134
  #edd_checkout_cart .edd_cart_discount_row th {
135
- background: none
136
  }
137
  #edd_checkout_cart th {
138
- font-weight: bold
139
  }
140
  #edd_checkout_cart td {
141
- line-height: 25px;
142
- vertical-align: middle;
143
- background: #fff;
144
  }
145
  #edd_checkout_cart th.edd_cart_actions,
146
  #edd_checkout_cart td.edd_cart_actions,
147
  #edd_checkout_cart th:last-child,
148
  #edd_checkout_cart td:last-child,
149
  #edd_checkout_cart th.edd_cart_total {
150
- text-align: right
151
  }
152
  #edd_checkout_cart td img {
153
- float: left;
154
- margin: 0 8px 0 0;
155
- background: none;
156
- padding: 0;
157
- border: none;
158
  }
159
  #edd_checkout_cart input.edd-item-quantity {
160
- width: 3em;
161
- padding: 2px;
162
  }
163
  #edd_checkout_cart .edd_discount {
164
- display: inline-block;
165
- margin-left: 5px;
166
  }
167
  .edd_discount_remove {
168
- display: inline-block;
169
- width: 10px;
170
- height: 11px;
171
- background: url(images/xit.gif ) 0 0 no-repeat;
172
- position: relative;
173
- top: 3px;
174
  }
175
  .edd_discount_remove:hover {
176
- background-position: -10px 0
177
  }
178
  #edd_checkout_cart br {
179
- display: none
180
  }
181
  #edd_checkout_cart a.edd-cart-saving-button {
182
- font-weight: normal;
183
- text-decoration: none;
184
  }
185
- /* Checkout Fields */
186
 
 
187
  #edd_checkout_form_wrap legend {
188
- display: block;
189
- font-size: 120%;
190
- line-height: 1;
191
- font-weight: bold;
192
- width: 100%;
193
- margin: 0 0 21px 0;
194
- padding: 0;
195
  }
196
  #edd_checkout_form_wrap label {
197
- font-weight: bold;
198
- display: block;
199
- position: relative;
200
- line-height: 100%;
201
- font-size: 95%;
202
- margin: 0 0 5px;
203
  }
204
  #edd_checkout_form_wrap label:after {
205
- display: block;
206
- visibility: hidden;
207
- float: none;
208
- clear: both;
209
- height: 0;
210
- text-indent: -9999px;
211
- content: ".";
212
  }
213
  #edd_checkout_form_wrap span.edd-description {
214
- color: #666;
215
- font-size: 80%;
216
- display: block;
217
- margin: 0 0 5px;
218
  }
219
  #edd_checkout_form_wrap input.edd-input,
220
  #edd_checkout_form_wrap textarea.edd-input {
221
- display: inline-block;
222
- width: 70%;
223
  }
224
  #edd_checkout_form_wrap select.edd-select {
225
- display: block;
226
- width: 60%;
227
  }
228
  #edd_checkout_form_wrap select.edd-select.edd-select-small {
229
- display: inline;
230
- width: auto;
231
  }
232
  #edd_checkout_form_wrap input.edd-input.error,
233
  #edd_checkout_form_wrap textarea.edd-input.error {
234
- border-color: #c4554e
235
- }
236
- #edd_checkout_form_wrap #edd_terms_agreement label,
237
- #edd_checkout_form_wrap #edd_tax_opt_in_fields label {
238
- display: inline-block;
239
- width: auto;
240
  }
241
  #edd_checkout_form_wrap > p {
242
- margin: 0 0 21px
243
  }
244
  #edd_checkout_form_wrap span.edd-required-indicator {
245
- color: #b94a48;
246
- display: inline;
247
  }
248
  #edd_checkout_form_wrap textarea,
249
  #edd_checkout_form_wrap input[type="text"],
250
  #edd_checkout_form_wrap input[type="email"],
251
  #edd_checkout_form_wrap input[type="password"] {
252
- padding: 4px 6px
253
  }
254
  #edd_checkout_form_wrap input[type="radio"] {
255
- border: none;
256
- margin-right: 5px;
257
  }
258
  #edd_checkout_form_wrap input[type="checkbox"] {
259
- float: left;
260
- margin: 0 8px 0 0;
 
 
 
 
261
  }
262
  #edd_checkout_form_wrap .edd-payment-icons {
263
- height: 32px;
264
- display: block;
265
- margin: 0 0 8px;
266
  }
267
  #edd_checkout_form_wrap .edd-payment-icons img.payment-icon {
268
- max-height: 32px;
269
- width: auto;
270
- margin: 0 3px 0 0;
271
- float: left;
272
- background: none;
273
- padding: 0;
274
- border: none;
275
- -webkit-box-shadow: none;
276
- -moz-box-shadow: none;
277
- box-shadow: none;
278
  }
279
  #edd_checkout_form_wrap #edd-payment-mode-wrap label {
280
- display: inline-block;
281
- margin: 0 20px 0 0;
282
  }
283
  #edd_checkout_form_wrap #edd-payment-mode-wrap .edd-payment-mode-label {
284
- font-weight: bold;
285
- display: inline-block;
286
- position: relative;
287
- margin-bottom: 5px;
288
  }
289
  #edd_checkout_form_wrap fieldset {
290
- border: 1px solid #eee;
291
- padding: 1.387em;
292
- margin: 0 0 21px 0;
293
  }
294
  #edd_checkout_form_wrap #edd_purchase_submit,
295
  #edd_checkout_form_wrap #edd_discount_code,
296
  #edd_checkout_form_wrap #edd_register_account_fields {
297
- padding: 0;
298
- border: none;
299
  }
300
  #edd_checkout_form_wrap fieldset fieldset {
301
- margin: 0;
302
- border: none;
303
- padding: 0;
304
  }
305
  #edd_checkout_form_wrap #edd-login-account-wrap,
306
  #edd_checkout_form_wrap #edd-new-account-wrap,
307
  #edd_checkout_form_wrap #edd_show_discount,
308
  #edd_checkout_form_wrap .edd-cart-adjustment,
309
  #edd_checkout_form_wrap #edd_final_total_wrap {
310
- background: #fafafa;
311
- color: #666;
312
- padding: 0.5em 1.387em;
313
  }
314
  #edd_checkout_form_wrap #edd-discount-code-wrap,
315
  #edd_checkout_form_wrap #edd_final_total_wrap,
316
  #edd_checkout_form_wrap #edd_show_discount {
317
- border: 1px solid #eee
318
  }
319
  #edd_checkout_form_wrap .edd-cart-adjustment {
320
- padding: 1.387em
321
  }
322
  #edd_checkout_form_wrap .edd-cart-adjustment input.edd-input,
323
  #edd_checkout_form_wrap .edd-cart-adjustment input.edd-submit {
324
- display: inline-block
325
  }
326
  #edd_checkout_form_wrap .edd-cart-adjustment input.edd-submit {
327
- padding: 3px 12px;
328
- margin-bottom: 2px;
329
  }
330
  #edd_checkout_form_wrap #edd-discount-error-wrap {
331
- width: 100%;
332
- display: inline-block;
333
- margin: 1em 0 0;
334
  }
335
  #edd_checkout_form_wrap #edd-new-account-wrap,
336
  #edd_checkout_form_wrap #edd-login-account-wrap {
337
- margin: -1.387em -1.387em 21px -1.387em;
338
- border-left: none;
339
- border-right: none;
340
- border-top: none;
341
  }
342
  #edd_checkout_form_wrap #edd_payment_mode_select {
343
- margin-bottom: 21px
344
  }
345
  #edd_checkout_form_wrap fieldset#edd_register_fields #edd_checkout_user_info {
346
- margin-bottom: 21px
347
  }
348
  #edd_checkout_form_wrap fieldset#edd_register_account_fields legend {
349
- padding-top: 11px
350
  }
351
  #edd_checkout_form_wrap fieldset#edd_register_account_fields p.edd_register_password,
352
  #edd_checkout_form_wrap fieldset#edd_register_account_fields p.edd_login_password {
353
- margin: 0
354
  }
355
  #edd_checkout_form_wrap fieldset#edd_cc_fields {
356
- border: 1px solid #f0f0f0;
357
- background: #f9f9f9;
358
- position: relative;
359
  }
360
  #edd_checkout_form_wrap fieldset#edd_cc_fields legend {
361
- border: none;
362
- padding: 0;
363
  }
364
  #edd_checkout_form_wrap fieldset p:last-child {
365
- margin-bottom: 0
366
  }
367
  #edd_checkout_form_wrap fieldset#edd_cc_fields #edd-card-number-wrap {
368
- margin-top: 5px
369
  }
370
  #edd_checkout_form_wrap #edd_purchase_final_total {
371
- margin: 21px 0
372
  }
373
  #edd_checkout_form_wrap #edd_purchase_final_total p {
374
- margin: 0
375
  }
376
  #edd_secure_site_wrapper {
377
- padding: 4px 4px 4px 0;
378
- font-weight: bold;
379
  }
380
  #edd_secure_site_wrapper span.padlock:before {
381
- content: '\f160';
382
- display: inline-block;
383
- -webkit-font-smoothing: antialiased;
384
- font: normal 20px/1 'dashicons';
385
- vertical-align: top;
386
  }
387
  #edd_checkout_form_wrap input.edd-input.card-number.valid {
388
- background-image: url(images/tick.png);
389
- background-repeat: no-repeat;
390
- background-position: 98% 50%;
391
  }
392
  #edd_checkout_form_wrap span.exp-divider {
393
- display: inline
394
  }
395
  #edd_checkout_form_wrap span.card-type {
396
- position: absolute;
397
- top: -2px;
398
- right: 0;
399
- width: 43px;
400
- height: 32px;
401
- background-size: 43px 32px!important;
402
  }
403
  #edd_checkout_form_wrap span.card-type.off {
404
- display: none
405
  }
406
  #edd_checkout_form_wrap span.card-type.visa {
407
- background: url(images/icons/visa.gif ) no-repeat
408
  }
409
  #edd_checkout_form_wrap span.card-type.mastercard {
410
- background: url(images/icons/mastercard.gif ) no-repeat
411
  }
412
  #edd_checkout_form_wrap span.card-type.discover {
413
- background: url(images/icons/discover.gif ) no-repeat
414
  }
415
  #edd_checkout_form_wrap span.card-type.amex {
416
- background: url(images/icons/americanexpress.gif ) no-repeat
417
  }
418
  #edd_checkout_form_wrap #edd-discount-loader,
419
  #edd_checkeout_form_wrap .edd-cart-ajax {
420
- -webkit-box-shadow: none;
421
- -moz-box-shadow: none;
422
- box-shadow: none;
423
  }
424
-
425
  .edd-amazon-profile-wrapper {
426
  font-size: 12px;
427
  }
428
-
429
  .edd-amazon-profile-name {
430
  font-weight: 600;
431
  }
432
-
433
  .edd-amazon-logout {
434
  font-size: 10px;
435
  line-height: 12px;
436
  }
437
-
438
  .edd-amazon-logout a {
439
  cursor: pointer;
440
  }
441
-
442
  #edd-amazon-address-box {
443
- height: 228px;
444
- width: 350px;
445
- margin-bottom: 15px;
446
  }
447
-
448
- #edd-amazon-wallet-box {
449
- height: 228px;
450
- width: 350px;
451
  }
452
 
453
  /* Desktop and tablet */
454
  @media only screen and (min-width: 768px) {
455
- #edd-amazon-address-box,
456
- #edd-amazon-wallet-box {
457
- width: 100%;
458
- height: 228px;
459
- }
460
  }
461
 
 
462
  /* =Ajax Add To Cart Button
463
  -------------------------------------------------------------- */
464
-
465
  .edd_purchase_submit_wrapper {
466
- position: relative
467
  }
468
  .edd_purchase_submit_wrapper a.edd-add-to-cart {
469
- text-decoration: none;
470
- display: none;
471
- position: relative;
472
- overflow: hidden;
473
  }
474
  .edd_purchase_submit_wrapper a.edd-add-to-cart.edd-has-js {
475
- display: inline-block
476
  }
477
  .edd_purchase_submit_wrapper .edd-cart-ajax {
478
- display: none;
479
- position: relative;
480
- left: -35px;
481
  }
482
  .edd-submit.button.edd-ajax-loading {
483
- padding-right: 30px
484
  }
485
  .edd-add-to-cart .edd-add-to-cart-label {
486
- opacity: 1;
487
- filter: alpha(opacity=100);
488
  }
489
  a.edd-add-to-cart .edd-loading {
490
- position: absolute;
491
- left: 50%;
492
- top: 50%;
493
- opacity: 0;
494
- filter: alpha(opacity=0);
495
  }
496
  a.edd-add-to-cart .edd-add-to-cart-label,
497
  a.edd-add-to-cart .edd-loading {
498
- -webkit-transition: .1s opacity !important;
499
- -moz-transition: .1s opacity !important;
500
- -ms-transition: .1s opacity !important;
501
- -o-transition: .1s opacity !important;
502
- transition: .1s opacity !important;
503
  }
504
  .edd-add-to-cart[data-edd-loading] .edd-add-to-cart-label {
505
- opacity: 0;
506
- filter: alpha(opacity=0);
507
  }
508
  .edd-add-to-cart[data-edd-loading] .edd-loading {
509
- opacity: 1;
510
- filter: alpha(opacity=100);
511
  }
512
  .edd-cart-added-alert {
513
- color: #567622;
514
- display: block;
515
- position: absolute;
516
  }
 
 
517
  /* =Theme Specific styling
518
  -------------------------------------------------------------- */
519
 
520
  /* Twenty Twelve */
521
-
522
  .edd_form input.edd-input.required,
523
  .edd_form select.edd-select.required {
524
- color: #000
525
  }
 
 
526
  /* =Receipt Page
527
  -------------------------------------------------------------- */
528
-
529
  body.edd_receipt_page {
530
- background-color: #fff;
531
- color: #141412;
532
- margin: 0;
533
- font-family: Helvetica, sans-serif;
534
- font-size: 12px;
535
  }
536
  body.edd_receipt_page:before {
537
- position: relative;
538
  }
539
  body.edd_receipt_page #edd_receipt_wrapper {
540
- width: 660px;
541
- margin: 0 auto;
542
- padding: 50px 0;
543
  }
544
  body.edd_receipt_page table {
545
- display: table;
546
- width: 100%;
547
- border-bottom: 1px solid #ededed;
548
- border-collapse: collapse;
549
- border-spacing: 0;
550
- font-size: 14px;
551
- line-height: 2;
552
- margin: 0 0 20px;
553
  }
554
  body.edd_receipt_page td,
555
  body.edd_receipt_page th {
556
- display: table-cell;
557
- text-align: left;
558
- border-top: 1px solid #ededed;
559
- padding: 6px 10px;
560
- font-weight: normal;
561
  }
562
  body.edd_receipt_page th {
563
- font-weight: bold;
564
- text-transform: uppercase;
565
  }
566
  body.edd_receipt_page h3 {
567
- font-size: 22px;
568
- margin: 40px 0 5px;
569
- clear: both;
570
- display: block;
571
- font-weight: bold;
572
  }
573
  body.edd_receipt_page li {
574
- list-style: none;
575
  }
 
 
576
  /* =Purchase Summary Tables
577
  -------------------------------------------------------------- */
578
-
579
  table#edd_purchase_receipt_products,
580
  table#edd_purchase_receipt {
581
- width: 100%
582
  }
583
  table#edd_purchase_receipt_products td,
584
  table#edd_purchase_receipt_products th,
585
  table#edd_purchase_receipt td,
586
  table#edd_purchase_receipt th {
587
- text-align: left
588
  }
589
  table#edd_purchase_receipt .edd_receipt_payment_status.pending,
590
  table#edd_purchase_receipt .edd_receipt_payment_status.cancelled,
591
  table#edd_purchase_receipt .edd_receipt_payment_status.revoked,
592
  table#edd_purchase_receipt .edd_receipt_payment_status.failed {
593
- color: #f73f2e
594
  }
595
  table#edd_purchase_receipt_products li {
596
- list-style: none;
597
- margin: 0 0 8px 10px;
598
  }
599
  table#edd_purchase_receipt ul,
600
  table#edd_purchase_receipt_products ul.edd_purchase_receipt_files {
601
- margin: 0;
602
- padding: 0;
603
  }
604
  table#edd_purchase_receipt li.edd_download_file {
605
- list-style: none;
606
- margin: 0 0 8px 0;
607
  }
608
  table#edd_purchase_receipt_products .edd_purchase_receipt_product_notes {
609
- font-style: italic
610
  }
611
  table#edd_purchase_receipt_products .edd_purchase_receipt_product_name {
612
- font-weight: bold
613
  }
614
  table#edd_purchase_receipt_products .edd_bundled_product_name {
615
- font-style: italic;
616
- font-weight: bold;
617
  }
 
 
618
  /* =Purchase History
619
  -------------------------------------------------------------- */
620
-
621
  #edd_user_history {
622
- text-align: left;
623
- width: 100%;
624
- border-top: 1px solid #f0f0f0;
625
- border-bottom: none;
626
  }
627
  #edd_user_history th,
628
  #edd_user_history td {
629
- text-align: left;
630
- padding: 3px 5px;
631
- border-bottom: 1px solid #f0f0f0;
632
- border-top: none;
633
  }
634
  #edd_user_history th {
635
- font-weight: bold;
636
- background: #f5f5f5;
637
  }
638
  #edd_user_history td {
639
- line-height: 25px;
640
- vertical-align: middle;
641
  }
642
  #edd_user_history .edd_purchase_status.revoked,
643
  #edd_user_history .edd_purchase_status.failed,
644
  #edd_user_history .edd_purchase_status.cancelled,
645
  #edd_user_history .edd_purchase_status.pending {
646
- color: #f73f2e
647
  }
 
 
648
  /* =Registration / login Form
649
  -------------------------------------------------------------- */
650
-
651
  #edd_register_form .edd-input,
652
- #edd_login_form .edd-input {
653
- display: inline-block;
654
- width: 200px;
655
- }
656
  #edd_register_form label,
657
  #edd_login_form label {
658
- display: inline-block;
659
- width: 200px;
660
  }
 
 
661
  /* =Profile Form
662
  -------------------------------------------------------------- */
663
-
664
  #edd_profile_editor_form p {
665
- margin-bottom: 8px
666
  }
667
  #edd_profile_editor_form label {
668
- display: inline-block;
669
- width: 200px;
670
  }
 
 
671
  /* =Alerts
672
  -------------------------------------------------------------- */
673
-
674
  .edd_added_to_cart_alert {
675
- padding: 5px;
676
- font-size: 14px;
677
- border: 1px solid #046a9e;
678
- background: #9ecce2;
679
- color: #333;
680
- margin: 8px 0;
681
  }
682
  .edd_added_to_cart_alert a.edd_alert_checkout_link {
683
- color: #000 !important
684
  }
 
 
685
  /* =Purchase buttons
686
  -------------------------------------------------------------- */
687
-
688
  input.edd_submit_plain {
689
- background: none !important;
690
- border: none !important;
691
- padding: 0 !important;
692
- display: inline;
693
- cursor: pointer;
694
  }
695
  .single-download .edd_download_purchase_form {
696
- margin-bottom: 1.387em
697
  }
698
  .edd_download_purchase_form .edd_download_quantity_wrapper {
699
- margin: 0 0 0.5em
700
  }
701
  .edd_download_purchase_form .edd_download_quantity_wrapper .edd-item-quantity {
702
- width: 75px
703
  }
704
  .edd_download_purchase_form .edd_price_options {
705
- margin: 0 0 15px
706
  }
707
  .edd_download_purchase_form .edd_price_options ul {
708
- margin: 0;
709
- padding: 0;
710
- list-style: none;
711
  }
712
  .edd_download_purchase_form .edd_price_options li {
713
- display: block;
714
- padding: 0;
715
- margin: 0;
716
  }
717
  .edd_download_purchase_form .edd_price_options span {
718
- display: inline;
719
- padding: 0;
720
- margin: 0;
721
  }
722
  .edd_download_purchase_form .edd_price_options .edd_download_quantity_wrapper {
723
- padding-left: 18px
724
  }
725
  .edd_download_purchase_form .edd_price_options .edd_download_quantity_wrapper * {
726
- font-size: 80%
727
  }
728
  .edd_download_purchase_form .edd_price_options input.edd-item-quantity {
729
- display: inline;
730
- width: 50px;
731
- max-width: 90%;
732
  }
733
  .edd-submit,
734
  #edd-purchase-button,
735
  input[type="submit"].edd-submit {
736
- display: inline-block;
737
- padding: 6px 12px;
738
- margin: 0;
739
- font-size: 14px;
740
- font-weight: normal;
741
- line-height: 1.428571429;
742
- text-align: center;
743
- white-space: nowrap;
744
- vertical-align: middle;
745
- cursor: pointer;
746
- border: 1px solid #cccccc;
747
- border-radius: 4px;
748
- -webkit-box-shadow: none;
749
- -moz-box-shadow: none;
750
- box-shadow: none;
751
- -webkit-user-select: none;
752
- -moz-user-select: none;
753
- -ms-user-select: none;
754
- -o-user-select: none;
755
- user-select: none;
756
  }
757
  .edd-submit.button:focus,
758
  input[type="submit"].edd-submit:focus {
759
- outline: thin dotted #333;
760
- outline: 5px auto -webkit-focus-ring-color;
761
- outline-offset: -2px;
762
  }
763
  input[type="submit"].edd-submit:hover,
764
  input[type="submit"].edd-submit:focus,
765
  .edd-submit.button:hover,
766
  .edd-submit.button:focus {
767
- color: #333333;
768
- text-decoration: none;
769
  }
770
  .edd-submit.button:active {
771
- background-image: none;
772
- outline: 0;
773
- -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
774
- box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
775
  }
776
  .edd-submit.plain {
777
- padding: 0
778
  }
779
- /** Gray (Default) */
780
 
 
781
  .edd-submit.button,
782
  .edd-submit.button,
783
  .edd-submit.button:visited,
784
  .edd-submit.button,
785
  .edd-submit.button.gray {
786
- color: #333333;
787
- background: #f0f0f0;
788
- border-color: #cccccc;
789
  }
790
  .edd-submit.button:hover,
791
  .edd-submit.button:focus,
@@ -793,229 +793,232 @@ input[type="submit"].edd-submit:focus,
793
  .edd-submit.button.gray:hover,
794
  .edd-submit.button.gray:focus,
795
  .edd-submit.button.gray:active {
796
- color: #333333;
797
- background: #ebebeb;
798
- border-color: #adadad;
799
  }
800
  .edd-submit.button.gray:active {
801
- background-image: none
802
  }
803
- /** White */
804
 
 
805
  .edd-submit.button.white {
806
- color: #333333;
807
- background: #ffffff;
808
- border-color: #cccccc;
809
  }
810
  .edd-submit.button.white:hover,
811
  .edd-submit.button.white:focus,
812
  .edd-submit.button.white:active {
813
- color: #333333;
814
- background: #ebebeb;
815
- border-color: #adadad;
816
  }
817
  .edd-submit.button.white:active {
818
- background-image: none
819
  }
820
- /** Blue */
821
 
 
822
  .edd-submit.button.blue {
823
- color: #ffffff;
824
- background: #428bca;
825
- border-color: #357ebd;
826
  }
827
  .edd-submit.button.blue:hover,
828
  .edd-submit.button.blue:focus,
829
  .edd-submit.button.blue.active {
830
- color: #ffffff;
831
- background: #3276b1;
832
- border-color: #285e8e;
833
  }
834
  .edd-submit.button.blue.active {
835
- background-image: none
836
  }
837
- /** Red */
838
 
 
839
  .edd-submit.button.red {
840
- color: #ffffff;
841
- background: #d9534f;
842
- border-color: #d43f3a;
843
  }
844
  .edd-submit.button.red:hover,
845
  .edd-submit.button.red:focus,
846
  .edd-submit.button.red:active {
847
- color: #ffffff;
848
- background: #d2322d;
849
- border-color: #ac2925;
850
  }
851
  .edd-submit.button.red:active {
852
- background-image: none
853
  }
854
- /** Green */
855
 
 
856
  .edd-submit.button.green {
857
- color: #ffffff;
858
- background: #5cb85c;
859
- border-color: #4cae4c;
860
  }
861
  .edd-submit.button.green:hover,
862
  .edd-submit.button.green:focus,
863
  .edd-submit.button.green:active {
864
- color: #ffffff;
865
- background: #47a447;
866
- border-color: #398439;
867
  }
868
  .edd-submit.button.green:active {
869
- background-image: none
870
  }
871
- /** Yellow */
872
 
 
873
  .edd-submit.button.yellow {
874
- color: #ffffff;
875
- background: #f0ad4e;
876
- border-color: #eea236;
877
  }
878
  .edd-submit.button.yellow:hover,
879
  .edd-submit.button.yellow:focus,
880
  .edd-submit.button.yellow:active {
881
- color: #ffffff;
882
- background: #ed9c28;
883
- border-color: #d58512;
884
  }
885
  .edd-submit.button.yellow:active {
886
- background-image: none
887
  }
888
- /** Orange */
889
 
 
890
  .edd-submit.button.orange {
891
- color: #ffffff;
892
- background: #ed9c28;
893
- border-color: #e3921e;
894
  }
895
  .edd-submit.button.orange:hover,
896
  .edd-submit.button.orange:focus,
897
  .edd-submit.button.orange:active {
898
- color: #ffffff;
899
- background: #e59016;
900
- border-color: #d58512;
901
  }
902
  .edd-submit.button.orange:active {
903
- background-image: none
904
  }
905
- /** Dark Gray */
906
 
 
907
  .edd-submit.button.dark-gray {
908
- color: #fff;
909
- background: #363636;
910
- border-color: #222;
911
  }
912
  .edd-submit.button.dark-gray:hover,
913
  .edd-submit.button.dark-gray:focus,
914
  .edd-submit.button.dark-gray:active {
915
- color: #fff;
916
- background: #333;
917
- border-color: #adadad;
918
  }
919
  .edd-submit.button.dark-gray:active {
920
- background-image: none
921
  }
 
 
922
  /* =Downloads Shortcode
923
  -------------------------------------------------------------- */
924
-
925
  .edd_download {
926
- float: left;
927
  }
928
-
929
  .edd_download_columns_1 .edd_download { width: 100%; }
930
  .edd_download_columns_2 .edd_download { width: 50%; }
931
- .edd_download_columns_0 .edd_download, .edd_download_columns_3 .edd_download { width: 33%; }
 
932
  .edd_download_columns_4 .edd_download { width: 25%; }
933
  .edd_download_columns_5 .edd_download { width: 20%; }
934
  .edd_download_columns_6 .edd_download { width: 16.6%; }
935
-
936
  .edd_download_inner {
937
- padding: 0 8px 8px;
938
- margin: 0 0 10px;
939
  }
940
  .edd_download_image {
941
- max-width: 100%
942
  }
943
  .edd_download .edd_price {
944
- margin-bottom: 10px
945
  }
 
 
946
  /* =Misc styles
947
  -------------------------------------------------------------- */
948
-
949
  .edd-cart-ajax {
950
- margin: 0 8px 0 4px;
951
- position: relative;
952
- top: 2px;
953
- background: none;
954
- border: none;
955
- padding: 0;
956
  }
957
  .edd-cart-number-of-items {
958
- font-style: italic;
959
- color: grey;
960
  }
961
  .edd-cart-meta.edd_subtotal {
962
- font-weight: bold;
963
- font-style: italic;
964
  }
965
  .edd-cart-meta.edd_cart_tax {
966
- font-size: 1em;
967
- font-style: italic;
968
  }
969
 
970
  /** Since this is a LI, make sure to not italicize any list item images */
971
  .edd-cart-meta.edd_cart_tax::before {
972
- font-style: normal;
973
  }
974
 
975
  .edd-cart-meta.edd_total {
976
- font-weight: bold;
977
  }
978
  .edd-cart-meta {
979
- padding: 2px 5px;
980
  }
981
  .edd-cart-meta.edd_subtotal,
982
  .edd-cart-meta.edd_total {
983
- background-color: #f9f9f9;
984
  }
985
 
 
986
  /** Old Error Styles */
987
  /* =Error styles
988
  -------------------------------------------------------------- */
989
-
990
  .edd_errors:not(.edd-alert) {
991
- -webkit-border-radius: 2px;
992
- -moz-border-radius: 2px;
993
- border-radius: 2px;
994
- border: 1px solid #E6DB55;
995
- margin: 0 0 21px 0;
996
- background: #FFFFE0;
997
- color: #333;
998
  }
999
  .edd_error {
1000
- padding: 10px
1001
  }
1002
  p.edd_error {
1003
- margin: 0 !important
1004
  }
 
 
1005
  /* =Success Message styles
1006
  -------------------------------------------------------------- */
1007
-
1008
  .edd_success:not(.edd-alert) {
1009
- -webkit-border-radius: 2px;
1010
- -moz-border-radius: 2px;
1011
- border-radius: 2px;
1012
- border: 1px solid #b3ce89;
1013
- margin: 20px 0;
1014
- background: #d5eab3;
1015
- color: #567622;
1016
- padding: 6px 8px;
1017
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
1018
  }
 
1019
  /** End old Error */
1020
 
1021
  /** Usage Is as Follows */
@@ -1024,47 +1027,40 @@ p.edd_error {
1024
 
1025
  /* Alert Styles */
1026
  .edd-alert {
1027
- -webkit-border-radius: 2px;
1028
- -moz-border-radius: 2px;
1029
- border-radius: 2px;
1030
- margin-bottom: 20px;
1031
- padding: 10px;
1032
- border: 1px solid transparent;
1033
- vertical-align: middle;
1034
  }
1035
-
1036
  .edd-alert p {
1037
- padding: 0;
1038
  }
1039
-
1040
  .edd-alert p:not(:last-child) {
1041
- margin-bottom: 5px;
1042
  }
1043
-
1044
  .edd-alert p:last-child {
1045
- margin-bottom: 0;
1046
  }
1047
-
1048
  .edd-alert-error {
1049
- color: #a94442;
1050
- background-color: #f2dede;
1051
- border-color: #ebccd1;
1052
  }
1053
-
1054
  .edd-alert-success {
1055
- background-color: #dff0d8;
1056
- border-color: #d6e9c6;
1057
- color:#3c763d;
1058
  }
1059
-
1060
  .edd-alert-info {
1061
- color: #31708f;
1062
- background-color: #d9edf7;
1063
- border-color: #bce8f1;
1064
  }
1065
-
1066
  .edd-alert-warn {
1067
- color: #8a6d3b;
1068
- background-color: #fcf8e3;
1069
- border-color: #faebcc;
1070
- }
1
  /**
2
  * Easy Digital Downloads Styles
3
  *
4
+ * @package EDD
5
  * @subpackage CSS
6
  * @copyright Copyright (c) 2015, Pippin Williamson
7
+ * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
8
  */
 
9
  @charset "UTF-8";
10
 
11
  /* Icon font generated by IconMoon */
 
12
  @font-face {
13
+ font-family: 'EDD-Icons';
14
+ src: url('fonts/EDD-Icons.eot');
15
+ src: url('fonts/EDD-Icons.eot?#iefix') format('embedded-opentype'),
16
+ url('fonts/EDD-Icons.woff') format('woff'),
17
+ url('fonts/EDD-Icons.ttf') format('truetype'),
18
+ url('fonts/EDD-Icons.svg#EDD-Icons') format('svg');
19
+ font-weight: normal;
20
+ font-style: normal;
21
  }
22
  [class*="edd-icon-"],
23
  [class*=" edd-icon-"] {
24
+ font-family: 'EDD-Icons';
25
+ speak: none;
26
+ font-style: normal;
27
+ font-weight: normal;
28
+ font-variant: normal;
29
+ text-transform: none;
30
+ width: auto;
31
+ height: auto;
32
+ line-height: 1;
33
+ -webkit-font-smoothing: antialiased;
34
  }
35
  [class*="edd-icon-"]:before,
36
  [class*=" edd-icon-"]:before {
37
+ text-decoration: inherit;
38
+ display: inline-block;
39
+ cursor: default;
40
+ speak: none;
41
  }
42
  .edd-icon-spinner:before {
43
+ content: "\71";
44
  }
45
  .edd-icon-ok:before {
46
+ content: "\77";
47
  }
48
  .edd-icon-remove:before {
49
+ content: "\65";
50
  }
51
  .edd-icon-remove-circle:before {
52
+ content: "\72";
53
  }
54
  .edd-icon-ok-circle:before {
55
+ content: "\74";
56
  }
57
  .edd-icon-spin {
58
+ display: inline-block;
59
+ -moz-animation: edd-icon-spin 2s infinite linear;
60
+ -o-animation: edd-icon-spin 2s infinite linear;
61
+ -webkit-animation: edd-icon-spin 2s infinite linear;
62
+ animation: edd-icon-spin 2s infinite linear;
63
  }
64
  @-moz-keyframes edd-icon-spin {
65
+ 0% {
66
+ -moz-transform: rotate(0deg)
67
+ }
68
+ 100% {
69
+ -moz-transform: rotate(359deg)
70
+ }
71
  }
72
  @-webkit-keyframes edd-icon-spin {
73
+ 0% {
74
+ -webkit-transform: rotate(0deg)
75
+ }
76
+ 100% {
77
+ -webkit-transform: rotate(359deg)
78
+ }
79
  }
80
  @-o-keyframes edd-icon-spin {
81
+ 0% {
82
+ -o-transform: rotate(0deg)
83
+ }
84
+ 100% {
85
+ -o-transform: rotate(359deg)
86
+ }
87
  }
88
  @-ms-keyframes edd-icon-spin {
89
+ 0% {
90
+ -ms-transform: rotate(0deg)
91
+ }
92
+ 100% {
93
+ -ms-transform: rotate(359deg)
94
+ }
95
  }
96
  @keyframes edd-icon-spin {
97
+ 0% {
98
+ transform: rotate(0deg)
99
+ }
100
+ 100% {
101
+ transform: rotate(359deg)
102
+ }
103
  }
104
+
105
+
106
  /* =Checkout Form
107
  -------------------------------------------------------------- */
 
108
  .edd_clearfix:after {
109
+ display: block;
110
+ visibility: hidden;
111
+ float: none;
112
+ clear: both;
113
+ text-indent: -9999px;
114
+ content: ".";
115
  }
116
+
117
  /* Cart Contents */
118
  #edd_checkout_cart {
119
+ text-align: left;
120
+ width: 100%;
121
+ border: none;
122
+ margin: 0 0 21px;
123
+ table-layout: auto;
124
  }
125
  #edd_checkout_cart th,
126
  #edd_checkout_cart td {
127
+ text-align: left;
128
+ border: 1px solid #eee;
129
+ color: #666;
130
+ padding: 0.5em 1.387em;
131
  }
132
  #edd_checkout_cart .edd_cart_header_row th {
133
+ background: #fafafa;
134
+ padding: 1.387em;
135
  }
136
  #edd_checkout_cart .edd_cart_tax_row th,
137
  #edd_checkout_cart .edd_cart_discount_row th {
138
+ background: none;
139
  }
140
  #edd_checkout_cart th {
141
+ font-weight: bold;
142
  }
143
  #edd_checkout_cart td {
144
+ line-height: 25px;
145
+ vertical-align: middle;
146
+ background: #fff;
147
  }
148
  #edd_checkout_cart th.edd_cart_actions,
149
  #edd_checkout_cart td.edd_cart_actions,
150
  #edd_checkout_cart th:last-child,
151
  #edd_checkout_cart td:last-child,
152
  #edd_checkout_cart th.edd_cart_total {
153
+ text-align: right;
154
  }
155
  #edd_checkout_cart td img {
156
+ float: left;
157
+ margin: 0 8px 0 0;
158
+ background: none;
159
+ padding: 0;
160
+ border: none;
161
  }
162
  #edd_checkout_cart input.edd-item-quantity {
163
+ width: 3em;
164
+ padding: 2px;
165
  }
166
  #edd_checkout_cart .edd_discount {
167
+ display: inline-block;
168
+ margin-left: 5px;
169
  }
170
  .edd_discount_remove {
171
+ display: inline-block;
172
+ width: 10px;
173
+ height: 11px;
174
+ background: url(images/xit.gif ) 0 0 no-repeat;
175
+ position: relative;
176
+ top: 3px;
177
  }
178
  .edd_discount_remove:hover {
179
+ background-position: -10px 0;
180
  }
181
  #edd_checkout_cart br {
182
+ display: none;
183
  }
184
  #edd_checkout_cart a.edd-cart-saving-button {
185
+ font-weight: normal;
186
+ text-decoration: none;
187
  }
 
188
 
189
+ /* Checkout Fields */
190
  #edd_checkout_form_wrap legend {
191
+ display: block;
192
+ font-size: 120%;
193
+ line-height: 1;
194
+ font-weight: bold;
195
+ width: 100%;
196
+ margin: 0 0 21px;
197
+ padding: 0;
198
  }
199
  #edd_checkout_form_wrap label {
200
+ font-weight: bold;
201
+ display: block;
202
+ position: relative;
203
+ line-height: 100%;
204
+ font-size: 95%;
205
+ margin: 0 0 5px;
206
  }
207
  #edd_checkout_form_wrap label:after {
208
+ display: block;
209
+ visibility: hidden;
210
+ float: none;
211
+ clear: both;
212
+ height: 0;
213
+ text-indent: -9999px;
214
+ content: ".";
215
  }
216
  #edd_checkout_form_wrap span.edd-description {
217
+ color: #666;
218
+ font-size: 80%;
219
+ display: block;
220
+ margin: 0 0 5px;
221
  }
222
  #edd_checkout_form_wrap input.edd-input,
223
  #edd_checkout_form_wrap textarea.edd-input {
224
+ display: inline-block;
225
+ width: 70%;
226
  }
227
  #edd_checkout_form_wrap select.edd-select {
228
+ display: block;
229
+ width: 60%;
230
  }
231
  #edd_checkout_form_wrap select.edd-select.edd-select-small {
232
+ display: inline;
233
+ width: auto;
234
  }
235
  #edd_checkout_form_wrap input.edd-input.error,
236
  #edd_checkout_form_wrap textarea.edd-input.error {
237
+ border-color: #c4554e;
 
 
 
 
 
238
  }
239
  #edd_checkout_form_wrap > p {
240
+ margin: 0 0 21px;
241
  }
242
  #edd_checkout_form_wrap span.edd-required-indicator {
243
+ color: #b94a48;
244
+ display: inline;
245
  }
246
  #edd_checkout_form_wrap textarea,
247
  #edd_checkout_form_wrap input[type="text"],
248
  #edd_checkout_form_wrap input[type="email"],
249
  #edd_checkout_form_wrap input[type="password"] {
250
+ padding: 4px 6px;
251
  }
252
  #edd_checkout_form_wrap input[type="radio"] {
253
+ border: none;
254
+ margin-right: 5px;
255
  }
256
  #edd_checkout_form_wrap input[type="checkbox"] {
257
+ display: inline-block;
258
+ margin: 0 5px 0 0;
259
+ }
260
+ #edd_checkout_form_wrap input[type="checkbox"] + label,
261
+ #edd_checkout_form_wrap input[type="checkbox"] + label:after {
262
+ display: inline;
263
  }
264
  #edd_checkout_form_wrap .edd-payment-icons {
265
+ height: 32px;
266
+ display: block;
267
+ margin: 0 0 8px;
268
  }
269
  #edd_checkout_form_wrap .edd-payment-icons img.payment-icon {
270
+ max-height: 32px;
271
+ width: auto;
272
+ margin: 0 3px 0 0;
273
+ float: left;
274
+ background: none;
275
+ padding: 0;
276
+ border: none;
277
+ -webkit-box-shadow: none;
278
+ -moz-box-shadow: none;
279
+ box-shadow: none;
280
  }
281
  #edd_checkout_form_wrap #edd-payment-mode-wrap label {
282
+ display: inline-block;
283
+ margin: 0 20px 0 0;
284
  }
285
  #edd_checkout_form_wrap #edd-payment-mode-wrap .edd-payment-mode-label {
286
+ font-weight: bold;
287
+ display: inline-block;
288
+ position: relative;
289
+ margin-bottom: 5px;
290
  }
291
  #edd_checkout_form_wrap fieldset {
292
+ border: 1px solid #eee;
293
+ padding: 1.387em;
294
+ margin: 0 0 21px;
295
  }
296
  #edd_checkout_form_wrap #edd_purchase_submit,
297
  #edd_checkout_form_wrap #edd_discount_code,
298
  #edd_checkout_form_wrap #edd_register_account_fields {
299
+ padding: 0;
300
+ border: none;
301
  }
302
  #edd_checkout_form_wrap fieldset fieldset {
303
+ margin: 0;
304
+ border: none;
305
+ padding: 0;
306
  }
307
  #edd_checkout_form_wrap #edd-login-account-wrap,
308
  #edd_checkout_form_wrap #edd-new-account-wrap,
309
  #edd_checkout_form_wrap #edd_show_discount,
310
  #edd_checkout_form_wrap .edd-cart-adjustment,
311
  #edd_checkout_form_wrap #edd_final_total_wrap {
312
+ background: #fafafa;
313
+ color: #666;
314
+ padding: 0.5em 1.387em;
315
  }
316
  #edd_checkout_form_wrap #edd-discount-code-wrap,
317
  #edd_checkout_form_wrap #edd_final_total_wrap,
318
  #edd_checkout_form_wrap #edd_show_discount {
319
+ border: 1px solid #eee;
320
  }
321
  #edd_checkout_form_wrap .edd-cart-adjustment {
322
+ padding: 1.387em;
323
  }
324
  #edd_checkout_form_wrap .edd-cart-adjustment input.edd-input,
325
  #edd_checkout_form_wrap .edd-cart-adjustment input.edd-submit {
326
+ display: inline-block;
327
  }
328
  #edd_checkout_form_wrap .edd-cart-adjustment input.edd-submit {
329
+ padding: 3px 12px;
330
+ margin-bottom: 2px;
331
  }
332
  #edd_checkout_form_wrap #edd-discount-error-wrap {
333
+ width: 100%;
334
+ display: inline-block;
335
+ margin: 1em 0 0;
336
  }
337
  #edd_checkout_form_wrap #edd-new-account-wrap,
338
  #edd_checkout_form_wrap #edd-login-account-wrap {
339
+ margin: -1.387em -1.387em 21px;
340
+ border-left: none;
341
+ border-right: none;
342
+ border-top: none;
343
  }
344
  #edd_checkout_form_wrap #edd_payment_mode_select {
345
+ margin-bottom: 21px;
346
  }
347
  #edd_checkout_form_wrap fieldset#edd_register_fields #edd_checkout_user_info {
348
+ margin-bottom: 21px;
349
  }
350
  #edd_checkout_form_wrap fieldset#edd_register_account_fields legend {
351
+ padding-top: 11px;
352
  }
353
  #edd_checkout_form_wrap fieldset#edd_register_account_fields p.edd_register_password,
354
  #edd_checkout_form_wrap fieldset#edd_register_account_fields p.edd_login_password {
355
+ margin: 0;
356
  }
357
  #edd_checkout_form_wrap fieldset#edd_cc_fields {
358
+ border: 1px solid #f0f0f0;
359
+ background: #f9f9f9;
360
+ position: relative;
361
  }
362
  #edd_checkout_form_wrap fieldset#edd_cc_fields legend {
363
+ border: none;
364
+ padding: 0;
365
  }
366
  #edd_checkout_form_wrap fieldset p:last-child {
367
+ margin-bottom: 0;
368
  }
369
  #edd_checkout_form_wrap fieldset#edd_cc_fields #edd-card-number-wrap {
370
+ margin-top: 5px;
371
  }
372
  #edd_checkout_form_wrap #edd_purchase_final_total {
373
+ margin: 21px 0;
374
  }
375
  #edd_checkout_form_wrap #edd_purchase_final_total p {
376
+ margin: 0;
377
  }
378
  #edd_secure_site_wrapper {
379
+ padding: 4px 4px 4px 0;
380
+ font-weight: bold;
381
  }
382
  #edd_secure_site_wrapper span.padlock:before {
383
+ content: '\f160';
384
+ display: inline-block;
385
+ -webkit-font-smoothing: antialiased;
386
+ font: normal 20px/1 'dashicons';
387
+ vertical-align: top;
388
  }
389
  #edd_checkout_form_wrap input.edd-input.card-number.valid {
390
+ background-image: url(images/tick.png);
391
+ background-repeat: no-repeat;
392
+ background-position: 98% 50%;
393
  }
394
  #edd_checkout_form_wrap span.exp-divider {
395
+ display: inline;
396
  }
397
  #edd_checkout_form_wrap span.card-type {
398
+ position: absolute;
399
+ top: -2px;
400
+ right: 0;
401
+ width: 43px;
402
+ height: 32px;
403
+ background-size: 43px 32px!important;
404
  }
405
  #edd_checkout_form_wrap span.card-type.off {
406
+ display: none;
407
  }
408
  #edd_checkout_form_wrap span.card-type.visa {
409
+ background: url(images/icons/visa.gif ) no-repeat;
410
  }
411
  #edd_checkout_form_wrap span.card-type.mastercard {
412
+ background: url(images/icons/mastercard.gif ) no-repeat;
413
  }
414
  #edd_checkout_form_wrap span.card-type.discover {
415
+ background: url(images/icons/discover.gif ) no-repeat;
416
  }
417
  #edd_checkout_form_wrap span.card-type.amex {
418
+ background: url(images/icons/americanexpress.gif ) no-repeat;
419
  }
420
  #edd_checkout_form_wrap #edd-discount-loader,
421
  #edd_checkeout_form_wrap .edd-cart-ajax {
422
+ -webkit-box-shadow: none;
423
+ -moz-box-shadow: none;
424
+ box-shadow: none;
425
  }
 
426
  .edd-amazon-profile-wrapper {
427
  font-size: 12px;
428
  }
 
429
  .edd-amazon-profile-name {
430
  font-weight: 600;
431
  }
 
432
  .edd-amazon-logout {
433
  font-size: 10px;
434
  line-height: 12px;
435
  }
 
436
  .edd-amazon-logout a {
437
  cursor: pointer;
438
  }
439
+ #edd-amazon-wallet-box,
440
  #edd-amazon-address-box {
441
+ height: 228px;
442
+ width: 350px;
 
443
  }
444
+ #edd-amazon-address-box {
445
+ margin-bottom: 15px;
 
 
446
  }
447
 
448
  /* Desktop and tablet */
449
  @media only screen and (min-width: 768px) {
450
+ #edd-amazon-address-box,
451
+ #edd-amazon-wallet-box {
452
+ width: 100%;
453
+ height: 228px;
454
+ }
455
  }
456
 
457
+
458
  /* =Ajax Add To Cart Button
459
  -------------------------------------------------------------- */
 
460
  .edd_purchase_submit_wrapper {
461
+ position: relative;
462
  }
463
  .edd_purchase_submit_wrapper a.edd-add-to-cart {
464
+ text-decoration: none;
465
+ display: none;
466
+ position: relative;
467
+ overflow: hidden;
468
  }
469
  .edd_purchase_submit_wrapper a.edd-add-to-cart.edd-has-js {
470
+ display: inline-block;
471
  }
472
  .edd_purchase_submit_wrapper .edd-cart-ajax {
473
+ display: none;
474
+ position: relative;
475
+ left: -35px;
476
  }
477
  .edd-submit.button.edd-ajax-loading {
478
+ padding-right: 30px;
479
  }
480
  .edd-add-to-cart .edd-add-to-cart-label {
481
+ opacity: 1;
482
+ filter: alpha(opacity=100);
483
  }
484
  a.edd-add-to-cart .edd-loading {
485
+ position: absolute;
486
+ left: 50%;
487
+ top: 50%;
488
+ opacity: 0;
489
+ filter: alpha(opacity=0);
490
  }
491
  a.edd-add-to-cart .edd-add-to-cart-label,
492
  a.edd-add-to-cart .edd-loading {
493
+ -webkit-transition: .1s opacity !important;
494
+ -moz-transition: .1s opacity !important;
495
+ -ms-transition: .1s opacity !important;
496
+ -o-transition: .1s opacity !important;
497
+ transition: .1s opacity !important;
498
  }
499
  .edd-add-to-cart[data-edd-loading] .edd-add-to-cart-label {
500
+ opacity: 0;
501
+ filter: alpha(opacity=0);
502
  }
503
  .edd-add-to-cart[data-edd-loading] .edd-loading {
504
+ opacity: 1;
505
+ filter: alpha(opacity=100);
506
  }
507
  .edd-cart-added-alert {
508
+ color: #567622;
509
+ display: block;
510
+ position: absolute;
511
  }
512
+
513
+
514
  /* =Theme Specific styling
515
  -------------------------------------------------------------- */
516
 
517
  /* Twenty Twelve */
 
518
  .edd_form input.edd-input.required,
519
  .edd_form select.edd-select.required {
520
+ color: #000;
521
  }
522
+
523
+
524
  /* =Receipt Page
525
  -------------------------------------------------------------- */
 
526
  body.edd_receipt_page {
527
+ background-color: #fff;
528
+ color: #141412;
529
+ margin: 0;
530
+ font-family: Helvetica, sans-serif;
531
+ font-size: 12px;
532
  }
533
  body.edd_receipt_page:before {
534
+ position: relative;
535
  }
536
  body.edd_receipt_page #edd_receipt_wrapper {
537
+ width: 660px;
538
+ margin: 0 auto;
539
+ padding: 50px 0;
540
  }
541
  body.edd_receipt_page table {
542
+ display: table;
543
+ width: 100%;
544
+ border-bottom: 1px solid #ededed;
545
+ border-collapse: collapse;
546
+ border-spacing: 0;
547
+ font-size: 14px;
548
+ line-height: 2;
549
+ margin: 0 0 20px;
550
  }
551
  body.edd_receipt_page td,
552
  body.edd_receipt_page th {
553
+ display: table-cell;
554
+ text-align: left;
555
+ border-top: 1px solid #ededed;
556
+ padding: 6px 10px;
557
+ font-weight: normal;
558
  }
559
  body.edd_receipt_page th {
560
+ font-weight: bold;
561
+ text-transform: uppercase;
562
  }
563
  body.edd_receipt_page h3 {
564
+ font-size: 22px;
565
+ margin: 40px 0 5px;
566
+ clear: both;
567
+ display: block;
568
+ font-weight: bold;
569
  }
570
  body.edd_receipt_page li {
571
+ list-style: none;
572
  }
573
+
574
+
575
  /* =Purchase Summary Tables
576
  -------------------------------------------------------------- */
 
577
  table#edd_purchase_receipt_products,
578
  table#edd_purchase_receipt {
579
+ width: 100%;
580
  }
581
  table#edd_purchase_receipt_products td,
582
  table#edd_purchase_receipt_products th,
583
  table#edd_purchase_receipt td,
584
  table#edd_purchase_receipt th {
585
+ text-align: left;
586
  }
587
  table#edd_purchase_receipt .edd_receipt_payment_status.pending,
588
  table#edd_purchase_receipt .edd_receipt_payment_status.cancelled,
589
  table#edd_purchase_receipt .edd_receipt_payment_status.revoked,
590
  table#edd_purchase_receipt .edd_receipt_payment_status.failed {
591
+ color: #f73f2e;
592
  }
593
  table#edd_purchase_receipt_products li {
594
+ list-style: none;
595
+ margin: 0 0 8px 10px;
596
  }
597
  table#edd_purchase_receipt ul,
598
  table#edd_purchase_receipt_products ul.edd_purchase_receipt_files {
599
+ margin: 0;
600
+ padding: 0;
601
  }
602
  table#edd_purchase_receipt li.edd_download_file {
603
+ list-style: none;
604
+ margin: 0 0 8px 0;
605
  }
606
  table#edd_purchase_receipt_products .edd_purchase_receipt_product_notes {
607
+ font-style: italic;
608
  }
609
  table#edd_purchase_receipt_products .edd_purchase_receipt_product_name {
610
+ font-weight: bold;
611
  }
612
  table#edd_purchase_receipt_products .edd_bundled_product_name {
613
+ font-style: italic;
614
+ font-weight: bold;
615
  }
616
+
617
+
618
  /* =Purchase History
619
  -------------------------------------------------------------- */
 
620
  #edd_user_history {
621
+ text-align: left;
622
+ width: 100%;
623
+ border-top: 1px solid #f0f0f0;
624
+ border-bottom: none;
625
  }
626
  #edd_user_history th,
627
  #edd_user_history td {
628
+ text-align: left;
629
+ padding: 3px 5px;
630
+ border-bottom: 1px solid #f0f0f0;
631
+ border-top: none;
632
  }
633
  #edd_user_history th {
634
+ font-weight: bold;
635
+ background: #f5f5f5;
636
  }
637
  #edd_user_history td {
638
+ line-height: 25px;
639
+ vertical-align: middle;
640
  }
641
  #edd_user_history .edd_purchase_status.revoked,
642
  #edd_user_history .edd_purchase_status.failed,
643
  #edd_user_history .edd_purchase_status.cancelled,
644
  #edd_user_history .edd_purchase_status.pending {
645
+ color: #f73f2e;
646
  }
647
+
648
+
649
  /* =Registration / login Form
650
  -------------------------------------------------------------- */
 
651
  #edd_register_form .edd-input,
652
+ #edd_login_form .edd-input,
 
 
 
653
  #edd_register_form label,
654
  #edd_login_form label {
655
+ display: inline-block;
656
+ width: 200px;
657
  }
658
+
659
+
660
  /* =Profile Form
661
  -------------------------------------------------------------- */
 
662
  #edd_profile_editor_form p {
663
+ margin-bottom: 8px;
664
  }
665
  #edd_profile_editor_form label {
666
+ display: inline-block;
667
+ width: 200px;
668
  }
669
+
670
+
671
  /* =Alerts
672
  -------------------------------------------------------------- */
 
673
  .edd_added_to_cart_alert {
674
+ padding: 5px;
675
+ font-size: 14px;
676
+ border: 1px solid #046a9e;
677
+ background: #9ecce2;
678
+ color: #333;
679
+ margin: 8px 0;
680
  }
681
  .edd_added_to_cart_alert a.edd_alert_checkout_link {
682
+ color: #000 !important;
683
  }
684
+
685
+
686
  /* =Purchase buttons
687
  -------------------------------------------------------------- */
 
688
  input.edd_submit_plain {
689
+ background: none !important;
690
+ border: none !important;
691
+ padding: 0 !important;
692
+ display: inline;
693
+ cursor: pointer;
694
  }
695
  .single-download .edd_download_purchase_form {
696
+ margin-bottom: 1.387em;
697
  }
698
  .edd_download_purchase_form .edd_download_quantity_wrapper {
699
+ margin: 0 0 0.5em;
700
  }
701
  .edd_download_purchase_form .edd_download_quantity_wrapper .edd-item-quantity {
702
+ width: 75px;
703
  }
704
  .edd_download_purchase_form .edd_price_options {
705
+ margin: 0 0 15px;
706
  }
707
  .edd_download_purchase_form .edd_price_options ul {
708
+ margin: 0;
709
+ padding: 0;
710
+ list-style: none;
711
  }
712
  .edd_download_purchase_form .edd_price_options li {
713
+ display: block;
714
+ padding: 0;
715
+ margin: 0;
716
  }
717
  .edd_download_purchase_form .edd_price_options span {
718
+ display: inline;
719
+ padding: 0;
720
+ margin: 0;
721
  }
722
  .edd_download_purchase_form .edd_price_options .edd_download_quantity_wrapper {
723
+ padding-left: 18px
724
  }
725
  .edd_download_purchase_form .edd_price_options .edd_download_quantity_wrapper * {
726
+ font-size: 80%
727
  }
728
  .edd_download_purchase_form .edd_price_options input.edd-item-quantity {
729
+ display: inline;
730
+ width: 50px;
731
+ max-width: 90%;
732
  }
733
  .edd-submit,
734
  #edd-purchase-button,
735
  input[type="submit"].edd-submit {
736
+ display: inline-block;
737
+ padding: 6px 12px;
738
+ margin: 0;
739
+ font-size: 14px;
740
+ font-weight: normal;
741
+ line-height: 1.428571429;
742
+ text-align: center;
743
+ white-space: nowrap;
744
+ vertical-align: middle;
745
+ cursor: pointer;
746
+ border: 1px solid #cccccc;
747
+ border-radius: 4px;
748
+ -webkit-box-shadow: none;
749
+ -moz-box-shadow: none;
750
+ box-shadow: none;
751
+ -webkit-user-select: none;
752
+ -moz-user-select: none;
753
+ -ms-user-select: none;
754
+ -o-user-select: none;
755
+ user-select: none;
756
  }
757
  .edd-submit.button:focus,
758
  input[type="submit"].edd-submit:focus {
759
+ outline: thin dotted #333;
760
+ outline: 5px auto -webkit-focus-ring-color;
761
+ outline-offset: -2px;
762
  }
763
  input[type="submit"].edd-submit:hover,
764
  input[type="submit"].edd-submit:focus,
765
  .edd-submit.button:hover,
766
  .edd-submit.button:focus {
767
+ color: #333333;
768
+ text-decoration: none;
769
  }
770
  .edd-submit.button:active {
771
+ background-image: none;
772
+ outline: 0;
773
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
774
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
775
  }
776
  .edd-submit.plain {
777
+ padding: 0;
778
  }
 
779
 
780
+ /** Gray (Default) */
781
  .edd-submit.button,
782
  .edd-submit.button,
783
  .edd-submit.button:visited,
784
  .edd-submit.button,
785
  .edd-submit.button.gray {
786
+ color: #333333;
787
+ background: #f0f0f0;
788
+ border-color: #cccccc;
789
  }
790
  .edd-submit.button:hover,
791
  .edd-submit.button:focus,
793
  .edd-submit.button.gray:hover,
794
  .edd-submit.button.gray:focus,
795
  .edd-submit.button.gray:active {
796
+ color: #333333;
797
+ background: #ebebeb;
798
+ border-color: #adadad;
799
  }
800
  .edd-submit.button.gray:active {
801
+ background-image: none;
802
  }
 
803
 
804
+ /** White */
805
  .edd-submit.button.white {
806
+ color: #333333;
807
+ background: #ffffff;
808
+ border-color: #cccccc;
809
  }
810
  .edd-submit.button.white:hover,
811
  .edd-submit.button.white:focus,
812
  .edd-submit.button.white:active {
813
+ color: #333333;
814
+ background: #ebebeb;
815
+ border-color: #adadad;
816
  }
817
  .edd-submit.button.white:active {
818
+ background-image: none;
819
  }
 
820
 
821
+ /** Blue */
822
  .edd-submit.button.blue {
823
+ color: #ffffff;
824
+ background: #428bca;
825
+ border-color: #357ebd;
826
  }
827
  .edd-submit.button.blue:hover,
828
  .edd-submit.button.blue:focus,
829
  .edd-submit.button.blue.active {
830
+ color: #ffffff;
831
+ background: #3276b1;
832
+ border-color: #285e8e;
833
  }
834
  .edd-submit.button.blue.active {
835
+ background-image: none;
836
  }
 
837
 
838
+ /** Red */
839
  .edd-submit.button.red {
840
+ color: #ffffff;
841
+ background: #d9534f;
842
+ border-color: #d43f3a;
843
  }
844
  .edd-submit.button.red:hover,
845
  .edd-submit.button.red:focus,
846
  .edd-submit.button.red:active {
847
+ color: #ffffff;
848
+ background: #d2322d;
849
+ border-color: #ac2925;
850
  }
851
  .edd-submit.button.red:active {
852
+ background-image: none;
853
  }
 
854
 
855
+ /** Green */
856
  .edd-submit.button.green {
857
+ color: #ffffff;
858
+ background: #5cb85c;
859
+ border-color: #4cae4c;
860
  }
861
  .edd-submit.button.green:hover,
862
  .edd-submit.button.green:focus,
863
  .edd-submit.button.green:active {
864
+ color: #ffffff;
865
+ background: #47a447;
866
+ border-color: #398439;
867
  }
868
  .edd-submit.button.green:active {
869
+ background-image: none;
870
  }
 
871
 
872
+ /** Yellow */
873
  .edd-submit.button.yellow {
874
+ color: #ffffff;
875
+ background: #f0ad4e;
876
+ border-color: #eea236;
877
  }
878
  .edd-submit.button.yellow:hover,
879
  .edd-submit.button.yellow:focus,
880
  .edd-submit.button.yellow:active {
881
+ color: #ffffff;
882
+ background: #ed9c28;
883
+ border-color: #d58512;
884
  }
885
  .edd-submit.button.yellow:active {
886
+ background-image: none;
887
  }
 
888
 
889
+ /** Orange */
890
  .edd-submit.button.orange {
891
+ color: #ffffff;
892
+ background: #ed9c28;
893
+ border-color: #e3921e;
894
  }
895
  .edd-submit.button.orange:hover,
896
  .edd-submit.button.orange:focus,
897
  .edd-submit.button.orange:active {
898
+ color: #ffffff;
899
+ background: #e59016;
900
+ border-color: #d58512;
901
  }
902
  .edd-submit.button.orange:active {
903
+ background-image: none;
904
  }
 
905
 
906
+ /** Dark Gray */
907
  .edd-submit.button.dark-gray {
908
+ color: #fff;
909
+ background: #363636;
910
+ border-color: #222;
911
  }
912
  .edd-submit.button.dark-gray:hover,
913
  .edd-submit.button.dark-gray:focus,
914
  .edd-submit.button.dark-gray:active {
915
+ color: #fff;
916
+ background: #333;
917
+ border-color: #adadad;
918
  }
919
  .edd-submit.button.dark-gray:active {
920
+ background-image: none;
921
  }
922
+
923
+
924
  /* =Downloads Shortcode
925
  -------------------------------------------------------------- */
 
926
  .edd_download {
927
+ float: left;
928
  }
 
929
  .edd_download_columns_1 .edd_download { width: 100%; }
930
  .edd_download_columns_2 .edd_download { width: 50%; }
931
+ .edd_download_columns_0 .edd_download,
932
+ .edd_download_columns_3 .edd_download { width: 33%; }
933
  .edd_download_columns_4 .edd_download { width: 25%; }
934
  .edd_download_columns_5 .edd_download { width: 20%; }
935
  .edd_download_columns_6 .edd_download { width: 16.6%; }
 
936
  .edd_download_inner {
937
+ padding: 0 8px 8px;
938
+ margin: 0 0 10px;
939
  }
940
  .edd_download_image {
941
+ max-width: 100%;
942
  }
943
  .edd_download .edd_price {
944
+ margin-bottom: 10px;
945
  }
946
+
947
+
948
  /* =Misc styles
949
  -------------------------------------------------------------- */
 
950
  .edd-cart-ajax {
951
+ margin: 0 8px 0 4px;
952
+ position: relative;
953
+ top: 2px;
954
+ background: none;
955
+ border: none;
956
+ padding: 0;
957
  }
958
  .edd-cart-number-of-items {
959
+ font-style: italic;
960
+ color: grey;
961
  }
962
  .edd-cart-meta.edd_subtotal {
963
+ font-weight: bold;
964
+ font-style: italic;
965
  }
966
  .edd-cart-meta.edd_cart_tax {
967
+ font-size: 1em;
968
+ font-style: italic;
969
  }
970
 
971
  /** Since this is a LI, make sure to not italicize any list item images */
972
  .edd-cart-meta.edd_cart_tax::before {
973
+ font-style: normal;
974
  }
975
 
976
  .edd-cart-meta.edd_total {
977
+ font-weight: bold;
978
  }
979
  .edd-cart-meta {
980
+ padding: 2px 5px;
981
  }
982
  .edd-cart-meta.edd_subtotal,
983
  .edd-cart-meta.edd_total {
984
+ background-color: #f9f9f9;
985
  }
986
 
987
+
988
  /** Old Error Styles */
989
  /* =Error styles
990
  -------------------------------------------------------------- */
 
991
  .edd_errors:not(.edd-alert) {
992
+ -webkit-border-radius: 2px;
993
+ -moz-border-radius: 2px;
994
+ border-radius: 2px;
995
+ border: 1px solid #E6DB55;
996
+ margin: 0 0 21px;
997
+ background: #FFFFE0;
998
+ color: #333;
999
  }
1000
  .edd_error {
1001
+ padding: 10px;
1002
  }
1003
  p.edd_error {
1004
+ margin: 0 !important;
1005
  }
1006
+
1007
+
1008
  /* =Success Message styles
1009
  -------------------------------------------------------------- */
 
1010
  .edd_success:not(.edd-alert) {
1011
+ -webkit-border-radius: 2px;
1012
+ -moz-border-radius: 2px;
1013
+ border-radius: 2px;
1014
+ border: 1px solid #b3ce89;
1015
+ margin: 20px 0;
1016
+ background: #d5eab3;
1017
+ color: #567622;
1018
+ padding: 6px 8px;
1019
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
1020
  }
1021
+
1022
  /** End old Error */
1023
 
1024
  /** Usage Is as Follows */
1027
 
1028
  /* Alert Styles */
1029
  .edd-alert {
1030
+ -webkit-border-radius: 2px;
1031
+ -moz-border-radius: 2px;
1032
+ border-radius: 2px;
1033
+ margin-bottom: 20px;
1034
+ padding: 10px;
1035
+ border: 1px solid transparent;
1036
+ vertical-align: middle;
1037
  }
 
1038
  .edd-alert p {
1039
+ padding: 0;
1040
  }
 
1041
  .edd-alert p:not(:last-child) {
1042
+ margin-bottom: 5px;
1043
  }
 
1044
  .edd-alert p:last-child {
1045
+ margin-bottom: 0;
1046
  }
 
1047
  .edd-alert-error {
1048
+ color: #a94442;
1049
+ background-color: #f2dede;
1050
+ border-color: #ebccd1;
1051
  }
 
1052
  .edd-alert-success {
1053
+ background-color: #dff0d8;
1054
+ border-color: #d6e9c6;
1055
+ color:#3c763d;
1056
  }
 
1057
  .edd-alert-info {
1058
+ color: #31708f;
1059
+ background-color: #d9edf7;
1060
+ border-color: #bce8f1;
1061
  }
 
1062
  .edd-alert-warn {
1063
+ color: #8a6d3b;
1064
+ background-color: #fcf8e3;
1065
+ border-color: #faebcc;
1066
+ }
templates/edd.min.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";@font-face{font-family:EDD-Icons;src:url(fonts/EDD-Icons.eot);src:url(fonts/EDD-Icons.eot?#iefix) format('embedded-opentype'),url(fonts/EDD-Icons.woff) format('woff'),url(fonts/EDD-Icons.ttf) format('truetype'),url(fonts/EDD-Icons.svg#EDD-Icons) format('svg');font-weight:400;font-style:normal}[class*=edd-icon-],[class*=" edd-icon-"]{font-family:EDD-Icons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;width:auto;height:auto;line-height:1;-webkit-font-smoothing:antialiased}[class*=edd-icon-]:before,[class*=" edd-icon-"]:before{text-decoration:inherit;display:inline-block;cursor:default;speak:none}.edd-icon-spinner:before{content:"\71"}.edd-icon-ok:before{content:"\77"}.edd-icon-remove:before{content:"\65"}.edd-icon-remove-circle:before{content:"\72"}.edd-icon-ok-circle:before{content:"\74"}#edd_checkout_form_wrap label:after,.edd_clearfix:after{visibility:hidden;float:none;text-indent:-9999px;content:".";clear:both}.edd-icon-spin{display:inline-block;-moz-animation:edd-icon-spin 2s infinite linear;-o-animation:edd-icon-spin 2s infinite linear;-webkit-animation:edd-icon-spin 2s infinite linear;animation:edd-icon-spin 2s infinite linear}@-moz-keyframes edd-icon-spin{0%{-moz-transform:rotate(0)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes edd-icon-spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes edd-icon-spin{0%{-o-transform:rotate(0)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes edd-icon-spin{0%{-ms-transform:rotate(0)}100%{-ms-transform:rotate(359deg)}}@keyframes edd-icon-spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.edd_clearfix:after{display:block}#edd_checkout_cart{text-align:left;width:100%;border:none;margin:0 0 21px;table-layout:auto}#edd_checkout_cart td,#edd_checkout_cart th{text-align:left;border:1px solid #eee;color:#666;padding:.5em 1.387em}#edd_checkout_cart .edd_cart_header_row th{background:#fafafa;padding:1.387em}#edd_checkout_cart .edd_cart_discount_row th,#edd_checkout_cart .edd_cart_tax_row th{background:0 0}#edd_checkout_cart th{font-weight:700}#edd_checkout_cart td{line-height:25px;vertical-align:middle;background:#fff}#edd_checkout_cart td.edd_cart_actions,#edd_checkout_cart td:last-child,#edd_checkout_cart th.edd_cart_actions,#edd_checkout_cart th.edd_cart_total,#edd_checkout_cart th:last-child{text-align:right}#edd_checkout_cart td img{float:left;margin:0 8px 0 0;background:0 0;padding:0;border:none}#edd_checkout_cart input.edd-item-quantity{width:3em;padding:2px}#edd_checkout_cart .edd_discount{display:inline-block;margin-left:5px}.edd_discount_remove{display:inline-block;width:10px;height:11px;background:url(images/xit.gif) no-repeat;position:relative;top:3px}.edd_discount_remove:hover{background-position:-10px 0}#edd_checkout_cart br{display:none}#edd_checkout_cart a.edd-cart-saving-button{font-weight:400;text-decoration:none}#edd_checkout_form_wrap legend{display:block;font-size:120%;line-height:1;font-weight:700;width:100%;margin:0 0 21px;padding:0}#edd_checkout_form_wrap label{font-weight:700;display:block;position:relative;line-height:100%;font-size:95%;margin:0 0 5px}#edd_checkout_form_wrap label:after{display:block;height:0}#edd_checkout_form_wrap span.edd-description{color:#666;font-size:80%;display:block;margin:0 0 5px}#edd_checkout_form_wrap input.edd-input,#edd_checkout_form_wrap textarea.edd-input{display:inline-block;width:70%}#edd_checkout_form_wrap select.edd-select{display:block;width:60%}#edd_checkout_form_wrap select.edd-select.edd-select-small{display:inline;width:auto}#edd_checkout_form_wrap input.edd-input.error,#edd_checkout_form_wrap textarea.edd-input.error{border-color:#c4554e}#edd_checkout_form_wrap #edd_tax_opt_in_fields label,#edd_checkout_form_wrap #edd_terms_agreement label{display:inline-block;width:auto}#edd_checkout_form_wrap>p{margin:0 0 21px}#edd_checkout_form_wrap span.edd-required-indicator{color:#b94a48;display:inline}#edd_checkout_form_wrap input[type=text],#edd_checkout_form_wrap input[type=email],#edd_checkout_form_wrap input[type=password],#edd_checkout_form_wrap textarea{padding:4px 6px}#edd_checkout_form_wrap input[type=radio]{border:none;margin-right:5px}#edd_checkout_form_wrap input[type=checkbox]{float:left;margin:0 8px 0 0}#edd_checkout_form_wrap .edd-payment-icons{height:32px;display:block;margin:0 0 8px}#edd_checkout_form_wrap .edd-payment-icons img.payment-icon{max-height:32px;width:auto;margin:0 3px 0 0;float:left;background:0 0;padding:0;border:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#edd_checkout_form_wrap #edd-payment-mode-wrap label{display:inline-block;margin:0 20px 0 0}#edd_checkout_form_wrap #edd-payment-mode-wrap .edd-payment-mode-label{font-weight:700;display:inline-block;position:relative;margin-bottom:5px}#edd_checkout_form_wrap fieldset{border:1px solid #eee;padding:1.387em;margin:0 0 21px}#edd_checkout_form_wrap #edd_discount_code,#edd_checkout_form_wrap #edd_purchase_submit,#edd_checkout_form_wrap #edd_register_account_fields{padding:0;border:none}#edd_checkout_form_wrap fieldset fieldset{margin:0;border:none;padding:0}#edd_checkout_form_wrap #edd-login-account-wrap,#edd_checkout_form_wrap #edd-new-account-wrap,#edd_checkout_form_wrap #edd_final_total_wrap,#edd_checkout_form_wrap #edd_show_discount,#edd_checkout_form_wrap .edd-cart-adjustment{background:#fafafa;color:#666;padding:.5em 1.387em}#edd_checkout_form_wrap #edd-discount-code-wrap,#edd_checkout_form_wrap #edd_final_total_wrap,#edd_checkout_form_wrap #edd_show_discount{border:1px solid #eee}#edd_checkout_form_wrap .edd-cart-adjustment{padding:1.387em}#edd_checkout_form_wrap .edd-cart-adjustment input.edd-input,#edd_checkout_form_wrap .edd-cart-adjustment input.edd-submit{display:inline-block}#edd_checkout_form_wrap .edd-cart-adjustment input.edd-submit{padding:3px 12px;margin-bottom:2px}#edd_checkout_form_wrap #edd_purchase_final_total p,#edd_checkout_form_wrap fieldset#edd_register_account_fields p.edd_login_password,#edd_checkout_form_wrap fieldset#edd_register_account_fields p.edd_register_password{margin:0}#edd_checkout_form_wrap #edd-discount-error-wrap{width:100%;display:inline-block;margin:1em 0 0}#edd_checkout_form_wrap #edd-login-account-wrap,#edd_checkout_form_wrap #edd-new-account-wrap{margin:-1.387em -1.387em 21px;border-left:none;border-right:none;border-top:none}#edd_checkout_form_wrap #edd_payment_mode_select,#edd_checkout_form_wrap fieldset#edd_register_fields #edd_checkout_user_info{margin-bottom:21px}#edd_checkout_form_wrap fieldset#edd_register_account_fields legend{padding-top:11px}#edd_checkout_form_wrap fieldset#edd_cc_fields{border:1px solid #f0f0f0;background:#f9f9f9;position:relative}#edd_checkout_form_wrap fieldset#edd_cc_fields legend{border:none;padding:0}#edd_checkout_form_wrap fieldset p:last-child{margin-bottom:0}#edd_checkout_form_wrap fieldset#edd_cc_fields #edd-card-number-wrap{margin-top:5px}#edd_checkout_form_wrap #edd_purchase_final_total{margin:21px 0}#edd_secure_site_wrapper{padding:4px 4px 4px 0;font-weight:700}#edd_secure_site_wrapper span.padlock:before{content:'\f160';display:inline-block;-webkit-font-smoothing:antialiased;font:400 20px/1 dashicons;vertical-align:top}#edd_checkout_form_wrap input.edd-input.card-number.valid{background-image:url(images/tick.png);background-repeat:no-repeat;background-position:98% 50%}#edd_checkout_form_wrap span.exp-divider{display:inline}#edd_checkout_form_wrap span.card-type{position:absolute;top:-2px;right:0;width:43px;height:32px;background-size:43px 32px!important}#edd-amazon-address-box,#edd-amazon-wallet-box{height:228px;width:350px}#edd_checkout_form_wrap span.card-type.off{display:none}#edd_checkout_form_wrap span.card-type.visa{background:url(images/icons/visa.gif) no-repeat}#edd_checkout_form_wrap span.card-type.mastercard{background:url(images/icons/mastercard.gif) no-repeat}#edd_checkout_form_wrap span.card-type.discover{background:url(images/icons/discover.gif) no-repeat}#edd_checkout_form_wrap span.card-type.amex{background:url(images/icons/americanexpress.gif) no-repeat}#edd_checkeout_form_wrap .edd-cart-ajax,#edd_checkout_form_wrap #edd-discount-loader{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.edd-amazon-profile-wrapper{font-size:12px}.edd-amazon-profile-name{font-weight:600}.edd-amazon-logout{font-size:10px;line-height:12px}.edd-amazon-logout a{cursor:pointer}#edd-amazon-address-box{margin-bottom:15px}@media only screen and (min-width:768px){#edd-amazon-address-box,#edd-amazon-wallet-box{width:100%;height:228px}}.edd_purchase_submit_wrapper{position:relative}.edd_purchase_submit_wrapper a.edd-add-to-cart{text-decoration:none;display:none;position:relative;overflow:hidden}.edd_purchase_submit_wrapper a.edd-add-to-cart.edd-has-js{display:inline-block}.edd_purchase_submit_wrapper .edd-cart-ajax{display:none;position:relative;left:-35px}.edd-submit.button.edd-ajax-loading{padding-right:30px}.edd-add-to-cart .edd-add-to-cart-label{opacity:1;filter:alpha(opacity=100)}.edd-add-to-cart[data-edd-loading] .edd-add-to-cart-label,a.edd-add-to-cart .edd-loading{opacity:0;filter:alpha(opacity=0)}a.edd-add-to-cart .edd-loading{position:absolute;left:50%;top:50%}a.edd-add-to-cart .edd-add-to-cart-label,a.edd-add-to-cart .edd-loading{-webkit-transition:.1s opacity!important;-moz-transition:.1s opacity!important;-ms-transition:.1s opacity!important;-o-transition:.1s opacity!important;transition:.1s opacity!important}.edd-add-to-cart[data-edd-loading] .edd-loading{opacity:1;filter:alpha(opacity=100)}.edd-cart-added-alert{color:#567622;display:block;position:absolute}.edd-cart-ajax,body.edd_receipt_page:before{position:relative}.edd_form input.edd-input.required,.edd_form select.edd-select.required{color:#000}body.edd_receipt_page{background-color:#fff;color:#141412;margin:0;font-family:Helvetica,sans-serif;font-size:12px}#edd_user_history .edd_purchase_status.cancelled,#edd_user_history .edd_purchase_status.failed,#edd_user_history .edd_purchase_status.pending,#edd_user_history .edd_purchase_status.revoked,table#edd_purchase_receipt .edd_receipt_payment_status.cancelled,table#edd_purchase_receipt .edd_receipt_payment_status.failed,table#edd_purchase_receipt .edd_receipt_payment_status.pending,table#edd_purchase_receipt .edd_receipt_payment_status.revoked{color:#f73f2e}body.edd_receipt_page #edd_receipt_wrapper{width:660px;margin:0 auto;padding:50px 0}body.edd_receipt_page table{display:table;width:100%;border-bottom:1px solid #ededed;border-collapse:collapse;border-spacing:0;font-size:14px;line-height:2;margin:0 0 20px}body.edd_receipt_page td,body.edd_receipt_page th{display:table-cell;text-align:left;border-top:1px solid #ededed;padding:6px 10px;font-weight:400}body.edd_receipt_page th{font-weight:700;text-transform:uppercase}body.edd_receipt_page h3{font-size:22px;margin:40px 0 5px;clear:both;display:block;font-weight:700}#edd_login_form .edd-input,#edd_login_form label,#edd_profile_editor_form label,#edd_register_form .edd-input,#edd_register_form label{display:inline-block;width:200px}body.edd_receipt_page li{list-style:none}table#edd_purchase_receipt,table#edd_purchase_receipt_products{width:100%}table#edd_purchase_receipt td,table#edd_purchase_receipt th,table#edd_purchase_receipt_products td,table#edd_purchase_receipt_products th{text-align:left}table#edd_purchase_receipt_products li{list-style:none;margin:0 0 8px 10px}table#edd_purchase_receipt ul,table#edd_purchase_receipt_products ul.edd_purchase_receipt_files{margin:0;padding:0}table#edd_purchase_receipt li.edd_download_file{list-style:none;margin:0 0 8px}table#edd_purchase_receipt_products .edd_purchase_receipt_product_notes{font-style:italic}table#edd_purchase_receipt_products .edd_purchase_receipt_product_name{font-weight:700}table#edd_purchase_receipt_products .edd_bundled_product_name{font-style:italic;font-weight:700}#edd_user_history{text-align:left;width:100%;border-top:1px solid #f0f0f0;border-bottom:none}#edd_user_history td,#edd_user_history th{text-align:left;padding:3px 5px;border-bottom:1px solid #f0f0f0;border-top:none}#edd_user_history th{font-weight:700;background:#f5f5f5}#edd_user_history td{line-height:25px;vertical-align:middle}#edd_profile_editor_form p{margin-bottom:8px}.edd_added_to_cart_alert{padding:5px;font-size:14px;border:1px solid #046a9e;background:#9ecce2;color:#333;margin:8px 0}.edd_added_to_cart_alert a.edd_alert_checkout_link{color:#000!important}input.edd_submit_plain{background:0 0!important;border:none!important;padding:0!important;display:inline;cursor:pointer}.single-download .edd_download_purchase_form{margin-bottom:1.387em}.edd_download_purchase_form .edd_download_quantity_wrapper{margin:0 0 .5em}.edd_download_purchase_form .edd_download_quantity_wrapper .edd-item-quantity{width:75px}.edd_download_purchase_form .edd_price_options{margin:0 0 15px}.edd_download_purchase_form .edd_price_options ul{margin:0;padding:0;list-style:none}.edd_download_purchase_form .edd_price_options li{display:block;padding:0;margin:0}.edd_download_purchase_form .edd_price_options span{display:inline;padding:0;margin:0}.edd_download_purchase_form .edd_price_options .edd_download_quantity_wrapper{padding-left:18px}.edd_download_purchase_form .edd_price_options .edd_download_quantity_wrapper *{font-size:80%}.edd_download_purchase_form .edd_price_options input.edd-item-quantity{display:inline;width:50px;max-width:90%}#edd-purchase-button,.edd-submit,input[type=submit].edd-submit{display:inline-block;padding:6px 12px;margin:0;font-size:14px;font-weight:400;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.edd-submit.button:focus,input[type=submit].edd-submit:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.edd-submit.button:focus,.edd-submit.button:hover,input[type=submit].edd-submit:focus,input[type=submit].edd-submit:hover{color:#333;text-decoration:none}.edd-submit.button:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.edd-submit.plain{padding:0}.edd-submit.button,.edd-submit.button.gray,.edd-submit.button:visited{color:#333;background:#f0f0f0;border-color:#ccc}.edd-submit.button.gray:active,.edd-submit.button.gray:focus,.edd-submit.button.gray:hover,.edd-submit.button:active,.edd-submit.button:focus,.edd-submit.button:hover{color:#333;background:#ebebeb;border-color:#adadad}.edd-submit.button.gray:active{background-image:none}.edd-submit.button.white{color:#333;background:#fff;border-color:#ccc}.edd-submit.button.white:active,.edd-submit.button.white:focus,.edd-submit.button.white:hover{color:#333;background:#ebebeb;border-color:#adadad}.edd-submit.button.white:active{background-image:none}.edd-submit.button.blue{color:#fff;background:#428bca;border-color:#357ebd}.edd-submit.button.blue.active,.edd-submit.button.blue:focus,.edd-submit.button.blue:hover{color:#fff;background:#3276b1;border-color:#285e8e}.edd-submit.button.blue.active{background-image:none}.edd-submit.button.red{color:#fff;background:#d9534f;border-color:#d43f3a}.edd-submit.button.red:active,.edd-submit.button.red:focus,.edd-submit.button.red:hover{color:#fff;background:#d2322d;border-color:#ac2925}.edd-submit.button.red:active{background-image:none}.edd-submit.button.green{color:#fff;background:#5cb85c;border-color:#4cae4c}.edd-submit.button.green:active,.edd-submit.button.green:focus,.edd-submit.button.green:hover{color:#fff;background:#47a447;border-color:#398439}.edd-submit.button.green:active{background-image:none}.edd-submit.button.yellow{color:#fff;background:#f0ad4e;border-color:#eea236}.edd-submit.button.yellow:active,.edd-submit.button.yellow:focus,.edd-submit.button.yellow:hover{color:#fff;background:#ed9c28;border-color:#d58512}.edd-submit.button.yellow:active{background-image:none}.edd-submit.button.orange{color:#fff;background:#ed9c28;border-color:#e3921e}.edd-submit.button.orange:active,.edd-submit.button.orange:focus,.edd-submit.button.orange:hover{color:#fff;background:#e59016;border-color:#d58512}.edd-submit.button.orange:active{background-image:none}.edd-submit.button.dark-gray{color:#fff;background:#363636;border-color:#222}.edd-submit.button.dark-gray:active,.edd-submit.button.dark-gray:focus,.edd-submit.button.dark-gray:hover{color:#fff;background:#333;border-color:#adadad}.edd-submit.button.dark-gray:active{background-image:none}.edd_download{float:left}.edd_download_columns_1 .edd_download{width:100%}.edd_download_columns_2 .edd_download{width:50%}.edd_download_columns_0 .edd_download,.edd_download_columns_3 .edd_download{width:33%}.edd_download_columns_4 .edd_download{width:25%}.edd_download_columns_5 .edd_download{width:20%}.edd_download_columns_6 .edd_download{width:16.6%}.edd_download_inner{padding:0 8px 8px;margin:0 0 10px}.edd_download_image{max-width:100%}.edd_download .edd_price{margin-bottom:10px}.edd-cart-ajax{margin:0 8px 0 4px;top:2px;background:0 0;border:none;padding:0}.edd-cart-number-of-items{font-style:italic;color:grey}.edd-cart-meta.edd_subtotal{font-weight:700;font-style:italic}.edd-cart-meta.edd_cart_tax{font-size:1em;font-style:italic}.edd-cart-meta.edd_cart_tax::before{font-style:normal}.edd-cart-meta.edd_total{font-weight:700}.edd-cart-meta{padding:2px 5px}.edd-cart-meta.edd_subtotal,.edd-cart-meta.edd_total{background-color:#f9f9f9}.edd_errors:not(.edd-alert){-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #E6DB55;margin:0 0 21px;background:#FFFFE0;color:#333}.edd_error{padding:10px}p.edd_error{margin:0!important}.edd_success:not(.edd-alert){-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #b3ce89;margin:20px 0;background:#d5eab3;color:#567622;padding:6px 8px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}.edd-alert{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;margin-bottom:20px;padding:10px;border:1px solid transparent;vertical-align:middle}.edd-alert p{padding:0}.edd-alert p:not(:last-child){margin-bottom:5px}.edd-alert p:last-child{margin-bottom:0}.edd-alert-error{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.edd-alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.edd-alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.edd-alert-warn{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}
1
+ @charset "UTF-8";@font-face{font-family:EDD-Icons;src:url(fonts/EDD-Icons.eot);src:url(fonts/EDD-Icons.eot?#iefix) format('embedded-opentype'),url(fonts/EDD-Icons.woff) format('woff'),url(fonts/EDD-Icons.ttf) format('truetype'),url(fonts/EDD-Icons.svg#EDD-Icons) format('svg');font-weight:400;font-style:normal}[class*=edd-icon-],[class*=" edd-icon-"]{font-family:EDD-Icons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;width:auto;height:auto;line-height:1;-webkit-font-smoothing:antialiased}[class*=edd-icon-]:before,[class*=" edd-icon-"]:before{text-decoration:inherit;display:inline-block;cursor:default;speak:none}.edd-icon-spinner:before{content:"\71"}.edd-icon-ok:before{content:"\77"}.edd-icon-remove:before{content:"\65"}.edd-icon-remove-circle:before{content:"\72"}.edd-icon-ok-circle:before{content:"\74"}#edd_checkout_form_wrap label:after,.edd_clearfix:after{visibility:hidden;float:none;text-indent:-9999px;content:".";clear:both}.edd-icon-spin{display:inline-block;-moz-animation:edd-icon-spin 2s infinite linear;-o-animation:edd-icon-spin 2s infinite linear;-webkit-animation:edd-icon-spin 2s infinite linear;animation:edd-icon-spin 2s infinite linear}@-moz-keyframes edd-icon-spin{0%{-moz-transform:rotate(0)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes edd-icon-spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes edd-icon-spin{0%{-o-transform:rotate(0)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes edd-icon-spin{0%{-ms-transform:rotate(0)}100%{-ms-transform:rotate(359deg)}}@keyframes edd-icon-spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.edd_clearfix:after{display:block}#edd_checkout_cart{text-align:left;width:100%;border:none;margin:0 0 21px;table-layout:auto}#edd_checkout_cart td,#edd_checkout_cart th{text-align:left;border:1px solid #eee;color:#666;padding:.5em 1.387em}#edd_checkout_cart .edd_cart_header_row th{background:#fafafa;padding:1.387em}#edd_checkout_cart .edd_cart_discount_row th,#edd_checkout_cart .edd_cart_tax_row th{background:0 0}#edd_checkout_cart th{font-weight:700}#edd_checkout_cart td{line-height:25px;vertical-align:middle;background:#fff}#edd_checkout_cart td.edd_cart_actions,#edd_checkout_cart td:last-child,#edd_checkout_cart th.edd_cart_actions,#edd_checkout_cart th.edd_cart_total,#edd_checkout_cart th:last-child{text-align:right}#edd_checkout_cart td img{float:left;margin:0 8px 0 0;background:0 0;padding:0;border:none}#edd_checkout_cart input.edd-item-quantity{width:3em;padding:2px}#edd_checkout_cart .edd_discount{display:inline-block;margin-left:5px}.edd_discount_remove{display:inline-block;width:10px;height:11px;background:url(images/xit.gif) no-repeat;position:relative;top:3px}.edd_discount_remove:hover{background-position:-10px 0}#edd_checkout_cart br{display:none}#edd_checkout_cart a.edd-cart-saving-button{font-weight:400;text-decoration:none}#edd_checkout_form_wrap legend{display:block;font-size:120%;line-height:1;font-weight:700;width:100%;margin:0 0 21px;padding:0}#edd_checkout_form_wrap label{font-weight:700;display:block;position:relative;line-height:100%;font-size:95%;margin:0 0 5px}#edd_checkout_form_wrap label:after{display:block;height:0}#edd_checkout_form_wrap span.edd-description{color:#666;font-size:80%;display:block;margin:0 0 5px}#edd_checkout_form_wrap input.edd-input,#edd_checkout_form_wrap textarea.edd-input{display:inline-block;width:70%}#edd_checkout_form_wrap select.edd-select{display:block;width:60%}#edd_checkout_form_wrap select.edd-select.edd-select-small{display:inline;width:auto}#edd_checkout_form_wrap input.edd-input.error,#edd_checkout_form_wrap textarea.edd-input.error{border-color:#c4554e}#edd_checkout_form_wrap>p{margin:0 0 21px}#edd_checkout_form_wrap span.edd-required-indicator{color:#b94a48;display:inline}#edd_checkout_form_wrap input[type=text],#edd_checkout_form_wrap input[type=email],#edd_checkout_form_wrap input[type=password],#edd_checkout_form_wrap textarea{padding:4px 6px}#edd_checkout_form_wrap input[type=radio]{border:none;margin-right:5px}#edd_checkout_form_wrap input[type=checkbox]{display:inline-block;margin:0 5px 0 0}#edd_checkout_form_wrap input[type=checkbox]+label,#edd_checkout_form_wrap input[type=checkbox]+label:after{display:inline}#edd_checkout_form_wrap .edd-payment-icons{height:32px;display:block;margin:0 0 8px}#edd_checkout_form_wrap .edd-payment-icons img.payment-icon{max-height:32px;width:auto;margin:0 3px 0 0;float:left;background:0 0;padding:0;border:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#edd_checkout_form_wrap #edd-payment-mode-wrap label{display:inline-block;margin:0 20px 0 0}#edd_checkout_form_wrap #edd-payment-mode-wrap .edd-payment-mode-label{font-weight:700;display:inline-block;position:relative;margin-bottom:5px}#edd_checkout_form_wrap fieldset{border:1px solid #eee;padding:1.387em;margin:0 0 21px}#edd_checkout_form_wrap #edd_discount_code,#edd_checkout_form_wrap #edd_purchase_submit,#edd_checkout_form_wrap #edd_register_account_fields{padding:0;border:none}#edd_checkout_form_wrap fieldset fieldset{margin:0;border:none;padding:0}#edd_checkout_form_wrap #edd-login-account-wrap,#edd_checkout_form_wrap #edd-new-account-wrap,#edd_checkout_form_wrap #edd_final_total_wrap,#edd_checkout_form_wrap #edd_show_discount,#edd_checkout_form_wrap .edd-cart-adjustment{background:#fafafa;color:#666;padding:.5em 1.387em}#edd_checkout_form_wrap #edd-discount-code-wrap,#edd_checkout_form_wrap #edd_final_total_wrap,#edd_checkout_form_wrap #edd_show_discount{border:1px solid #eee}#edd_checkout_form_wrap .edd-cart-adjustment{padding:1.387em}#edd_checkout_form_wrap .edd-cart-adjustment input.edd-input,#edd_checkout_form_wrap .edd-cart-adjustment input.edd-submit{display:inline-block}#edd_checkout_form_wrap .edd-cart-adjustment input.edd-submit{padding:3px 12px;margin-bottom:2px}#edd_checkout_form_wrap #edd_purchase_final_total p,#edd_checkout_form_wrap fieldset#edd_register_account_fields p.edd_login_password,#edd_checkout_form_wrap fieldset#edd_register_account_fields p.edd_register_password{margin:0}#edd_checkout_form_wrap #edd-discount-error-wrap{width:100%;display:inline-block;margin:1em 0 0}#edd_checkout_form_wrap #edd-login-account-wrap,#edd_checkout_form_wrap #edd-new-account-wrap{margin:-1.387em -1.387em 21px;border-left:none;border-right:none;border-top:none}#edd_checkout_form_wrap #edd_payment_mode_select,#edd_checkout_form_wrap fieldset#edd_register_fields #edd_checkout_user_info{margin-bottom:21px}#edd_checkout_form_wrap fieldset#edd_register_account_fields legend{padding-top:11px}#edd_checkout_form_wrap fieldset#edd_cc_fields{border:1px solid #f0f0f0;background:#f9f9f9;position:relative}#edd_checkout_form_wrap fieldset#edd_cc_fields legend{border:none;padding:0}#edd_checkout_form_wrap fieldset p:last-child{margin-bottom:0}#edd_checkout_form_wrap fieldset#edd_cc_fields #edd-card-number-wrap{margin-top:5px}#edd_checkout_form_wrap #edd_purchase_final_total{margin:21px 0}#edd_secure_site_wrapper{padding:4px 4px 4px 0;font-weight:700}#edd_secure_site_wrapper span.padlock:before{content:'\f160';display:inline-block;-webkit-font-smoothing:antialiased;font:400 20px/1 dashicons;vertical-align:top}#edd_checkout_form_wrap input.edd-input.card-number.valid{background-image:url(images/tick.png);background-repeat:no-repeat;background-position:98% 50%}#edd_checkout_form_wrap span.exp-divider{display:inline}#edd_checkout_form_wrap span.card-type{position:absolute;top:-2px;right:0;width:43px;height:32px;background-size:43px 32px!important}#edd_checkout_form_wrap span.card-type.off{display:none}#edd_checkout_form_wrap span.card-type.visa{background:url(images/icons/visa.gif) no-repeat}#edd_checkout_form_wrap span.card-type.mastercard{background:url(images/icons/mastercard.gif) no-repeat}#edd_checkout_form_wrap span.card-type.discover{background:url(images/icons/discover.gif) no-repeat}#edd_checkout_form_wrap span.card-type.amex{background:url(images/icons/americanexpress.gif) no-repeat}#edd_checkeout_form_wrap .edd-cart-ajax,#edd_checkout_form_wrap #edd-discount-loader{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.edd-amazon-profile-wrapper{font-size:12px}.edd-amazon-profile-name{font-weight:600}.edd-amazon-logout{font-size:10px;line-height:12px}.edd-amazon-logout a{cursor:pointer}#edd-amazon-address-box,#edd-amazon-wallet-box{height:228px;width:350px}#edd-amazon-address-box{margin-bottom:15px}@media only screen and (min-width:768px){#edd-amazon-address-box,#edd-amazon-wallet-box{width:100%;height:228px}}.edd_purchase_submit_wrapper{position:relative}.edd_purchase_submit_wrapper a.edd-add-to-cart{text-decoration:none;display:none;position:relative;overflow:hidden}.edd_purchase_submit_wrapper a.edd-add-to-cart.edd-has-js{display:inline-block}.edd_purchase_submit_wrapper .edd-cart-ajax{display:none;position:relative;left:-35px}.edd-submit.button.edd-ajax-loading{padding-right:30px}.edd-add-to-cart .edd-add-to-cart-label{opacity:1;filter:alpha(opacity=100)}.edd-add-to-cart[data-edd-loading] .edd-add-to-cart-label,a.edd-add-to-cart .edd-loading{opacity:0;filter:alpha(opacity=0)}a.edd-add-to-cart .edd-loading{position:absolute;left:50%;top:50%}a.edd-add-to-cart .edd-add-to-cart-label,a.edd-add-to-cart .edd-loading{-webkit-transition:.1s opacity!important;-moz-transition:.1s opacity!important;-ms-transition:.1s opacity!important;-o-transition:.1s opacity!important;transition:.1s opacity!important}.edd-add-to-cart[data-edd-loading] .edd-loading{opacity:1;filter:alpha(opacity=100)}.edd-cart-added-alert{color:#567622;display:block;position:absolute}.edd-cart-ajax,body.edd_receipt_page:before{position:relative}.edd_form input.edd-input.required,.edd_form select.edd-select.required{color:#000}body.edd_receipt_page{background-color:#fff;color:#141412;margin:0;font-family:Helvetica,sans-serif;font-size:12px}#edd_user_history .edd_purchase_status.cancelled,#edd_user_history .edd_purchase_status.failed,#edd_user_history .edd_purchase_status.pending,#edd_user_history .edd_purchase_status.revoked,table#edd_purchase_receipt .edd_receipt_payment_status.cancelled,table#edd_purchase_receipt .edd_receipt_payment_status.failed,table#edd_purchase_receipt .edd_receipt_payment_status.pending,table#edd_purchase_receipt .edd_receipt_payment_status.revoked{color:#f73f2e}body.edd_receipt_page #edd_receipt_wrapper{width:660px;margin:0 auto;padding:50px 0}body.edd_receipt_page table{display:table;width:100%;border-bottom:1px solid #ededed;border-collapse:collapse;border-spacing:0;font-size:14px;line-height:2;margin:0 0 20px}body.edd_receipt_page td,body.edd_receipt_page th{display:table-cell;text-align:left;border-top:1px solid #ededed;padding:6px 10px;font-weight:400}body.edd_receipt_page th{font-weight:700;text-transform:uppercase}body.edd_receipt_page h3{font-size:22px;margin:40px 0 5px;clear:both;display:block;font-weight:700}#edd_login_form .edd-input,#edd_login_form label,#edd_profile_editor_form label,#edd_register_form .edd-input,#edd_register_form label{display:inline-block;width:200px}body.edd_receipt_page li{list-style:none}table#edd_purchase_receipt,table#edd_purchase_receipt_products{width:100%}table#edd_purchase_receipt td,table#edd_purchase_receipt th,table#edd_purchase_receipt_products td,table#edd_purchase_receipt_products th{text-align:left}table#edd_purchase_receipt_products li{list-style:none;margin:0 0 8px 10px}table#edd_purchase_receipt ul,table#edd_purchase_receipt_products ul.edd_purchase_receipt_files{margin:0;padding:0}table#edd_purchase_receipt li.edd_download_file{list-style:none;margin:0 0 8px}table#edd_purchase_receipt_products .edd_purchase_receipt_product_notes{font-style:italic}table#edd_purchase_receipt_products .edd_purchase_receipt_product_name{font-weight:700}table#edd_purchase_receipt_products .edd_bundled_product_name{font-style:italic;font-weight:700}#edd_user_history{text-align:left;width:100%;border-top:1px solid #f0f0f0;border-bottom:none}#edd_user_history td,#edd_user_history th{text-align:left;padding:3px 5px;border-bottom:1px solid #f0f0f0;border-top:none}#edd_user_history th{font-weight:700;background:#f5f5f5}#edd_user_history td{line-height:25px;vertical-align:middle}#edd_profile_editor_form p{margin-bottom:8px}.edd_added_to_cart_alert{padding:5px;font-size:14px;border:1px solid #046a9e;background:#9ecce2;color:#333;margin:8px 0}.edd_added_to_cart_alert a.edd_alert_checkout_link{color:#000!important}input.edd_submit_plain{background:0 0!important;border:none!important;padding:0!important;display:inline;cursor:pointer}.single-download .edd_download_purchase_form{margin-bottom:1.387em}.edd_download_purchase_form .edd_download_quantity_wrapper{margin:0 0 .5em}.edd_download_purchase_form .edd_download_quantity_wrapper .edd-item-quantity{width:75px}.edd_download_purchase_form .edd_price_options{margin:0 0 15px}.edd_download_purchase_form .edd_price_options ul{margin:0;padding:0;list-style:none}.edd_download_purchase_form .edd_price_options li{display:block;padding:0;margin:0}.edd_download_purchase_form .edd_price_options span{display:inline;padding:0;margin:0}.edd_download_purchase_form .edd_price_options .edd_download_quantity_wrapper{padding-left:18px}.edd_download_purchase_form .edd_price_options .edd_download_quantity_wrapper *{font-size:80%}.edd_download_purchase_form .edd_price_options input.edd-item-quantity{display:inline;width:50px;max-width:90%}#edd-purchase-button,.edd-submit,input[type=submit].edd-submit{display:inline-block;padding:6px 12px;margin:0;font-size:14px;font-weight:400;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.edd-submit.button:focus,input[type=submit].edd-submit:focus{outline:#333 dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.edd-submit.button:focus,.edd-submit.button:hover,input[type=submit].edd-submit:focus,input[type=submit].edd-submit:hover{color:#333;text-decoration:none}.edd-submit.button:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.edd-submit.plain{padding:0}.edd-submit.button,.edd-submit.button.gray,.edd-submit.button:visited{color:#333;background:#f0f0f0;border-color:#ccc}.edd-submit.button.gray:active,.edd-submit.button.gray:focus,.edd-submit.button.gray:hover,.edd-submit.button:active,.edd-submit.button:focus,.edd-submit.button:hover{color:#333;background:#ebebeb;border-color:#adadad}.edd-submit.button.gray:active{background-image:none}.edd-submit.button.white{color:#333;background:#fff;border-color:#ccc}.edd-submit.button.white:active,.edd-submit.button.white:focus,.edd-submit.button.white:hover{color:#333;background:#ebebeb;border-color:#adadad}.edd-submit.button.white:active{background-image:none}.edd-submit.button.blue{color:#fff;background:#428bca;border-color:#357ebd}.edd-submit.button.blue.active,.edd-submit.button.blue:focus,.edd-submit.button.blue:hover{color:#fff;background:#3276b1;border-color:#285e8e}.edd-submit.button.blue.active{background-image:none}.edd-submit.button.red{color:#fff;background:#d9534f;border-color:#d43f3a}.edd-submit.button.red:active,.edd-submit.button.red:focus,.edd-submit.button.red:hover{color:#fff;background:#d2322d;border-color:#ac2925}.edd-submit.button.red:active{background-image:none}.edd-submit.button.green{color:#fff;background:#5cb85c;border-color:#4cae4c}.edd-submit.button.green:active,.edd-submit.button.green:focus,.edd-submit.button.green:hover{color:#fff;background:#47a447;border-color:#398439}.edd-submit.button.green:active{background-image:none}.edd-submit.button.yellow{color:#fff;background:#f0ad4e;border-color:#eea236}.edd-submit.button.yellow:active,.edd-submit.button.yellow:focus,.edd-submit.button.yellow:hover{color:#fff;background:#ed9c28;border-color:#d58512}.edd-submit.button.yellow:active{background-image:none}.edd-submit.button.orange{color:#fff;background:#ed9c28;border-color:#e3921e}.edd-submit.button.orange:active,.edd-submit.button.orange:focus,.edd-submit.button.orange:hover{color:#fff;background:#e59016;border-color:#d58512}.edd-submit.button.orange:active{background-image:none}.edd-submit.button.dark-gray{color:#fff;background:#363636;border-color:#222}.edd-submit.button.dark-gray:active,.edd-submit.button.dark-gray:focus,.edd-submit.button.dark-gray:hover{color:#fff;background:#333;border-color:#adadad}.edd-submit.button.dark-gray:active{background-image:none}.edd_download{float:left}.edd_download_columns_1 .edd_download{width:100%}.edd_download_columns_2 .edd_download{width:50%}.edd_download_columns_0 .edd_download,.edd_download_columns_3 .edd_download{width:33%}.edd_download_columns_4 .edd_download{width:25%}.edd_download_columns_5 .edd_download{width:20%}.edd_download_columns_6 .edd_download{width:16.6%}.edd_download_inner{padding:0 8px 8px;margin:0 0 10px}.edd_download_image{max-width:100%}.edd_download .edd_price{margin-bottom:10px}.edd-cart-ajax{margin:0 8px 0 4px;top:2px;background:0 0;border:none;padding:0}.edd-cart-number-of-items{font-style:italic;color:grey}.edd-cart-meta.edd_subtotal{font-weight:700;font-style:italic}.edd-cart-meta.edd_cart_tax{font-size:1em;font-style:italic}.edd-cart-meta.edd_cart_tax::before{font-style:normal}.edd-cart-meta.edd_total{font-weight:700}.edd-cart-meta{padding:2px 5px}.edd-cart-meta.edd_subtotal,.edd-cart-meta.edd_total{background-color:#f9f9f9}.edd_errors:not(.edd-alert){-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #E6DB55;margin:0 0 21px;background:#FFFFE0;color:#333}.edd_error{padding:10px}p.edd_error{margin:0!important}.edd_success:not(.edd-alert){-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;border:1px solid #b3ce89;margin:20px 0;background:#d5eab3;color:#567622;padding:6px 8px;box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}.edd-alert{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;margin-bottom:20px;padding:10px;border:1px solid transparent;vertical-align:middle}.edd-alert p{padding:0}.edd-alert p:not(:last-child){margin-bottom:5px}.edd-alert p:last-child{margin-bottom:0}.edd-alert-error{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.edd-alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.edd-alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.edd-alert-warn{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}