Easy Digital Downloads - Version 2.9.9

Version Description

Download this release

Release Info

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

Code changes from version 2.9.8 to 2.9.9

assets/js/edd-ajax.js CHANGED
@@ -437,7 +437,10 @@ jQuery(document).ready(function ($) {
437
  field_name = 'edd_address_state';
438
  }
439
 
440
- if( 'card_state' != $this.attr('id') ) {
 
 
 
441
  var nonce = $(this).data('nonce');
442
 
443
  // If the country field has changed, we need to update the state/province field
437
  field_name = 'edd_address_state';
438
  }
439
 
440
+ var state_inputs = document.getElementById('card_state');
441
+
442
+ // If the country is being changed, and there is a state field being shown...
443
+ if( 'card_state' != $this.attr('id') && null != state_inputs ) {
444
  var nonce = $(this).data('nonce');
445
 
446
  // If the country field has changed, we need to update the state/province field
assets/js/edd-ajax.min.js CHANGED
@@ -1 +1 @@
1
- var edd_scripts;function edd_load_gateway(payment_mode){jQuery(".edd-cart-ajax").show(),jQuery("#edd_purchase_form_wrap").html('<span class="edd-loading-ajax edd-loading"></span>');var nonce=jQuery("#edd-gateway-"+payment_mode).data(payment_mode+"-nonce"),url=edd_scripts.ajaxurl;0<url.indexOf("?")?url+="&":url+="?",url=url+"payment-mode="+payment_mode,jQuery.post(url,{action:"edd_load_gateway",edd_payment_mode:payment_mode,nonce:nonce},function(response){jQuery("#edd_purchase_form_wrap").html(response),jQuery(".edd-no-js").hide(),jQuery("body").trigger("edd_gateway_loaded",[payment_mode])})}jQuery(document).ready(function($){if($(".edd-no-js").hide(),$("a.edd-add-to-cart").addClass("edd-has-js"),$(document.body).on("click.eddRemoveFromCart",".edd-remove-from-cart",function(event){var $this=$(this),item=$this.data("cart-item"),action=$this.data("action"),id=$this.data("download-id"),nonce=$this.data("nonce"),data={action:action,cart_item:item,nonce:nonce};return $.ajax({type:"POST",data:data,dataType:"json",url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(response){if(response.removed){if(parseInt(edd_scripts.position_in_cart,10)===parseInt(item,10)||edd_scripts.has_purchase_links)return window.location=window.location,!1;$(".edd-cart").each(function(){$(this).find("[data-cart-item='"+item+"']").parent().remove()}),$(".edd-cart").each(function(){var cart_item_counter=0;$(this).find("[data-cart-item]").each(function(){$(this).attr("data-cart-item",cart_item_counter),cart_item_counter+=1})}),$("[id^=edd_purchase_"+id+"]").length&&($("[id^=edd_purchase_"+id+"] .edd_go_to_checkout").hide(),$("[id^=edd_purchase_"+id+"] a.edd-add-to-cart").show().removeAttr("data-edd-loading"),"1"==edd_scripts.quantities_enabled&&$("[id^=edd_purchase_"+id+"] .edd_download_quantity_wrapper").show()),$("span.edd-cart-quantity").text(response.cart_quantity),$(document.body).trigger("edd_quantity_updated",[response.cart_quantity]),edd_scripts.taxes_enabled&&($(".cart_item.edd_subtotal span").html(response.subtotal),$(".cart_item.edd_cart_tax span").html(response.tax)),$(".cart_item.edd_total span").html(response.total),0==response.cart_quantity&&($(".cart_item.edd_subtotal,.edd-cart-number-of-items,.cart_item.edd_checkout,.cart_item.edd_cart_tax,.cart_item.edd_total").hide(),$(".edd-cart").each(function(){var cart_wrapper=$(this).parent();cart_wrapper&&(cart_wrapper.addClass("cart-empty"),cart_wrapper.removeClass("cart-not-empty")),$(this).append('<li class="cart_item empty">'+edd_scripts.empty_cart_message+"</li>")})),$(document.body).trigger("edd_cart_item_removed",[response])}}}).fail(function(response){window.console&&window.console.log&&console.log(response)}).done(function(response){}),!1}),$(document.body).on("click.eddAddToCart",".edd-add-to-cart",function(e){e.preventDefault();var $this=$(this),form=$this.closest("form");$this.prop("disabled",!0);$this.find(".edd-loading");var container=$this.closest("div");$this.attr("data-edd-loading","");form=$this.parents("form").last();var download=$this.data("download-id"),variable_price=$this.data("variable-price"),price_mode=$this.data("price-mode"),nonce=$this.data("nonce"),item_price_ids=[],free_items=!0;if("yes"==variable_price)if(0<form.find(".edd_price_option_"+download+'[type="hidden"]').length)item_price_ids[0]=$(".edd_price_option_"+download,form).val(),form.find(".edd-submit").data("price")&&0<form.find(".edd-submit").data("price")&&(free_items=!1);else{if(!form.find(".edd_price_option_"+download+":checked",form).length)return $this.removeAttr("data-edd-loading"),alert(edd_scripts.select_option),e.stopPropagation(),$this.prop("disabled",!1),!1;form.find(".edd_price_option_"+download+":checked",form).each(function(index){if(item_price_ids[index]=$(this).val(),!0===free_items){var item_price=$(this).data("price");item_price&&0<item_price&&(free_items=!1)}})}else item_price_ids[0]=download,$this.data("price")&&0<$this.data("price")&&(free_items=!1);if(free_items&&form.find(".edd_action_input").val("add_to_cart"),"straight_to_gateway"==form.find(".edd_action_input").val())return form.submit(),!0;var data={action:$this.data("action"),download_id:download,price_ids:item_price_ids,post_data:$(form).serialize(),nonce:nonce};return $.ajax({type:"POST",data:data,dataType:"json",url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(response){var store_redirect="1"==edd_scripts.redirect_to_checkout,item_redirect="1"==form.find("#edd_redirect_to_checkout").val();if(store_redirect&&item_redirect||!store_redirect&&item_redirect)window.location=edd_scripts.checkout_page;else{"1"===edd_scripts.taxes_enabled&&($(".cart_item.edd_subtotal").show(),$(".cart_item.edd_cart_tax").show()),$(".cart_item.edd_total").show(),$(".cart_item.edd_checkout").show(),$(".cart_item.empty").length&&$(".cart_item.empty").hide(),$(".widget_edd_cart_widget .edd-cart").each(function(cart){var target=$(this).find(".edd-cart-meta:first");$(response.cart_item).insertBefore(target);var cart_wrapper=$(this).parent();cart_wrapper&&(cart_wrapper.addClass("cart-not-empty"),cart_wrapper.removeClass("cart-empty"))}),"1"===edd_scripts.taxes_enabled&&($(".edd-cart-meta.edd_subtotal span").html(response.subtotal),$(".edd-cart-meta.edd_cart_tax span").html(response.tax)),$(".edd-cart-meta.edd_total span").html(response.total);$(".edd-cart-item-title",response.cart_item).length;if($("span.edd-cart-quantity").each(function(){$(this).text(response.cart_quantity),$(document.body).trigger("edd_quantity_updated",[response.cart_quantity])}),"none"==$(".edd-cart-number-of-items").css("display")&&$(".edd-cart-number-of-items").show("slow"),"no"!=variable_price&&"multi"==price_mode||($("a.edd-add-to-cart",container).toggle(),$(".edd_go_to_checkout",container).css("display","inline-block")),"multi"==price_mode&&$this.removeAttr("data-edd-loading"),$(".edd_download_purchase_form").length&&("no"==variable_price||!form.find(".edd_price_option_"+download).is("input:hidden"))){var parent_form=$('.edd_download_purchase_form *[data-download-id="'+download+'"]').parents("form");$("a.edd-add-to-cart",parent_form).hide(),"multi"!=price_mode&&parent_form.find(".edd_download_quantity_wrapper").slideUp(),$(".edd_go_to_checkout",parent_form).show().removeAttr("data-edd-loading")}"incart"!=response&&($(".edd-cart-added-alert",container).fadeIn(),setTimeout(function(){$(".edd-cart-added-alert",container).fadeOut()},3e3)),$this.prop("disabled",!1),$(document.body).trigger("edd_cart_item_added",[response])}}}).fail(function(response){window.console&&window.console.log&&console.log(response)}).done(function(response){}),!1}),$("#edd_checkout_form_wrap").on("click",".edd_checkout_register_login",function(){var $this=$(this),data={action:$this.data("action"),nonce:$this.data("nonce")};return $(".edd-cart-ajax").show(),$.post(edd_scripts.ajaxurl,data,function(checkout_response){$("#edd_checkout_login_register").html(edd_scripts.loading),$("#edd_checkout_login_register").html(checkout_response),$(".edd-cart-ajax").hide()}),!1}),$(document).on("click","#edd_purchase_form #edd_login_fields input[type=submit]",function(e){e.preventDefault();var complete_purchase_val=$(this).val();$(this).val(edd_global_vars.purchase_loading),$(this).after('<span class="edd-loading-ajax edd-loading"></span>');var data={action:"edd_process_checkout_login",edd_ajax:1,edd_user_login:$("#edd_login_fields #edd_user_login").val(),edd_user_pass:$("#edd_login_fields #edd_user_pass").val(),edd_login_nonce:$("#edd_login_nonce").val()};$.post(edd_global_vars.ajaxurl,data,function(data){"success"==$.trim(data)?($(".edd_errors").remove(),window.location=edd_scripts.checkout_page):($("#edd_login_fields input[type=submit]").val(complete_purchase_val),$(".edd-loading-ajax").remove(),$(".edd_errors").remove(),$("#edd-user-login-submit").before(data))})}),$("select#edd-gateway, input.edd-gateway").change(function(e){var payment_mode=$("#edd-gateway option:selected, input.edd-gateway:checked").val();return"0"==payment_mode||edd_load_gateway(payment_mode),!1}),"1"==edd_scripts.is_checkout){var chosen_gateway=!1,ajax_needed=!1;$("select#edd-gateway, input.edd-gateway").length&&(chosen_gateway=$("meta[name='edd-chosen-gateway']").attr("content"),ajax_needed=!0),chosen_gateway||(chosen_gateway=edd_scripts.default_gateway),ajax_needed?setTimeout(function(){edd_load_gateway(chosen_gateway)},200):$("body").trigger("edd_gateway_loaded",[chosen_gateway])}$(document).on("click","#edd_purchase_form #edd_purchase_submit [type=submit]",function(e){var eddPurchaseform=document.getElementById("edd_purchase_form");if("function"!=typeof eddPurchaseform.checkValidity||!1!==eddPurchaseform.checkValidity()){e.preventDefault();var complete_purchase_val=$(this).val();$(this).val(edd_global_vars.purchase_loading),$(this).prop("disabled",!0),$(this).after('<span class="edd-loading-ajax edd-loading"></span>'),$.post(edd_global_vars.ajaxurl,$("#edd_purchase_form").serialize()+"&action=edd_process_checkout&edd_ajax=true",function(data){"success"==$.trim(data)?($(".edd_errors").remove(),$(".edd-error").hide(),$(eddPurchaseform).submit()):($("#edd-purchase-button").val(complete_purchase_val),$(".edd-loading-ajax").remove(),$(".edd_errors").remove(),$(".edd-error").hide(),$(edd_global_vars.checkout_error_anchor).before(data),$("#edd-purchase-button").prop("disabled",!1),$(document.body).trigger("edd_checkout_error",[data]))})}}),$(document.body).on("change","#edd_cc_address input.card_state, #edd_cc_address select, #edd_address_country",function(){var $form,$this=$(this),is_checkout="undefined"!=typeof edd_global_vars,field_name="card_state";"edd_address_country"==$(this).attr("id")&&(field_name="edd_address_state");if("card_state"!=$this.attr("id")){var nonce=$(this).data("nonce"),postData={action:"edd_get_shop_states",country:$this.val(),field_name:field_name,nonce:nonce};$.ajax({type:"POST",data:postData,url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(response){$form=is_checkout?$("#edd_purchase_form"):$this.closest("form");var state_inputs='input[name="card_state"], select[name="card_state"], input[name="edd_address_state"], select[name="edd_address_state"]';if("nostates"==$.trim(response)){$form.find(state_inputs).replaceWith('<input type="text" name="card_state" class="card-state edd-input required" value=""/>')}else $form.find(state_inputs).replaceWith(response);is_checkout&&$(document.body).trigger("edd_cart_billing_address_updated",[response])}}).fail(function(data){window.console&&window.console.log&&console.log(data)}).done(function(data){is_checkout&&recalculate_taxes()})}else is_checkout&&recalculate_taxes();return!1}),$(document.body).on("change","#edd_cc_address input[name=card_zip]",function(){"undefined"!=typeof edd_global_vars&&recalculate_taxes()})});
1
+ var edd_scripts;function edd_load_gateway(payment_mode){jQuery(".edd-cart-ajax").show(),jQuery("#edd_purchase_form_wrap").html('<span class="edd-loading-ajax edd-loading"></span>');var nonce=jQuery("#edd-gateway-"+payment_mode).data(payment_mode+"-nonce"),url=edd_scripts.ajaxurl;0<url.indexOf("?")?url+="&":url+="?",url=url+"payment-mode="+payment_mode,jQuery.post(url,{action:"edd_load_gateway",edd_payment_mode:payment_mode,nonce:nonce},function(response){jQuery("#edd_purchase_form_wrap").html(response),jQuery(".edd-no-js").hide(),jQuery("body").trigger("edd_gateway_loaded",[payment_mode])})}jQuery(document).ready(function($){if($(".edd-no-js").hide(),$("a.edd-add-to-cart").addClass("edd-has-js"),$(document.body).on("click.eddRemoveFromCart",".edd-remove-from-cart",function(event){var $this=$(this),item=$this.data("cart-item"),action=$this.data("action"),id=$this.data("download-id"),nonce=$this.data("nonce"),data={action:action,cart_item:item,nonce:nonce};return $.ajax({type:"POST",data:data,dataType:"json",url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(response){if(response.removed){if(parseInt(edd_scripts.position_in_cart,10)===parseInt(item,10)||edd_scripts.has_purchase_links)return window.location=window.location,!1;$(".edd-cart").each(function(){$(this).find("[data-cart-item='"+item+"']").parent().remove()}),$(".edd-cart").each(function(){var cart_item_counter=0;$(this).find("[data-cart-item]").each(function(){$(this).attr("data-cart-item",cart_item_counter),cart_item_counter+=1})}),$("[id^=edd_purchase_"+id+"]").length&&($("[id^=edd_purchase_"+id+"] .edd_go_to_checkout").hide(),$("[id^=edd_purchase_"+id+"] a.edd-add-to-cart").show().removeAttr("data-edd-loading"),"1"==edd_scripts.quantities_enabled&&$("[id^=edd_purchase_"+id+"] .edd_download_quantity_wrapper").show()),$("span.edd-cart-quantity").text(response.cart_quantity),$(document.body).trigger("edd_quantity_updated",[response.cart_quantity]),edd_scripts.taxes_enabled&&($(".cart_item.edd_subtotal span").html(response.subtotal),$(".cart_item.edd_cart_tax span").html(response.tax)),$(".cart_item.edd_total span").html(response.total),0==response.cart_quantity&&($(".cart_item.edd_subtotal,.edd-cart-number-of-items,.cart_item.edd_checkout,.cart_item.edd_cart_tax,.cart_item.edd_total").hide(),$(".edd-cart").each(function(){var cart_wrapper=$(this).parent();cart_wrapper&&(cart_wrapper.addClass("cart-empty"),cart_wrapper.removeClass("cart-not-empty")),$(this).append('<li class="cart_item empty">'+edd_scripts.empty_cart_message+"</li>")})),$(document.body).trigger("edd_cart_item_removed",[response])}}}).fail(function(response){window.console&&window.console.log&&console.log(response)}).done(function(response){}),!1}),$(document.body).on("click.eddAddToCart",".edd-add-to-cart",function(e){e.preventDefault();var $this=$(this),form=$this.closest("form");$this.prop("disabled",!0);$this.find(".edd-loading");var container=$this.closest("div");$this.attr("data-edd-loading","");form=$this.parents("form").last();var download=$this.data("download-id"),variable_price=$this.data("variable-price"),price_mode=$this.data("price-mode"),nonce=$this.data("nonce"),item_price_ids=[],free_items=!0;if("yes"==variable_price)if(0<form.find(".edd_price_option_"+download+'[type="hidden"]').length)item_price_ids[0]=$(".edd_price_option_"+download,form).val(),form.find(".edd-submit").data("price")&&0<form.find(".edd-submit").data("price")&&(free_items=!1);else{if(!form.find(".edd_price_option_"+download+":checked",form).length)return $this.removeAttr("data-edd-loading"),alert(edd_scripts.select_option),e.stopPropagation(),$this.prop("disabled",!1),!1;form.find(".edd_price_option_"+download+":checked",form).each(function(index){if(item_price_ids[index]=$(this).val(),!0===free_items){var item_price=$(this).data("price");item_price&&0<item_price&&(free_items=!1)}})}else item_price_ids[0]=download,$this.data("price")&&0<$this.data("price")&&(free_items=!1);if(free_items&&form.find(".edd_action_input").val("add_to_cart"),"straight_to_gateway"==form.find(".edd_action_input").val())return form.submit(),!0;var data={action:$this.data("action"),download_id:download,price_ids:item_price_ids,post_data:$(form).serialize(),nonce:nonce};return $.ajax({type:"POST",data:data,dataType:"json",url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(response){var store_redirect="1"==edd_scripts.redirect_to_checkout,item_redirect="1"==form.find("#edd_redirect_to_checkout").val();if(store_redirect&&item_redirect||!store_redirect&&item_redirect)window.location=edd_scripts.checkout_page;else{"1"===edd_scripts.taxes_enabled&&($(".cart_item.edd_subtotal").show(),$(".cart_item.edd_cart_tax").show()),$(".cart_item.edd_total").show(),$(".cart_item.edd_checkout").show(),$(".cart_item.empty").length&&$(".cart_item.empty").hide(),$(".widget_edd_cart_widget .edd-cart").each(function(cart){var target=$(this).find(".edd-cart-meta:first");$(response.cart_item).insertBefore(target);var cart_wrapper=$(this).parent();cart_wrapper&&(cart_wrapper.addClass("cart-not-empty"),cart_wrapper.removeClass("cart-empty"))}),"1"===edd_scripts.taxes_enabled&&($(".edd-cart-meta.edd_subtotal span").html(response.subtotal),$(".edd-cart-meta.edd_cart_tax span").html(response.tax)),$(".edd-cart-meta.edd_total span").html(response.total);$(".edd-cart-item-title",response.cart_item).length;if($("span.edd-cart-quantity").each(function(){$(this).text(response.cart_quantity),$(document.body).trigger("edd_quantity_updated",[response.cart_quantity])}),"none"==$(".edd-cart-number-of-items").css("display")&&$(".edd-cart-number-of-items").show("slow"),"no"!=variable_price&&"multi"==price_mode||($("a.edd-add-to-cart",container).toggle(),$(".edd_go_to_checkout",container).css("display","inline-block")),"multi"==price_mode&&$this.removeAttr("data-edd-loading"),$(".edd_download_purchase_form").length&&("no"==variable_price||!form.find(".edd_price_option_"+download).is("input:hidden"))){var parent_form=$('.edd_download_purchase_form *[data-download-id="'+download+'"]').parents("form");$("a.edd-add-to-cart",parent_form).hide(),"multi"!=price_mode&&parent_form.find(".edd_download_quantity_wrapper").slideUp(),$(".edd_go_to_checkout",parent_form).show().removeAttr("data-edd-loading")}"incart"!=response&&($(".edd-cart-added-alert",container).fadeIn(),setTimeout(function(){$(".edd-cart-added-alert",container).fadeOut()},3e3)),$this.prop("disabled",!1),$(document.body).trigger("edd_cart_item_added",[response])}}}).fail(function(response){window.console&&window.console.log&&console.log(response)}).done(function(response){}),!1}),$("#edd_checkout_form_wrap").on("click",".edd_checkout_register_login",function(){var $this=$(this),data={action:$this.data("action"),nonce:$this.data("nonce")};return $(".edd-cart-ajax").show(),$.post(edd_scripts.ajaxurl,data,function(checkout_response){$("#edd_checkout_login_register").html(edd_scripts.loading),$("#edd_checkout_login_register").html(checkout_response),$(".edd-cart-ajax").hide()}),!1}),$(document).on("click","#edd_purchase_form #edd_login_fields input[type=submit]",function(e){e.preventDefault();var complete_purchase_val=$(this).val();$(this).val(edd_global_vars.purchase_loading),$(this).after('<span class="edd-loading-ajax edd-loading"></span>');var data={action:"edd_process_checkout_login",edd_ajax:1,edd_user_login:$("#edd_login_fields #edd_user_login").val(),edd_user_pass:$("#edd_login_fields #edd_user_pass").val(),edd_login_nonce:$("#edd_login_nonce").val()};$.post(edd_global_vars.ajaxurl,data,function(data){"success"==$.trim(data)?($(".edd_errors").remove(),window.location=edd_scripts.checkout_page):($("#edd_login_fields input[type=submit]").val(complete_purchase_val),$(".edd-loading-ajax").remove(),$(".edd_errors").remove(),$("#edd-user-login-submit").before(data))})}),$("select#edd-gateway, input.edd-gateway").change(function(e){var payment_mode=$("#edd-gateway option:selected, input.edd-gateway:checked").val();return"0"==payment_mode||edd_load_gateway(payment_mode),!1}),"1"==edd_scripts.is_checkout){var chosen_gateway=!1,ajax_needed=!1;$("select#edd-gateway, input.edd-gateway").length&&(chosen_gateway=$("meta[name='edd-chosen-gateway']").attr("content"),ajax_needed=!0),chosen_gateway||(chosen_gateway=edd_scripts.default_gateway),ajax_needed?setTimeout(function(){edd_load_gateway(chosen_gateway)},200):$("body").trigger("edd_gateway_loaded",[chosen_gateway])}$(document).on("click","#edd_purchase_form #edd_purchase_submit [type=submit]",function(e){var eddPurchaseform=document.getElementById("edd_purchase_form");if("function"!=typeof eddPurchaseform.checkValidity||!1!==eddPurchaseform.checkValidity()){e.preventDefault();var complete_purchase_val=$(this).val();$(this).val(edd_global_vars.purchase_loading),$(this).prop("disabled",!0),$(this).after('<span class="edd-loading-ajax edd-loading"></span>'),$.post(edd_global_vars.ajaxurl,$("#edd_purchase_form").serialize()+"&action=edd_process_checkout&edd_ajax=true",function(data){"success"==$.trim(data)?($(".edd_errors").remove(),$(".edd-error").hide(),$(eddPurchaseform).submit()):($("#edd-purchase-button").val(complete_purchase_val),$(".edd-loading-ajax").remove(),$(".edd_errors").remove(),$(".edd-error").hide(),$(edd_global_vars.checkout_error_anchor).before(data),$("#edd-purchase-button").prop("disabled",!1),$(document.body).trigger("edd_checkout_error",[data]))})}}),$(document.body).on("change","#edd_cc_address input.card_state, #edd_cc_address select, #edd_address_country",function(){var $form,$this=$(this),is_checkout="undefined"!=typeof edd_global_vars,field_name="card_state";"edd_address_country"==$(this).attr("id")&&(field_name="edd_address_state");var state_inputs=document.getElementById("card_state");if("card_state"!=$this.attr("id")&&null!=state_inputs){var nonce=$(this).data("nonce"),postData={action:"edd_get_shop_states",country:$this.val(),field_name:field_name,nonce:nonce};$.ajax({type:"POST",data:postData,url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(response){$form=is_checkout?$("#edd_purchase_form"):$this.closest("form");var state_inputs='input[name="card_state"], select[name="card_state"], input[name="edd_address_state"], select[name="edd_address_state"]';if("nostates"==$.trim(response)){$form.find(state_inputs).replaceWith('<input type="text" name="card_state" class="card-state edd-input required" value=""/>')}else $form.find(state_inputs).replaceWith(response);is_checkout&&$(document.body).trigger("edd_cart_billing_address_updated",[response])}}).fail(function(data){window.console&&window.console.log&&console.log(data)}).done(function(data){is_checkout&&recalculate_taxes()})}else is_checkout&&recalculate_taxes();return!1}),$(document.body).on("change","#edd_cc_address input[name=card_zip]",function(){"undefined"!=typeof edd_global_vars&&recalculate_taxes()})});
easy-digital-downloads.php CHANGED
@@ -5,7 +5,7 @@
5
  * Description: The easiest way to sell digital products with WordPress.
6
  * Author: Easy Digital Downloads
7
  * Author URI: https://easydigitaldownloads.com
8
- * Version: 2.9.8
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.9.8
29
  */
30
 
31
  // Exit if accessed directly.
@@ -206,7 +206,7 @@ final class Easy_Digital_Downloads {
206
 
207
  // Plugin version.
208
  if ( ! defined( 'EDD_VERSION' ) ) {
209
- define( 'EDD_VERSION', '2.9.8' );
210
  }
211
 
212
  // Plugin Folder Path.
5
  * Description: The easiest way to sell digital products with WordPress.
6
  * Author: Easy Digital Downloads
7
  * Author URI: https://easydigitaldownloads.com
8
+ * Version: 2.9.9
9
  * Text Domain: easy-digital-downloads
10
  * Domain Path: languages
11
  *
25
  * @package EDD
26
  * @category Core
27
  * @author Pippin Williamson
28
+ * @version 2.9.9
29
  */
30
 
31
  // Exit if accessed directly.
206
 
207
  // Plugin version.
208
  if ( ! defined( 'EDD_VERSION' ) ) {
209
+ define( 'EDD_VERSION', '2.9.9' );
210
  }
211
 
212
  // Plugin Folder Path.
includes/admin/import/class-batch-import-payments.php CHANGED
@@ -542,7 +542,16 @@ class EDD_Batch_Payments_Import extends EDD_Batch_Import {
542
 
543
  $d = (array) explode( '|', $download );
544
  preg_match_all( '/\{(\d|(\d+(\.\d+|\d+)))\}/', $d[1], $matches );
545
- $price = trim( substr( $d[1], 0, strpos( $d[1], '{' ) ) );
 
 
 
 
 
 
 
 
 
546
  $tax = isset( $matches[1][0] ) ? trim( $matches[1][0] ) : 0;
547
  $price_id = isset( $matches[1][1] ) ? trim( $matches[1][1] ) : false;
548
 
542
 
543
  $d = (array) explode( '|', $download );
544
  preg_match_all( '/\{(\d|(\d+(\.\d+|\d+)))\}/', $d[1], $matches );
545
+
546
+ if( false !== strpos( $d[1], '{' ) ) {
547
+
548
+ $price = trim( substr( $d[1], 0, strpos( $d[1], '{' ) ) );
549
+
550
+ } else {
551
+
552
+ $price = trim( $d[1] );
553
+ }
554
+
555
  $tax = isset( $matches[1][0] ) ? trim( $matches[1][0] ) : 0;
556
  $price_id = isset( $matches[1][1] ) ? trim( $matches[1][1] ) : false;
557
 
includes/admin/payments/view-order-details.php CHANGED
@@ -733,6 +733,7 @@ $customer = new EDD_Customer( $payment->customer_id );
733
  'data' => array(
734
  'search-type' => 'no_ajax',
735
  'search-placeholder' => __( 'Type to search all Countries', 'easy-digital-downloads' ),
 
736
  ),
737
  ) );
738
  ?>
733
  'data' => array(
734
  'search-type' => 'no_ajax',
735
  'search-placeholder' => __( 'Type to search all Countries', 'easy-digital-downloads' ),
736
+ 'nonce' => wp_create_nonce( 'edd-country-field-nonce' )
737
  ),
738
  ) );
739
  ?>
includes/checkout/template.php CHANGED
@@ -772,58 +772,49 @@ add_action( 'edd_checkout_form_top', 'edd_discount_field', -1 );
772
  * @return void
773
  */
774
  function edd_terms_agreement() {
 
 
 
 
 
775
  if ( edd_get_option( 'show_agree_to_terms', false ) ) {
 
776
  $agree_text = edd_get_option( 'agree_text', '' );
777
  $agree_label = edd_get_option( 'agree_label', __( 'Agree to Terms?', 'easy-digital-downloads' ) );
778
 
779
  ob_start();
780
- ?>
 
781
  <fieldset id="edd_terms_agreement">
782
- <div id="edd_terms" class="edd-terms" style="display:none;">
783
- <?php
 
 
 
 
 
 
 
784
  do_action( 'edd_before_terms' );
785
  echo wpautop( stripslashes( $agree_text ) );
786
  do_action( 'edd_after_terms' );
787
- ?>
788
- </div>
789
- <div id="edd_show_terms" class="edd-show-terms">
790
- <a href="#" class="edd_terms_links"><?php _e( 'Show Terms', 'easy-digital-downloads' ); ?></a>
791
- <a href="#" class="edd_terms_links" style="display:none;"><?php _e( 'Hide Terms', 'easy-digital-downloads' ); ?></a>
792
- </div>
793
-
794
- <?php if ( '1' !== edd_get_option( 'show_agree_to_privacy_policy', false ) && '1' === edd_get_option( 'show_privacy_policy_on_checkout', false ) ) : ?>
795
  <?php
 
 
796
 
797
- $privacy_page = get_option( 'wp_page_for_privacy_policy' );
798
-
799
- if ( ! empty( $privacy_page ) ) {
800
-
801
- $privacy_text = get_post_field( 'post_content', $privacy_page );
802
-
803
- if ( ! empty( $privacy_text ) ) {
804
- ?>
805
- <div id="edd-privacy-policy" class="edd-terms" style="display:none;">
806
- <?php
807
- do_action( 'edd_before_privacy_policy' );
808
- echo wpautop( do_shortcode( stripslashes( $privacy_text ) ) );
809
- do_action( 'edd_after_privacy_policy' );
810
- ?>
811
- </div>
812
- <div id="edd-show-privacy-policy" class="edd-show-terms">
813
- <a href="#" class="edd_terms_links"><?php _e( 'Show Privacy Policy', 'easy-digital-downloads' ); ?></a>
814
- <a href="#" class="edd_terms_links" style="display:none;"><?php _e( 'Hide Privacy Policy', 'easy-digital-downloads' ); ?></a>
815
- </div>
816
- <?php
817
- }
818
-
819
- }
820
- endif ?>
821
  <div class="edd-terms-agreement">
822
  <input name="edd_agree_to_terms" class="required" type="checkbox" id="edd_agree_to_terms" value="1"/>
823
  <label for="edd_agree_to_terms"><?php echo stripslashes( $agree_label ); ?></label>
824
  </div>
825
  </fieldset>
826
- <?php
 
827
  $html_output = ob_get_clean();
828
 
829
  echo apply_filters( 'edd_checkout_terms_agreement_html', $html_output );
@@ -841,46 +832,68 @@ add_action( 'edd_purchase_form_before_submit', 'edd_terms_agreement' );
841
  * @return void
842
  */
843
  function edd_privacy_agreement() {
844
- if ( '1' === edd_get_option( 'show_agree_to_privacy_policy', false ) ) {
845
- $agree_label = edd_get_option( 'privacy_agree_label', __( 'Agree to Terms?', 'easy-digital-downloads' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
846
 
847
  ob_start();
848
  ?>
 
849
  <fieldset id="edd-privacy-policy-agreement">
850
 
851
- <?php if ( '1' === edd_get_option( 'show_privacy_policy_on_checkout', false ) ) : ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
852
  <?php
 
853
 
854
- $privacy_page = get_option( 'wp_page_for_privacy_policy' );
855
-
856
- if ( ! empty( $privacy_page ) ) {
857
-
858
- $privacy_text = get_post_field( 'post_content', $privacy_page );
859
-
860
- if ( ! empty( $privacy_text ) ) {
861
- ?>
862
- <div id="edd-privacy-policy" class="edd-terms" style="display:none;">
863
- <?php
864
- do_action( 'edd_before_privacy_policy' );
865
- echo wpautop( do_shortcode( stripslashes( $privacy_text ) ) );
866
- do_action( 'edd_after_privacy_policy' );
867
- ?>
868
- </div>
869
- <div id="edd-show-privacy-policy" class="edd-show-terms">
870
- <a href="#" class="edd_terms_links"><?php _e( 'Show Privacy Policy', 'easy-digital-downloads' ); ?></a>
871
- <a href="#" class="edd_terms_links" style="display:none;"><?php _e( 'Hide Privacy Policy', 'easy-digital-downloads' ); ?></a>
872
- </div>
873
- <?php
874
- }
875
-
876
- }
877
- endif ?>
878
 
879
- <div class="edd-privacy-policy-agreement">
880
- <input name="edd_agree_to_privacy_policy" class="required" type="checkbox" id="edd-agree-to-privacy-policy" value="1"/>
881
- <label for="edd-agree-to-privacy-policy"><?php echo stripslashes( $agree_label ); ?></label>
882
- </div>
883
  </fieldset>
 
884
  <?php
885
  $html_output = ob_get_clean();
886
 
772
  * @return void
773
  */
774
  function edd_terms_agreement() {
775
+
776
+ /**
777
+ * No terms agreement output of any kind should ever show unless the checkbox
778
+ * is present for the customer to check: 'Agree to Terms' setting.
779
+ */
780
  if ( edd_get_option( 'show_agree_to_terms', false ) ) {
781
+
782
  $agree_text = edd_get_option( 'agree_text', '' );
783
  $agree_label = edd_get_option( 'agree_label', __( 'Agree to Terms?', 'easy-digital-downloads' ) );
784
 
785
  ob_start();
786
+ ?>
787
+
788
  <fieldset id="edd_terms_agreement">
789
+
790
+ <?php
791
+ // Show Agreement Text output only if content exists. Remember that the Agree to Terms
792
+ // label supports anchors tags, so the terms may be on a separate page.
793
+ if ( ! empty( $agree_text ) ) {
794
+ ?>
795
+
796
+ <div id="edd_terms" class="edd-terms" style="display:none;">
797
+ <?php
798
  do_action( 'edd_before_terms' );
799
  echo wpautop( stripslashes( $agree_text ) );
800
  do_action( 'edd_after_terms' );
801
+ ?>
802
+ </div>
803
+ <div id="edd_show_terms" class="edd-show-terms">
804
+ <a href="#" class="edd_terms_links"><?php _e( 'Show Terms', 'easy-digital-downloads' ); ?></a>
805
+ <a href="#" class="edd_terms_links" style="display:none;"><?php _e( 'Hide Terms', 'easy-digital-downloads' ); ?></a>
806
+ </div>
 
 
807
  <?php
808
+ }
809
+ ?>
810
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
811
  <div class="edd-terms-agreement">
812
  <input name="edd_agree_to_terms" class="required" type="checkbox" id="edd_agree_to_terms" value="1"/>
813
  <label for="edd_agree_to_terms"><?php echo stripslashes( $agree_label ); ?></label>
814
  </div>
815
  </fieldset>
816
+
817
+ <?php
818
  $html_output = ob_get_clean();
819
 
820
  echo apply_filters( 'edd_checkout_terms_agreement_html', $html_output );
832
  * @return void
833
  */
834
  function edd_privacy_agreement() {
835
+
836
+ $show_privacy_policy_checkbox = edd_get_option( 'show_agree_to_privacy_policy', false );
837
+ $show_privacy_policy_text = edd_get_option( 'show_privacy_policy_on_checkout', false );
838
+
839
+ /**
840
+ * Privacy Policy output has dual functionality, unlike Agree to Terms output:
841
+ *
842
+ * 1. A checkbox (and associated label) can show on checkout if the 'Agree to Privacy Policy' setting
843
+ * is checked. This is because a Privacy Policy can be agreed upon without displaying the policy
844
+ * itself. Keep in mind the label field supports anchor tags, so the policy can be linked to.
845
+ *
846
+ * 2. The Privacy Policy text, which is post_content pulled from the WP core Privacy Policy page when
847
+ * you have the 'Show the Privacy Policy on checkout' setting checked, can be displayed on checkout
848
+ * regardless of whether or not the customer has to explicitly agreed to the policy by checking the
849
+ * checkbox from point #1 above.
850
+ *
851
+ * Because these two display options work independently, having either setting checked triggers output.
852
+ */
853
+ if ( '1' === $show_privacy_policy_checkbox || '1' === $show_privacy_policy_text ) {
854
+
855
+ $agree_label = edd_get_option( 'privacy_agree_label', __( 'Agree to Privacy Policy?', 'easy-digital-downloads' ) );
856
+ $privacy_page = get_option( 'wp_page_for_privacy_policy' );
857
+ $privacy_text = get_post_field( 'post_content', $privacy_page );
858
 
859
  ob_start();
860
  ?>
861
+
862
  <fieldset id="edd-privacy-policy-agreement">
863
 
864
+ <?php
865
+ // Show Privacy Policy text if the setting is checked, the WP Privacy Page is set, and content exists.
866
+ if ( '1' === $show_privacy_policy_text && ( $privacy_page && ! empty( $privacy_text ) ) ) {
867
+ ?>
868
+ <div id="edd-privacy-policy" class="edd-terms" style="display:none;">
869
+ <?php
870
+ do_action( 'edd_before_privacy_policy' );
871
+ echo wpautop( do_shortcode( stripslashes( $privacy_text ) ) );
872
+ do_action( 'edd_after_privacy_policy' );
873
+ ?>
874
+ </div>
875
+ <div id="edd-show-privacy-policy" class="edd-show-terms">
876
+ <a href="#"
877
+ class="edd_terms_links"><?php _e( 'Show Privacy Policy', 'easy-digital-downloads' ); ?></a>
878
+ <a href="#" class="edd_terms_links"
879
+ style="display:none;"><?php _e( 'Hide Privacy Policy', 'easy-digital-downloads' ); ?></a>
880
+ </div>
881
  <?php
882
+ }
883
 
884
+ // Show Privacy Policy checkbox and label if the setting is checked.
885
+ if ( '1' === $show_privacy_policy_checkbox ) {
886
+ ?>
887
+ <div class="edd-privacy-policy-agreement">
888
+ <input name="edd_agree_to_privacy_policy" class="required" type="checkbox" id="edd-agree-to-privacy-policy" value="1"/>
889
+ <label for="edd-agree-to-privacy-policy"><?php echo stripslashes( $agree_label ); ?></label>
890
+ </div>
891
+ <?php
892
+ }
893
+ ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
894
 
 
 
 
 
895
  </fieldset>
896
+
897
  <?php
898
  $html_output = ob_get_clean();
899
 
includes/class-edd-logging.php CHANGED
@@ -525,6 +525,12 @@ function edd_debug_log( $message = '', $force = false ) {
525
 
526
  if ( edd_is_debug_mode() || $force ) {
527
 
 
 
 
 
 
 
528
  $edd_logs->log_to_file( $message );
529
 
530
  }
525
 
526
  if ( edd_is_debug_mode() || $force ) {
527
 
528
+ if( function_exists( 'mb_convert_encoding' ) ) {
529
+
530
+ $message = mb_convert_encoding( $message, 'UTF-8' );
531
+
532
+ }
533
+
534
  $edd_logs->log_to_file( $message );
535
 
536
  }
includes/formatting.php CHANGED
@@ -117,7 +117,7 @@ function edd_format_amount( $amount, $decimals = true ) {
117
  *
118
  * @since 1.0
119
  * @param string $price Price
120
- * @return array $currency Currencies displayed correctly
121
  */
122
  function edd_currency_filter( $price = '', $currency = '' ) {
123
  if( empty( $currency ) ) {
117
  *
118
  * @since 1.0
119
  * @param string $price Price
120
+ * @return string $currency Currencies displayed correctly
121
  */
122
  function edd_currency_filter( $price = '', $currency = '' ) {
123
  if( empty( $currency ) ) {
includes/payments/actions.php CHANGED
@@ -472,14 +472,16 @@ function edd_recover_payment() {
472
 
473
  // Recover any item specific fees.
474
  if ( ! empty( $download['fees'] ) ) {
475
- foreach ( $download['fees'] as $fee ) {
 
476
  EDD()->fees->add_fee( $fee );
477
  }
478
  }
479
  }
480
 
481
  // Recover any global fees.
482
- foreach ( $payment->fees as $fee ) {
 
483
  EDD()->fees->add_fee( $fee );
484
  }
485
 
472
 
473
  // Recover any item specific fees.
474
  if ( ! empty( $download['fees'] ) ) {
475
+ foreach ( $download['fees'] as $key => $fee ) {
476
+ $fee['id'] = ! empty( $fee['id'] ) ? $fee['id'] : $key;
477
  EDD()->fees->add_fee( $fee );
478
  }
479
  }
480
  }
481
 
482
  // Recover any global fees.
483
+ foreach ( $payment->fees as $key => $fee ) {
484
+ $fee['id'] = ! empty( $fee['id'] ) ? $fee['id'] : $key;
485
  EDD()->fees->add_fee( $fee );
486
  }
487
 
includes/payments/class-edd-payment.php CHANGED
@@ -1147,7 +1147,16 @@ class EDD_Payment {
1147
  $subtotal -= round( $tax, edd_currency_decimal_filter() );
1148
  }
1149
 
1150
- $total = $subtotal - $discount + $tax;
 
 
 
 
 
 
 
 
 
1151
 
1152
  // Do not allow totals to go negative
1153
  if( $total < 0 ) {
1147
  $subtotal -= round( $tax, edd_currency_decimal_filter() );
1148
  }
1149
 
1150
+ $fees = 0;
1151
+ if ( ! empty( $args['fees'] ) && is_array( $args['fees'] ) ) {
1152
+ foreach ( $args['fees'] as $feekey => $fee ) {
1153
+ $fees += $fee['amount'];
1154
+ }
1155
+
1156
+ $fees = round( $fees, edd_currency_decimal_filter() );
1157
+ }
1158
+
1159
+ $total = $subtotal - $discount + $tax + $fees;
1160
 
1161
  // Do not allow totals to go negative
1162
  if( $total < 0 ) {
includes/shortcodes.php CHANGED
@@ -885,7 +885,7 @@ function edd_process_profile_editor_updates( $data ) {
885
 
886
  if ( $customer->id > 0 ) {
887
  $update_args = array(
888
- 'name' => $first_name . ' ' . $last_name,
889
  );
890
 
891
  $customer->update( $update_args );
885
 
886
  if ( $customer->id > 0 ) {
887
  $update_args = array(
888
+ 'name' => stripslashes( $first_name . ' ' . $last_name ),
889
  );
890
 
891
  $customer->update( $update_args );
languages/easy-digital-downloads.pot CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: Easy Digital Downloads 2.9.8\n"
6
  "Report-Msgid-Bugs-To: https://easydigitaldownloads.com/\n"
7
- "POT-Creation-Date: 2018-10-01 20:25:04+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -1765,7 +1765,7 @@ msgstr ""
1765
 
1766
  #: includes/admin/downloads/metabox.php:1031
1767
  #: includes/admin/settings/register-settings.php:747
1768
- #: includes/admin/thickbox.php:59 includes/checkout/template.php:984
1769
  #: includes/shortcodes.php:49 includes/template-functions.php:78
1770
  msgid "Purchase"
1771
  msgstr ""
@@ -1874,7 +1874,7 @@ msgstr ""
1874
  msgid "Products (Raw)"
1875
  msgstr ""
1876
 
1877
- #: includes/admin/import/class-batch-import-payments.php:602
1878
  msgid "payments"
1879
  msgstr ""
1880
 
@@ -2420,24 +2420,24 @@ msgstr ""
2420
  msgid "Type to search all Countries"
2421
  msgstr ""
2422
 
2423
- #: includes/admin/payments/view-order-details.php:753
2424
  #: includes/admin/settings/register-settings.php:333
2425
  msgid "Select a state"
2426
  msgstr ""
2427
 
2428
- #: includes/admin/payments/view-order-details.php:756
2429
  msgid "Type to search all States/Provinces"
2430
  msgstr ""
2431
 
2432
- #: includes/admin/payments/view-order-details.php:777
2433
  msgid "Payment Notes"
2434
  msgstr ""
2435
 
2436
- #: includes/admin/payments/view-order-details.php:792
2437
  msgid "No payment notes"
2438
  msgstr ""
2439
 
2440
- #: includes/admin/payments/view-order-details.php:798
2441
  msgid "Add Note"
2442
  msgstr ""
2443
 
@@ -3998,7 +3998,7 @@ msgid "The button label for completing a free purchase."
3998
  msgstr ""
3999
 
4000
  #: includes/admin/settings/register-settings.php:754
4001
- #: includes/checkout/template.php:987
4002
  msgid "Free Download"
4003
  msgstr ""
4004
 
@@ -5468,35 +5468,39 @@ msgstr ""
5468
  msgid "Enter discount"
5469
  msgstr ""
5470
 
5471
- #: includes/checkout/template.php:777 includes/checkout/template.php:845
5472
  msgid "Agree to Terms?"
5473
  msgstr ""
5474
 
5475
- #: includes/checkout/template.php:790
5476
  msgid "Show Terms"
5477
  msgstr ""
5478
 
5479
- #: includes/checkout/template.php:791
5480
  msgid "Hide Terms"
5481
  msgstr ""
5482
 
5483
- #: includes/checkout/template.php:813 includes/checkout/template.php:870
 
 
 
 
5484
  msgid "Show Privacy Policy"
5485
  msgstr ""
5486
 
5487
- #: includes/checkout/template.php:814 includes/checkout/template.php:871
5488
  msgid "Hide Privacy Policy"
5489
  msgstr ""
5490
 
5491
- #: includes/checkout/template.php:901
5492
  msgid "Purchase Total:"
5493
  msgstr ""
5494
 
5495
- #: includes/checkout/template.php:927
5496
  msgid "Go back"
5497
  msgstr ""
5498
 
5499
- #: includes/checkout/template.php:950
5500
  msgid "Next"
5501
  msgstr ""
5502
 
@@ -7048,7 +7052,7 @@ msgstr ""
7048
  msgid "Status changed from %s to %s"
7049
  msgstr ""
7050
 
7051
- #: includes/payments/actions.php:460 includes/payments/actions.php:520
7052
  msgid "Error resuming payment."
7053
  msgstr ""
7054
 
@@ -7056,15 +7060,15 @@ msgstr ""
7056
  msgid "Payment recovery triggered URL"
7057
  msgstr ""
7058
 
7059
- #: includes/payments/actions.php:542 includes/payments/actions.php:576
7060
  msgid "To complete this payment, please login to your account."
7061
  msgstr ""
7062
 
7063
- #: includes/payments/actions.php:544
7064
  msgid "Lost Password"
7065
  msgstr ""
7066
 
7067
- #: includes/payments/actions.php:545 templates/shortcode-login.php:33
7068
  msgid "Lost Password?"
7069
  msgstr ""
7070
 
@@ -8438,7 +8442,7 @@ msgctxt "Address country"
8438
  msgid "Country:"
8439
  msgstr ""
8440
 
8441
- #: includes/admin/payments/view-order-details.php:741
8442
  msgctxt "State / province of address"
8443
  msgid "State / Province:"
8444
  msgstr ""
4
  msgstr ""
5
  "Project-Id-Version: Easy Digital Downloads 2.9.8\n"
6
  "Report-Msgid-Bugs-To: https://easydigitaldownloads.com/\n"
7
+ "POT-Creation-Date: 2018-12-01 06:17:31+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
1765
 
1766
  #: includes/admin/downloads/metabox.php:1031
1767
  #: includes/admin/settings/register-settings.php:747
1768
+ #: includes/admin/thickbox.php:59 includes/checkout/template.php:997
1769
  #: includes/shortcodes.php:49 includes/template-functions.php:78
1770
  msgid "Purchase"
1771
  msgstr ""
1874
  msgid "Products (Raw)"
1875
  msgstr ""
1876
 
1877
+ #: includes/admin/import/class-batch-import-payments.php:611
1878
  msgid "payments"
1879
  msgstr ""
1880
 
2420
  msgid "Type to search all Countries"
2421
  msgstr ""
2422
 
2423
+ #: includes/admin/payments/view-order-details.php:754
2424
  #: includes/admin/settings/register-settings.php:333
2425
  msgid "Select a state"
2426
  msgstr ""
2427
 
2428
+ #: includes/admin/payments/view-order-details.php:757
2429
  msgid "Type to search all States/Provinces"
2430
  msgstr ""
2431
 
2432
+ #: includes/admin/payments/view-order-details.php:778
2433
  msgid "Payment Notes"
2434
  msgstr ""
2435
 
2436
+ #: includes/admin/payments/view-order-details.php:793
2437
  msgid "No payment notes"
2438
  msgstr ""
2439
 
2440
+ #: includes/admin/payments/view-order-details.php:799
2441
  msgid "Add Note"
2442
  msgstr ""
2443
 
3998
  msgstr ""
3999
 
4000
  #: includes/admin/settings/register-settings.php:754
4001
+ #: includes/checkout/template.php:1000
4002
  msgid "Free Download"
4003
  msgstr ""
4004
 
5468
  msgid "Enter discount"
5469
  msgstr ""
5470
 
5471
+ #: includes/checkout/template.php:783
5472
  msgid "Agree to Terms?"
5473
  msgstr ""
5474
 
5475
+ #: includes/checkout/template.php:804
5476
  msgid "Show Terms"
5477
  msgstr ""
5478
 
5479
+ #: includes/checkout/template.php:805
5480
  msgid "Hide Terms"
5481
  msgstr ""
5482
 
5483
+ #: includes/checkout/template.php:855
5484
+ msgid "Agree to Privacy Policy?"
5485
+ msgstr ""
5486
+
5487
+ #: includes/checkout/template.php:877
5488
  msgid "Show Privacy Policy"
5489
  msgstr ""
5490
 
5491
+ #: includes/checkout/template.php:879
5492
  msgid "Hide Privacy Policy"
5493
  msgstr ""
5494
 
5495
+ #: includes/checkout/template.php:914
5496
  msgid "Purchase Total:"
5497
  msgstr ""
5498
 
5499
+ #: includes/checkout/template.php:940
5500
  msgid "Go back"
5501
  msgstr ""
5502
 
5503
+ #: includes/checkout/template.php:963
5504
  msgid "Next"
5505
  msgstr ""
5506
 
7052
  msgid "Status changed from %s to %s"
7053
  msgstr ""
7054
 
7055
+ #: includes/payments/actions.php:460 includes/payments/actions.php:522
7056
  msgid "Error resuming payment."
7057
  msgstr ""
7058
 
7060
  msgid "Payment recovery triggered URL"
7061
  msgstr ""
7062
 
7063
+ #: includes/payments/actions.php:544 includes/payments/actions.php:578
7064
  msgid "To complete this payment, please login to your account."
7065
  msgstr ""
7066
 
7067
+ #: includes/payments/actions.php:546
7068
  msgid "Lost Password"
7069
  msgstr ""
7070
 
7071
+ #: includes/payments/actions.php:547 templates/shortcode-login.php:33
7072
  msgid "Lost Password?"
7073
  msgstr ""
7074
 
8442
  msgid "Country:"
8443
  msgstr ""
8444
 
8445
+ #: includes/admin/payments/view-order-details.php:742
8446
  msgctxt "State / province of address"
8447
  msgid "State / Province:"
8448
  msgstr ""
readme.txt CHANGED
@@ -5,8 +5,8 @@ Contributors: easydigitaldownloads, mordauk, sunnyratilal, chriscct7, section214
5
  Donate link: https://easydigitaldownloads.com/donate/
6
  Tags: download, downloads, e-store, eshop, digital downloads, e-commerce, wp-ecommerce, wp ecommerce, ecommerce, ebook
7
  Requires at least: 4.4
8
- Tested up to: 4.9.8
9
- Stable Tag: 2.9.8
10
  License: GNU Version 2 or Any Later Version
11
 
12
  The easiest way to sell digital products with WordPress.
@@ -189,6 +189,18 @@ Yes. Easy Digital Downloads also includes default support for Amazon Payments an
189
 
190
  == Changelog ==
191
 
 
 
 
 
 
 
 
 
 
 
 
 
192
  = 2.9.8, October 1, 2018 =
193
  * Fix: Updated Amazon Payments onboarding URL.
194
  * Fix: Insert Download media button would not output expected plain text styles.
5
  Donate link: https://easydigitaldownloads.com/donate/
6
  Tags: download, downloads, e-store, eshop, digital downloads, e-commerce, wp-ecommerce, wp ecommerce, ecommerce, ebook
7
  Requires at least: 4.4
8
+ Tested up to: 5.0
9
+ Stable Tag: 2.9.9
10
  License: GNU Version 2 or Any Later Version
11
 
12
  The easiest way to sell digital products with WordPress.
189
 
190
  == Changelog ==
191
 
192
+ = 2.9.9, December 3, 2018 =
193
+ * Fix: State/province cannot be updated on order details screen when country is changed.
194
+ * Fix: "Show Privacy Policy" text link is positioned incorrectly.
195
+ * Fix: "Agree to Terms?" text shows twice on checkout with some configurations.
196
+ * Fix: Nonce verification failure when state/province field is not visible.
197
+ * Fix: Fees / Discounts can be duplicated when payment recovery link is clicked.
198
+ * Fix: Incorrect DocBlock for edd_currency_filter.
199
+ * Fix: Slashes not removed when saving profile name field.
200
+ * Fix: Item amount set to 0.00 improperly during CSV import if the "Products (Raw)" column is used but does not include a {}.
201
+ * Fix: Privacy policy text not shown if terms of use checkbox is disabled.
202
+ * Fix: Log messages not saved to debug log file if they contain non UTF-8 characters.
203
+
204
  = 2.9.8, October 1, 2018 =
205
  * Fix: Updated Amazon Payments onboarding URL.
206
  * Fix: Insert Download media button would not output expected plain text styles.