Version Description
Download this release
Release Info
Developer | NoseGraze |
Plugin | Easy Digital Downloads |
Version | 2.11.5 |
Comparing to | |
See all releases |
Code changes from version 2.11.4.1 to 2.11.5
- assets/js/admin-scripts.js +25 -0
- assets/js/admin-scripts.min.js +1 -1
- easy-digital-downloads.php +3 -3
- includes/admin/class-edd-notices.php +59 -0
- includes/admin/downloads/metabox.php +11 -6
- includes/admin/extensions/abstract-extension.php +10 -3
- includes/admin/extensions/product-education/class-email-marketing.php +9 -1
- includes/admin/extensions/product-education/class-invoices.php +9 -1
- includes/admin/extensions/product-education/class-recurring.php +9 -1
- includes/admin/extensions/product-education/class-reviews.php +9 -1
- includes/admin/import/class-batch-import-downloads.php +2 -2
- includes/admin/import/class-batch-import-payments.php +13 -6
- includes/admin/import/class-batch-import.php +42 -11
- includes/class-edd-discount.php +19 -0
- includes/class-edd-logging.php +3 -5
- includes/gateways/stripe/edd-stripe.php +2 -2
- includes/gateways/stripe/includes/admin/admin-actions.php +1 -1
- includes/gateways/stripe/includes/compat.php +8 -0
- includes/gateways/stripe/vendor/composer/ClassLoader.php +142 -15
- includes/gateways/stripe/vendor/composer/InstalledVersions.php +19 -6
- includes/gateways/stripe/vendor/composer/LICENSE +2 -0
- includes/gateways/stripe/vendor/composer/autoload_classmap.php +1 -0
- includes/gateways/stripe/vendor/composer/autoload_real.php +4 -2
- includes/gateways/stripe/vendor/composer/autoload_static.php +5 -0
- includes/gateways/stripe/vendor/composer/installed.json +219 -213
- includes/gateways/stripe/vendor/composer/installed.php +2 -2
- includes/payments/class-edd-payment.php +37 -0
- includes/payments/functions.php +1 -1
- languages/easy-digital-downloads.pot +180 -161
- readme.txt +49 -42
assets/js/admin-scripts.js
CHANGED
@@ -2138,6 +2138,31 @@ jQuery(document).ready(function ($) {
|
|
2138 |
}
|
2139 |
});
|
2140 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2141 |
});
|
2142 |
|
2143 |
// Graphing Helper Functions
|
2138 |
}
|
2139 |
});
|
2140 |
|
2141 |
+
/**
|
2142 |
+
* Deletes the debug log file and disables logging.
|
2143 |
+
*/
|
2144 |
+
$( document.body ).on( 'click', '#edd-disable-debug-log', function ( e ) {
|
2145 |
+
e.preventDefault();
|
2146 |
+
$( this ).attr( 'disabled', true );
|
2147 |
+
var notice = $( '#edd-debug-log-notice' );
|
2148 |
+
$.ajax( {
|
2149 |
+
type: "GET",
|
2150 |
+
data: {
|
2151 |
+
action: 'edd_disable_debugging',
|
2152 |
+
nonce: $( '#edd_debug_log_delete' ).val(),
|
2153 |
+
},
|
2154 |
+
url: ajaxurl,
|
2155 |
+
success: function ( response ) {
|
2156 |
+
notice.empty().append( response.data );
|
2157 |
+
setTimeout( function () {
|
2158 |
+
notice.slideUp();
|
2159 |
+
}, 3000 );
|
2160 |
+
}
|
2161 |
+
} ).fail( function ( response ) {
|
2162 |
+
notice.empty().append( response.responseJSON.data );
|
2163 |
+
} );
|
2164 |
+
} );
|
2165 |
+
|
2166 |
});
|
2167 |
|
2168 |
// Graphing Helper Functions
|
assets/js/admin-scripts.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(document).ready(function($){edd_attach_tooltips($(".edd-help-tip"));var EDD_Download_Configuration={init:function(){this.add(),this.move(),this.remove(),this.type(),this.prices(),this.files(),this.updatePrices()},clone_repeatable:function(row){var key;highest=1;return row.parent().find(".edd_repeatable_row").each(function(){var current=$(this).data("key");parseInt(current)>highest&&(highest=current)}),key=highest+=1,clone=row.clone(),clone.removeClass("edd_add_blank"),clone.attr("data-key",key),clone.find("input, select, textarea").val("").each(function(){var name=$(this).attr("name"),id=$(this).attr("id");name&&(name=name.replace(/\[(\d+)\]/,"["+parseInt(key)+"]"),$(this).attr("name",name)),$(this).attr("data-key",key),void 0!==id&&(id=id.replace(/(\d+)/,parseInt(key)),$(this).attr("id",id))}),clone.find("select").each(function(){$(this).val(row.find('select[name="'+$(this).attr("name")+'"]').val())}),clone.find('input[type="checkbox"]').each(function(){$(this).is(":checked")&&$(this).prop("checked",!1),$(this).val(1)}),clone.find("span.edd_price_id").each(function(){$(this).text(parseInt(key))}),clone.find("span.edd_file_id").each(function(){$(this).text(parseInt(key))}),clone.find(".edd_repeatable_default_input").each(function(){$(this).val(parseInt(key)).removeAttr("checked")}),clone.find(".edd_repeatable_index").each(function(){$(this).val(parseInt(key))}),clone.find(".edd_repeatable_condition_field").each(function(){$(this).find("option:eq(0)").prop("selected","selected")}),clone.find(".search-choice").remove(),clone.find(".chosen-container").remove(),edd_attach_tooltips(clone.find(".edd-help-tip")),clone},add:function(){$(document.body).on("click",".submit .edd_add_repeatable",function(clone){clone.preventDefault();var row=$(this).parent().parent().prev(".edd_repeatable_row"),clone=EDD_Download_Configuration.clone_repeatable(row);clone.insertAfter(row).find("input, textarea, select").filter(":visible").eq(0).focus(),clone.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}),clone.find(".edd-select-chosen").css("width","100%"),clone.find(".edd-select-chosen .chosen-search input").attr("placeholder",edd_vars.search_placeholder)})},move:function(){$(".edd_repeatable_table .edd-repeatables-wrap").sortable({handle:".edd-draghandle-anchor",items:".edd_repeatable_row",opacity:.6,cursor:"move",axis:"y",update:function(){var count=0;$(this).find(".edd_repeatable_row").each(function(){$(this).find("input.edd_repeatable_index").each(function(){$(this).val(count)}),count++})}})},remove:function(){$(document.body).on("click",".edd-remove-row, .edd_remove_repeatable",function(firstFocusable){firstFocusable.preventDefault();var row=$(this).parents(".edd_repeatable_row"),count=row.parent().find(".edd_repeatable_row").length,type=$(this).data("type"),repeatable="div.edd_repeatable_"+type+"s",price_row_id=$(this).is(".ui-sortable .edd_repeatable_row:first-child .edd-remove-row, .ui-sortable .edd_repeatable_row:first-child .edd_remove_repeatable")?row.next(".edd_repeatable_row"):row.prev(".edd_repeatable_row"),firstFocusable=price_row_id.find("select, input, textarea, button").filter(":visible").eq(0);if("price"===type&&(price_row_id=row.data("key"),$('.edd_repeatable_condition_field option[value="'+price_row_id+'"]').remove()),1<count)$("input, select",row).val(""),row.fadeOut("fast").remove(),firstFocusable.focus();else switch(type){case"price":alert(edd_vars.one_price_min);break;case"file":$("input, select",row).val("");break;default:alert(edd_vars.one_field_min)}$(repeatable).each(function(rowIndex){$(this).find("input, select").each(function(){var name=(name=$(this).attr("name")).replace(/\[(\d+)\]/,"["+rowIndex+"]");$(this).attr("name",name).attr("id",name)})})})},type:function(){$(document.body).on("change","#_edd_product_type",function(e){var edd_products=$("#edd_products"),edd_download_files=$("#edd_download_files"),edd_download_limit_wrap=$("#edd_download_limit_wrap");"bundle"===$(this).val()?(edd_products.show(),edd_download_files.hide(),edd_download_limit_wrap.hide()):(edd_products.hide(),edd_download_files.show(),edd_download_limit_wrap.show())})},prices:function(){$(document.body).on("change","#edd_variable_pricing",function(e){var checked=$(this).is(":checked"),single=$("#edd_regular_price_field"),variable=$("#edd_variable_price_fields, .edd_repeatable_table .pricing"),bundleRow=$(".edd-bundled-product-row, .edd-repeatable-row-standard-fields");checked?(single.hide(),variable.show(),bundleRow.addClass("has-variable-pricing")):(single.show(),variable.hide(),bundleRow.removeClass("has-variable-pricing"))})},files:function(){var file_frame;window.formfield="",$(document.body).on("click",".edd_upload_file_button",function(button){button.preventDefault();button=$(this);window.formfield=$(this).closest(".edd_repeatable_upload_wrapper"),file_frame||((file_frame=wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:button.data("uploader-title"),button:{text:button.data("uploader-button-text")},multiple:"0"!=$(this).data("multiple")})).on("menu:render:default",function(view){view.unset("library-separator"),view.unset("gallery"),view.unset("featured-image"),view.unset("embed"),view.set({})}),file_frame.on("insert",function(){file_frame.state().get("selection").each(function(attachment,clone){var row,selectedSize="image"===(attachment=attachment.toJSON()).type&&$(".attachment-display-settings .size option:selected").val(),selectedURL=attachment.url,selectedName=0<attachment.title.length?attachment.title:attachment.filename;selectedSize&&void 0!==attachment.sizes[selectedSize]&&(selectedURL=attachment.sizes[selectedSize].url),"image"===attachment.type&&(selectedName=selectedSize&&void 0!==attachment.sizes[selectedSize]?selectedName+"-"+attachment.sizes[selectedSize].width+"x"+attachment.sizes[selectedSize].height:selectedName+"-"+attachment.width+"x"+attachment.height),0===clone?(window.formfield.find(".edd_repeatable_attachment_id_field").val(attachment.id),window.formfield.find(".edd_repeatable_thumbnail_size_field").val(selectedSize),window.formfield.find(".edd_repeatable_upload_field").val(selectedURL),window.formfield.find(".edd_repeatable_name_field").val(selectedName)):(row=window.formfield,(clone=EDD_Download_Configuration.clone_repeatable(row)).find(".edd_repeatable_attachment_id_field").val(attachment.id),clone.find(".edd_repeatable_thumbnail_size_field").val(selectedSize),clone.find(".edd_repeatable_upload_field").val(selectedURL),clone.find(".edd_repeatable_name_field").val(selectedName),clone.insertAfter(row))})})),file_frame.open()}),window.formfield=""},updatePrices:function(){$("#edd_price_fields").on("keyup",".edd_variable_prices_name",function(){var key=$(this).parents(".edd_repeatable_row").data("key"),name=$(this).val(),field_option=$(".edd_repeatable_condition_field option[value="+key+"]");0<field_option.length?field_option.text(name):$(".edd_repeatable_condition_field").append($("<option></option>").attr("value",key).text(name))})}};$(document.body).on("click",".toggle-custom-price-option-section",function(header){header.preventDefault();var show=$(this).html()==edd_vars.show_advanced_settings;show?$(this).html(edd_vars.hide_advanced_settings):$(this).html(edd_vars.show_advanced_settings);header=$(this).parents(".edd-repeatable-row-header");header.siblings(".edd-custom-price-option-sections-wrap").slideToggle(),$(":input:not(input[type=button],input[type=submit],button):visible:first",show?header.siblings(".edd-custom-price-option-sections-wrap"):header.siblings(".edd-repeatable-row-standard-fields")).focus()}),EDD_Download_Configuration.init();var typingTimer,edd_datepicker=$(".edd_datepicker");0<edd_datepicker.length&&edd_datepicker.datepicker({dateFormat:"mm/dd/yy"}),{init:function(){this.edit_address(),this.remove_download(),this.add_download(),this.change_customer(),this.new_customer(),this.edit_price(),this.recalculate_total(),this.variable_prices_check(),this.add_note(),this.remove_note(),this.resend_receipt(),this.copy_download_link()},edit_address:function(){$('select[name="edd-payment-address[0][country]"]').change(function(){var data=$(this),data={action:"edd_get_shop_states",country:data.val(),nonce:data.data("nonce"),field_name:"edd-payment-address[0][state]"};return $.post(ajaxurl,data,function(response){var state_wrapper=$("#edd-order-address-state-wrap select, #edd-order-address-state-wrap input");$("#edd-order-address-state-wrap .chosen-container").remove(),"nostates"==response?state_wrapper.replaceWith('<input type="text" name="edd-payment-address[0][state]" value="" class="edd-edit-toggles medium-text"/>'):state_wrapper.replaceWith(response)}),!1})},remove_download:function(){$("#edd-purchased-files").on("click",".edd-order-remove-download",function(){var key,download_id,price_id,quantity,amount,fees,currently_removed;return 1===$(document.body).find("#edd-purchased-files > .row:not(.header)").length?alert(edd_vars.one_download_min):confirm(edd_vars.delete_payment_download)&&(key=$(this).data("key"),$(".edd-payment-id").val(),download_id=$('input[name="edd-payment-details-downloads['+key+'][id]"]').val(),price_id=$('input[name="edd-payment-details-downloads['+key+'][price_id]"]').val(),quantity=$('input[name="edd-payment-details-downloads['+key+'][quantity]"]').val(),amount=$('input[name="edd-payment-details-downloads['+key+'][amount]"]').val(),$('input[name="edd-payment-details-downloads['+key+'][tax]"]').length&&(fees=$('input[name="edd-payment-details-downloads['+key+'][tax]"]').val()),$('input[name="edd-payment-details-downloads['+key+'][fees]"]').length&&(fees=$.parseJSON($('input[name="edd-payment-details-downloads['+key+'][fees]"]').val())),currently_removed=$('input[name="edd-payment-removed"]').val(),(currently_removed=(currently_removed=$.parseJSON(currently_removed)).length<1?{}:currently_removed)[key]=[{id:download_id,price_id:price_id,quantity:quantity,amount:amount,cart_index:key}],$('input[name="edd-payment-removed"]').val(JSON.stringify(currently_removed)),$(this).parent().parent().remove(),fees&&fees.length&&$.each(fees,function(key,value){$('*li[data-fee-id="'+value+'"]').remove()}),$("#edd-payment-downloads-changed").val(1),$(".edd-order-payment-recalc-totals").show()),!1})},change_customer:function(){$("#edd-customer-details").on("click",".edd-payment-change-customer, .edd-payment-change-customer-cancel",function(cancel){cancel.preventDefault();var change_customer=$(this).hasClass("edd-payment-change-customer"),cancel=$(this).hasClass("edd-payment-change-customer-cancel");change_customer?($(".customer-info").hide(),$(".change-customer").show(),$(".edd-payment-change-customer-input").css("width","auto")):cancel&&($(".customer-info").show(),$(".change-customer").hide())})},new_customer:function(){$("#edd-customer-details").on("click",".edd-payment-new-customer, .edd-payment-new-customer-cancel",function(cancel){cancel.preventDefault();var new_customer=$(this).hasClass("edd-payment-new-customer"),cancel=$(this).hasClass("edd-payment-new-customer-cancel");new_customer?($(".customer-info").hide(),$(".new-customer").show()):cancel&&($(".customer-info").show(),$(".new-customer").hide());new_customer=$("#edd-new-customer");$(".new-customer").is(":visible")?new_customer.val(1):new_customer.val(0)})},add_download:function(){$(".edd-edit-purchase-element").on("click","#edd-order-add-download",function(download_title){download_title.preventDefault();var quantity=$("#edd_order_download_select"),item_price=$("#edd-order-download-quantity"),item_total=$("#edd-order-download-price"),price_id=$("#edd-order-download-tax"),clone=$(".edd_price_options_select option:selected"),download_id=quantity.val(),download_title=quantity.find(":selected").text(),quantity=item_price.val(),item_price=item_total.val(),item_total=price_id.val(),price_id=clone.val(),clone=clone.text();if(download_id<1)return!1;if(item_price=item_price||0,item_price=parseFloat(item_price),isNaN(item_price))return alert(edd_vars.numeric_item_price),!1;if(item_total=parseFloat(item_total),isNaN(item_total))return alert(edd_vars.numeric_item_tax),!1;if(isNaN(parseInt(quantity)))return alert(edd_vars.numeric_quantity),!1;clone&&(download_title=download_title+" - "+clone);var count=$("#edd-purchased-files div.row:not(.edd-purchased-files-header)").length;0==count&&alert(edd_vars.no_downloads_error);clone=$("#edd-purchased-files div.row:not(.edd-purchased-files-header):last").clone();clone.find(".download span").html('<a href="post.php?post='+download_id+'&action=edit"></a>'),clone.find(".download span a").text(download_title),clone.find(".edd-payment-details-download-item-price").val(item_price.toFixed(edd_vars.currency_decimals)),clone.find(".edd-payment-details-download-item-tax").val(item_total.toFixed(edd_vars.currency_decimals)),clone.find("input.edd-payment-details-download-id").val(download_id),clone.find("input.edd-payment-details-download-price-id").val(price_id);item_total=(item_total=item_price*quantity+item_total).toFixed(edd_vars.currency_decimals);clone.find("span.edd-payment-details-download-amount").text(item_total),clone.find("input.edd-payment-details-download-amount").val(item_total),clone.find("input.edd-payment-details-download-quantity").val(quantity),clone.find("input.edd-payment-details-download-has-log").val(0),clone.find(".edd-copy-download-link-wrapper").remove(),clone.find("input").each(function(){var name=(name=$(this).attr("name")).replace(/\[(\d+)\]/,"["+parseInt(count)+"]");$(this).attr("name",name).attr("id",name)}),clone.find("a.edd-order-remove-download").attr("data-key",parseInt(count)),$("#edd-payment-downloads-changed").val(1),$("#edd-purchased-files div.row .edd-purchased-download-title .deleted").length&&$("#edd-purchased-files div.row:last").remove(),$(clone).insertAfter("#edd-purchased-files div.row:last"),$(".edd-order-payment-recalc-totals").show(),$(".edd-add-download-field").val("")})},edit_price:function(){$(document.body).on("change keyup",".edd-payment-item-input",function(){var row=$(this).parents("ul.edd-purchased-files-list-wrapper");$(".edd-order-payment-recalc-totals").show();var quantity=row.find("input.edd-payment-details-download-quantity").val().replace(edd_vars.thousands_separator,""),item_price=row.find("input.edd-payment-details-download-item-price").val().replace(edd_vars.thousands_separator,""),item_total=row.find("input.edd-payment-details-download-item-tax").val().replace(edd_vars.thousands_separator,""),item_price=parseFloat(item_price);if(isNaN(item_price))return alert(edd_vars.numeric_item_price),!1;item_total=parseFloat(item_total),isNaN(item_total)&&(item_total=0);item_total=(item_total=item_price*(quantity=isNaN(parseInt(quantity))?1:quantity)+item_total).toFixed(edd_vars.currency_decimals);row.find("input.edd-payment-details-download-amount").val(item_total),row.find("span.edd-payment-details-download-amount").text(item_total)})},recalculate_total:function(){$("#edd-order-recalc-total").on("click",function(taxes){taxes.preventDefault();var total=0,tax=0,totals=$("#edd-purchased-files .row input.edd-payment-details-download-amount"),taxes=$("#edd-purchased-files .row input.edd-payment-details-download-item-tax");totals.length&&totals.each(function(){total+=parseFloat($(this).val())}),taxes.length&&taxes.each(function(){tax+=parseFloat($(this).val())}),$(".edd-payment-fees").length&&$(".edd-payment-fees span.fee-amount").each(function(){total+=parseFloat($(this).data("fee"))}),$("input[name=edd-payment-total]").val(total.toFixed(edd_vars.currency_decimals)),$("input[name=edd-payment-tax]").val(tax.toFixed(edd_vars.currency_decimals))})},variable_prices_check:function(){$(".edd-edit-purchase-element").on("change","select#edd_order_download_select",function(){var $this=$(this),download_id=$this.val();0<parseInt(download_id)&&$.ajax({type:"POST",data:{action:"edd_check_for_download_price_variations",download_id:download_id},url:ajaxurl,success:function(response){$(".edd_price_options_select").remove(),$(response).insertAfter($this.next())}}).fail(function(data){window.console&&window.console.log&&console.log(data)})})},add_note:function(){$("#edd-add-payment-note").on("click",function(postData){postData.preventDefault();var border_color,postData={action:"edd_insert_payment_note",payment_id:$(this).data("payment-id"),note:$("#edd-payment-note").val()};postData.note?$.ajax({type:"POST",data:postData,url:ajaxurl,success:function(response){$("#edd-payment-notes-inner").append(response),$(".edd-no-payment-notes").hide(),$("#edd-payment-note").val("")}}).fail(function(data){window.console&&window.console.log&&console.log(data)}):(border_color=$("#edd-payment-note").css("border-color"),$("#edd-payment-note").css("border-color","red"),setTimeout(function(){$("#edd-payment-note").css("border-color",border_color)},500))})},remove_note:function(){$(document.body).on("click",".edd-delete-payment-note",function(e){if(e.preventDefault(),confirm(edd_vars.delete_payment_note)){var postData={action:"edd_delete_payment_note",payment_id:$(this).data("payment-id"),note_id:$(this).data("note-id")};return $.ajax({type:"POST",data:postData,url:ajaxurl,success:function(response){return $("#edd-payment-note-"+postData.note_id).remove(),$(".edd-payment-note").length||$(".edd-no-payment-notes").show(),!1}}).fail(function(data){window.console&&window.console.log&&console.log(data)}),!0}})},resend_receipt:function(){var emails_wrap=$(".edd-order-resend-receipt-addresses");$(document.body).on("click","#edd-select-receipt-email",function(e){e.preventDefault(),emails_wrap.slideDown()}),$(document.body).on("change",".edd-order-resend-receipt-email",function(){var href=$("#edd-select-receipt-email").prop("href")+"&email="+$(this).val();confirm(edd_vars.resend_receipt)&&(window.location=href)}),$(document.body).on("click","#edd-resend-receipt",function(e){return confirm(edd_vars.resend_receipt)})},copy_download_link:function(){$(document.body).on("click",".edd-copy-download-link",function(postData){postData.preventDefault();postData=$(this),postData={action:"edd_get_file_download_link",payment_id:$('input[name="edd_payment_id"]').val(),download_id:postData.data("download-id"),price_id:postData.data("price-id")};$.ajax({type:"POST",data:postData,url:ajaxurl,success:function(link){return $("#edd-download-link").dialog({width:400}).html('<textarea rows="10" cols="40" id="edd-download-link-textarea">'+link+"</textarea>"),$("#edd-download-link-textarea").focus().select(),!1}}).fail(function(data){window.console&&window.console.log&&console.log(data)})})}}.init(),{init:function(){this.type_select(),this.product_requirements()},type_select:function(){$("#edd-edit-discount #edd-type, #edd-add-discount #edd-type").change(function(){var val=$(this).val();$(".edd-amount-description").hide(),$(".edd-amount-description."+val+"-discount").show()})},product_requirements:function(){$("#products").change(function(){var product_conditions=$("#edd-discount-product-conditions");$(this).val()?product_conditions.show():product_conditions.hide()})}}.init(),{init:function(){this.date_options(),this.customers_export()},date_options:function(){$("#edd-graphs-date-options").change(function(){var $this=$(this),date_range_options=$("#edd-date-range-options");"other"===$this.val()?date_range_options.show():date_range_options.hide()})},customers_export:function(){$("#edd_customer_export_download").change(function(){var price_options_select,$this=$(this),data=$("option:selected",$this).val(),customer_export_option=$("#edd_customer_export_option");"0"===$this.val()?customer_export_option.show():customer_export_option.hide(),0!=parseInt(data)?(data={action:"edd_check_for_download_price_variations",download_id:data,all_prices:!0},price_options_select=$(".edd_price_options_select"),$.post(ajaxurl,data,function(response){price_options_select.remove(),$("#edd_customer_export_download_chosen").after(response)})):price_options_select.remove()})}}.init(),{init:function(){this.general(),this.taxes(),this.emails(),this.misc()},general:function(){var file_frame,edd_settings_upload_button=$(".edd-color-picker");edd_settings_upload_button.length&&edd_settings_upload_button.wpColorPicker(),"undefined"==typeof wp||"1"!==edd_vars.new_media_ui?0<(edd_settings_upload_button=$(".edd_settings_upload_button")).length&&(window.formfield="",$(document.body).on("click",edd_settings_upload_button,function(e){e.preventDefault(),window.formfield=$(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(html){window.formfield?(imgurl=$("a","<div>"+html+"</div>").attr("href"),window.formfield.val(imgurl),window.clearInterval(window.tbframe_interval),tb_remove()):window.edd_send_to_editor(html),window.send_to_editor=window.edd_send_to_editor,window.formfield="",window.imagefield=!1}):(window.formfield="",$(document.body).on("click",".edd_settings_upload_button",function(button){button.preventDefault();button=$(this);window.formfield=$(this).parent().prev(),file_frame||((file_frame=wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:button.data("uploader_title"),button:{text:button.data("uploader_button_text")},multiple:!1})).on("menu:render:default",function(view){view.unset("library-separator"),view.unset("gallery"),view.unset("featured-image"),view.unset("embed"),view.set({})}),file_frame.on("insert",function(){file_frame.state().get("selection").each(function(attachment,index){attachment=attachment.toJSON(),window.formfield.val(attachment.url)})})),file_frame.open()}),window.formfield="")},taxes:function(){var no_states=$("select.edd-no-states");no_states.length&&no_states.closest("tr").addClass("hidden"),$('select[name="edd_settings[base_country]"]').change(function(){var data=$(this),$tr=data.closest("tr"),data={action:"edd_get_shop_states",country:data.val(),nonce:data.data("nonce"),field_name:"edd_settings[base_state]"};return $.post(ajaxurl,data,function(response){"nostates"==response?$tr.next().addClass("hidden"):($tr.next().removeClass("hidden"),$tr.next().find("select").replaceWith(response))}),!1}),$(document.body).on("change","#edd_tax_rates select.edd-tax-country",function(){var $this=$(this),data={action:"edd_get_shop_states",country:$this.val(),nonce:$this.data("nonce"),field_name:$this.attr("name").replace("country","state")};return $.post(ajaxurl,data,function(response){var text_field;"nostates"==response?(text_field='<input type="text" name="'+data.field_name+'" value=""/>',$this.parent().next().find("select").replaceWith(text_field)):($this.parent().next().find("input,select").show(),$this.parent().next().find("input,select").replaceWith(response))}),!1}),$("#edd_add_tax_rate").on("click",function(){var row=$("#edd_tax_rates tr:last"),clone=row.clone(),count=row.parent().find("tr").length;return clone.find("td input").not(":input[type=checkbox]").val(""),clone.find('td [type="checkbox"]').attr("checked",!1),clone.find("input, select").each(function(){var name=(name=$(this).attr("name")).replace(/\[(\d+)\]/,"["+parseInt(count)+"]");$(this).attr("name",name).attr("id",name)}),clone.find("label").each(function(){var name=(name=$(this).attr("for")).replace(/\[(\d+)\]/,"["+parseInt(count)+"]");$(this).attr("for",name)}),clone.insertAfter(row),!1}),$(document.body).on("click","#edd_tax_rates .edd_remove_tax_rate",function(){return confirm(edd_vars.delete_tax_rate)&&(2===$("#edd_tax_rates tr:visible").length?($("#edd_tax_rates select").val(""),$('#edd_tax_rates input[type="text"]').val(""),$('#edd_tax_rates input[type="number"]').val(""),$('#edd_tax_rates input[type="checkbox"]').attr("checked",!1)):$(this).closest("tr").remove(),$("#edd_tax_rates tr").each(function(rowIndex){$(this).children().find("input, select").each(function(){var name=(name=$(this).attr("name")).replace(/\[(\d+)\]/,"["+(rowIndex-1)+"]");$(this).attr("name",name).attr("id",name)})})),!1})},emails:function(){$("#edd-recapture-connect").on("click",function(e){e.preventDefault(),$(this).html(edd_vars.wait+' <span class="edd-loading"></span>'),document.body.style.cursor="wait",easy_digital_downloads_recapture_remote_install()})},misc:function(){var downloadMethod=$('select[name="edd_settings[download_method]"]'),symlink=downloadMethod.parent().parent().next();"direct"==downloadMethod.val()&&(symlink.hide(),symlink.find("input").prop("checked",!1)),downloadMethod.on("change",function(){"direct"==$(this).val()?(symlink.hide(),symlink.find("input").prop("checked",!1)):symlink.show()})}}.init(),$(".download_page_edd-payment-history .row-actions .delete a, a.edd-delete-payment").on("click",function(){return!!confirm(edd_vars.delete_payment)}),$("body").on("click","#the-list .editinline",function(){var post_id=(post_id=$(this).closest("tr").attr("id")).replace("post-",""),regprice=$("#post-"+post_id).find(".column-price .downloadprice-"+post_id).val();regprice!=$("#post-"+post_id+".column-price .downloadprice-"+post_id).val()?$(".regprice","#edd-download-data").val(regprice).attr("disabled",!1):$(".regprice","#edd-download-data").val(edd_vars.quick_edit_warning).attr("disabled","disabled")}),$(document.body).on("click","#bulk_edit",function(){var $price=$("#bulk-edit"),$post_ids=new Array;$price.find("#bulk-titles").children().each(function(){$post_ids.push($(this).attr("id").replace(/^(ttle)/i,""))});$price=$('#edd-download-data input[name="_edd_regprice"]').val();$.post(ajaxurl,{action:"edd_save_bulk_edit",edd_bulk_nonce:$post_ids,post_ids:$post_ids,price:$price})}),$(".edd-select-chosen").chosen({inherit_select_classes:!0,placeholder_text_single:edd_vars.one_option,placeholder_text_multiple:edd_vars.one_or_more_option}),$(".edd-select-chosen .chosen-search input").each(function(){var placeholder=$(this).parent().parent().parent().prev("select.edd-select-chosen"),placeholder=(placeholder.data("search-type"),placeholder.data("search-placeholder"));$(this).attr("placeholder",placeholder)}),$(".chosen-choices").on("click",function(){var placeholder=$(this).parent().prev().data("search-placeholder");void 0===placeholder&&(placeholder=edd_vars.type_to_search),$(this).children("li").children("input").attr("placeholder",placeholder)});$(document.body).on("keyup",".edd-select.chosen-container .chosen-search input, .edd-select.chosen-container .search-field input",function(lastKey){var val=$(this).val(),container=$(this).closest(".edd-select-chosen"),select=(container.attr("id").replace("_chosen",""),container.prev()),no_bundles=container.hasClass("no-bundles"),variations=container.hasClass("variations"),lastKey=lastKey.which,search_type="edd_download_search";if(container.prev().data("search-type")){if("no_ajax"==select.data("search-type"))return;search_type="edd_"+select.data("search-type")+"_search"}val.length<=3&&"edd_download_search"==search_type||16==lastKey||13==lastKey||91==lastKey||17==lastKey||37==lastKey||38==lastKey||39==lastKey||40==lastKey||(clearTimeout(typingTimer),typingTimer=setTimeout(function(){$.ajax({type:"GET",url:ajaxurl,data:{action:search_type,s:val,no_bundles:no_bundles,variations:variations},dataType:"json",beforeSend:function(){select.closest("ul.chosen-results").empty()},success:function(data){$("option:not(:selected)",select).remove(),$.each(data,function(key,item){$('option[value="'+item.id+'"]',select).length||select.prepend('<option value="'+item.id+'">'+item.name+"</option>")}),$(".edd-select-chosen").trigger("chosen:updated"),select.next().find("input").val(val)}}).fail(function(response){window.console&&window.console.log&&console.log(response)}).done(function(response){})},342))}),$("#post").on("click",".edd-thickbox",function(){$(".edd-select-chosen","#choose-download").css("width","100%")}),{init:function(){this.revoke_api_key(),this.regenerate_api_key(),this.create_api_key(),this.recount_stats()},revoke_api_key:function(){$(document.body).on("click",".edd-revoke-api-key",function(e){return confirm(edd_vars.revoke_api_key)})},regenerate_api_key:function(){$(document.body).on("click",".edd-regenerate-api-key",function(e){return confirm(edd_vars.regenerate_api_key)})},create_api_key:function(){$(document.body).on("submit","#api-key-generate-form",function(e){var input=$('input[type="text"][name="user_id"]');input.css("border-color","#ddd");var user_id=input.val();if(user_id.length<1||0==user_id)return input.css("border-color","#ff0000"),!1})},recount_stats:function(){$(document.body).on("change","#recount-stats-type",function(){var export_form=$("#edd-tools-recount-form"),selected_type=$("option:selected",this).data("type"),submit_button=$("#recount-stats-submit"),products=$("#tools-product-dropdown");export_form.find(".notice-wrap").remove(),submit_button.removeClass("button-disabled").attr("disabled",!1),products.hide(),$(".edd-recount-stats-descriptions span").hide(),"recount-download"===selected_type?(products.show(),products.find(".edd-select-chosen").css("width","auto")):"reset-stats"===selected_type?(export_form.append('<div class="notice-wrap"></div>'),export_form.find(".notice-wrap").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>"),$("#recount-stats-submit").addClass("button-disabled").attr("disabled","disabled")):(products.hide(),products.val(0)),$("#"+selected_type).show()}),$(document.body).on("change","#confirm-reset",function(){$(this).is(":checked")?$("#recount-stats-submit").removeClass("button-disabled").removeAttr("disabled"):$("#recount-stats-submit").addClass("button-disabled").attr("disabled","disabled")}),$("#edd-tools-recount-form").submit(function(e){var selection=$("#recount-stats-type").val(),export_form=$(this),selected_type=$("option:selected",this).data("type");if("reset-stats"===selected_type){if($("#confirm-reset").is(":checked"))return!0;has_errors=!0}export_form.find(".notice-wrap").remove(),export_form.append('<div class="notice-wrap"></div>');var notice_wrap=export_form.find(".notice-wrap"),has_errors=!1;if(null!==selection&&0!==selection||(notice_wrap.html('<div class="updated error"><p>'+edd_vars.batch_export_no_class+"</p></div>"),has_errors=!0),"recount-download"===selected_type&&0==$('select[name="download_id"]').val()&&(notice_wrap.html('<div class="updated error"><p>'+edd_vars.batch_export_no_reqs+"</p></div>"),has_errors=!0),has_errors)return export_form.find(".button-disabled").removeClass("button-disabled"),!1})}}.init(),{init:function(){this.submit(),this.dismiss_message()},submit:function(){var self=this;$(document.body).on("submit",".edd-export-form",function(data){data.preventDefault();var submitButton=$(this).find('input[type="submit"]');submitButton.hasClass("button-disabled")||(data=$(this).serialize(),submitButton.addClass("button-disabled"),$(this).find(".notice-wrap").remove(),$(this).append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),self.process_step(1,data,self))})},process_step:function(step,data,self){$.ajax({type:"POST",url:ajaxurl,data:{form:data,action:"edd_do_ajax_export",step:step},dataType:"json",success:function(response){var export_form,notice_wrap,success_message;"done"==response.step||response.error||response.success?(notice_wrap=(export_form=$(".edd-export-form").find(".edd-progress").parent().parent()).find(".notice-wrap"),export_form.find(".button-disabled").removeClass("button-disabled"),response.error?(success_message=response.message,notice_wrap.html('<div class="updated error"><p>'+success_message+"</p></div>")):response.success?(success_message=response.message,notice_wrap.html('<div id="edd-batch-success" class="updated notice is-dismissible"><p>'+success_message+'<span class="notice-dismiss"></span></p></div>')):(notice_wrap.remove(),window.location=response.url)):($(".edd-progress div").animate({width:response.percentage+"%"},50,function(){}),self.process_step(parseInt(response.step),data,self))}}).fail(function(response){window.console&&window.console.log&&console.log(response)})},dismiss_message:function(){$(document.body).on("click","#edd-batch-success .notice-dismiss",function(){$("#edd-batch-success").parent().slideUp("fast")})}}.init();var EDD_Import={init:function(){this.submit()},submit:function(){$(".edd-import-form").ajaxForm({beforeSubmit:this.before_submit,success:this.success,complete:this.complete,dataType:"json",error:this.error})},before_submit:function(arr,notice_wrap,options){if(notice_wrap.find(".notice-wrap").remove(),notice_wrap.append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),!(window.File&&window.FileReader&&window.FileList&&window.Blob)){var import_form=$(".edd-import-form").find(".edd-progress").parent().parent(),notice_wrap=import_form.find(".notice-wrap");return import_form.find(".button-disabled").removeClass("button-disabled"),notice_wrap.html('<div class="update error"><p>'+edd_vars.unsupported_browser+"</p></div>"),!1}},success:function(responseText,statusText,xhr,$form){},complete:function(xhr){var $form,select,options,columns,response=jQuery.parseJSON(xhr.responseText);response.success?(($form=$(".edd-import-form .notice-wrap").parent()).find(".edd-import-file-wrap,.notice-wrap").remove(),$form.find(".edd-import-options").slideDown(),(select=$form.find("select.edd-import-csv-column")).parents("tr").first(),options="",columns=response.data.columns.sort(function(a,b){return a<b?-1:b<a?1:0}),$.each(columns,function(key,value){options+='<option value="'+value+'">'+value+"</option>"}),select.append(options),select.on("change",function(){var $key=$(this).val();$key&&0!=response.data.first_row[$key]?$(this).parent().next().html(response.data.first_row[$key]):$(this).parent().next().html("")}),$.each(select,function(){$(this).val($(this).attr("data-field")).change()}),$(document.body).on("click",".edd-import-proceed",function(e){e.preventDefault(),$form.append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),response.data.mapping=$form.serialize(),EDD_Import.process_step(1,response.data,self)})):EDD_Import.error(xhr)},error:function(notice_wrap){var response=jQuery.parseJSON(notice_wrap.responseText),import_form=$(".edd-import-form").find(".edd-progress").parent().parent(),notice_wrap=import_form.find(".notice-wrap");import_form.find(".button-disabled").removeClass("button-disabled"),response.data.error?notice_wrap.html('<div class="update error"><p>'+response.data.error+"</p></div>"):notice_wrap.remove()},process_step:function(step,import_data,self){$.ajax({type:"POST",url:ajaxurl,data:{form:import_data.form,nonce:import_data.nonce,class:import_data.class,upload:import_data.upload,mapping:import_data.mapping,action:"edd_do_ajax_import",step:step},dataType:"json",success:function(response){var import_form,notice_wrap;"done"==response.data.step||response.data.error?(notice_wrap=(import_form=$(".edd-import-form").find(".edd-progress").parent().parent()).find(".notice-wrap"),import_form.find(".button-disabled").removeClass("button-disabled"),response.data.error?notice_wrap.html('<div class="update error"><p>'+response.data.error+"</p></div>"):(import_form.find(".edd-import-options").hide(),$("html, body").animate({scrollTop:import_form.parent().offset().top},500),notice_wrap.html('<div class="updated"><p>'+response.data.message+"</p></div>"))):($(".edd-progress div").animate({width:response.data.percentage+"%"},50,function(){}),EDD_Import.process_step(parseInt(response.data.step),import_data,self))}}).fail(function(response){window.console&&window.console.log&&console.log(response)})}};EDD_Import.init();var EDD_Customer={vars:{customer_card_wrap_editable:$(".edd-customer-card-wrapper .editable"),customer_card_wrap_edit_item:$(".edd-customer-card-wrapper .edit-item"),user_id:$('input[name="customerinfo[user_id]"]'),state_input:$(':input[name="customerinfo[state]"]'),note:$("#customer-note")},init:function(){this.edit_customer(),this.add_email(),this.user_search(),this.remove_user(),this.cancel_edit(),this.change_country(),this.add_note(),this.delete_checked()},edit_customer:function(){$(document.body).on("click","#edit-customer",function(e){e.preventDefault(),EDD_Customer.vars.customer_card_wrap_editable.hide(),EDD_Customer.vars.customer_card_wrap_edit_item.fadeIn().css("display","block")})},add_email:function(){$(document.body).on("click","#add-customer-email",function(nonce){nonce.preventDefault();var button=$(this),wrapper=button.parent();wrapper.parent().find(".notice-container").remove(),wrapper.find(".spinner").css("visibility","visible"),button.attr("disabled",!0);var customer_id=wrapper.find('input[name="customer-id"]').val(),email=wrapper.find('input[name="additional-email"]').val(),primary=wrapper.find('input[name="make-additional-primary"]').is(":checked"),nonce=wrapper.find('input[name="add_email_nonce"]').val();$.post(ajaxurl,{edd_action:"customer-add-email",customer_id:customer_id,email:email,primary:primary,_wpnonce:nonce},function(response){!0===response.success?window.location.href=response.redirect:(button.attr("disabled",!1),wrapper.after('<div class="notice-container"><div class="notice notice-error inline"><p>'+response.message+"</p></div></div>"),wrapper.find(".spinner").css("visibility","hidden"))},"json")})},user_search:function(){$(document.body).on("click.eddSelectUser",".edd_user_search_results a",function(user_id){user_id.preventDefault();user_id=$(this).data("userid");EDD_Customer.vars.user_id.val(user_id)})},remove_user:function(){$(document.body).on("click","#disconnect-customer",function(postData){postData.preventDefault(),confirm(edd_vars.disconnect_customer)&&(postData={edd_action:"disconnect-userid",customer_id:$('input[name="customerinfo[id]"]').val(),_wpnonce:$("#edit-customer-info #_wpnonce").val()},$.post(ajaxurl,postData,function(response){window.location.href=window.location.href},"json"))})},cancel_edit:function(){$(document.body).on("click","#edd-edit-customer-cancel",function(e){e.preventDefault(),EDD_Customer.vars.customer_card_wrap_edit_item.hide(),EDD_Customer.vars.customer_card_wrap_editable.show(),$(".edd_user_search_results").html("")})},change_country:function(){$('select[name="customerinfo[country]"]').change(function(){var $this=$(this),data={action:"edd_get_shop_states",country:$this.val(),nonce:$this.data("nonce"),field_name:"customerinfo[state]"};return $.post(ajaxurl,data,function(response){"nostates"==response?EDD_Customer.vars.state_input.replaceWith('<input type="text" name="'+data.field_name+'" value="" class="edd-edit-toggles medium-text"/>'):EDD_Customer.vars.state_input.replaceWith(response)}),!1})},add_note:function(){$(document.body).on("click","#add-customer-note",function(postData){postData.preventDefault();var border_color,postData={edd_action:"add-customer-note",customer_id:$("#customer-id").val(),customer_note:EDD_Customer.vars.note.val(),add_customer_note_nonce:$("#add_customer_note_nonce").val()};postData.customer_note?$.ajax({type:"POST",data:postData,url:ajaxurl,success:function(response){$("#edd-customer-notes").prepend(response),$(".edd-no-customer-notes").hide(),EDD_Customer.vars.note.val("")}}).fail(function(data){window.console&&window.console.log&&console.log(data)}):(border_color=EDD_Customer.vars.note.css("border-color"),EDD_Customer.vars.note.css("border-color","red"),setTimeout(function(){EDD_Customer.vars.note.css("border-color",border_color)},500))})},delete_checked:function(){$("#edd-customer-delete-confirm").change(function(){var records_input=$("#edd-customer-delete-records"),submit_button=$("#edd-delete-customer");$(this).prop("checked")?(records_input.attr("disabled",!1),submit_button.attr("disabled",!1)):(records_input.attr("disabled",!0),records_input.prop("checked",!1),submit_button.attr("disabled",!0))})}};EDD_Customer.init();var EDD_Promo_Notices={init:function(){EDD_Promo_Notices.displayNotices(),EDD_Promo_Notices.dismissNotices()},displayNotices:function(){var topOfPageNoticeEl,topOfPageNotice=$(".edd-admin-notice-top-of-page");topOfPageNotice&&(topOfPageNoticeEl=topOfPageNotice.detach(),$("#wpbody-content").prepend(topOfPageNoticeEl),topOfPageNotice.delay(1e3).slideDown())},dismissNotices:function(){$(".edd-promo-notice").each(function(){var notice=$(this);notice.on("click",".edd-promo-notice-dismiss",function(e){$(this).attr("href")||e.preventDefault(),$.ajax({type:"POST",data:{action:"edd_dismiss_promo_notice",notice_id:notice.data("id"),nonce:notice.data("nonce"),lifespan:notice.data("lifespan")},url:ajaxurl,success:function(response){notice.slideUp()}})})})}};EDD_Promo_Notices.init(),$(".edd-ajax-user-search").keyup(function(){var user_search=$(this).val(),data="";$(this).data("exclude")&&(data=$(this).data("exclude")),$(".edd-ajax").show();data={action:"edd_search_users",user_name:user_search,exclude:data};document.body.style.cursor="wait",$.ajax({type:"POST",data:data,dataType:"json",url:ajaxurl,success:function(search_response){$(".edd-ajax").hide(),$(".edd_user_search_results").removeClass("hidden"),$(".edd_user_search_results span").html(""),$(search_response.results).appendTo(".edd_user_search_results span"),document.body.style.cursor="default"}})}),$(document.body).on("click.eddSelectUser",".edd_user_search_results span a",function(login){login.preventDefault();login=$(this).data("login");$(".edd-ajax-user-search").val(login),$(".edd_user_search_results").addClass("hidden"),$(".edd_user_search_results span").html("")}),$(document.body).on("click.eddCancelUserSearch",".edd_user_search_results a.edd-ajax-user-cancel",function(e){e.preventDefault(),$(".edd-ajax-user-search").val(""),$(".edd_user_search_results").addClass("hidden"),$(".edd_user_search_results span").html("")}),$("#edd_dashboard_sales").length&&$.ajax({type:"GET",data:{action:"edd_load_dashboard_widget"},url:ajaxurl,success:function(response){$("#edd_dashboard_sales .edd-loading").html(response)}}),$(document.body).on("keydown",".customer-note-input",function(e){13==e.keyCode&&(e.metaKey||e.ctrlKey)&&$("#add-customer-note").click()})});var eddFormatCurrency=function(decimalPlaces){var numeric=parseFloat(decimalPlaces),storeCurrency=edd_vars.currency,decimalPlaces=edd_vars.currency_decimals;return numeric.toLocaleString(storeCurrency,{style:"currency",currency:storeCurrency,minimumFractionDigits:decimalPlaces,maximumFractionDigits:decimalPlaces})},eddFormatNumber=function(storeCurrency){var numeric=parseFloat(storeCurrency),storeCurrency=edd_vars.currency;edd_vars.currency_decimals;return numeric.toLocaleString(storeCurrency,{style:"decimal",minimumFractionDigits:0,maximumFractionDigits:0})},eddLabelFormatter=function(label,series){return'<div style="font-size:12px; text-align:center; padding:2px">'+label+"</div>"},eddLegendFormatterSales=function(item,series){var slug=item.toLowerCase().replace(/\s/g,"-"),color='<div class="edd-legend-color" style="background-color: '+series.color+'"></div>',item='<div class="edd-pie-legend-item">'+item+": "+Math.round(series.percent)+"% ("+eddFormatNumber(series.data[0][1])+")</div>",item='<div id="'+series.edd_vars.id+slug+'" class="edd-legend-item-wrapper">'+color+item+"</div>";return jQuery("#edd-pie-legend-"+series.edd_vars.id).append(item),item},eddLegendFormatterEarnings=function(item,series){var slug=item.toLowerCase().replace(/\s/g,"-"),color='<div class="edd-legend-color" style="background-color: '+series.color+'"></div>',item='<div class="edd-pie-legend-item">'+item+": "+Math.round(series.percent)+"% ("+eddFormatCurrency(series.data[0][1])+")</div>",item='<div id="'+series.edd_vars.id+slug+'" class="edd-legend-item-wrapper">'+color+item+"</div>";return jQuery("#edd-pie-legend-"+series.edd_vars.id).append(item),item};function edd_attach_tooltips(selector){selector.tooltip({content:function(){return jQuery(this).prop("title")},tooltipClass:"edd-ui-tooltip",position:{my:"center top",at:"center bottom+10",collision:"flipfit"},hide:{duration:200},show:{duration:200}})}function easy_digital_downloads_recapture_remote_install(){jQuery.post(ajaxurl,{action:"edd_recapture_remote_install"},function(response){0==response.success&&confirm(response.data.error)?location.reload():window.location.href="https://recapture.io/register"})}
|
1 |
+
jQuery(document).ready(function($){edd_attach_tooltips($(".edd-help-tip"));var EDD_Download_Configuration={init:function(){this.add(),this.move(),this.remove(),this.type(),this.prices(),this.files(),this.updatePrices()},clone_repeatable:function(row){var key;highest=1;return row.parent().find(".edd_repeatable_row").each(function(){var current=$(this).data("key");parseInt(current)>highest&&(highest=current)}),key=highest+=1,clone=row.clone(),clone.removeClass("edd_add_blank"),clone.attr("data-key",key),clone.find("input, select, textarea").val("").each(function(){var name=$(this).attr("name"),id=$(this).attr("id");name&&(name=name.replace(/\[(\d+)\]/,"["+parseInt(key)+"]"),$(this).attr("name",name)),$(this).attr("data-key",key),void 0!==id&&(id=id.replace(/(\d+)/,parseInt(key)),$(this).attr("id",id))}),clone.find("select").each(function(){$(this).val(row.find('select[name="'+$(this).attr("name")+'"]').val())}),clone.find('input[type="checkbox"]').each(function(){$(this).is(":checked")&&$(this).prop("checked",!1),$(this).val(1)}),clone.find("span.edd_price_id").each(function(){$(this).text(parseInt(key))}),clone.find("span.edd_file_id").each(function(){$(this).text(parseInt(key))}),clone.find(".edd_repeatable_default_input").each(function(){$(this).val(parseInt(key)).removeAttr("checked")}),clone.find(".edd_repeatable_index").each(function(){$(this).val(parseInt(key))}),clone.find(".edd_repeatable_condition_field").each(function(){$(this).find("option:eq(0)").prop("selected","selected")}),clone.find(".search-choice").remove(),clone.find(".chosen-container").remove(),edd_attach_tooltips(clone.find(".edd-help-tip")),clone},add:function(){$(document.body).on("click",".submit .edd_add_repeatable",function(clone){clone.preventDefault();var row=$(this).parent().parent().prev(".edd_repeatable_row"),clone=EDD_Download_Configuration.clone_repeatable(row);clone.insertAfter(row).find("input, textarea, select").filter(":visible").eq(0).focus(),clone.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}),clone.find(".edd-select-chosen").css("width","100%"),clone.find(".edd-select-chosen .chosen-search input").attr("placeholder",edd_vars.search_placeholder)})},move:function(){$(".edd_repeatable_table .edd-repeatables-wrap").sortable({handle:".edd-draghandle-anchor",items:".edd_repeatable_row",opacity:.6,cursor:"move",axis:"y",update:function(){var count=0;$(this).find(".edd_repeatable_row").each(function(){$(this).find("input.edd_repeatable_index").each(function(){$(this).val(count)}),count++})}})},remove:function(){$(document.body).on("click",".edd-remove-row, .edd_remove_repeatable",function(firstFocusable){firstFocusable.preventDefault();var row=$(this).parents(".edd_repeatable_row"),count=row.parent().find(".edd_repeatable_row").length,type=$(this).data("type"),repeatable="div.edd_repeatable_"+type+"s",price_row_id=$(this).is(".ui-sortable .edd_repeatable_row:first-child .edd-remove-row, .ui-sortable .edd_repeatable_row:first-child .edd_remove_repeatable")?row.next(".edd_repeatable_row"):row.prev(".edd_repeatable_row"),firstFocusable=price_row_id.find("select, input, textarea, button").filter(":visible").eq(0);if("price"===type&&(price_row_id=row.data("key"),$('.edd_repeatable_condition_field option[value="'+price_row_id+'"]').remove()),1<count)$("input, select",row).val(""),row.fadeOut("fast").remove(),firstFocusable.focus();else switch(type){case"price":alert(edd_vars.one_price_min);break;case"file":$("input, select",row).val("");break;default:alert(edd_vars.one_field_min)}$(repeatable).each(function(rowIndex){$(this).find("input, select").each(function(){var name=(name=$(this).attr("name")).replace(/\[(\d+)\]/,"["+rowIndex+"]");$(this).attr("name",name).attr("id",name)})})})},type:function(){$(document.body).on("change","#_edd_product_type",function(e){var edd_products=$("#edd_products"),edd_download_files=$("#edd_download_files"),edd_download_limit_wrap=$("#edd_download_limit_wrap");"bundle"===$(this).val()?(edd_products.show(),edd_download_files.hide(),edd_download_limit_wrap.hide()):(edd_products.hide(),edd_download_files.show(),edd_download_limit_wrap.show())})},prices:function(){$(document.body).on("change","#edd_variable_pricing",function(e){var checked=$(this).is(":checked"),single=$("#edd_regular_price_field"),variable=$("#edd_variable_price_fields, .edd_repeatable_table .pricing"),bundleRow=$(".edd-bundled-product-row, .edd-repeatable-row-standard-fields");checked?(single.hide(),variable.show(),bundleRow.addClass("has-variable-pricing")):(single.show(),variable.hide(),bundleRow.removeClass("has-variable-pricing"))})},files:function(){var file_frame;window.formfield="",$(document.body).on("click",".edd_upload_file_button",function(button){button.preventDefault();button=$(this);window.formfield=$(this).closest(".edd_repeatable_upload_wrapper"),file_frame||((file_frame=wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:button.data("uploader-title"),button:{text:button.data("uploader-button-text")},multiple:"0"!=$(this).data("multiple")})).on("menu:render:default",function(view){view.unset("library-separator"),view.unset("gallery"),view.unset("featured-image"),view.unset("embed"),view.set({})}),file_frame.on("insert",function(){file_frame.state().get("selection").each(function(attachment,clone){var row,selectedSize="image"===(attachment=attachment.toJSON()).type&&$(".attachment-display-settings .size option:selected").val(),selectedURL=attachment.url,selectedName=0<attachment.title.length?attachment.title:attachment.filename;selectedSize&&void 0!==attachment.sizes[selectedSize]&&(selectedURL=attachment.sizes[selectedSize].url),"image"===attachment.type&&(selectedName=selectedSize&&void 0!==attachment.sizes[selectedSize]?selectedName+"-"+attachment.sizes[selectedSize].width+"x"+attachment.sizes[selectedSize].height:selectedName+"-"+attachment.width+"x"+attachment.height),0===clone?(window.formfield.find(".edd_repeatable_attachment_id_field").val(attachment.id),window.formfield.find(".edd_repeatable_thumbnail_size_field").val(selectedSize),window.formfield.find(".edd_repeatable_upload_field").val(selectedURL),window.formfield.find(".edd_repeatable_name_field").val(selectedName)):(row=window.formfield,(clone=EDD_Download_Configuration.clone_repeatable(row)).find(".edd_repeatable_attachment_id_field").val(attachment.id),clone.find(".edd_repeatable_thumbnail_size_field").val(selectedSize),clone.find(".edd_repeatable_upload_field").val(selectedURL),clone.find(".edd_repeatable_name_field").val(selectedName),clone.insertAfter(row))})})),file_frame.open()}),window.formfield=""},updatePrices:function(){$("#edd_price_fields").on("keyup",".edd_variable_prices_name",function(){var key=$(this).parents(".edd_repeatable_row").data("key"),name=$(this).val(),field_option=$(".edd_repeatable_condition_field option[value="+key+"]");0<field_option.length?field_option.text(name):$(".edd_repeatable_condition_field").append($("<option></option>").attr("value",key).text(name))})}};$(document.body).on("click",".toggle-custom-price-option-section",function(header){header.preventDefault();var show=$(this).html()==edd_vars.show_advanced_settings;show?$(this).html(edd_vars.hide_advanced_settings):$(this).html(edd_vars.show_advanced_settings);header=$(this).parents(".edd-repeatable-row-header");header.siblings(".edd-custom-price-option-sections-wrap").slideToggle(),$(":input:not(input[type=button],input[type=submit],button):visible:first",show?header.siblings(".edd-custom-price-option-sections-wrap"):header.siblings(".edd-repeatable-row-standard-fields")).focus()}),EDD_Download_Configuration.init();var typingTimer,edd_datepicker=$(".edd_datepicker");0<edd_datepicker.length&&edd_datepicker.datepicker({dateFormat:"mm/dd/yy"}),{init:function(){this.edit_address(),this.remove_download(),this.add_download(),this.change_customer(),this.new_customer(),this.edit_price(),this.recalculate_total(),this.variable_prices_check(),this.add_note(),this.remove_note(),this.resend_receipt(),this.copy_download_link()},edit_address:function(){$('select[name="edd-payment-address[0][country]"]').change(function(){var data=$(this),data={action:"edd_get_shop_states",country:data.val(),nonce:data.data("nonce"),field_name:"edd-payment-address[0][state]"};return $.post(ajaxurl,data,function(response){var state_wrapper=$("#edd-order-address-state-wrap select, #edd-order-address-state-wrap input");$("#edd-order-address-state-wrap .chosen-container").remove(),"nostates"==response?state_wrapper.replaceWith('<input type="text" name="edd-payment-address[0][state]" value="" class="edd-edit-toggles medium-text"/>'):state_wrapper.replaceWith(response)}),!1})},remove_download:function(){$("#edd-purchased-files").on("click",".edd-order-remove-download",function(){var key,download_id,price_id,quantity,amount,fees,currently_removed;return 1===$(document.body).find("#edd-purchased-files > .row:not(.header)").length?alert(edd_vars.one_download_min):confirm(edd_vars.delete_payment_download)&&(key=$(this).data("key"),$(".edd-payment-id").val(),download_id=$('input[name="edd-payment-details-downloads['+key+'][id]"]').val(),price_id=$('input[name="edd-payment-details-downloads['+key+'][price_id]"]').val(),quantity=$('input[name="edd-payment-details-downloads['+key+'][quantity]"]').val(),amount=$('input[name="edd-payment-details-downloads['+key+'][amount]"]').val(),$('input[name="edd-payment-details-downloads['+key+'][tax]"]').length&&(fees=$('input[name="edd-payment-details-downloads['+key+'][tax]"]').val()),$('input[name="edd-payment-details-downloads['+key+'][fees]"]').length&&(fees=$.parseJSON($('input[name="edd-payment-details-downloads['+key+'][fees]"]').val())),currently_removed=$('input[name="edd-payment-removed"]').val(),(currently_removed=(currently_removed=$.parseJSON(currently_removed)).length<1?{}:currently_removed)[key]=[{id:download_id,price_id:price_id,quantity:quantity,amount:amount,cart_index:key}],$('input[name="edd-payment-removed"]').val(JSON.stringify(currently_removed)),$(this).parent().parent().remove(),fees&&fees.length&&$.each(fees,function(key,value){$('*li[data-fee-id="'+value+'"]').remove()}),$("#edd-payment-downloads-changed").val(1),$(".edd-order-payment-recalc-totals").show()),!1})},change_customer:function(){$("#edd-customer-details").on("click",".edd-payment-change-customer, .edd-payment-change-customer-cancel",function(cancel){cancel.preventDefault();var change_customer=$(this).hasClass("edd-payment-change-customer"),cancel=$(this).hasClass("edd-payment-change-customer-cancel");change_customer?($(".customer-info").hide(),$(".change-customer").show(),$(".edd-payment-change-customer-input").css("width","auto")):cancel&&($(".customer-info").show(),$(".change-customer").hide())})},new_customer:function(){$("#edd-customer-details").on("click",".edd-payment-new-customer, .edd-payment-new-customer-cancel",function(cancel){cancel.preventDefault();var new_customer=$(this).hasClass("edd-payment-new-customer"),cancel=$(this).hasClass("edd-payment-new-customer-cancel");new_customer?($(".customer-info").hide(),$(".new-customer").show()):cancel&&($(".customer-info").show(),$(".new-customer").hide());new_customer=$("#edd-new-customer");$(".new-customer").is(":visible")?new_customer.val(1):new_customer.val(0)})},add_download:function(){$(".edd-edit-purchase-element").on("click","#edd-order-add-download",function(download_title){download_title.preventDefault();var quantity=$("#edd_order_download_select"),item_price=$("#edd-order-download-quantity"),item_total=$("#edd-order-download-price"),price_id=$("#edd-order-download-tax"),clone=$(".edd_price_options_select option:selected"),download_id=quantity.val(),download_title=quantity.find(":selected").text(),quantity=item_price.val(),item_price=item_total.val(),item_total=price_id.val(),price_id=clone.val(),clone=clone.text();if(download_id<1)return!1;if(item_price=item_price||0,item_price=parseFloat(item_price),isNaN(item_price))return alert(edd_vars.numeric_item_price),!1;if(item_total=parseFloat(item_total),isNaN(item_total))return alert(edd_vars.numeric_item_tax),!1;if(isNaN(parseInt(quantity)))return alert(edd_vars.numeric_quantity),!1;clone&&(download_title=download_title+" - "+clone);var count=$("#edd-purchased-files div.row:not(.edd-purchased-files-header)").length;0==count&&alert(edd_vars.no_downloads_error);clone=$("#edd-purchased-files div.row:not(.edd-purchased-files-header):last").clone();clone.find(".download span").html('<a href="post.php?post='+download_id+'&action=edit"></a>'),clone.find(".download span a").text(download_title),clone.find(".edd-payment-details-download-item-price").val(item_price.toFixed(edd_vars.currency_decimals)),clone.find(".edd-payment-details-download-item-tax").val(item_total.toFixed(edd_vars.currency_decimals)),clone.find("input.edd-payment-details-download-id").val(download_id),clone.find("input.edd-payment-details-download-price-id").val(price_id);item_total=(item_total=item_price*quantity+item_total).toFixed(edd_vars.currency_decimals);clone.find("span.edd-payment-details-download-amount").text(item_total),clone.find("input.edd-payment-details-download-amount").val(item_total),clone.find("input.edd-payment-details-download-quantity").val(quantity),clone.find("input.edd-payment-details-download-has-log").val(0),clone.find(".edd-copy-download-link-wrapper").remove(),clone.find("input").each(function(){var name=(name=$(this).attr("name")).replace(/\[(\d+)\]/,"["+parseInt(count)+"]");$(this).attr("name",name).attr("id",name)}),clone.find("a.edd-order-remove-download").attr("data-key",parseInt(count)),$("#edd-payment-downloads-changed").val(1),$("#edd-purchased-files div.row .edd-purchased-download-title .deleted").length&&$("#edd-purchased-files div.row:last").remove(),$(clone).insertAfter("#edd-purchased-files div.row:last"),$(".edd-order-payment-recalc-totals").show(),$(".edd-add-download-field").val("")})},edit_price:function(){$(document.body).on("change keyup",".edd-payment-item-input",function(){var row=$(this).parents("ul.edd-purchased-files-list-wrapper");$(".edd-order-payment-recalc-totals").show();var quantity=row.find("input.edd-payment-details-download-quantity").val().replace(edd_vars.thousands_separator,""),item_price=row.find("input.edd-payment-details-download-item-price").val().replace(edd_vars.thousands_separator,""),item_total=row.find("input.edd-payment-details-download-item-tax").val().replace(edd_vars.thousands_separator,""),item_price=parseFloat(item_price);if(isNaN(item_price))return alert(edd_vars.numeric_item_price),!1;item_total=parseFloat(item_total),isNaN(item_total)&&(item_total=0);item_total=(item_total=item_price*(quantity=isNaN(parseInt(quantity))?1:quantity)+item_total).toFixed(edd_vars.currency_decimals);row.find("input.edd-payment-details-download-amount").val(item_total),row.find("span.edd-payment-details-download-amount").text(item_total)})},recalculate_total:function(){$("#edd-order-recalc-total").on("click",function(taxes){taxes.preventDefault();var total=0,tax=0,totals=$("#edd-purchased-files .row input.edd-payment-details-download-amount"),taxes=$("#edd-purchased-files .row input.edd-payment-details-download-item-tax");totals.length&&totals.each(function(){total+=parseFloat($(this).val())}),taxes.length&&taxes.each(function(){tax+=parseFloat($(this).val())}),$(".edd-payment-fees").length&&$(".edd-payment-fees span.fee-amount").each(function(){total+=parseFloat($(this).data("fee"))}),$("input[name=edd-payment-total]").val(total.toFixed(edd_vars.currency_decimals)),$("input[name=edd-payment-tax]").val(tax.toFixed(edd_vars.currency_decimals))})},variable_prices_check:function(){$(".edd-edit-purchase-element").on("change","select#edd_order_download_select",function(){var $this=$(this),download_id=$this.val();0<parseInt(download_id)&&$.ajax({type:"POST",data:{action:"edd_check_for_download_price_variations",download_id:download_id},url:ajaxurl,success:function(response){$(".edd_price_options_select").remove(),$(response).insertAfter($this.next())}}).fail(function(data){window.console&&window.console.log&&console.log(data)})})},add_note:function(){$("#edd-add-payment-note").on("click",function(postData){postData.preventDefault();var border_color,postData={action:"edd_insert_payment_note",payment_id:$(this).data("payment-id"),note:$("#edd-payment-note").val()};postData.note?$.ajax({type:"POST",data:postData,url:ajaxurl,success:function(response){$("#edd-payment-notes-inner").append(response),$(".edd-no-payment-notes").hide(),$("#edd-payment-note").val("")}}).fail(function(data){window.console&&window.console.log&&console.log(data)}):(border_color=$("#edd-payment-note").css("border-color"),$("#edd-payment-note").css("border-color","red"),setTimeout(function(){$("#edd-payment-note").css("border-color",border_color)},500))})},remove_note:function(){$(document.body).on("click",".edd-delete-payment-note",function(e){if(e.preventDefault(),confirm(edd_vars.delete_payment_note)){var postData={action:"edd_delete_payment_note",payment_id:$(this).data("payment-id"),note_id:$(this).data("note-id")};return $.ajax({type:"POST",data:postData,url:ajaxurl,success:function(response){return $("#edd-payment-note-"+postData.note_id).remove(),$(".edd-payment-note").length||$(".edd-no-payment-notes").show(),!1}}).fail(function(data){window.console&&window.console.log&&console.log(data)}),!0}})},resend_receipt:function(){var emails_wrap=$(".edd-order-resend-receipt-addresses");$(document.body).on("click","#edd-select-receipt-email",function(e){e.preventDefault(),emails_wrap.slideDown()}),$(document.body).on("change",".edd-order-resend-receipt-email",function(){var href=$("#edd-select-receipt-email").prop("href")+"&email="+$(this).val();confirm(edd_vars.resend_receipt)&&(window.location=href)}),$(document.body).on("click","#edd-resend-receipt",function(e){return confirm(edd_vars.resend_receipt)})},copy_download_link:function(){$(document.body).on("click",".edd-copy-download-link",function(postData){postData.preventDefault();postData=$(this),postData={action:"edd_get_file_download_link",payment_id:$('input[name="edd_payment_id"]').val(),download_id:postData.data("download-id"),price_id:postData.data("price-id")};$.ajax({type:"POST",data:postData,url:ajaxurl,success:function(link){return $("#edd-download-link").dialog({width:400}).html('<textarea rows="10" cols="40" id="edd-download-link-textarea">'+link+"</textarea>"),$("#edd-download-link-textarea").focus().select(),!1}}).fail(function(data){window.console&&window.console.log&&console.log(data)})})}}.init(),{init:function(){this.type_select(),this.product_requirements()},type_select:function(){$("#edd-edit-discount #edd-type, #edd-add-discount #edd-type").change(function(){var val=$(this).val();$(".edd-amount-description").hide(),$(".edd-amount-description."+val+"-discount").show()})},product_requirements:function(){$("#products").change(function(){var product_conditions=$("#edd-discount-product-conditions");$(this).val()?product_conditions.show():product_conditions.hide()})}}.init(),{init:function(){this.date_options(),this.customers_export()},date_options:function(){$("#edd-graphs-date-options").change(function(){var $this=$(this),date_range_options=$("#edd-date-range-options");"other"===$this.val()?date_range_options.show():date_range_options.hide()})},customers_export:function(){$("#edd_customer_export_download").change(function(){var price_options_select,$this=$(this),data=$("option:selected",$this).val(),customer_export_option=$("#edd_customer_export_option");"0"===$this.val()?customer_export_option.show():customer_export_option.hide(),0!=parseInt(data)?(data={action:"edd_check_for_download_price_variations",download_id:data,all_prices:!0},price_options_select=$(".edd_price_options_select"),$.post(ajaxurl,data,function(response){price_options_select.remove(),$("#edd_customer_export_download_chosen").after(response)})):price_options_select.remove()})}}.init(),{init:function(){this.general(),this.taxes(),this.emails(),this.misc()},general:function(){var file_frame,edd_settings_upload_button=$(".edd-color-picker");edd_settings_upload_button.length&&edd_settings_upload_button.wpColorPicker(),"undefined"==typeof wp||"1"!==edd_vars.new_media_ui?0<(edd_settings_upload_button=$(".edd_settings_upload_button")).length&&(window.formfield="",$(document.body).on("click",edd_settings_upload_button,function(e){e.preventDefault(),window.formfield=$(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(html){window.formfield?(imgurl=$("a","<div>"+html+"</div>").attr("href"),window.formfield.val(imgurl),window.clearInterval(window.tbframe_interval),tb_remove()):window.edd_send_to_editor(html),window.send_to_editor=window.edd_send_to_editor,window.formfield="",window.imagefield=!1}):(window.formfield="",$(document.body).on("click",".edd_settings_upload_button",function(button){button.preventDefault();button=$(this);window.formfield=$(this).parent().prev(),file_frame||((file_frame=wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:button.data("uploader_title"),button:{text:button.data("uploader_button_text")},multiple:!1})).on("menu:render:default",function(view){view.unset("library-separator"),view.unset("gallery"),view.unset("featured-image"),view.unset("embed"),view.set({})}),file_frame.on("insert",function(){file_frame.state().get("selection").each(function(attachment,index){attachment=attachment.toJSON(),window.formfield.val(attachment.url)})})),file_frame.open()}),window.formfield="")},taxes:function(){var no_states=$("select.edd-no-states");no_states.length&&no_states.closest("tr").addClass("hidden"),$('select[name="edd_settings[base_country]"]').change(function(){var data=$(this),$tr=data.closest("tr"),data={action:"edd_get_shop_states",country:data.val(),nonce:data.data("nonce"),field_name:"edd_settings[base_state]"};return $.post(ajaxurl,data,function(response){"nostates"==response?$tr.next().addClass("hidden"):($tr.next().removeClass("hidden"),$tr.next().find("select").replaceWith(response))}),!1}),$(document.body).on("change","#edd_tax_rates select.edd-tax-country",function(){var $this=$(this),data={action:"edd_get_shop_states",country:$this.val(),nonce:$this.data("nonce"),field_name:$this.attr("name").replace("country","state")};return $.post(ajaxurl,data,function(response){var text_field;"nostates"==response?(text_field='<input type="text" name="'+data.field_name+'" value=""/>',$this.parent().next().find("select").replaceWith(text_field)):($this.parent().next().find("input,select").show(),$this.parent().next().find("input,select").replaceWith(response))}),!1}),$("#edd_add_tax_rate").on("click",function(){var row=$("#edd_tax_rates tr:last"),clone=row.clone(),count=row.parent().find("tr").length;return clone.find("td input").not(":input[type=checkbox]").val(""),clone.find('td [type="checkbox"]').attr("checked",!1),clone.find("input, select").each(function(){var name=(name=$(this).attr("name")).replace(/\[(\d+)\]/,"["+parseInt(count)+"]");$(this).attr("name",name).attr("id",name)}),clone.find("label").each(function(){var name=(name=$(this).attr("for")).replace(/\[(\d+)\]/,"["+parseInt(count)+"]");$(this).attr("for",name)}),clone.insertAfter(row),!1}),$(document.body).on("click","#edd_tax_rates .edd_remove_tax_rate",function(){return confirm(edd_vars.delete_tax_rate)&&(2===$("#edd_tax_rates tr:visible").length?($("#edd_tax_rates select").val(""),$('#edd_tax_rates input[type="text"]').val(""),$('#edd_tax_rates input[type="number"]').val(""),$('#edd_tax_rates input[type="checkbox"]').attr("checked",!1)):$(this).closest("tr").remove(),$("#edd_tax_rates tr").each(function(rowIndex){$(this).children().find("input, select").each(function(){var name=(name=$(this).attr("name")).replace(/\[(\d+)\]/,"["+(rowIndex-1)+"]");$(this).attr("name",name).attr("id",name)})})),!1})},emails:function(){$("#edd-recapture-connect").on("click",function(e){e.preventDefault(),$(this).html(edd_vars.wait+' <span class="edd-loading"></span>'),document.body.style.cursor="wait",easy_digital_downloads_recapture_remote_install()})},misc:function(){var downloadMethod=$('select[name="edd_settings[download_method]"]'),symlink=downloadMethod.parent().parent().next();"direct"==downloadMethod.val()&&(symlink.hide(),symlink.find("input").prop("checked",!1)),downloadMethod.on("change",function(){"direct"==$(this).val()?(symlink.hide(),symlink.find("input").prop("checked",!1)):symlink.show()})}}.init(),$(".download_page_edd-payment-history .row-actions .delete a, a.edd-delete-payment").on("click",function(){return!!confirm(edd_vars.delete_payment)}),$("body").on("click","#the-list .editinline",function(){var post_id=(post_id=$(this).closest("tr").attr("id")).replace("post-",""),regprice=$("#post-"+post_id).find(".column-price .downloadprice-"+post_id).val();regprice!=$("#post-"+post_id+".column-price .downloadprice-"+post_id).val()?$(".regprice","#edd-download-data").val(regprice).attr("disabled",!1):$(".regprice","#edd-download-data").val(edd_vars.quick_edit_warning).attr("disabled","disabled")}),$(document.body).on("click","#bulk_edit",function(){var $price=$("#bulk-edit"),$post_ids=new Array;$price.find("#bulk-titles").children().each(function(){$post_ids.push($(this).attr("id").replace(/^(ttle)/i,""))});$price=$('#edd-download-data input[name="_edd_regprice"]').val();$.post(ajaxurl,{action:"edd_save_bulk_edit",edd_bulk_nonce:$post_ids,post_ids:$post_ids,price:$price})}),$(".edd-select-chosen").chosen({inherit_select_classes:!0,placeholder_text_single:edd_vars.one_option,placeholder_text_multiple:edd_vars.one_or_more_option}),$(".edd-select-chosen .chosen-search input").each(function(){var placeholder=$(this).parent().parent().parent().prev("select.edd-select-chosen"),placeholder=(placeholder.data("search-type"),placeholder.data("search-placeholder"));$(this).attr("placeholder",placeholder)}),$(".chosen-choices").on("click",function(){var placeholder=$(this).parent().prev().data("search-placeholder");void 0===placeholder&&(placeholder=edd_vars.type_to_search),$(this).children("li").children("input").attr("placeholder",placeholder)});$(document.body).on("keyup",".edd-select.chosen-container .chosen-search input, .edd-select.chosen-container .search-field input",function(lastKey){var val=$(this).val(),container=$(this).closest(".edd-select-chosen"),select=(container.attr("id").replace("_chosen",""),container.prev()),no_bundles=container.hasClass("no-bundles"),variations=container.hasClass("variations"),lastKey=lastKey.which,search_type="edd_download_search";if(container.prev().data("search-type")){if("no_ajax"==select.data("search-type"))return;search_type="edd_"+select.data("search-type")+"_search"}val.length<=3&&"edd_download_search"==search_type||16==lastKey||13==lastKey||91==lastKey||17==lastKey||37==lastKey||38==lastKey||39==lastKey||40==lastKey||(clearTimeout(typingTimer),typingTimer=setTimeout(function(){$.ajax({type:"GET",url:ajaxurl,data:{action:search_type,s:val,no_bundles:no_bundles,variations:variations},dataType:"json",beforeSend:function(){select.closest("ul.chosen-results").empty()},success:function(data){$("option:not(:selected)",select).remove(),$.each(data,function(key,item){$('option[value="'+item.id+'"]',select).length||select.prepend('<option value="'+item.id+'">'+item.name+"</option>")}),$(".edd-select-chosen").trigger("chosen:updated"),select.next().find("input").val(val)}}).fail(function(response){window.console&&window.console.log&&console.log(response)}).done(function(response){})},342))}),$("#post").on("click",".edd-thickbox",function(){$(".edd-select-chosen","#choose-download").css("width","100%")}),{init:function(){this.revoke_api_key(),this.regenerate_api_key(),this.create_api_key(),this.recount_stats()},revoke_api_key:function(){$(document.body).on("click",".edd-revoke-api-key",function(e){return confirm(edd_vars.revoke_api_key)})},regenerate_api_key:function(){$(document.body).on("click",".edd-regenerate-api-key",function(e){return confirm(edd_vars.regenerate_api_key)})},create_api_key:function(){$(document.body).on("submit","#api-key-generate-form",function(e){var input=$('input[type="text"][name="user_id"]');input.css("border-color","#ddd");var user_id=input.val();if(user_id.length<1||0==user_id)return input.css("border-color","#ff0000"),!1})},recount_stats:function(){$(document.body).on("change","#recount-stats-type",function(){var export_form=$("#edd-tools-recount-form"),selected_type=$("option:selected",this).data("type"),submit_button=$("#recount-stats-submit"),products=$("#tools-product-dropdown");export_form.find(".notice-wrap").remove(),submit_button.removeClass("button-disabled").attr("disabled",!1),products.hide(),$(".edd-recount-stats-descriptions span").hide(),"recount-download"===selected_type?(products.show(),products.find(".edd-select-chosen").css("width","auto")):"reset-stats"===selected_type?(export_form.append('<div class="notice-wrap"></div>'),export_form.find(".notice-wrap").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>"),$("#recount-stats-submit").addClass("button-disabled").attr("disabled","disabled")):(products.hide(),products.val(0)),$("#"+selected_type).show()}),$(document.body).on("change","#confirm-reset",function(){$(this).is(":checked")?$("#recount-stats-submit").removeClass("button-disabled").removeAttr("disabled"):$("#recount-stats-submit").addClass("button-disabled").attr("disabled","disabled")}),$("#edd-tools-recount-form").submit(function(e){var selection=$("#recount-stats-type").val(),export_form=$(this),selected_type=$("option:selected",this).data("type");if("reset-stats"===selected_type){if($("#confirm-reset").is(":checked"))return!0;has_errors=!0}export_form.find(".notice-wrap").remove(),export_form.append('<div class="notice-wrap"></div>');var notice_wrap=export_form.find(".notice-wrap"),has_errors=!1;if(null!==selection&&0!==selection||(notice_wrap.html('<div class="updated error"><p>'+edd_vars.batch_export_no_class+"</p></div>"),has_errors=!0),"recount-download"===selected_type&&0==$('select[name="download_id"]').val()&&(notice_wrap.html('<div class="updated error"><p>'+edd_vars.batch_export_no_reqs+"</p></div>"),has_errors=!0),has_errors)return export_form.find(".button-disabled").removeClass("button-disabled"),!1})}}.init(),{init:function(){this.submit(),this.dismiss_message()},submit:function(){var self=this;$(document.body).on("submit",".edd-export-form",function(data){data.preventDefault();var submitButton=$(this).find('input[type="submit"]');submitButton.hasClass("button-disabled")||(data=$(this).serialize(),submitButton.addClass("button-disabled"),$(this).find(".notice-wrap").remove(),$(this).append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),self.process_step(1,data,self))})},process_step:function(step,data,self){$.ajax({type:"POST",url:ajaxurl,data:{form:data,action:"edd_do_ajax_export",step:step},dataType:"json",success:function(response){var export_form,notice_wrap,success_message;"done"==response.step||response.error||response.success?(notice_wrap=(export_form=$(".edd-export-form").find(".edd-progress").parent().parent()).find(".notice-wrap"),export_form.find(".button-disabled").removeClass("button-disabled"),response.error?(success_message=response.message,notice_wrap.html('<div class="updated error"><p>'+success_message+"</p></div>")):response.success?(success_message=response.message,notice_wrap.html('<div id="edd-batch-success" class="updated notice is-dismissible"><p>'+success_message+'<span class="notice-dismiss"></span></p></div>')):(notice_wrap.remove(),window.location=response.url)):($(".edd-progress div").animate({width:response.percentage+"%"},50,function(){}),self.process_step(parseInt(response.step),data,self))}}).fail(function(response){window.console&&window.console.log&&console.log(response)})},dismiss_message:function(){$(document.body).on("click","#edd-batch-success .notice-dismiss",function(){$("#edd-batch-success").parent().slideUp("fast")})}}.init();var EDD_Import={init:function(){this.submit()},submit:function(){$(".edd-import-form").ajaxForm({beforeSubmit:this.before_submit,success:this.success,complete:this.complete,dataType:"json",error:this.error})},before_submit:function(arr,notice_wrap,options){if(notice_wrap.find(".notice-wrap").remove(),notice_wrap.append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),!(window.File&&window.FileReader&&window.FileList&&window.Blob)){var import_form=$(".edd-import-form").find(".edd-progress").parent().parent(),notice_wrap=import_form.find(".notice-wrap");return import_form.find(".button-disabled").removeClass("button-disabled"),notice_wrap.html('<div class="update error"><p>'+edd_vars.unsupported_browser+"</p></div>"),!1}},success:function(responseText,statusText,xhr,$form){},complete:function(xhr){var $form,select,options,columns,response=jQuery.parseJSON(xhr.responseText);response.success?(($form=$(".edd-import-form .notice-wrap").parent()).find(".edd-import-file-wrap,.notice-wrap").remove(),$form.find(".edd-import-options").slideDown(),(select=$form.find("select.edd-import-csv-column")).parents("tr").first(),options="",columns=response.data.columns.sort(function(a,b){return a<b?-1:b<a?1:0}),$.each(columns,function(key,value){options+='<option value="'+value+'">'+value+"</option>"}),select.append(options),select.on("change",function(){var $key=$(this).val();$key&&0!=response.data.first_row[$key]?$(this).parent().next().html(response.data.first_row[$key]):$(this).parent().next().html("")}),$.each(select,function(){$(this).val($(this).attr("data-field")).change()}),$(document.body).on("click",".edd-import-proceed",function(e){e.preventDefault(),$form.append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),response.data.mapping=$form.serialize(),EDD_Import.process_step(1,response.data,self)})):EDD_Import.error(xhr)},error:function(notice_wrap){var response=jQuery.parseJSON(notice_wrap.responseText),import_form=$(".edd-import-form").find(".edd-progress").parent().parent(),notice_wrap=import_form.find(".notice-wrap");import_form.find(".button-disabled").removeClass("button-disabled"),response.data.error?notice_wrap.html('<div class="update error"><p>'+response.data.error+"</p></div>"):notice_wrap.remove()},process_step:function(step,import_data,self){$.ajax({type:"POST",url:ajaxurl,data:{form:import_data.form,nonce:import_data.nonce,class:import_data.class,upload:import_data.upload,mapping:import_data.mapping,action:"edd_do_ajax_import",step:step},dataType:"json",success:function(response){var import_form,notice_wrap;"done"==response.data.step||response.data.error?(notice_wrap=(import_form=$(".edd-import-form").find(".edd-progress").parent().parent()).find(".notice-wrap"),import_form.find(".button-disabled").removeClass("button-disabled"),response.data.error?notice_wrap.html('<div class="update error"><p>'+response.data.error+"</p></div>"):(import_form.find(".edd-import-options").hide(),$("html, body").animate({scrollTop:import_form.parent().offset().top},500),notice_wrap.html('<div class="updated"><p>'+response.data.message+"</p></div>"))):($(".edd-progress div").animate({width:response.data.percentage+"%"},50,function(){}),EDD_Import.process_step(parseInt(response.data.step),import_data,self))}}).fail(function(response){window.console&&window.console.log&&console.log(response)})}};EDD_Import.init();var EDD_Customer={vars:{customer_card_wrap_editable:$(".edd-customer-card-wrapper .editable"),customer_card_wrap_edit_item:$(".edd-customer-card-wrapper .edit-item"),user_id:$('input[name="customerinfo[user_id]"]'),state_input:$(':input[name="customerinfo[state]"]'),note:$("#customer-note")},init:function(){this.edit_customer(),this.add_email(),this.user_search(),this.remove_user(),this.cancel_edit(),this.change_country(),this.add_note(),this.delete_checked()},edit_customer:function(){$(document.body).on("click","#edit-customer",function(e){e.preventDefault(),EDD_Customer.vars.customer_card_wrap_editable.hide(),EDD_Customer.vars.customer_card_wrap_edit_item.fadeIn().css("display","block")})},add_email:function(){$(document.body).on("click","#add-customer-email",function(nonce){nonce.preventDefault();var button=$(this),wrapper=button.parent();wrapper.parent().find(".notice-container").remove(),wrapper.find(".spinner").css("visibility","visible"),button.attr("disabled",!0);var customer_id=wrapper.find('input[name="customer-id"]').val(),email=wrapper.find('input[name="additional-email"]').val(),primary=wrapper.find('input[name="make-additional-primary"]').is(":checked"),nonce=wrapper.find('input[name="add_email_nonce"]').val();$.post(ajaxurl,{edd_action:"customer-add-email",customer_id:customer_id,email:email,primary:primary,_wpnonce:nonce},function(response){!0===response.success?window.location.href=response.redirect:(button.attr("disabled",!1),wrapper.after('<div class="notice-container"><div class="notice notice-error inline"><p>'+response.message+"</p></div></div>"),wrapper.find(".spinner").css("visibility","hidden"))},"json")})},user_search:function(){$(document.body).on("click.eddSelectUser",".edd_user_search_results a",function(user_id){user_id.preventDefault();user_id=$(this).data("userid");EDD_Customer.vars.user_id.val(user_id)})},remove_user:function(){$(document.body).on("click","#disconnect-customer",function(postData){postData.preventDefault(),confirm(edd_vars.disconnect_customer)&&(postData={edd_action:"disconnect-userid",customer_id:$('input[name="customerinfo[id]"]').val(),_wpnonce:$("#edit-customer-info #_wpnonce").val()},$.post(ajaxurl,postData,function(response){window.location.href=window.location.href},"json"))})},cancel_edit:function(){$(document.body).on("click","#edd-edit-customer-cancel",function(e){e.preventDefault(),EDD_Customer.vars.customer_card_wrap_edit_item.hide(),EDD_Customer.vars.customer_card_wrap_editable.show(),$(".edd_user_search_results").html("")})},change_country:function(){$('select[name="customerinfo[country]"]').change(function(){var $this=$(this),data={action:"edd_get_shop_states",country:$this.val(),nonce:$this.data("nonce"),field_name:"customerinfo[state]"};return $.post(ajaxurl,data,function(response){"nostates"==response?EDD_Customer.vars.state_input.replaceWith('<input type="text" name="'+data.field_name+'" value="" class="edd-edit-toggles medium-text"/>'):EDD_Customer.vars.state_input.replaceWith(response)}),!1})},add_note:function(){$(document.body).on("click","#add-customer-note",function(postData){postData.preventDefault();var border_color,postData={edd_action:"add-customer-note",customer_id:$("#customer-id").val(),customer_note:EDD_Customer.vars.note.val(),add_customer_note_nonce:$("#add_customer_note_nonce").val()};postData.customer_note?$.ajax({type:"POST",data:postData,url:ajaxurl,success:function(response){$("#edd-customer-notes").prepend(response),$(".edd-no-customer-notes").hide(),EDD_Customer.vars.note.val("")}}).fail(function(data){window.console&&window.console.log&&console.log(data)}):(border_color=EDD_Customer.vars.note.css("border-color"),EDD_Customer.vars.note.css("border-color","red"),setTimeout(function(){EDD_Customer.vars.note.css("border-color",border_color)},500))})},delete_checked:function(){$("#edd-customer-delete-confirm").change(function(){var records_input=$("#edd-customer-delete-records"),submit_button=$("#edd-delete-customer");$(this).prop("checked")?(records_input.attr("disabled",!1),submit_button.attr("disabled",!1)):(records_input.attr("disabled",!0),records_input.prop("checked",!1),submit_button.attr("disabled",!0))})}};EDD_Customer.init();var EDD_Promo_Notices={init:function(){EDD_Promo_Notices.displayNotices(),EDD_Promo_Notices.dismissNotices()},displayNotices:function(){var topOfPageNoticeEl,topOfPageNotice=$(".edd-admin-notice-top-of-page");topOfPageNotice&&(topOfPageNoticeEl=topOfPageNotice.detach(),$("#wpbody-content").prepend(topOfPageNoticeEl),topOfPageNotice.delay(1e3).slideDown())},dismissNotices:function(){$(".edd-promo-notice").each(function(){var notice=$(this);notice.on("click",".edd-promo-notice-dismiss",function(e){$(this).attr("href")||e.preventDefault(),$.ajax({type:"POST",data:{action:"edd_dismiss_promo_notice",notice_id:notice.data("id"),nonce:notice.data("nonce"),lifespan:notice.data("lifespan")},url:ajaxurl,success:function(response){notice.slideUp()}})})})}};EDD_Promo_Notices.init(),$(".edd-ajax-user-search").keyup(function(){var user_search=$(this).val(),data="";$(this).data("exclude")&&(data=$(this).data("exclude")),$(".edd-ajax").show();data={action:"edd_search_users",user_name:user_search,exclude:data};document.body.style.cursor="wait",$.ajax({type:"POST",data:data,dataType:"json",url:ajaxurl,success:function(search_response){$(".edd-ajax").hide(),$(".edd_user_search_results").removeClass("hidden"),$(".edd_user_search_results span").html(""),$(search_response.results).appendTo(".edd_user_search_results span"),document.body.style.cursor="default"}})}),$(document.body).on("click.eddSelectUser",".edd_user_search_results span a",function(login){login.preventDefault();login=$(this).data("login");$(".edd-ajax-user-search").val(login),$(".edd_user_search_results").addClass("hidden"),$(".edd_user_search_results span").html("")}),$(document.body).on("click.eddCancelUserSearch",".edd_user_search_results a.edd-ajax-user-cancel",function(e){e.preventDefault(),$(".edd-ajax-user-search").val(""),$(".edd_user_search_results").addClass("hidden"),$(".edd_user_search_results span").html("")}),$("#edd_dashboard_sales").length&&$.ajax({type:"GET",data:{action:"edd_load_dashboard_widget"},url:ajaxurl,success:function(response){$("#edd_dashboard_sales .edd-loading").html(response)}}),$(document.body).on("keydown",".customer-note-input",function(e){13==e.keyCode&&(e.metaKey||e.ctrlKey)&&$("#add-customer-note").click()}),$(document.body).on("click","#edd-disable-debug-log",function(e){e.preventDefault(),$(this).attr("disabled",!0);var notice=$("#edd-debug-log-notice");$.ajax({type:"GET",data:{action:"edd_disable_debugging",nonce:$("#edd_debug_log_delete").val()},url:ajaxurl,success:function(response){notice.empty().append(response.data),setTimeout(function(){notice.slideUp()},3e3)}}).fail(function(response){notice.empty().append(response.responseJSON.data)})})});var eddFormatCurrency=function(decimalPlaces){var numeric=parseFloat(decimalPlaces),storeCurrency=edd_vars.currency,decimalPlaces=edd_vars.currency_decimals;return numeric.toLocaleString(storeCurrency,{style:"currency",currency:storeCurrency,minimumFractionDigits:decimalPlaces,maximumFractionDigits:decimalPlaces})},eddFormatNumber=function(storeCurrency){var numeric=parseFloat(storeCurrency),storeCurrency=edd_vars.currency;edd_vars.currency_decimals;return numeric.toLocaleString(storeCurrency,{style:"decimal",minimumFractionDigits:0,maximumFractionDigits:0})},eddLabelFormatter=function(label,series){return'<div style="font-size:12px; text-align:center; padding:2px">'+label+"</div>"},eddLegendFormatterSales=function(item,series){var slug=item.toLowerCase().replace(/\s/g,"-"),color='<div class="edd-legend-color" style="background-color: '+series.color+'"></div>',item='<div class="edd-pie-legend-item">'+item+": "+Math.round(series.percent)+"% ("+eddFormatNumber(series.data[0][1])+")</div>",item='<div id="'+series.edd_vars.id+slug+'" class="edd-legend-item-wrapper">'+color+item+"</div>";return jQuery("#edd-pie-legend-"+series.edd_vars.id).append(item),item},eddLegendFormatterEarnings=function(item,series){var slug=item.toLowerCase().replace(/\s/g,"-"),color='<div class="edd-legend-color" style="background-color: '+series.color+'"></div>',item='<div class="edd-pie-legend-item">'+item+": "+Math.round(series.percent)+"% ("+eddFormatCurrency(series.data[0][1])+")</div>",item='<div id="'+series.edd_vars.id+slug+'" class="edd-legend-item-wrapper">'+color+item+"</div>";return jQuery("#edd-pie-legend-"+series.edd_vars.id).append(item),item};function edd_attach_tooltips(selector){selector.tooltip({content:function(){return jQuery(this).prop("title")},tooltipClass:"edd-ui-tooltip",position:{my:"center top",at:"center bottom+10",collision:"flipfit"},hide:{duration:200},show:{duration:200}})}function easy_digital_downloads_recapture_remote_install(){jQuery.post(ajaxurl,{action:"edd_recapture_remote_install"},function(response){0==response.success&&confirm(response.data.error)?location.reload():window.location.href="https://recapture.io/register"})}
|
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.11.
|
9 |
* Text Domain: easy-digital-downloads
|
10 |
* Domain Path: languages
|
11 |
*
|
@@ -25,7 +25,7 @@
|
|
25 |
* @package EDD
|
26 |
* @category Core
|
27 |
* @author Easy Digital Downloads
|
28 |
-
* @version 2.11.
|
29 |
*/
|
30 |
|
31 |
// Exit if accessed directly.
|
@@ -231,7 +231,7 @@ final class Easy_Digital_Downloads {
|
|
231 |
|
232 |
// Plugin version.
|
233 |
if ( ! defined( 'EDD_VERSION' ) ) {
|
234 |
-
define( 'EDD_VERSION', '2.11.
|
235 |
}
|
236 |
|
237 |
// 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.11.5
|
9 |
* Text Domain: easy-digital-downloads
|
10 |
* Domain Path: languages
|
11 |
*
|
25 |
* @package EDD
|
26 |
* @category Core
|
27 |
* @author Easy Digital Downloads
|
28 |
+
* @version 2.11.5
|
29 |
*/
|
30 |
|
31 |
// Exit if accessed directly.
|
231 |
|
232 |
// Plugin version.
|
233 |
if ( ! defined( 'EDD_VERSION' ) ) {
|
234 |
+
define( 'EDD_VERSION', '2.11.5' );
|
235 |
}
|
236 |
|
237 |
// Plugin Folder Path.
|
includes/admin/class-edd-notices.php
CHANGED
@@ -27,6 +27,7 @@ class EDD_Notices {
|
|
27 |
public function __construct() {
|
28 |
add_action( 'admin_notices', array( $this, 'show_notices' ) );
|
29 |
add_action( 'edd_dismiss_notices', array( $this, 'dismiss_notices' ) );
|
|
|
30 |
}
|
31 |
|
32 |
/**
|
@@ -171,6 +172,8 @@ class EDD_Notices {
|
|
171 |
echo '</div>';
|
172 |
}
|
173 |
|
|
|
|
|
174 |
/* Commented out per https://github.com/easydigitaldownloads/Easy-Digital-Downloads/issues/3475
|
175 |
if( ! edd_test_ajax_works() && ! get_user_meta( get_current_user_id(), '_edd_admin_ajax_inaccessible_dismissed', true ) && current_user_can( 'manage_shop_settings' ) ) {
|
176 |
echo '<div class="error">';
|
@@ -310,6 +313,62 @@ class EDD_Notices {
|
|
310 |
settings_errors( 'edd-notices' );
|
311 |
}
|
312 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
313 |
/**
|
314 |
* Dismiss admin notices when Dismiss links are clicked
|
315 |
*
|
27 |
public function __construct() {
|
28 |
add_action( 'admin_notices', array( $this, 'show_notices' ) );
|
29 |
add_action( 'edd_dismiss_notices', array( $this, 'dismiss_notices' ) );
|
30 |
+
add_action( 'wp_ajax_edd_disable_debugging', array( $this, 'edd_disable_debugging' ) );
|
31 |
}
|
32 |
|
33 |
/**
|
172 |
echo '</div>';
|
173 |
}
|
174 |
|
175 |
+
$this->show_debugging_notice();
|
176 |
+
|
177 |
/* Commented out per https://github.com/easydigitaldownloads/Easy-Digital-Downloads/issues/3475
|
178 |
if( ! edd_test_ajax_works() && ! get_user_meta( get_current_user_id(), '_edd_admin_ajax_inaccessible_dismissed', true ) && current_user_can( 'manage_shop_settings' ) ) {
|
179 |
echo '<div class="error">';
|
313 |
settings_errors( 'edd-notices' );
|
314 |
}
|
315 |
|
316 |
+
/**
|
317 |
+
* Show a notice if debugging is enabled in the EDD settings.
|
318 |
+
* Does not show if only the `EDD_DEBUG_MODE` constant is defined.
|
319 |
+
*
|
320 |
+
* @since 2.11.5
|
321 |
+
* @return void
|
322 |
+
*/
|
323 |
+
private function show_debugging_notice() {
|
324 |
+
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
|
325 |
+
return;
|
326 |
+
}
|
327 |
+
if ( ! current_user_can( 'manage_shop_settings' ) ) {
|
328 |
+
return;
|
329 |
+
}
|
330 |
+
if ( ! edd_get_option( 'debug_mode', false ) ) {
|
331 |
+
return;
|
332 |
+
}
|
333 |
+
$view_url = add_query_arg(
|
334 |
+
array(
|
335 |
+
'post_type' => 'download',
|
336 |
+
'page' => 'edd-tools',
|
337 |
+
'tab' => 'debug_log',
|
338 |
+
),
|
339 |
+
admin_url( 'edit.php' )
|
340 |
+
);
|
341 |
+
?>
|
342 |
+
<div id="edd-debug-log-notice" class="notice notice-warning">
|
343 |
+
<p>
|
344 |
+
<?php esc_html_e( 'Easy Digital Downloads debug logging is enabled. Please only leave it enabled for as long as it is needed for troubleshooting.', 'easy-digital-downloads' ); ?>
|
345 |
+
</p>
|
346 |
+
<p>
|
347 |
+
<a class="button button-secondary" href="<?php echo esc_url( $view_url ); ?>"><?php esc_html_e( 'View Debug Log', 'easy-digital-downloads' ); ?></a>
|
348 |
+
<button class="button button-primary" id="edd-disable-debug-log"><?php esc_html_e( 'Delete Log File and Disable Logging', 'easy-digital-downloads' ); ?></button>
|
349 |
+
<?php wp_nonce_field( 'edd_debug_log_delete', 'edd_debug_log_delete' ); ?>
|
350 |
+
</p>
|
351 |
+
</div>
|
352 |
+
<?php
|
353 |
+
}
|
354 |
+
|
355 |
+
/**
|
356 |
+
* Disables the debug log setting and deletes the existing log file.
|
357 |
+
*
|
358 |
+
* @since 2.11.5
|
359 |
+
* @return void
|
360 |
+
*/
|
361 |
+
public function edd_disable_debugging() {
|
362 |
+
$validate_nonce = ! empty( $_GET['nonce'] ) && wp_verify_nonce( $_GET['nonce'], 'edd_debug_log_delete' );
|
363 |
+
if ( ! current_user_can( 'manage_shop_settings' ) || ! $validate_nonce ) {
|
364 |
+
wp_send_json_error( wpautop( __( 'You do not have permission to perform this action.', 'easy-digital-downloads' ) ), 403 );
|
365 |
+
}
|
366 |
+
edd_update_option( 'debug_mode', false );
|
367 |
+
global $edd_logs;
|
368 |
+
$edd_logs->clear_log_file();
|
369 |
+
wp_send_json_success( wpautop( __( 'The debug log has been cleared and logging has been disabled.', 'easy-digital-downloads' ) ) );
|
370 |
+
}
|
371 |
+
|
372 |
/**
|
373 |
* Dismiss admin notices when Dismiss links are clicked
|
374 |
*
|
includes/admin/downloads/metabox.php
CHANGED
@@ -146,14 +146,16 @@ function edd_download_meta_box_save( $post_id, $post ) {
|
|
146 |
|
147 |
} else {
|
148 |
|
|
|
149 |
if ( ! empty( $_POST[ $field ] ) ) {
|
150 |
$new = apply_filters( 'edd_metabox_save_' . $field, $_POST[ $field ] );
|
|
|
|
|
151 |
update_post_meta( $post_id, $field, $new );
|
152 |
} else {
|
153 |
delete_post_meta( $post_id, $field );
|
154 |
}
|
155 |
}
|
156 |
-
|
157 |
}
|
158 |
|
159 |
if ( edd_has_variable_prices( $post_id ) ) {
|
@@ -180,10 +182,11 @@ function edd_sanitize_bundled_products_save( $products = array() ) {
|
|
180 |
|
181 |
global $post;
|
182 |
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
|
|
187 |
|
188 |
return array_values( array_unique( $products ) );
|
189 |
}
|
@@ -628,7 +631,9 @@ function edd_render_products_field( $post_id ) {
|
|
628 |
}
|
629 |
|
630 |
$price_assignments = edd_get_bundle_pricing_variations( $post_id );
|
631 |
-
|
|
|
|
|
632 |
|
633 |
$selected = isset( $price_assignments[ $index ] ) ? $price_assignments[ $index ] : null;
|
634 |
|
146 |
|
147 |
} else {
|
148 |
|
149 |
+
$new = false;
|
150 |
if ( ! empty( $_POST[ $field ] ) ) {
|
151 |
$new = apply_filters( 'edd_metabox_save_' . $field, $_POST[ $field ] );
|
152 |
+
}
|
153 |
+
if ( ! empty( $new ) ) {
|
154 |
update_post_meta( $post_id, $field, $new );
|
155 |
} else {
|
156 |
delete_post_meta( $post_id, $field );
|
157 |
}
|
158 |
}
|
|
|
159 |
}
|
160 |
|
161 |
if ( edd_has_variable_prices( $post_id ) ) {
|
182 |
|
183 |
global $post;
|
184 |
|
185 |
+
foreach ( $products as $key => $product_id ) {
|
186 |
+
if ( in_array( $product_id, array( 0, $post->ID ) ) ) {
|
187 |
+
unset( $products[ $key ] );
|
188 |
+
}
|
189 |
+
}
|
190 |
|
191 |
return array_values( array_unique( $products ) );
|
192 |
}
|
631 |
}
|
632 |
|
633 |
$price_assignments = edd_get_bundle_pricing_variations( $post_id );
|
634 |
+
if ( ! empty( $price_assignments[0] ) ) {
|
635 |
+
$price_assignments = $price_assignments[0];
|
636 |
+
}
|
637 |
|
638 |
$selected = isset( $price_assignments[ $index ] ) ? $price_assignments[ $index ] : null;
|
639 |
|
includes/admin/extensions/abstract-extension.php
CHANGED
@@ -35,6 +35,14 @@ abstract class Extension {
|
|
35 |
*/
|
36 |
protected $manager;
|
37 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
public function __construct() {
|
39 |
$this->manager = new \EDD\Admin\Extensions\Extension_Manager( static::PASS_LEVEL );
|
40 |
}
|
@@ -267,12 +275,11 @@ abstract class Extension {
|
|
267 |
* @return string
|
268 |
*/
|
269 |
private function get_upgrade_url( ProductData $product_data, $item_id, $has_access = false ) {
|
270 |
-
$url = 'https://easydigitaldownloads.com';
|
271 |
-
$tab = ! empty( $_GET['tab'] ) ? sanitize_text_field( $_GET['tab'] ) : '';
|
272 |
$utm_parameters = array(
|
273 |
'p' => urlencode( $item_id ),
|
274 |
'utm_source' => 'settings',
|
275 |
-
'utm_medium' => urlencode( $
|
276 |
'utm_campaign' => 'admin',
|
277 |
'utm_term' => urlencode( $product_data->slug ),
|
278 |
);
|
35 |
*/
|
36 |
protected $manager;
|
37 |
|
38 |
+
/**
|
39 |
+
* The settings section for this item.
|
40 |
+
*
|
41 |
+
* @since 2.11.5
|
42 |
+
* @var string
|
43 |
+
*/
|
44 |
+
protected $settings_section = 'general';
|
45 |
+
|
46 |
public function __construct() {
|
47 |
$this->manager = new \EDD\Admin\Extensions\Extension_Manager( static::PASS_LEVEL );
|
48 |
}
|
275 |
* @return string
|
276 |
*/
|
277 |
private function get_upgrade_url( ProductData $product_data, $item_id, $has_access = false ) {
|
278 |
+
$url = 'https://easydigitaldownloads.com/pricing';
|
|
|
279 |
$utm_parameters = array(
|
280 |
'p' => urlencode( $item_id ),
|
281 |
'utm_source' => 'settings',
|
282 |
+
'utm_medium' => urlencode( $this->settings_section ),
|
283 |
'utm_campaign' => 'admin',
|
284 |
'utm_term' => urlencode( $product_data->slug ),
|
285 |
);
|
includes/admin/extensions/product-education/class-email-marketing.php
CHANGED
@@ -24,6 +24,14 @@ class EmailMarketing extends Extension {
|
|
24 |
*/
|
25 |
protected $settings_tab = 'marketing';
|
26 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
public function __construct() {
|
28 |
add_filter( 'edd_settings_sections_marketing', array( $this, 'add_section' ) );
|
29 |
add_action( 'edd_settings_tab_top_marketing_email_marketing', array( $this, 'field' ) );
|
@@ -46,7 +54,7 @@ class EmailMarketing extends Extension {
|
|
46 |
if ( ! $product_data || ! is_array( $product_data ) ) {
|
47 |
return $sections;
|
48 |
}
|
49 |
-
$sections[
|
50 |
|
51 |
return $sections;
|
52 |
}
|
24 |
*/
|
25 |
protected $settings_tab = 'marketing';
|
26 |
|
27 |
+
/**
|
28 |
+
* The settings section for this item.
|
29 |
+
*
|
30 |
+
* @since 2.11.5
|
31 |
+
* @var string
|
32 |
+
*/
|
33 |
+
protected $settings_section = 'email_marketing';
|
34 |
+
|
35 |
public function __construct() {
|
36 |
add_filter( 'edd_settings_sections_marketing', array( $this, 'add_section' ) );
|
37 |
add_action( 'edd_settings_tab_top_marketing_email_marketing', array( $this, 'field' ) );
|
54 |
if ( ! $product_data || ! is_array( $product_data ) ) {
|
55 |
return $sections;
|
56 |
}
|
57 |
+
$sections[ $this->settings_section ] = __( 'Email Marketing', 'easy-digital-downloads' );
|
58 |
|
59 |
return $sections;
|
60 |
}
|
includes/admin/extensions/product-education/class-invoices.php
CHANGED
@@ -31,6 +31,14 @@ class Invoices extends Extension {
|
|
31 |
*/
|
32 |
protected $settings_tab = 'gateways';
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
/**
|
35 |
* The pass level required to access this extension.
|
36 |
*/
|
@@ -92,7 +100,7 @@ class Invoices extends Extension {
|
|
92 |
return $sections;
|
93 |
}
|
94 |
|
95 |
-
$sections[
|
96 |
|
97 |
return $sections;
|
98 |
}
|
31 |
*/
|
32 |
protected $settings_tab = 'gateways';
|
33 |
|
34 |
+
/**
|
35 |
+
* The settings section for this item.
|
36 |
+
*
|
37 |
+
* @since 2.11.5
|
38 |
+
* @var string
|
39 |
+
*/
|
40 |
+
protected $settings_section = 'invoices';
|
41 |
+
|
42 |
/**
|
43 |
* The pass level required to access this extension.
|
44 |
*/
|
100 |
return $sections;
|
101 |
}
|
102 |
|
103 |
+
$sections[ $this->settings_section ] = __( 'Invoices', 'easy-digital-downloads' );
|
104 |
|
105 |
return $sections;
|
106 |
}
|
includes/admin/extensions/product-education/class-recurring.php
CHANGED
@@ -36,6 +36,14 @@ class Recurring extends Extension {
|
|
36 |
*/
|
37 |
const PASS_LEVEL = \EDD\Admin\Pass_Manager::EXTENDED_PASS_ID;
|
38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
public function __construct() {
|
40 |
add_filter( 'edd_settings_sections_gateways', array( $this, 'add_section' ) );
|
41 |
add_action( 'edd_settings_tab_top_gateways_recurring', array( $this, 'settings_field' ) );
|
@@ -92,7 +100,7 @@ class Recurring extends Extension {
|
|
92 |
return $sections;
|
93 |
}
|
94 |
|
95 |
-
$sections[
|
96 |
|
97 |
return $sections;
|
98 |
}
|
36 |
*/
|
37 |
const PASS_LEVEL = \EDD\Admin\Pass_Manager::EXTENDED_PASS_ID;
|
38 |
|
39 |
+
/**
|
40 |
+
* The settings section for this item.
|
41 |
+
*
|
42 |
+
* @since 2.11.5
|
43 |
+
* @var string
|
44 |
+
*/
|
45 |
+
protected $settings_section = 'recurring';
|
46 |
+
|
47 |
public function __construct() {
|
48 |
add_filter( 'edd_settings_sections_gateways', array( $this, 'add_section' ) );
|
49 |
add_action( 'edd_settings_tab_top_gateways_recurring', array( $this, 'settings_field' ) );
|
100 |
return $sections;
|
101 |
}
|
102 |
|
103 |
+
$sections[ $this->settings_section ] = __( 'Recurring Payments', 'easy-digital-downloads' );
|
104 |
|
105 |
return $sections;
|
106 |
}
|
includes/admin/extensions/product-education/class-reviews.php
CHANGED
@@ -31,6 +31,14 @@ class Reviews extends Extension {
|
|
31 |
*/
|
32 |
protected $settings_tab = 'marketing';
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
/**
|
35 |
* The pass level required to access this extension.
|
36 |
*/
|
@@ -97,7 +105,7 @@ class Reviews extends Extension {
|
|
97 |
return $sections;
|
98 |
}
|
99 |
|
100 |
-
$sections[
|
101 |
|
102 |
return $sections;
|
103 |
}
|
31 |
*/
|
32 |
protected $settings_tab = 'marketing';
|
33 |
|
34 |
+
/**
|
35 |
+
* The settings section for this item.
|
36 |
+
*
|
37 |
+
* @since 2.11.5
|
38 |
+
* @var string
|
39 |
+
*/
|
40 |
+
protected $settings_section = 'reviews';
|
41 |
+
|
42 |
/**
|
43 |
* The pass level required to access this extension.
|
44 |
*/
|
105 |
return $sections;
|
106 |
}
|
107 |
|
108 |
+
$sections[ $this->settings_section ] = __( 'Reviews', 'easy-digital-downloads' );
|
109 |
|
110 |
return $sections;
|
111 |
}
|
includes/admin/import/class-batch-import-downloads.php
CHANGED
@@ -75,11 +75,11 @@ class EDD_Batch_Downloads_Import extends EDD_Batch_Import {
|
|
75 |
unlink( $this->file );
|
76 |
}
|
77 |
|
78 |
-
if( ! $this->done && $this->csv
|
79 |
|
80 |
$more = true;
|
81 |
|
82 |
-
foreach( $this->csv
|
83 |
|
84 |
// Skip all rows until we pass our offset
|
85 |
if( $key + 1 <= $offset ) {
|
75 |
unlink( $this->file );
|
76 |
}
|
77 |
|
78 |
+
if( ! $this->done && $this->csv ) {
|
79 |
|
80 |
$more = true;
|
81 |
|
82 |
+
foreach( $this->csv as $key => $row ) {
|
83 |
|
84 |
// Skip all rows until we pass our offset
|
85 |
if( $key + 1 <= $offset ) {
|
includes/admin/import/class-batch-import-payments.php
CHANGED
@@ -95,11 +95,11 @@ class EDD_Batch_Payments_Import extends EDD_Batch_Import {
|
|
95 |
unlink( $this->file );
|
96 |
}
|
97 |
|
98 |
-
if( ! $this->done && $this->csv
|
99 |
|
100 |
$more = true;
|
101 |
|
102 |
-
foreach( $this->csv
|
103 |
|
104 |
// Skip all rows until we pass our offset
|
105 |
if( $key + 1 <= $offset ) {
|
@@ -393,6 +393,9 @@ class EDD_Batch_Payments_Import extends EDD_Batch_Import {
|
|
393 |
|
394 |
global $wpdb;
|
395 |
|
|
|
|
|
|
|
396 |
if( ! empty( $this->field_mapping['email'] ) && ! empty( $row[ $this->field_mapping['email'] ] ) ) {
|
397 |
|
398 |
$email = sanitize_text_field( $row[ $this->field_mapping['email'] ] );
|
@@ -435,7 +438,7 @@ class EDD_Batch_Payments_Import extends EDD_Batch_Import {
|
|
435 |
|
436 |
// Now compare customer records. If they don't match, customer_id will be stored in meta and we will use the customer that matches the email
|
437 |
|
438 |
-
if( ( empty( $customer_by_id ) || $customer_by_id->id !== $customer_by_email->id )
|
439 |
|
440 |
$customer = $customer_by_email;
|
441 |
|
@@ -543,7 +546,10 @@ class EDD_Batch_Payments_Import extends EDD_Batch_Import {
|
|
543 |
|
544 |
foreach( $downloads as $key => $download ) {
|
545 |
|
546 |
-
$d
|
|
|
|
|
|
|
547 |
preg_match_all( '/\{(\d|(\d+(\.\d+|\d+)))\}/', $d[1], $matches );
|
548 |
|
549 |
if( false !== strpos( $d[1], '{' ) ) {
|
@@ -555,7 +561,8 @@ class EDD_Batch_Payments_Import extends EDD_Batch_Import {
|
|
555 |
$price = trim( $d[1] );
|
556 |
}
|
557 |
|
558 |
-
$
|
|
|
559 |
$price_id = isset( $matches[1][1] ) ? trim( $matches[1][1] ) : false;
|
560 |
|
561 |
$d_array[] = array(
|
@@ -581,7 +588,7 @@ class EDD_Batch_Payments_Import extends EDD_Batch_Import {
|
|
581 |
*/
|
582 |
public function get_percentage_complete() {
|
583 |
|
584 |
-
$total = count( $this->csv
|
585 |
|
586 |
if( $total > 0 ) {
|
587 |
$percentage = ( $this->step * $this->per_step / $total ) * 100;
|
95 |
unlink( $this->file );
|
96 |
}
|
97 |
|
98 |
+
if( ! $this->done && $this->csv ) {
|
99 |
|
100 |
$more = true;
|
101 |
|
102 |
+
foreach( $this->csv as $key => $row ) {
|
103 |
|
104 |
// Skip all rows until we pass our offset
|
105 |
if( $key + 1 <= $offset ) {
|
393 |
|
394 |
global $wpdb;
|
395 |
|
396 |
+
$customer = false;
|
397 |
+
$email = '';
|
398 |
+
|
399 |
if( ! empty( $this->field_mapping['email'] ) && ! empty( $row[ $this->field_mapping['email'] ] ) ) {
|
400 |
|
401 |
$email = sanitize_text_field( $row[ $this->field_mapping['email'] ] );
|
438 |
|
439 |
// Now compare customer records. If they don't match, customer_id will be stored in meta and we will use the customer that matches the email
|
440 |
|
441 |
+
if ( ! empty( $customer_by_email ) && ( empty( $customer_by_id ) || $customer_by_id->id !== $customer_by_email->id ) ) {
|
442 |
|
443 |
$customer = $customer_by_email;
|
444 |
|
546 |
|
547 |
foreach( $downloads as $key => $download ) {
|
548 |
|
549 |
+
$d = (array) explode( '|', $download );
|
550 |
+
if ( ! array_key_exists( 1, $d ) ) {
|
551 |
+
continue;
|
552 |
+
}
|
553 |
preg_match_all( '/\{(\d|(\d+(\.\d+|\d+)))\}/', $d[1], $matches );
|
554 |
|
555 |
if( false !== strpos( $d[1], '{' ) ) {
|
561 |
$price = trim( $d[1] );
|
562 |
}
|
563 |
|
564 |
+
$price = floatval( $price );
|
565 |
+
$tax = isset( $matches[1][0] ) ? floatval( trim( $matches[1][0] ) ) : 0;
|
566 |
$price_id = isset( $matches[1][1] ) ? trim( $matches[1][1] ) : false;
|
567 |
|
568 |
$d_array[] = array(
|
588 |
*/
|
589 |
public function get_percentage_complete() {
|
590 |
|
591 |
+
$total = count( $this->csv );
|
592 |
|
593 |
if( $total > 0 ) {
|
594 |
$percentage = ( $this->step * $this->per_step / $total ) * 100;
|
includes/admin/import/class-batch-import.php
CHANGED
@@ -85,16 +85,11 @@ class EDD_Batch_Import {
|
|
85 |
*/
|
86 |
public function __construct( $_file = '', $_step = 1 ) {
|
87 |
|
88 |
-
if( ! class_exists( 'parseCSV' ) ) {
|
89 |
-
require_once EDD_PLUGIN_DIR . 'includes/libraries/parsecsv.lib.php';
|
90 |
-
}
|
91 |
-
|
92 |
$this->step = $_step;
|
93 |
$this->file = $_file;
|
94 |
$this->done = false;
|
95 |
-
$this->csv =
|
96 |
-
$this->
|
97 |
-
$this->total = count( $this->csv->data );
|
98 |
$this->init();
|
99 |
|
100 |
}
|
@@ -117,6 +112,34 @@ class EDD_Batch_Import {
|
|
117 |
return (bool) apply_filters( 'edd_import_capability', current_user_can( $this->capability_type ) );
|
118 |
}
|
119 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
/**
|
121 |
* Get the CSV columns
|
122 |
*
|
@@ -125,7 +148,13 @@ class EDD_Batch_Import {
|
|
125 |
*/
|
126 |
public function get_columns() {
|
127 |
|
128 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
}
|
130 |
|
131 |
/**
|
@@ -138,8 +167,11 @@ class EDD_Batch_Import {
|
|
138 |
*/
|
139 |
public function get_first_row() {
|
140 |
|
141 |
-
|
|
|
|
|
142 |
|
|
|
143 |
}
|
144 |
|
145 |
/**
|
@@ -177,9 +209,8 @@ class EDD_Batch_Import {
|
|
177 |
*/
|
178 |
public function map_fields( $import_fields = array() ) {
|
179 |
|
180 |
-
|
181 |
|
182 |
-
$this->field_mapping = $import_fields;
|
183 |
}
|
184 |
|
185 |
/**
|
85 |
*/
|
86 |
public function __construct( $_file = '', $_step = 1 ) {
|
87 |
|
|
|
|
|
|
|
|
|
88 |
$this->step = $_step;
|
89 |
$this->file = $_file;
|
90 |
$this->done = false;
|
91 |
+
$this->csv = $this->get_csv_file( $this->file );
|
92 |
+
$this->total = count( $this->csv );
|
|
|
93 |
$this->init();
|
94 |
|
95 |
}
|
112 |
return (bool) apply_filters( 'edd_import_capability', current_user_can( $this->capability_type ) );
|
113 |
}
|
114 |
|
115 |
+
/**
|
116 |
+
* Parses the CSV from the file and returns the data as an array.
|
117 |
+
*
|
118 |
+
* @since 2.11.5
|
119 |
+
* @param string $file
|
120 |
+
*
|
121 |
+
* @return array
|
122 |
+
*/
|
123 |
+
public function get_csv_file( $file ) {
|
124 |
+
$csv = array_map( 'str_getcsv', file( $this->file ) );
|
125 |
+
array_walk(
|
126 |
+
$csv,
|
127 |
+
function ( &$a ) use ( $csv ) {
|
128 |
+
/*
|
129 |
+
* Make sure the two arrays have the same lengths.
|
130 |
+
* If not, we trim the larger array to match the smaller one.
|
131 |
+
*/
|
132 |
+
$min = min( count( $csv[0] ), count( $a ) );
|
133 |
+
$headers = array_slice( $csv[0], 0, $min );
|
134 |
+
$values = array_slice( $a, 0, $min );
|
135 |
+
$a = array_combine( $headers, $values );
|
136 |
+
}
|
137 |
+
);
|
138 |
+
array_shift( $csv );
|
139 |
+
|
140 |
+
return $csv;
|
141 |
+
}
|
142 |
+
|
143 |
/**
|
144 |
* Get the CSV columns
|
145 |
*
|
148 |
*/
|
149 |
public function get_columns() {
|
150 |
|
151 |
+
$columns = array();
|
152 |
+
|
153 |
+
if ( isset( $this->csv[0] ) && is_array( $this->csv[0] ) ) {
|
154 |
+
$columns = array_keys( $this->csv[0] );
|
155 |
+
}
|
156 |
+
|
157 |
+
return $columns;
|
158 |
}
|
159 |
|
160 |
/**
|
167 |
*/
|
168 |
public function get_first_row() {
|
169 |
|
170 |
+
if ( ! is_array( $this->csv ) ) {
|
171 |
+
return array();
|
172 |
+
}
|
173 |
|
174 |
+
return array_map( array( $this, 'trim_preview' ), current( $this->csv ) );
|
175 |
}
|
176 |
|
177 |
/**
|
209 |
*/
|
210 |
public function map_fields( $import_fields = array() ) {
|
211 |
|
212 |
+
$this->field_mapping = array_map( 'sanitize_text_field', $import_fields );
|
213 |
|
|
|
214 |
}
|
215 |
|
216 |
/**
|
includes/class-edd-discount.php
CHANGED
@@ -16,6 +16,25 @@ if ( ! defined( 'ABSPATH' ) ) exit;
|
|
16 |
* EDD_Discount Class
|
17 |
*
|
18 |
* @since 2.7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
*/
|
20 |
class EDD_Discount {
|
21 |
/**
|
16 |
* EDD_Discount Class
|
17 |
*
|
18 |
* @since 2.7
|
19 |
+
*
|
20 |
+
* @property int $ID
|
21 |
+
* @property string $name
|
22 |
+
* @property string $code
|
23 |
+
* @property string $status
|
24 |
+
* @property string $type
|
25 |
+
* @property float $amount
|
26 |
+
* @property array $product_reqs
|
27 |
+
* @property array $excluded_products
|
28 |
+
* @property string $product_condition
|
29 |
+
* @property string $start
|
30 |
+
* @property string $expiration
|
31 |
+
* @property int $uses
|
32 |
+
* @property int $max_uses
|
33 |
+
* @property float $min_price
|
34 |
+
* @property bool $is_single_use
|
35 |
+
* @property bool $is_not_global
|
36 |
+
* @property string $post_date
|
37 |
+
* @property string $post_modified
|
38 |
*/
|
39 |
class EDD_Discount {
|
40 |
/**
|
includes/class-edd-logging.php
CHANGED
@@ -422,9 +422,7 @@ class EDD_Logging {
|
|
422 |
* @return void
|
423 |
*/
|
424 |
protected function write_to_log( $message = '' ) {
|
425 |
-
$file
|
426 |
-
$file .= $message;
|
427 |
-
@file_put_contents( $this->file, $file );
|
428 |
}
|
429 |
|
430 |
/**
|
@@ -528,9 +526,9 @@ function edd_debug_log( $message = '', $force = false ) {
|
|
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 |
}
|
422 |
* @return void
|
423 |
*/
|
424 |
protected function write_to_log( $message = '' ) {
|
425 |
+
file_put_contents( $this->file, $message, FILE_APPEND );
|
|
|
|
|
426 |
}
|
427 |
|
428 |
/**
|
526 |
if( function_exists( 'mb_convert_encoding' ) ) {
|
527 |
|
528 |
$message = mb_convert_encoding( $message, 'UTF-8' );
|
529 |
+
|
530 |
}
|
531 |
+
|
532 |
$edd_logs->log_to_file( $message );
|
533 |
|
534 |
}
|
includes/gateways/stripe/edd-stripe.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Easy Digital Downloads - Stripe Pro Payment Gateway
|
4 |
* Plugin URI: https://easydigitaldownloads.com/downloads/stripe-gateway/
|
5 |
* Description: Adds a payment gateway for Stripe.com
|
6 |
-
* Version: 2.8.
|
7 |
* Author: Easy Digital Downloads
|
8 |
* Author URI: https://easydigitaldownloads.com
|
9 |
* Text Domain: edds
|
@@ -42,7 +42,7 @@ function edd_stripe_core_bootstrap() {
|
|
42 |
}
|
43 |
|
44 |
if ( ! defined( 'EDD_STRIPE_VERSION' ) ) {
|
45 |
-
define( 'EDD_STRIPE_VERSION', '2.8.
|
46 |
}
|
47 |
|
48 |
if ( ! defined( 'EDD_STRIPE_API_VERSION' ) ) {
|
3 |
* Plugin Name: Easy Digital Downloads - Stripe Pro Payment Gateway
|
4 |
* Plugin URI: https://easydigitaldownloads.com/downloads/stripe-gateway/
|
5 |
* Description: Adds a payment gateway for Stripe.com
|
6 |
+
* Version: 2.8.11
|
7 |
* Author: Easy Digital Downloads
|
8 |
* Author URI: https://easydigitaldownloads.com
|
9 |
* Text Domain: edds
|
42 |
}
|
43 |
|
44 |
if ( ! defined( 'EDD_STRIPE_VERSION' ) ) {
|
45 |
+
define( 'EDD_STRIPE_VERSION', '2.8.11' );
|
46 |
}
|
47 |
|
48 |
if ( ! defined( 'EDD_STRIPE_API_VERSION' ) ) {
|
includes/gateways/stripe/includes/admin/admin-actions.php
CHANGED
@@ -83,7 +83,7 @@ add_action( 'admin_print_footer_scripts-download_page_edd-payment-history', func
|
|
83 |
link.addEventListener( 'click', function( e ) {
|
84 |
if ( ! confirm( '<?php esc_attr_e( 'Are you sure you want to cancel this order?', 'easy-digital-downloads' ); ?>' ) ) {
|
85 |
e.preventDefault();
|
86 |
-
}
|
87 |
} );
|
88 |
} );
|
89 |
} );
|
83 |
link.addEventListener( 'click', function( e ) {
|
84 |
if ( ! confirm( '<?php esc_attr_e( 'Are you sure you want to cancel this order?', 'easy-digital-downloads' ); ?>' ) ) {
|
85 |
e.preventDefault();
|
86 |
+
}
|
87 |
} );
|
88 |
} );
|
89 |
} );
|
includes/gateways/stripe/includes/compat.php
CHANGED
@@ -205,6 +205,14 @@ function _edds_process_purchase_form() {
|
|
205 |
$_POST = array_merge( $_POST, $form_data );
|
206 |
$_REQUEST = array_merge( $_REQUEST, $_POST );
|
207 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
208 |
/**
|
209 |
* @since unknown
|
210 |
* @todo document
|
205 |
$_POST = array_merge( $_POST, $form_data );
|
206 |
$_REQUEST = array_merge( $_REQUEST, $_POST );
|
207 |
|
208 |
+
/*
|
209 |
+
* Reset the tax rate so that it will be recalculated correctly.
|
210 |
+
* This is only needed on EDD 3.0+.
|
211 |
+
*/
|
212 |
+
if ( method_exists( EDD()->cart, 'set_tax_rate' ) ) {
|
213 |
+
EDD()->cart->set_tax_rate( null );
|
214 |
+
}
|
215 |
+
|
216 |
/**
|
217 |
* @since unknown
|
218 |
* @todo document
|
includes/gateways/stripe/vendor/composer/ClassLoader.php
CHANGED
@@ -37,57 +37,130 @@ namespace Composer\Autoload;
|
|
37 |
*
|
38 |
* @author Fabien Potencier <fabien@symfony.com>
|
39 |
* @author Jordi Boggiano <j.boggiano@seld.be>
|
40 |
-
* @see
|
41 |
-
* @see
|
42 |
*/
|
43 |
class ClassLoader
|
44 |
{
|
|
|
|
|
|
|
45 |
// PSR-4
|
|
|
|
|
|
|
|
|
46 |
private $prefixLengthsPsr4 = array();
|
|
|
|
|
|
|
|
|
47 |
private $prefixDirsPsr4 = array();
|
|
|
|
|
|
|
|
|
48 |
private $fallbackDirsPsr4 = array();
|
49 |
|
50 |
// PSR-0
|
|
|
|
|
|
|
|
|
51 |
private $prefixesPsr0 = array();
|
|
|
|
|
|
|
|
|
52 |
private $fallbackDirsPsr0 = array();
|
53 |
|
|
|
54 |
private $useIncludePath = false;
|
|
|
|
|
|
|
|
|
|
|
55 |
private $classMap = array();
|
|
|
|
|
56 |
private $classMapAuthoritative = false;
|
|
|
|
|
|
|
|
|
|
|
57 |
private $missingClasses = array();
|
|
|
|
|
58 |
private $apcuPrefix;
|
59 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
public function getPrefixes()
|
61 |
{
|
62 |
if (!empty($this->prefixesPsr0)) {
|
63 |
-
return call_user_func_array('array_merge', $this->prefixesPsr0);
|
64 |
}
|
65 |
|
66 |
return array();
|
67 |
}
|
68 |
|
|
|
|
|
|
|
|
|
69 |
public function getPrefixesPsr4()
|
70 |
{
|
71 |
return $this->prefixDirsPsr4;
|
72 |
}
|
73 |
|
|
|
|
|
|
|
|
|
74 |
public function getFallbackDirs()
|
75 |
{
|
76 |
return $this->fallbackDirsPsr0;
|
77 |
}
|
78 |
|
|
|
|
|
|
|
|
|
79 |
public function getFallbackDirsPsr4()
|
80 |
{
|
81 |
return $this->fallbackDirsPsr4;
|
82 |
}
|
83 |
|
|
|
|
|
|
|
|
|
84 |
public function getClassMap()
|
85 |
{
|
86 |
return $this->classMap;
|
87 |
}
|
88 |
|
89 |
/**
|
90 |
-
* @param
|
|
|
|
|
|
|
91 |
*/
|
92 |
public function addClassMap(array $classMap)
|
93 |
{
|
@@ -102,9 +175,11 @@ class ClassLoader
|
|
102 |
* Registers a set of PSR-0 directories for a given prefix, either
|
103 |
* appending or prepending to the ones previously set for this prefix.
|
104 |
*
|
105 |
-
* @param string
|
106 |
-
* @param
|
107 |
-
* @param bool
|
|
|
|
|
108 |
*/
|
109 |
public function add($prefix, $paths, $prepend = false)
|
110 |
{
|
@@ -147,11 +222,13 @@ class ClassLoader
|
|
147 |
* Registers a set of PSR-4 directories for a given namespace, either
|
148 |
* appending or prepending to the ones previously set for this namespace.
|
149 |
*
|
150 |
-
* @param string
|
151 |
-
* @param
|
152 |
-
* @param bool
|
153 |
*
|
154 |
* @throws \InvalidArgumentException
|
|
|
|
|
155 |
*/
|
156 |
public function addPsr4($prefix, $paths, $prepend = false)
|
157 |
{
|
@@ -195,8 +272,10 @@ class ClassLoader
|
|
195 |
* Registers a set of PSR-0 directories for a given prefix,
|
196 |
* replacing any others previously set for this prefix.
|
197 |
*
|
198 |
-
* @param string
|
199 |
-
* @param
|
|
|
|
|
200 |
*/
|
201 |
public function set($prefix, $paths)
|
202 |
{
|
@@ -211,10 +290,12 @@ class ClassLoader
|
|
211 |
* Registers a set of PSR-4 directories for a given namespace,
|
212 |
* replacing any others previously set for this namespace.
|
213 |
*
|
214 |
-
* @param string
|
215 |
-
* @param
|
216 |
*
|
217 |
* @throws \InvalidArgumentException
|
|
|
|
|
218 |
*/
|
219 |
public function setPsr4($prefix, $paths)
|
220 |
{
|
@@ -234,6 +315,8 @@ class ClassLoader
|
|
234 |
* Turns on searching the include path for class files.
|
235 |
*
|
236 |
* @param bool $useIncludePath
|
|
|
|
|
237 |
*/
|
238 |
public function setUseIncludePath($useIncludePath)
|
239 |
{
|
@@ -256,6 +339,8 @@ class ClassLoader
|
|
256 |
* that have not been registered with the class map.
|
257 |
*
|
258 |
* @param bool $classMapAuthoritative
|
|
|
|
|
259 |
*/
|
260 |
public function setClassMapAuthoritative($classMapAuthoritative)
|
261 |
{
|
@@ -276,6 +361,8 @@ class ClassLoader
|
|
276 |
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
277 |
*
|
278 |
* @param string|null $apcuPrefix
|
|
|
|
|
279 |
*/
|
280 |
public function setApcuPrefix($apcuPrefix)
|
281 |
{
|
@@ -296,25 +383,44 @@ class ClassLoader
|
|
296 |
* Registers this instance as an autoloader.
|
297 |
*
|
298 |
* @param bool $prepend Whether to prepend the autoloader or not
|
|
|
|
|
299 |
*/
|
300 |
public function register($prepend = false)
|
301 |
{
|
302 |
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
303 |
}
|
304 |
|
305 |
/**
|
306 |
* Unregisters this instance as an autoloader.
|
|
|
|
|
307 |
*/
|
308 |
public function unregister()
|
309 |
{
|
310 |
spl_autoload_unregister(array($this, 'loadClass'));
|
|
|
|
|
|
|
|
|
311 |
}
|
312 |
|
313 |
/**
|
314 |
* Loads the given class or interface.
|
315 |
*
|
316 |
* @param string $class The name of the class
|
317 |
-
* @return
|
318 |
*/
|
319 |
public function loadClass($class)
|
320 |
{
|
@@ -323,6 +429,8 @@ class ClassLoader
|
|
323 |
|
324 |
return true;
|
325 |
}
|
|
|
|
|
326 |
}
|
327 |
|
328 |
/**
|
@@ -367,6 +475,21 @@ class ClassLoader
|
|
367 |
return $file;
|
368 |
}
|
369 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
370 |
private function findFileWithExtension($class, $ext)
|
371 |
{
|
372 |
// PSR-4 lookup
|
@@ -438,6 +561,10 @@ class ClassLoader
|
|
438 |
* Scope isolated include.
|
439 |
*
|
440 |
* Prevents access to $this/self from included files.
|
|
|
|
|
|
|
|
|
441 |
*/
|
442 |
function includeFile($file)
|
443 |
{
|
37 |
*
|
38 |
* @author Fabien Potencier <fabien@symfony.com>
|
39 |
* @author Jordi Boggiano <j.boggiano@seld.be>
|
40 |
+
* @see https://www.php-fig.org/psr/psr-0/
|
41 |
+
* @see https://www.php-fig.org/psr/psr-4/
|
42 |
*/
|
43 |
class ClassLoader
|
44 |
{
|
45 |
+
/** @var ?string */
|
46 |
+
private $vendorDir;
|
47 |
+
|
48 |
// PSR-4
|
49 |
+
/**
|
50 |
+
* @var array[]
|
51 |
+
* @psalm-var array<string, array<string, int>>
|
52 |
+
*/
|
53 |
private $prefixLengthsPsr4 = array();
|
54 |
+
/**
|
55 |
+
* @var array[]
|
56 |
+
* @psalm-var array<string, array<int, string>>
|
57 |
+
*/
|
58 |
private $prefixDirsPsr4 = array();
|
59 |
+
/**
|
60 |
+
* @var array[]
|
61 |
+
* @psalm-var array<string, string>
|
62 |
+
*/
|
63 |
private $fallbackDirsPsr4 = array();
|
64 |
|
65 |
// PSR-0
|
66 |
+
/**
|
67 |
+
* @var array[]
|
68 |
+
* @psalm-var array<string, array<string, string[]>>
|
69 |
+
*/
|
70 |
private $prefixesPsr0 = array();
|
71 |
+
/**
|
72 |
+
* @var array[]
|
73 |
+
* @psalm-var array<string, string>
|
74 |
+
*/
|
75 |
private $fallbackDirsPsr0 = array();
|
76 |
|
77 |
+
/** @var bool */
|
78 |
private $useIncludePath = false;
|
79 |
+
|
80 |
+
/**
|
81 |
+
* @var string[]
|
82 |
+
* @psalm-var array<string, string>
|
83 |
+
*/
|
84 |
private $classMap = array();
|
85 |
+
|
86 |
+
/** @var bool */
|
87 |
private $classMapAuthoritative = false;
|
88 |
+
|
89 |
+
/**
|
90 |
+
* @var bool[]
|
91 |
+
* @psalm-var array<string, bool>
|
92 |
+
*/
|
93 |
private $missingClasses = array();
|
94 |
+
|
95 |
+
/** @var ?string */
|
96 |
private $apcuPrefix;
|
97 |
|
98 |
+
/**
|
99 |
+
* @var self[]
|
100 |
+
*/
|
101 |
+
private static $registeredLoaders = array();
|
102 |
+
|
103 |
+
/**
|
104 |
+
* @param ?string $vendorDir
|
105 |
+
*/
|
106 |
+
public function __construct($vendorDir = null)
|
107 |
+
{
|
108 |
+
$this->vendorDir = $vendorDir;
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
* @return string[]
|
113 |
+
*/
|
114 |
public function getPrefixes()
|
115 |
{
|
116 |
if (!empty($this->prefixesPsr0)) {
|
117 |
+
return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
|
118 |
}
|
119 |
|
120 |
return array();
|
121 |
}
|
122 |
|
123 |
+
/**
|
124 |
+
* @return array[]
|
125 |
+
* @psalm-return array<string, array<int, string>>
|
126 |
+
*/
|
127 |
public function getPrefixesPsr4()
|
128 |
{
|
129 |
return $this->prefixDirsPsr4;
|
130 |
}
|
131 |
|
132 |
+
/**
|
133 |
+
* @return array[]
|
134 |
+
* @psalm-return array<string, string>
|
135 |
+
*/
|
136 |
public function getFallbackDirs()
|
137 |
{
|
138 |
return $this->fallbackDirsPsr0;
|
139 |
}
|
140 |
|
141 |
+
/**
|
142 |
+
* @return array[]
|
143 |
+
* @psalm-return array<string, string>
|
144 |
+
*/
|
145 |
public function getFallbackDirsPsr4()
|
146 |
{
|
147 |
return $this->fallbackDirsPsr4;
|
148 |
}
|
149 |
|
150 |
+
/**
|
151 |
+
* @return string[] Array of classname => path
|
152 |
+
* @psalm-var array<string, string>
|
153 |
+
*/
|
154 |
public function getClassMap()
|
155 |
{
|
156 |
return $this->classMap;
|
157 |
}
|
158 |
|
159 |
/**
|
160 |
+
* @param string[] $classMap Class to filename map
|
161 |
+
* @psalm-param array<string, string> $classMap
|
162 |
+
*
|
163 |
+
* @return void
|
164 |
*/
|
165 |
public function addClassMap(array $classMap)
|
166 |
{
|
175 |
* Registers a set of PSR-0 directories for a given prefix, either
|
176 |
* appending or prepending to the ones previously set for this prefix.
|
177 |
*
|
178 |
+
* @param string $prefix The prefix
|
179 |
+
* @param string[]|string $paths The PSR-0 root directories
|
180 |
+
* @param bool $prepend Whether to prepend the directories
|
181 |
+
*
|
182 |
+
* @return void
|
183 |
*/
|
184 |
public function add($prefix, $paths, $prepend = false)
|
185 |
{
|
222 |
* Registers a set of PSR-4 directories for a given namespace, either
|
223 |
* appending or prepending to the ones previously set for this namespace.
|
224 |
*
|
225 |
+
* @param string $prefix The prefix/namespace, with trailing '\\'
|
226 |
+
* @param string[]|string $paths The PSR-4 base directories
|
227 |
+
* @param bool $prepend Whether to prepend the directories
|
228 |
*
|
229 |
* @throws \InvalidArgumentException
|
230 |
+
*
|
231 |
+
* @return void
|
232 |
*/
|
233 |
public function addPsr4($prefix, $paths, $prepend = false)
|
234 |
{
|
272 |
* Registers a set of PSR-0 directories for a given prefix,
|
273 |
* replacing any others previously set for this prefix.
|
274 |
*
|
275 |
+
* @param string $prefix The prefix
|
276 |
+
* @param string[]|string $paths The PSR-0 base directories
|
277 |
+
*
|
278 |
+
* @return void
|
279 |
*/
|
280 |
public function set($prefix, $paths)
|
281 |
{
|
290 |
* Registers a set of PSR-4 directories for a given namespace,
|
291 |
* replacing any others previously set for this namespace.
|
292 |
*
|
293 |
+
* @param string $prefix The prefix/namespace, with trailing '\\'
|
294 |
+
* @param string[]|string $paths The PSR-4 base directories
|
295 |
*
|
296 |
* @throws \InvalidArgumentException
|
297 |
+
*
|
298 |
+
* @return void
|
299 |
*/
|
300 |
public function setPsr4($prefix, $paths)
|
301 |
{
|
315 |
* Turns on searching the include path for class files.
|
316 |
*
|
317 |
* @param bool $useIncludePath
|
318 |
+
*
|
319 |
+
* @return void
|
320 |
*/
|
321 |
public function setUseIncludePath($useIncludePath)
|
322 |
{
|
339 |
* that have not been registered with the class map.
|
340 |
*
|
341 |
* @param bool $classMapAuthoritative
|
342 |
+
*
|
343 |
+
* @return void
|
344 |
*/
|
345 |
public function setClassMapAuthoritative($classMapAuthoritative)
|
346 |
{
|
361 |
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
|
362 |
*
|
363 |
* @param string|null $apcuPrefix
|
364 |
+
*
|
365 |
+
* @return void
|
366 |
*/
|
367 |
public function setApcuPrefix($apcuPrefix)
|
368 |
{
|
383 |
* Registers this instance as an autoloader.
|
384 |
*
|
385 |
* @param bool $prepend Whether to prepend the autoloader or not
|
386 |
+
*
|
387 |
+
* @return void
|
388 |
*/
|
389 |
public function register($prepend = false)
|
390 |
{
|
391 |
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
|
392 |
+
|
393 |
+
if (null === $this->vendorDir) {
|
394 |
+
return;
|
395 |
+
}
|
396 |
+
|
397 |
+
if ($prepend) {
|
398 |
+
self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
|
399 |
+
} else {
|
400 |
+
unset(self::$registeredLoaders[$this->vendorDir]);
|
401 |
+
self::$registeredLoaders[$this->vendorDir] = $this;
|
402 |
+
}
|
403 |
}
|
404 |
|
405 |
/**
|
406 |
* Unregisters this instance as an autoloader.
|
407 |
+
*
|
408 |
+
* @return void
|
409 |
*/
|
410 |
public function unregister()
|
411 |
{
|
412 |
spl_autoload_unregister(array($this, 'loadClass'));
|
413 |
+
|
414 |
+
if (null !== $this->vendorDir) {
|
415 |
+
unset(self::$registeredLoaders[$this->vendorDir]);
|
416 |
+
}
|
417 |
}
|
418 |
|
419 |
/**
|
420 |
* Loads the given class or interface.
|
421 |
*
|
422 |
* @param string $class The name of the class
|
423 |
+
* @return true|null True if loaded, null otherwise
|
424 |
*/
|
425 |
public function loadClass($class)
|
426 |
{
|
429 |
|
430 |
return true;
|
431 |
}
|
432 |
+
|
433 |
+
return null;
|
434 |
}
|
435 |
|
436 |
/**
|
475 |
return $file;
|
476 |
}
|
477 |
|
478 |
+
/**
|
479 |
+
* Returns the currently registered loaders indexed by their corresponding vendor directories.
|
480 |
+
*
|
481 |
+
* @return self[]
|
482 |
+
*/
|
483 |
+
public static function getRegisteredLoaders()
|
484 |
+
{
|
485 |
+
return self::$registeredLoaders;
|
486 |
+
}
|
487 |
+
|
488 |
+
/**
|
489 |
+
* @param string $class
|
490 |
+
* @param string $ext
|
491 |
+
* @return string|false
|
492 |
+
*/
|
493 |
private function findFileWithExtension($class, $ext)
|
494 |
{
|
495 |
// PSR-4 lookup
|
561 |
* Scope isolated include.
|
562 |
*
|
563 |
* Prevents access to $this/self from included files.
|
564 |
+
*
|
565 |
+
* @param string $file
|
566 |
+
* @return void
|
567 |
+
* @private
|
568 |
*/
|
569 |
function includeFile($file)
|
570 |
{
|
includes/gateways/stripe/vendor/composer/InstalledVersions.php
CHANGED
@@ -20,12 +20,25 @@ use Composer\Semver\VersionParser;
|
|
20 |
*
|
21 |
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
22 |
*
|
23 |
-
* To require
|
24 |
*/
|
25 |
class InstalledVersions
|
26 |
{
|
|
|
|
|
|
|
|
|
27 |
private static $installed;
|
|
|
|
|
|
|
|
|
28 |
private static $canGetVendors;
|
|
|
|
|
|
|
|
|
|
|
29 |
private static $installedByVendor = array();
|
30 |
|
31 |
/**
|
@@ -228,7 +241,7 @@ class InstalledVersions
|
|
228 |
|
229 |
/**
|
230 |
* @return array
|
231 |
-
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
|
232 |
*/
|
233 |
public static function getRootPackage()
|
234 |
{
|
@@ -242,7 +255,7 @@ class InstalledVersions
|
|
242 |
*
|
243 |
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
244 |
* @return array[]
|
245 |
-
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
|
246 |
*/
|
247 |
public static function getRawData()
|
248 |
{
|
@@ -265,7 +278,7 @@ class InstalledVersions
|
|
265 |
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
266 |
*
|
267 |
* @return array[]
|
268 |
-
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
269 |
*/
|
270 |
public static function getAllRawData()
|
271 |
{
|
@@ -288,7 +301,7 @@ class InstalledVersions
|
|
288 |
* @param array[] $data A vendor/composer/installed.php data set
|
289 |
* @return void
|
290 |
*
|
291 |
-
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
|
292 |
*/
|
293 |
public static function reload($data)
|
294 |
{
|
@@ -298,7 +311,7 @@ class InstalledVersions
|
|
298 |
|
299 |
/**
|
300 |
* @return array[]
|
301 |
-
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
302 |
*/
|
303 |
private static function getInstalled()
|
304 |
{
|
20 |
*
|
21 |
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
22 |
*
|
23 |
+
* To require its presence, you can require `composer-runtime-api ^2.0`
|
24 |
*/
|
25 |
class InstalledVersions
|
26 |
{
|
27 |
+
/**
|
28 |
+
* @var mixed[]|null
|
29 |
+
* @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null
|
30 |
+
*/
|
31 |
private static $installed;
|
32 |
+
|
33 |
+
/**
|
34 |
+
* @var bool|null
|
35 |
+
*/
|
36 |
private static $canGetVendors;
|
37 |
+
|
38 |
+
/**
|
39 |
+
* @var array[]
|
40 |
+
* @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
|
41 |
+
*/
|
42 |
private static $installedByVendor = array();
|
43 |
|
44 |
/**
|
241 |
|
242 |
/**
|
243 |
* @return array
|
244 |
+
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
|
245 |
*/
|
246 |
public static function getRootPackage()
|
247 |
{
|
255 |
*
|
256 |
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
257 |
* @return array[]
|
258 |
+
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
|
259 |
*/
|
260 |
public static function getRawData()
|
261 |
{
|
278 |
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
279 |
*
|
280 |
* @return array[]
|
281 |
+
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
|
282 |
*/
|
283 |
public static function getAllRawData()
|
284 |
{
|
301 |
* @param array[] $data A vendor/composer/installed.php data set
|
302 |
* @return void
|
303 |
*
|
304 |
+
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
|
305 |
*/
|
306 |
public static function reload($data)
|
307 |
{
|
311 |
|
312 |
/**
|
313 |
* @return array[]
|
314 |
+
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
|
315 |
*/
|
316 |
private static function getInstalled()
|
317 |
{
|
includes/gateways/stripe/vendor/composer/LICENSE
CHANGED
@@ -1,3 +1,4 @@
|
|
|
|
1 |
Copyright (c) Nils Adermann, Jordi Boggiano
|
2 |
|
3 |
Permission is hereby granted, free of charge, to any person obtaining a copy
|
@@ -17,3 +18,4 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17 |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18 |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19 |
THE SOFTWARE.
|
|
1 |
+
|
2 |
Copyright (c) Nils Adermann, Jordi Boggiano
|
3 |
|
4 |
Permission is hereby granted, free of charge, to any person obtaining a copy
|
18 |
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
19 |
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
20 |
THE SOFTWARE.
|
21 |
+
|
includes/gateways/stripe/vendor/composer/autoload_classmap.php
CHANGED
@@ -6,4 +6,5 @@ $vendorDir = dirname(dirname(__FILE__));
|
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
|
|
9 |
);
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
+
'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
|
10 |
);
|
includes/gateways/stripe/vendor/composer/autoload_real.php
CHANGED
@@ -22,13 +22,15 @@ class ComposerAutoloaderInitce2073d68aa3da842e5b37a3b60e999a
|
|
22 |
return self::$loader;
|
23 |
}
|
24 |
|
|
|
|
|
25 |
spl_autoload_register(array('ComposerAutoloaderInitce2073d68aa3da842e5b37a3b60e999a', 'loadClassLoader'), true, true);
|
26 |
-
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
27 |
spl_autoload_unregister(array('ComposerAutoloaderInitce2073d68aa3da842e5b37a3b60e999a', 'loadClassLoader'));
|
28 |
|
29 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
30 |
if ($useStaticLoader) {
|
31 |
-
|
32 |
|
33 |
call_user_func(\Composer\Autoload\ComposerStaticInitce2073d68aa3da842e5b37a3b60e999a::getInitializer($loader));
|
34 |
} else {
|
22 |
return self::$loader;
|
23 |
}
|
24 |
|
25 |
+
require __DIR__ . '/platform_check.php';
|
26 |
+
|
27 |
spl_autoload_register(array('ComposerAutoloaderInitce2073d68aa3da842e5b37a3b60e999a', 'loadClassLoader'), true, true);
|
28 |
+
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
|
29 |
spl_autoload_unregister(array('ComposerAutoloaderInitce2073d68aa3da842e5b37a3b60e999a', 'loadClassLoader'));
|
30 |
|
31 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
32 |
if ($useStaticLoader) {
|
33 |
+
require __DIR__ . '/autoload_static.php';
|
34 |
|
35 |
call_user_func(\Composer\Autoload\ComposerStaticInitce2073d68aa3da842e5b37a3b60e999a::getInitializer($loader));
|
36 |
} else {
|
includes/gateways/stripe/vendor/composer/autoload_static.php
CHANGED
@@ -28,11 +28,16 @@ class ComposerStaticInitce2073d68aa3da842e5b37a3b60e999a
|
|
28 |
),
|
29 |
);
|
30 |
|
|
|
|
|
|
|
|
|
31 |
public static function getInitializer(ClassLoader $loader)
|
32 |
{
|
33 |
return \Closure::bind(function () use ($loader) {
|
34 |
$loader->prefixLengthsPsr4 = ComposerStaticInitce2073d68aa3da842e5b37a3b60e999a::$prefixLengthsPsr4;
|
35 |
$loader->prefixDirsPsr4 = ComposerStaticInitce2073d68aa3da842e5b37a3b60e999a::$prefixDirsPsr4;
|
|
|
36 |
|
37 |
}, null, ClassLoader::class);
|
38 |
}
|
28 |
),
|
29 |
);
|
30 |
|
31 |
+
public static $classMap = array (
|
32 |
+
'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
|
33 |
+
);
|
34 |
+
|
35 |
public static function getInitializer(ClassLoader $loader)
|
36 |
{
|
37 |
return \Closure::bind(function () use ($loader) {
|
38 |
$loader->prefixLengthsPsr4 = ComposerStaticInitce2073d68aa3da842e5b37a3b60e999a::$prefixLengthsPsr4;
|
39 |
$loader->prefixDirsPsr4 = ComposerStaticInitce2073d68aa3da842e5b37a3b60e999a::$prefixDirsPsr4;
|
40 |
+
$loader->classMap = ComposerStaticInitce2073d68aa3da842e5b37a3b60e999a::$classMap;
|
41 |
|
42 |
}, null, ClassLoader::class);
|
43 |
}
|
includes/gateways/stripe/vendor/composer/installed.json
CHANGED
@@ -1,217 +1,223 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
"
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
"dist": {
|
12 |
-
"type": "zip",
|
13 |
-
"url": "https://api.github.com/repos/composer/installers/zipball/ae03311f45dfe194412081526be2e003960df74b",
|
14 |
-
"reference": "ae03311f45dfe194412081526be2e003960df74b",
|
15 |
-
"shasum": ""
|
16 |
-
},
|
17 |
-
"require": {
|
18 |
-
"composer-plugin-api": "^1.0 || ^2.0"
|
19 |
-
},
|
20 |
-
"replace": {
|
21 |
-
"roundcube/plugin-installer": "*",
|
22 |
-
"shama/baton": "*"
|
23 |
-
},
|
24 |
-
"require-dev": {
|
25 |
-
"composer/composer": "1.6.* || ^2.0",
|
26 |
-
"composer/semver": "^1 || ^3",
|
27 |
-
"phpstan/phpstan": "^0.12.55",
|
28 |
-
"phpstan/phpstan-phpunit": "^0.12.16",
|
29 |
-
"symfony/phpunit-bridge": "^4.2 || ^5",
|
30 |
-
"symfony/process": "^2.3"
|
31 |
-
},
|
32 |
-
"time": "2021-04-28T06:42:17+00:00",
|
33 |
-
"type": "composer-plugin",
|
34 |
-
"extra": {
|
35 |
-
"class": "Composer\\Installers\\Plugin",
|
36 |
-
"branch-alias": {
|
37 |
-
"dev-main": "1.x-dev"
|
38 |
-
}
|
39 |
-
},
|
40 |
-
"installation-source": "dist",
|
41 |
-
"autoload": {
|
42 |
-
"psr-4": {
|
43 |
-
"Composer\\Installers\\": "src/Composer/Installers"
|
44 |
-
}
|
45 |
-
},
|
46 |
-
"notification-url": "https://packagist.org/downloads/",
|
47 |
-
"license": [
|
48 |
-
"MIT"
|
49 |
-
],
|
50 |
-
"authors": [
|
51 |
-
{
|
52 |
-
"name": "Kyle Robinson Young",
|
53 |
-
"email": "kyle@dontkry.com",
|
54 |
-
"homepage": "https://github.com/shama"
|
55 |
-
}
|
56 |
-
],
|
57 |
-
"description": "A multi-framework Composer library installer",
|
58 |
-
"homepage": "https://composer.github.io/installers/",
|
59 |
-
"keywords": [
|
60 |
-
"Craft",
|
61 |
-
"Dolibarr",
|
62 |
-
"Eliasis",
|
63 |
-
"Hurad",
|
64 |
-
"ImageCMS",
|
65 |
-
"Kanboard",
|
66 |
-
"Lan Management System",
|
67 |
-
"MODX Evo",
|
68 |
-
"MantisBT",
|
69 |
-
"Mautic",
|
70 |
-
"Maya",
|
71 |
-
"OXID",
|
72 |
-
"Plentymarkets",
|
73 |
-
"Porto",
|
74 |
-
"RadPHP",
|
75 |
-
"SMF",
|
76 |
-
"Starbug",
|
77 |
-
"Thelia",
|
78 |
-
"Whmcs",
|
79 |
-
"WolfCMS",
|
80 |
-
"agl",
|
81 |
-
"aimeos",
|
82 |
-
"annotatecms",
|
83 |
-
"attogram",
|
84 |
-
"bitrix",
|
85 |
-
"cakephp",
|
86 |
-
"chef",
|
87 |
-
"cockpit",
|
88 |
-
"codeigniter",
|
89 |
-
"concrete5",
|
90 |
-
"croogo",
|
91 |
-
"dokuwiki",
|
92 |
-
"drupal",
|
93 |
-
"eZ Platform",
|
94 |
-
"elgg",
|
95 |
-
"expressionengine",
|
96 |
-
"fuelphp",
|
97 |
-
"grav",
|
98 |
-
"installer",
|
99 |
-
"itop",
|
100 |
-
"joomla",
|
101 |
-
"known",
|
102 |
-
"kohana",
|
103 |
-
"laravel",
|
104 |
-
"lavalite",
|
105 |
-
"lithium",
|
106 |
-
"magento",
|
107 |
-
"majima",
|
108 |
-
"mako",
|
109 |
-
"mediawiki",
|
110 |
-
"miaoxing",
|
111 |
-
"modulework",
|
112 |
-
"modx",
|
113 |
-
"moodle",
|
114 |
-
"osclass",
|
115 |
-
"phpbb",
|
116 |
-
"piwik",
|
117 |
-
"ppi",
|
118 |
-
"processwire",
|
119 |
-
"puppet",
|
120 |
-
"pxcms",
|
121 |
-
"reindex",
|
122 |
-
"roundcube",
|
123 |
-
"shopware",
|
124 |
-
"silverstripe",
|
125 |
-
"sydes",
|
126 |
-
"sylius",
|
127 |
-
"symfony",
|
128 |
-
"tastyigniter",
|
129 |
-
"typo3",
|
130 |
-
"wordpress",
|
131 |
-
"yawik",
|
132 |
-
"zend",
|
133 |
-
"zikula"
|
134 |
-
],
|
135 |
-
"support": {
|
136 |
-
"issues": "https://github.com/composer/installers/issues",
|
137 |
-
"source": "https://github.com/composer/installers/tree/v1.11.0"
|
138 |
-
},
|
139 |
-
"funding": [
|
140 |
-
{
|
141 |
-
"url": "https://packagist.com",
|
142 |
-
"type": "custom"
|
143 |
},
|
144 |
-
{
|
145 |
-
"
|
146 |
-
"
|
|
|
|
|
147 |
},
|
148 |
-
{
|
149 |
-
"
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
"type": "
|
165 |
-
"
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
"
|
172 |
-
"
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
"
|
178 |
-
"
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
"
|
193 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
},
|
195 |
-
|
196 |
-
|
197 |
-
"
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
"
|
202 |
-
"
|
203 |
-
}
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
"
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
215 |
}
|
216 |
-
|
217 |
-
|
|
|
|
1 |
+
{
|
2 |
+
"packages": [
|
3 |
+
{
|
4 |
+
"name": "composer/installers",
|
5 |
+
"version": "v1.11.0",
|
6 |
+
"version_normalized": "1.11.0.0",
|
7 |
+
"source": {
|
8 |
+
"type": "git",
|
9 |
+
"url": "https://github.com/composer/installers.git",
|
10 |
+
"reference": "ae03311f45dfe194412081526be2e003960df74b"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
},
|
12 |
+
"dist": {
|
13 |
+
"type": "zip",
|
14 |
+
"url": "https://api.github.com/repos/composer/installers/zipball/ae03311f45dfe194412081526be2e003960df74b",
|
15 |
+
"reference": "ae03311f45dfe194412081526be2e003960df74b",
|
16 |
+
"shasum": ""
|
17 |
},
|
18 |
+
"require": {
|
19 |
+
"composer-plugin-api": "^1.0 || ^2.0"
|
20 |
+
},
|
21 |
+
"replace": {
|
22 |
+
"roundcube/plugin-installer": "*",
|
23 |
+
"shama/baton": "*"
|
24 |
+
},
|
25 |
+
"require-dev": {
|
26 |
+
"composer/composer": "1.6.* || ^2.0",
|
27 |
+
"composer/semver": "^1 || ^3",
|
28 |
+
"phpstan/phpstan": "^0.12.55",
|
29 |
+
"phpstan/phpstan-phpunit": "^0.12.16",
|
30 |
+
"symfony/phpunit-bridge": "^4.2 || ^5",
|
31 |
+
"symfony/process": "^2.3"
|
32 |
+
},
|
33 |
+
"time": "2021-04-28T06:42:17+00:00",
|
34 |
+
"type": "composer-plugin",
|
35 |
+
"extra": {
|
36 |
+
"class": "Composer\\Installers\\Plugin",
|
37 |
+
"branch-alias": {
|
38 |
+
"dev-main": "1.x-dev"
|
39 |
+
}
|
40 |
+
},
|
41 |
+
"installation-source": "dist",
|
42 |
+
"autoload": {
|
43 |
+
"psr-4": {
|
44 |
+
"Composer\\Installers\\": "src/Composer/Installers"
|
45 |
+
}
|
46 |
+
},
|
47 |
+
"notification-url": "https://packagist.org/downloads/",
|
48 |
+
"license": [
|
49 |
+
"MIT"
|
50 |
+
],
|
51 |
+
"authors": [
|
52 |
+
{
|
53 |
+
"name": "Kyle Robinson Young",
|
54 |
+
"email": "kyle@dontkry.com",
|
55 |
+
"homepage": "https://github.com/shama"
|
56 |
+
}
|
57 |
+
],
|
58 |
+
"description": "A multi-framework Composer library installer",
|
59 |
+
"homepage": "https://composer.github.io/installers/",
|
60 |
+
"keywords": [
|
61 |
+
"Craft",
|
62 |
+
"Dolibarr",
|
63 |
+
"Eliasis",
|
64 |
+
"Hurad",
|
65 |
+
"ImageCMS",
|
66 |
+
"Kanboard",
|
67 |
+
"Lan Management System",
|
68 |
+
"MODX Evo",
|
69 |
+
"MantisBT",
|
70 |
+
"Mautic",
|
71 |
+
"Maya",
|
72 |
+
"OXID",
|
73 |
+
"Plentymarkets",
|
74 |
+
"Porto",
|
75 |
+
"RadPHP",
|
76 |
+
"SMF",
|
77 |
+
"Starbug",
|
78 |
+
"Thelia",
|
79 |
+
"Whmcs",
|
80 |
+
"WolfCMS",
|
81 |
+
"agl",
|
82 |
+
"aimeos",
|
83 |
+
"annotatecms",
|
84 |
+
"attogram",
|
85 |
+
"bitrix",
|
86 |
+
"cakephp",
|
87 |
+
"chef",
|
88 |
+
"cockpit",
|
89 |
+
"codeigniter",
|
90 |
+
"concrete5",
|
91 |
+
"croogo",
|
92 |
+
"dokuwiki",
|
93 |
+
"drupal",
|
94 |
+
"eZ Platform",
|
95 |
+
"elgg",
|
96 |
+
"expressionengine",
|
97 |
+
"fuelphp",
|
98 |
+
"grav",
|
99 |
+
"installer",
|
100 |
+
"itop",
|
101 |
+
"joomla",
|
102 |
+
"known",
|
103 |
+
"kohana",
|
104 |
+
"laravel",
|
105 |
+
"lavalite",
|
106 |
+
"lithium",
|
107 |
+
"magento",
|
108 |
+
"majima",
|
109 |
+
"mako",
|
110 |
+
"mediawiki",
|
111 |
+
"miaoxing",
|
112 |
+
"modulework",
|
113 |
+
"modx",
|
114 |
+
"moodle",
|
115 |
+
"osclass",
|
116 |
+
"phpbb",
|
117 |
+
"piwik",
|
118 |
+
"ppi",
|
119 |
+
"processwire",
|
120 |
+
"puppet",
|
121 |
+
"pxcms",
|
122 |
+
"reindex",
|
123 |
+
"roundcube",
|
124 |
+
"shopware",
|
125 |
+
"silverstripe",
|
126 |
+
"sydes",
|
127 |
+
"sylius",
|
128 |
+
"symfony",
|
129 |
+
"tastyigniter",
|
130 |
+
"typo3",
|
131 |
+
"wordpress",
|
132 |
+
"yawik",
|
133 |
+
"zend",
|
134 |
+
"zikula"
|
135 |
+
],
|
136 |
+
"support": {
|
137 |
+
"issues": "https://github.com/composer/installers/issues",
|
138 |
+
"source": "https://github.com/composer/installers/tree/v1.11.0"
|
139 |
+
},
|
140 |
+
"funding": [
|
141 |
+
{
|
142 |
+
"url": "https://packagist.com",
|
143 |
+
"type": "custom"
|
144 |
+
},
|
145 |
+
{
|
146 |
+
"url": "https://github.com/composer",
|
147 |
+
"type": "github"
|
148 |
+
},
|
149 |
+
{
|
150 |
+
"url": "https://tidelift.com/funding/github/packagist/composer/composer",
|
151 |
+
"type": "tidelift"
|
152 |
+
}
|
153 |
+
],
|
154 |
+
"install-path": "./installers"
|
155 |
},
|
156 |
+
{
|
157 |
+
"name": "stripe/stripe-php",
|
158 |
+
"version": "v7.47.0",
|
159 |
+
"version_normalized": "7.47.0.0",
|
160 |
+
"source": {
|
161 |
+
"type": "git",
|
162 |
+
"url": "https://github.com/stripe/stripe-php.git",
|
163 |
+
"reference": "b51656cb398d081fcee53a76f6edb8fd5c1a5306"
|
164 |
+
},
|
165 |
+
"dist": {
|
166 |
+
"type": "zip",
|
167 |
+
"url": "https://api.github.com/repos/stripe/stripe-php/zipball/b51656cb398d081fcee53a76f6edb8fd5c1a5306",
|
168 |
+
"reference": "b51656cb398d081fcee53a76f6edb8fd5c1a5306",
|
169 |
+
"shasum": ""
|
170 |
+
},
|
171 |
+
"require": {
|
172 |
+
"ext-curl": "*",
|
173 |
+
"ext-json": "*",
|
174 |
+
"ext-mbstring": "*",
|
175 |
+
"php": ">=5.6.0"
|
176 |
+
},
|
177 |
+
"require-dev": {
|
178 |
+
"friendsofphp/php-cs-fixer": "2.16.1",
|
179 |
+
"php-coveralls/php-coveralls": "^2.1",
|
180 |
+
"phpunit/phpunit": "^5.7",
|
181 |
+
"squizlabs/php_codesniffer": "^3.3",
|
182 |
+
"symfony/process": "~3.4"
|
183 |
+
},
|
184 |
+
"time": "2020-08-13T22:35:56+00:00",
|
185 |
+
"type": "library",
|
186 |
+
"extra": {
|
187 |
+
"branch-alias": {
|
188 |
+
"dev-master": "2.0-dev"
|
189 |
+
}
|
190 |
+
},
|
191 |
+
"installation-source": "dist",
|
192 |
+
"autoload": {
|
193 |
+
"psr-4": {
|
194 |
+
"Stripe\\": "lib/"
|
195 |
+
}
|
196 |
+
},
|
197 |
+
"notification-url": "https://packagist.org/downloads/",
|
198 |
+
"license": [
|
199 |
+
"MIT"
|
200 |
+
],
|
201 |
+
"authors": [
|
202 |
+
{
|
203 |
+
"name": "Stripe and contributors",
|
204 |
+
"homepage": "https://github.com/stripe/stripe-php/contributors"
|
205 |
+
}
|
206 |
+
],
|
207 |
+
"description": "Stripe PHP Library",
|
208 |
+
"homepage": "https://stripe.com/",
|
209 |
+
"keywords": [
|
210 |
+
"api",
|
211 |
+
"payment processing",
|
212 |
+
"stripe"
|
213 |
+
],
|
214 |
+
"support": {
|
215 |
+
"issues": "https://github.com/stripe/stripe-php/issues",
|
216 |
+
"source": "https://github.com/stripe/stripe-php/tree/v7.47.0"
|
217 |
+
},
|
218 |
+
"install-path": "../stripe/stripe-php"
|
219 |
}
|
220 |
+
],
|
221 |
+
"dev": false,
|
222 |
+
"dev-package-names": []
|
223 |
+
}
|
includes/gateways/stripe/vendor/composer/installed.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
'type' => 'wordpress-plugin',
|
6 |
'install_path' => __DIR__ . '/../../',
|
7 |
'aliases' => array(),
|
8 |
-
'reference' => '
|
9 |
'name' => 'easy-digital-downloads/edd-stripe',
|
10 |
'dev' => false,
|
11 |
),
|
@@ -25,7 +25,7 @@
|
|
25 |
'type' => 'wordpress-plugin',
|
26 |
'install_path' => __DIR__ . '/../../',
|
27 |
'aliases' => array(),
|
28 |
-
'reference' => '
|
29 |
'dev_requirement' => false,
|
30 |
),
|
31 |
'roundcube/plugin-installer' => array(
|
5 |
'type' => 'wordpress-plugin',
|
6 |
'install_path' => __DIR__ . '/../../',
|
7 |
'aliases' => array(),
|
8 |
+
'reference' => 'a624654f272e48561b9fb698336f1e55c230df51',
|
9 |
'name' => 'easy-digital-downloads/edd-stripe',
|
10 |
'dev' => false,
|
11 |
),
|
25 |
'type' => 'wordpress-plugin',
|
26 |
'install_path' => __DIR__ . '/../../',
|
27 |
'aliases' => array(),
|
28 |
+
'reference' => 'a624654f272e48561b9fb698336f1e55c230df51',
|
29 |
'dev_requirement' => false,
|
30 |
),
|
31 |
'roundcube/plugin-installer' => array(
|
includes/payments/class-edd-payment.php
CHANGED
@@ -20,6 +20,43 @@ if( ! defined( 'ABSPATH' ) ) exit;
|
|
20 |
* EDD_Payment Class
|
21 |
*
|
22 |
* @since 2.5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
*/
|
24 |
class EDD_Payment {
|
25 |
|
20 |
* EDD_Payment Class
|
21 |
*
|
22 |
* @since 2.5
|
23 |
+
*
|
24 |
+
* @property int $ID
|
25 |
+
* @property int $_ID
|
26 |
+
* @property bool $new
|
27 |
+
* @property string $number
|
28 |
+
* @property string $mode
|
29 |
+
* @property string $key
|
30 |
+
* @property float $total
|
31 |
+
* @property float $subtotal
|
32 |
+
* @property float $tax
|
33 |
+
* @property float $discounted_amount
|
34 |
+
* @property float $tax_rate
|
35 |
+
* @property array $fees
|
36 |
+
* @property float $fees_total
|
37 |
+
* @property string $discounts
|
38 |
+
* @property string $date
|
39 |
+
* @property string $completed_date
|
40 |
+
* @property string $status
|
41 |
+
* @property string $post_status
|
42 |
+
* @property string $old_status
|
43 |
+
* @property string $status_nicename
|
44 |
+
* @property int $customer_id
|
45 |
+
* @property int $user_id
|
46 |
+
* @property string $first_name
|
47 |
+
* @property string $last_name
|
48 |
+
* @property string $email
|
49 |
+
* @property array $user_info
|
50 |
+
* @property array $payment_meta
|
51 |
+
* @property array $address
|
52 |
+
* @property string $transaction_id
|
53 |
+
* @property array $downloads
|
54 |
+
* @property string $ip
|
55 |
+
* @property string $gateway
|
56 |
+
* @property string $currency
|
57 |
+
* @property array $cart_details
|
58 |
+
* @property bool $has_unlimited_downloads
|
59 |
+
* @property int $parent_payment
|
60 |
*/
|
61 |
class EDD_Payment {
|
62 |
|
includes/payments/functions.php
CHANGED
@@ -714,7 +714,7 @@ function edd_get_payment_status( $payment, $return_label = false ) {
|
|
714 |
} else {
|
715 |
$keys = edd_get_payment_status_keys();
|
716 |
$found_key = array_search( strtolower( $payment->status ), $keys );
|
717 |
-
$status = array_key_exists( $found_key, $keys ) ? $keys[ $found_key ] : false;
|
718 |
}
|
719 |
|
720 |
return ! empty( $status ) ? $status : false;
|
714 |
} else {
|
715 |
$keys = edd_get_payment_status_keys();
|
716 |
$found_key = array_search( strtolower( $payment->status ), $keys );
|
717 |
+
$status = $found_key && array_key_exists( $found_key, $keys ) ? $keys[ $found_key ] : false;
|
718 |
}
|
719 |
|
720 |
return ! empty( $status ) ? $status : false;
|
languages/easy-digital-downloads.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the same license as the Easy Digital Downloads package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Easy Digital Downloads 2.11.
|
6 |
"Report-Msgid-Bugs-To: https://easydigitaldownloads.com/\n"
|
7 |
-
"POT-Creation-Date: 2022-01-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -70,7 +70,7 @@ msgstr ""
|
|
70 |
#: includes/admin/downloads/dashboard-columns.php:171
|
71 |
#: includes/admin/import/class-batch-import-downloads.php:65
|
72 |
#: includes/admin/import/class-batch-import-payments.php:76
|
73 |
-
#: includes/admin/import/class-batch-import.php:
|
74 |
#: includes/admin/payments/actions.php:25
|
75 |
#: includes/admin/payments/actions.php:295
|
76 |
#: includes/admin/payments/actions.php:318
|
@@ -287,67 +287,67 @@ msgstr ""
|
|
287 |
msgid "Generate New API Keys"
|
288 |
msgstr ""
|
289 |
|
290 |
-
#: includes/admin/class-edd-notices.php:
|
291 |
msgid ""
|
292 |
"No checkout page has been configured. Visit <a href=\"%s\">Settings</a> to "
|
293 |
"set one."
|
294 |
msgstr ""
|
295 |
|
296 |
-
#: includes/admin/class-edd-notices.php:
|
297 |
-
#: includes/admin/class-edd-notices.php:
|
298 |
-
#: includes/admin/class-edd-notices.php:
|
299 |
#: includes/gateways/paypal/admin/notices.php:58
|
300 |
msgid "Dismiss Notice"
|
301 |
msgstr ""
|
302 |
|
303 |
-
#: includes/admin/class-edd-notices.php:
|
304 |
msgid ""
|
305 |
"Note: Test Mode is enabled. While in test mode no live transactions are "
|
306 |
"processed. <a href=\"%s\">Settings</a>."
|
307 |
msgstr ""
|
308 |
|
309 |
-
#: includes/admin/class-edd-notices.php:
|
310 |
msgid ""
|
311 |
"The download files in %s are not currently protected due to your site "
|
312 |
"running on NGINX."
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: includes/admin/class-edd-notices.php:
|
316 |
msgid ""
|
317 |
"To protect them, you must add a redirect rule as explained in <a "
|
318 |
"href=\"http://docs.easydigitaldownloads.com/article/682-protected-download-"
|
319 |
"files-on-nginx\">this guide</a>."
|
320 |
msgstr ""
|
321 |
|
322 |
-
#: includes/admin/class-edd-notices.php:
|
323 |
msgid ""
|
324 |
"If you have already added the redirect rule, you may safely dismiss this "
|
325 |
"notice"
|
326 |
msgstr ""
|
327 |
|
328 |
-
#: includes/admin/class-edd-notices.php:
|
329 |
msgid "The Easy Digital Downloads .htaccess file is missing from %s!"
|
330 |
msgstr ""
|
331 |
|
332 |
-
#: includes/admin/class-edd-notices.php:
|
333 |
msgid ""
|
334 |
"First, please resave the Misc settings tab a few times. If this warning "
|
335 |
"continues to appear, create a file called \".htaccess\" in the %s "
|
336 |
"directory, and copy the following into it:"
|
337 |
msgstr ""
|
338 |
|
339 |
-
#: includes/admin/class-edd-notices.php:
|
340 |
msgid ""
|
341 |
"Easy Digital Downloads 2.5 contains a <a href=\"%s\">built in recount "
|
342 |
"tool</a>. Please <a href=\"%s\">deactivate the Easy Digital Downloads - "
|
343 |
"Recount Earnings plugin</a>"
|
344 |
msgstr ""
|
345 |
|
346 |
-
#: includes/admin/class-edd-notices.php:
|
347 |
msgid "Upgrade PHP to Prepare for Easy Digital Downloads 3.0"
|
348 |
msgstr ""
|
349 |
|
350 |
-
#: includes/admin/class-edd-notices.php:
|
351 |
#. translators: %1$s Opening paragraph tag, do not translate. %2$s
|
352 |
#. Current PHP version %3$s Opening strong tag, do not translate.
|
353 |
#. %4$s Closing strong tag, do not translate. %5$s Opening anchor
|
@@ -362,7 +362,7 @@ msgid ""
|
|
362 |
"more about updating PHP.%6$s%7$s"
|
363 |
msgstr ""
|
364 |
|
365 |
-
#: includes/admin/class-edd-notices.php:
|
366 |
#. translators: %1$s Opening paragraph tag, do not translate. %2$s
|
367 |
#. Opening anchor tag, do not translate. %3$s Closing anchor tag, do not
|
368 |
#. translate. %4$s Closing paragraph tag, do not translate.
|
@@ -373,128 +373,162 @@ msgid ""
|
|
373 |
"recommendations%3$s."
|
374 |
msgstr ""
|
375 |
|
376 |
-
#: includes/admin/class-edd-notices.php:
|
377 |
#. Translators: %1$s - Opening anchor tag, %2$s - The url to dismiss the ajax
|
378 |
#. notice, %3$s - Complete the opening of the anchor tag, %4$s - Open span tag,
|
379 |
#. %4$s - Close span tag
|
380 |
msgid "%1$s%2$s%3$s %4$s Dismiss this notice. %5$s"
|
381 |
msgstr ""
|
382 |
|
383 |
-
#: includes/admin/class-edd-notices.php:
|
384 |
msgid "Discount code added."
|
385 |
msgstr ""
|
386 |
|
387 |
-
#: includes/admin/class-edd-notices.php:
|
388 |
msgid "There was a problem adding your discount code, please try again."
|
389 |
msgstr ""
|
390 |
|
391 |
-
#: includes/admin/class-edd-notices.php:
|
392 |
msgid "A discount with that code already exists, please use a different code."
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: includes/admin/class-edd-notices.php:
|
396 |
#: includes/admin/discounts/edit-discount.php:33
|
397 |
msgid "Discount code updated."
|
398 |
msgstr ""
|
399 |
|
400 |
-
#: includes/admin/class-edd-notices.php:
|
401 |
msgid "There was a problem updating your discount code, please try again."
|
402 |
msgstr ""
|
403 |
|
404 |
-
#: includes/admin/class-edd-notices.php:
|
405 |
msgid ""
|
406 |
"The discount code could not be added because one or more of the required "
|
407 |
"fields was empty, please try again."
|
408 |
msgstr ""
|
409 |
|
410 |
-
#: includes/admin/class-edd-notices.php:
|
411 |
msgid ""
|
412 |
"The discount code entered is invalid; only alphanumeric characters are "
|
413 |
"allowed, please try again."
|
414 |
msgstr ""
|
415 |
|
416 |
-
#: includes/admin/class-edd-notices.php:
|
417 |
msgid ""
|
418 |
"The discount amount must be a valid percentage or numeric flat amount. "
|
419 |
"Please try again."
|
420 |
msgstr ""
|
421 |
|
422 |
-
#: includes/admin/class-edd-notices.php:
|
423 |
msgid "The payment has been deleted."
|
424 |
msgstr ""
|
425 |
|
426 |
-
#: includes/admin/class-edd-notices.php:
|
427 |
msgid "The purchase receipt has been resent."
|
428 |
msgstr ""
|
429 |
|
430 |
-
#: includes/admin/class-edd-notices.php:
|
431 |
msgid "Failed to send purchase receipt."
|
432 |
msgstr ""
|
433 |
|
434 |
-
#: includes/admin/class-edd-notices.php:
|
435 |
msgid "The reports have been refreshed."
|
436 |
msgstr ""
|
437 |
|
438 |
-
#: includes/admin/class-edd-notices.php:
|
439 |
msgid "The payment note has been deleted."
|
440 |
msgstr ""
|
441 |
|
442 |
-
#: includes/admin/class-edd-notices.php:
|
443 |
msgid "The settings have been imported."
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: includes/admin/class-edd-notices.php:
|
447 |
msgid "API keys successfully generated."
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: includes/admin/class-edd-notices.php:
|
451 |
msgid "The specified user already has API keys."
|
452 |
msgstr ""
|
453 |
|
454 |
-
#: includes/admin/class-edd-notices.php:
|
455 |
msgid "API keys successfully regenerated."
|
456 |
msgstr ""
|
457 |
|
458 |
-
#: includes/admin/class-edd-notices.php:
|
459 |
msgid "API keys successfully revoked."
|
460 |
msgstr ""
|
461 |
|
462 |
-
#: includes/admin/class-edd-notices.php:
|
463 |
msgid "The payment note has been added successfully."
|
464 |
msgstr ""
|
465 |
|
466 |
-
#: includes/admin/class-edd-notices.php:
|
467 |
msgid "The payment has been successfully updated."
|
468 |
msgstr ""
|
469 |
|
470 |
-
#: includes/admin/class-edd-notices.php:
|
471 |
msgid "Customer successfully deleted"
|
472 |
msgstr ""
|
473 |
|
474 |
-
#: includes/admin/class-edd-notices.php:
|
475 |
msgid "User successfully verified"
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: includes/admin/class-edd-notices.php:
|
479 |
msgid "Customer email added"
|
480 |
msgstr ""
|
481 |
|
482 |
-
#: includes/admin/class-edd-notices.php:
|
483 |
msgid "Customer email removed"
|
484 |
msgstr ""
|
485 |
|
486 |
-
#: includes/admin/class-edd-notices.php:
|
487 |
msgid "Failed to remove customer email"
|
488 |
msgstr ""
|
489 |
|
490 |
-
#: includes/admin/class-edd-notices.php:
|
491 |
msgid "Primary email updated for customer"
|
492 |
msgstr ""
|
493 |
|
494 |
-
#: includes/admin/class-edd-notices.php:
|
495 |
msgid "Failed to set primary email"
|
496 |
msgstr ""
|
497 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
498 |
#: includes/admin/customers/class-customer-table.php:72
|
499 |
#: includes/admin/payments/class-payments-table.php:274
|
500 |
#: includes/admin/reporting/class-file-downloads-logs-list-table.php:153
|
@@ -834,10 +868,10 @@ msgid "Make Primary"
|
|
834 |
msgstr ""
|
835 |
|
836 |
#: includes/admin/customers/customers.php:406
|
837 |
-
#: includes/admin/downloads/metabox.php:
|
838 |
-
#: includes/admin/downloads/metabox.php:
|
839 |
-
#: includes/admin/downloads/metabox.php:
|
840 |
-
#: includes/admin/downloads/metabox.php:
|
841 |
#: includes/admin/payments/view-order-details.php:523
|
842 |
#: includes/admin/settings/register-settings.php:2231 includes/scripts.php:227
|
843 |
#: templates/checkout_cart.php:57 templates/checkout_cart.php:75
|
@@ -929,7 +963,7 @@ msgid "Purchased %s"
|
|
929 |
msgstr ""
|
930 |
|
931 |
#: includes/admin/customers/customers.php:486
|
932 |
-
#: includes/admin/extensions/abstract-extension.php:
|
933 |
#. translators: the plural Downloads label.
|
934 |
msgid "View %s"
|
935 |
msgstr ""
|
@@ -1274,13 +1308,13 @@ msgstr ""
|
|
1274 |
|
1275 |
#: includes/admin/discounts/class-discount-codes-table.php:126
|
1276 |
#: includes/admin/discounts/edit-discount.php:188
|
1277 |
-
#: includes/class-edd-discount.php:
|
1278 |
msgid "Active"
|
1279 |
msgstr ""
|
1280 |
|
1281 |
#: includes/admin/discounts/class-discount-codes-table.php:127
|
1282 |
#: includes/admin/discounts/edit-discount.php:189
|
1283 |
-
#: includes/class-edd-discount.php:
|
1284 |
msgid "Inactive"
|
1285 |
msgstr ""
|
1286 |
|
@@ -1632,7 +1666,7 @@ msgstr ""
|
|
1632 |
|
1633 |
#: includes/admin/downloads/dashboard-columns.php:34
|
1634 |
#: includes/admin/downloads/dashboard-columns.php:286
|
1635 |
-
#: includes/admin/downloads/metabox.php:
|
1636 |
#: includes/admin/payments/view-order-details.php:543
|
1637 |
#: includes/admin/reporting/export/class-batch-export-downloads.php:51
|
1638 |
#: templates/shortcode-receipt.php:130
|
@@ -1672,193 +1706,193 @@ msgstr ""
|
|
1672 |
msgid "%1$s Stats"
|
1673 |
msgstr ""
|
1674 |
|
1675 |
-
#: includes/admin/downloads/metabox.php:
|
1676 |
msgid "Pricing Options:"
|
1677 |
msgstr ""
|
1678 |
|
1679 |
-
#: includes/admin/downloads/metabox.php:
|
1680 |
msgid "Enable variable pricing"
|
1681 |
msgstr ""
|
1682 |
|
1683 |
-
#: includes/admin/downloads/metabox.php:
|
1684 |
msgid ""
|
1685 |
"Enable multi-option purchase mode. Allows multiple price options to be "
|
1686 |
"added to your cart at once"
|
1687 |
msgstr ""
|
1688 |
|
1689 |
-
#: includes/admin/downloads/metabox.php:
|
1690 |
msgid "Add New Price"
|
1691 |
msgstr ""
|
1692 |
|
1693 |
-
#: includes/admin/downloads/metabox.php:
|
1694 |
msgid "Click and drag to re-order price options"
|
1695 |
msgstr ""
|
1696 |
|
1697 |
-
#: includes/admin/downloads/metabox.php:
|
1698 |
msgid "Price ID: %s"
|
1699 |
msgstr ""
|
1700 |
|
1701 |
-
#: includes/admin/downloads/metabox.php:
|
1702 |
msgid "Show advanced settings"
|
1703 |
msgstr ""
|
1704 |
|
1705 |
-
#: includes/admin/downloads/metabox.php:
|
1706 |
msgid "Remove price option %s"
|
1707 |
msgstr ""
|
1708 |
|
1709 |
-
#: includes/admin/downloads/metabox.php:
|
1710 |
-
#: includes/admin/downloads/metabox.php:
|
1711 |
msgid "Option Name"
|
1712 |
msgstr ""
|
1713 |
|
1714 |
-
#: includes/admin/downloads/metabox.php:
|
1715 |
#: includes/gateways/stripe/includes/template-functions.php:404
|
1716 |
msgid "Default"
|
1717 |
msgstr ""
|
1718 |
|
1719 |
-
#: includes/admin/downloads/metabox.php:
|
1720 |
msgid "Set ID %s as default price"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
-
#: includes/admin/downloads/metabox.php:
|
1724 |
msgid "Product Type Options:"
|
1725 |
msgstr ""
|
1726 |
|
1727 |
-
#: includes/admin/downloads/metabox.php:
|
1728 |
msgid "Select a product type"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
-
#: includes/admin/downloads/metabox.php:
|
1732 |
msgid ""
|
1733 |
"<strong>Product Type</strong>: Sell this item as a single product, or use "
|
1734 |
"the Bundle type to sell a collection of products."
|
1735 |
msgstr ""
|
1736 |
|
1737 |
-
#: includes/admin/downloads/metabox.php:
|
1738 |
msgid "Bundled %s"
|
1739 |
msgstr ""
|
1740 |
|
1741 |
-
#: includes/admin/downloads/metabox.php:
|
1742 |
-
#: includes/admin/downloads/metabox.php:
|
1743 |
msgid "Click and drag to re-order bundled %s"
|
1744 |
msgstr ""
|
1745 |
|
1746 |
-
#: includes/admin/downloads/metabox.php:
|
1747 |
-
#: includes/admin/downloads/metabox.php:
|
1748 |
msgid "Select %s:"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
-
#: includes/admin/downloads/metabox.php:
|
1752 |
-
#: includes/admin/downloads/metabox.php:
|
1753 |
msgid "Price assignment:"
|
1754 |
msgstr ""
|
1755 |
|
1756 |
-
#: includes/admin/downloads/metabox.php:
|
1757 |
msgid "Remove bundle option %s"
|
1758 |
msgstr ""
|
1759 |
|
1760 |
-
#: includes/admin/downloads/metabox.php:
|
1761 |
msgid "Bundled %s:"
|
1762 |
msgstr ""
|
1763 |
|
1764 |
-
#: includes/admin/downloads/metabox.php:
|
1765 |
msgid "Remove bundle option 1"
|
1766 |
msgstr ""
|
1767 |
|
1768 |
-
#: includes/admin/downloads/metabox.php:
|
1769 |
-
#: includes/admin/downloads/metabox.php:
|
1770 |
msgid "Add New File"
|
1771 |
msgstr ""
|
1772 |
|
1773 |
-
#: includes/admin/downloads/metabox.php:
|
1774 |
msgid "Click and drag to re-order files"
|
1775 |
msgstr ""
|
1776 |
|
1777 |
-
#: includes/admin/downloads/metabox.php:
|
1778 |
msgid "%1$s file ID: %2$s"
|
1779 |
msgstr ""
|
1780 |
|
1781 |
-
#: includes/admin/downloads/metabox.php:
|
1782 |
msgid "Remove file %s"
|
1783 |
msgstr ""
|
1784 |
|
1785 |
-
#: includes/admin/downloads/metabox.php:
|
1786 |
-
#: includes/admin/downloads/metabox.php:
|
1787 |
msgid "File Name"
|
1788 |
msgstr ""
|
1789 |
|
1790 |
-
#: includes/admin/downloads/metabox.php:
|
1791 |
msgid "File URL"
|
1792 |
msgstr ""
|
1793 |
|
1794 |
-
#: includes/admin/downloads/metabox.php:
|
1795 |
msgid "Upload or enter the file URL"
|
1796 |
msgstr ""
|
1797 |
|
1798 |
-
#: includes/admin/downloads/metabox.php:
|
1799 |
msgid "Insert File"
|
1800 |
msgstr ""
|
1801 |
|
1802 |
-
#: includes/admin/downloads/metabox.php:
|
1803 |
msgid "Insert"
|
1804 |
msgstr ""
|
1805 |
|
1806 |
-
#: includes/admin/downloads/metabox.php:
|
1807 |
msgid "Upload a File"
|
1808 |
msgstr ""
|
1809 |
|
1810 |
-
#: includes/admin/downloads/metabox.php:
|
1811 |
msgid "Price Assignment"
|
1812 |
msgstr ""
|
1813 |
|
1814 |
-
#: includes/admin/downloads/metabox.php:
|
1815 |
msgid ""
|
1816 |
"<strong>Price Assignment</strong>: With variable pricing enabled, you can "
|
1817 |
"choose to allow certain price variations access to specific files, or allow "
|
1818 |
"all price variations to access a file."
|
1819 |
msgstr ""
|
1820 |
|
1821 |
-
#: includes/admin/downloads/metabox.php:
|
1822 |
msgid "Insert into %s"
|
1823 |
msgstr ""
|
1824 |
|
1825 |
-
#: includes/admin/downloads/metabox.php:
|
1826 |
msgid "File Download Limit:"
|
1827 |
msgstr ""
|
1828 |
|
1829 |
-
#: includes/admin/downloads/metabox.php:
|
1830 |
msgid "Leave blank for global setting or 0 for unlimited"
|
1831 |
msgstr ""
|
1832 |
|
1833 |
-
#: includes/admin/downloads/metabox.php:
|
1834 |
msgid ""
|
1835 |
"<strong>File Download Limit</strong>: Limit the number of times a customer "
|
1836 |
"who purchased this product can access their download links."
|
1837 |
msgstr ""
|
1838 |
|
1839 |
-
#: includes/admin/downloads/metabox.php:
|
1840 |
msgid "Ignore Tax:"
|
1841 |
msgstr ""
|
1842 |
|
1843 |
-
#: includes/admin/downloads/metabox.php:
|
1844 |
msgid "Mark this product as exclusive of tax"
|
1845 |
msgstr ""
|
1846 |
|
1847 |
-
#: includes/admin/downloads/metabox.php:
|
1848 |
msgid "Item Quantities:"
|
1849 |
msgstr ""
|
1850 |
|
1851 |
-
#: includes/admin/downloads/metabox.php:
|
1852 |
msgid "Disable quantity input for this product"
|
1853 |
msgstr ""
|
1854 |
|
1855 |
-
#: includes/admin/downloads/metabox.php:
|
1856 |
msgid ""
|
1857 |
"<strong>Item Quantities</strong>: if disabled, customers will not be "
|
1858 |
"provided an option to change the number they wish to purchase."
|
1859 |
msgstr ""
|
1860 |
|
1861 |
-
#: includes/admin/downloads/metabox.php:
|
1862 |
#: includes/admin/settings/register-settings.php:799
|
1863 |
#: includes/admin/thickbox.php:59 includes/checkout/template.php:1005
|
1864 |
#: includes/gateways/stripe/includes/payment-methods/buy-now/template.php:214
|
@@ -1866,33 +1900,33 @@ msgstr ""
|
|
1866 |
msgid "Purchase"
|
1867 |
msgstr ""
|
1868 |
|
1869 |
-
#: includes/admin/downloads/metabox.php:
|
1870 |
msgid "Purchase Shortcode:"
|
1871 |
msgstr ""
|
1872 |
|
1873 |
-
#: includes/admin/downloads/metabox.php:
|
1874 |
msgid ""
|
1875 |
"<strong>Purchase Shortcode</strong>: Use this shortcode to output a "
|
1876 |
"purchase link for this product in the location of your choosing."
|
1877 |
msgstr ""
|
1878 |
|
1879 |
-
#: includes/admin/downloads/metabox.php:
|
1880 |
msgid "Accounting Options:"
|
1881 |
msgstr ""
|
1882 |
|
1883 |
-
#: includes/admin/downloads/metabox.php:
|
1884 |
msgid "Enter an SKU for this %s."
|
1885 |
msgstr ""
|
1886 |
|
1887 |
-
#: includes/admin/downloads/metabox.php:
|
1888 |
msgid "Button Options:"
|
1889 |
msgstr ""
|
1890 |
|
1891 |
-
#: includes/admin/downloads/metabox.php:
|
1892 |
msgid "Disable the automatic output of the purchase button"
|
1893 |
msgstr ""
|
1894 |
|
1895 |
-
#: includes/admin/downloads/metabox.php:
|
1896 |
msgid ""
|
1897 |
"<strong>Automatic Output</strong>: By default, the purchase buttons will be "
|
1898 |
"displayed at the bottom of the download, when disabled you will need to use "
|
@@ -1900,24 +1934,24 @@ msgid ""
|
|
1900 |
"where you prefer."
|
1901 |
msgstr ""
|
1902 |
|
1903 |
-
#: includes/admin/downloads/metabox.php:
|
1904 |
#: includes/admin/settings/register-settings.php:813
|
1905 |
#: includes/admin/thickbox.php:101
|
1906 |
msgid "Add to Cart"
|
1907 |
msgstr ""
|
1908 |
|
1909 |
-
#: includes/admin/downloads/metabox.php:
|
1910 |
#: includes/admin/settings/register-settings.php:827
|
1911 |
#: includes/gateways/stripe/includes/payment-methods/buy-now/template.php:47
|
1912 |
#: includes/shortcodes.php:47 includes/template-functions.php:78
|
1913 |
msgid "Buy Now"
|
1914 |
msgstr ""
|
1915 |
|
1916 |
-
#: includes/admin/downloads/metabox.php:
|
1917 |
msgid "Purchase button behavior"
|
1918 |
msgstr ""
|
1919 |
|
1920 |
-
#: includes/admin/downloads/metabox.php:
|
1921 |
msgid ""
|
1922 |
"<strong>Button Behavior</strong>: Add to Cart buttons follow a traditional "
|
1923 |
"eCommerce flow. A Buy Now button bypasses most of the process, taking the "
|
@@ -1925,32 +1959,32 @@ msgid ""
|
|
1925 |
"process of buying the product."
|
1926 |
msgstr ""
|
1927 |
|
1928 |
-
#: includes/admin/downloads/metabox.php:
|
1929 |
msgid ""
|
1930 |
"<strong>Button Behavior</strong>: Add to Cart buttons follow a traditional "
|
1931 |
"eCommerce flow. Buy Now buttons are only available for stores that have a "
|
1932 |
"single supported gateway active and that do not use taxes."
|
1933 |
msgstr ""
|
1934 |
|
1935 |
-
#: includes/admin/downloads/metabox.php:
|
1936 |
msgid ""
|
1937 |
"Special notes or instructions for this product. These notes will be added "
|
1938 |
"to the purchase receipt."
|
1939 |
msgstr ""
|
1940 |
|
1941 |
-
#: includes/admin/downloads/metabox.php:
|
1942 |
msgid "Sales:"
|
1943 |
msgstr ""
|
1944 |
|
1945 |
-
#: includes/admin/downloads/metabox.php:
|
1946 |
msgid "Earnings:"
|
1947 |
msgstr ""
|
1948 |
|
1949 |
-
#: includes/admin/downloads/metabox.php:
|
1950 |
msgid "View File Download Log"
|
1951 |
msgstr ""
|
1952 |
|
1953 |
-
#: includes/admin/downloads/metabox.php:
|
1954 |
#. Translators: The %s represents the link to the pricing page on the Easy
|
1955 |
#. Digital Downloads website.
|
1956 |
msgid ""
|
@@ -1959,22 +1993,22 @@ msgid ""
|
|
1959 |
"6th CST. <a target=\"_blank\" href=\"%s\">Don't miss out</a>!"
|
1960 |
msgstr ""
|
1961 |
|
1962 |
-
#: includes/admin/extensions/abstract-extension.php:
|
1963 |
#. translators: The extension name.
|
1964 |
msgid "Log In to Your Account to Download %s"
|
1965 |
msgstr ""
|
1966 |
|
1967 |
-
#: includes/admin/extensions/abstract-extension.php:
|
1968 |
#. translators: The extension name.
|
1969 |
msgid "Upgrade Today to Access %s!"
|
1970 |
msgstr ""
|
1971 |
|
1972 |
-
#: includes/admin/extensions/abstract-extension.php:
|
1973 |
#. translators: The extension name.
|
1974 |
msgid "Activate %s"
|
1975 |
msgstr ""
|
1976 |
|
1977 |
-
#: includes/admin/extensions/abstract-extension.php:
|
1978 |
#. translators: The extension name.
|
1979 |
msgid "Configure %s"
|
1980 |
msgstr ""
|
@@ -2041,34 +2075,34 @@ msgstr ""
|
|
2041 |
msgid "Extension installed & activated."
|
2042 |
msgstr ""
|
2043 |
|
2044 |
-
#: includes/admin/extensions/product-education/class-email-marketing.php:
|
2045 |
msgid "Email Marketing"
|
2046 |
msgstr ""
|
2047 |
|
2048 |
-
#: includes/admin/extensions/product-education/class-email-marketing.php:
|
2049 |
#. translators: the product name
|
2050 |
msgid "Get %s Today!"
|
2051 |
msgstr ""
|
2052 |
|
2053 |
-
#: includes/admin/extensions/product-education/class-email-marketing.php:
|
2054 |
msgid ""
|
2055 |
"Looks like you have an email marketing extension installed, but we support "
|
2056 |
"more providers!"
|
2057 |
msgstr ""
|
2058 |
|
2059 |
-
#: includes/admin/extensions/product-education/class-invoices.php:
|
2060 |
msgid "Invoices"
|
2061 |
msgstr ""
|
2062 |
|
2063 |
-
#: includes/admin/extensions/product-education/class-recurring.php:
|
2064 |
msgid "Recurring Payments"
|
2065 |
msgstr ""
|
2066 |
|
2067 |
-
#: includes/admin/extensions/product-education/class-reviews.php:
|
2068 |
msgid "Reviews"
|
2069 |
msgstr ""
|
2070 |
|
2071 |
-
#: includes/admin/extensions/product-education/class-reviews.php:
|
2072 |
msgid "Product Reviews"
|
2073 |
msgstr ""
|
2074 |
|
@@ -2100,7 +2134,7 @@ msgstr ""
|
|
2100 |
|
2101 |
#: includes/admin/import/class-batch-import-downloads.php:65
|
2102 |
#: includes/admin/import/class-batch-import-payments.php:76
|
2103 |
-
#: includes/admin/import/class-batch-import.php:
|
2104 |
msgid "You do not have permission to import data."
|
2105 |
msgstr ""
|
2106 |
|
@@ -2109,7 +2143,7 @@ msgstr ""
|
|
2109 |
msgid "Products (Raw)"
|
2110 |
msgstr ""
|
2111 |
|
2112 |
-
#: includes/admin/import/class-batch-import-payments.php:
|
2113 |
msgid "payments"
|
2114 |
msgstr ""
|
2115 |
|
@@ -2688,21 +2722,6 @@ msgstr ""
|
|
2688 |
msgid "Missing notice ID."
|
2689 |
msgstr ""
|
2690 |
|
2691 |
-
#: includes/admin/promos/class-promo-handler.php:116
|
2692 |
-
#: includes/admin/promos/class-promo-handler.php:123
|
2693 |
-
#: includes/admin/promos/class-promo-handler.php:128
|
2694 |
-
#: includes/gateways/paypal/admin/connect.php:106
|
2695 |
-
#: includes/gateways/paypal/admin/connect.php:182
|
2696 |
-
#: includes/gateways/paypal/admin/connect.php:292
|
2697 |
-
#: includes/gateways/paypal/admin/connect.php:455
|
2698 |
-
#: includes/gateways/paypal/admin/connect.php:459
|
2699 |
-
#: includes/gateways/paypal/admin/connect.php:511
|
2700 |
-
#: includes/gateways/paypal/admin/connect.php:545
|
2701 |
-
#: includes/gateways/paypal/admin/connect.php:568
|
2702 |
-
#: includes/gateways/paypal/admin/connect.php:597
|
2703 |
-
msgid "You do not have permission to perform this action."
|
2704 |
-
msgstr ""
|
2705 |
-
|
2706 |
#: includes/admin/promos/notices/abstract-notice.php:113
|
2707 |
msgid "Dismiss notice"
|
2708 |
msgstr ""
|
@@ -5698,7 +5717,7 @@ msgid "Cart restored successfully."
|
|
5698 |
msgstr ""
|
5699 |
|
5700 |
#: includes/cart/template.php:120
|
5701 |
-
#: includes/gateways/stripe/includes/compat.php:
|
5702 |
msgid "Your cart is empty."
|
5703 |
msgstr ""
|
5704 |
|
@@ -6313,41 +6332,41 @@ msgstr ""
|
|
6313 |
msgid "Once Weekly"
|
6314 |
msgstr ""
|
6315 |
|
6316 |
-
#: includes/class-edd-customer.php:201 includes/class-edd-discount.php:
|
6317 |
#: includes/class-edd-download.php:196
|
6318 |
msgid "Can't get property %s"
|
6319 |
msgstr ""
|
6320 |
|
6321 |
-
#: includes/class-edd-discount.php:
|
6322 |
#: includes/gateways/stripe/includes/template-functions.php:326
|
6323 |
msgid "Expired"
|
6324 |
msgstr ""
|
6325 |
|
6326 |
-
#: includes/class-edd-discount.php:
|
6327 |
msgid "This discount has reached its maximum usage."
|
6328 |
msgstr ""
|
6329 |
|
6330 |
-
#: includes/class-edd-discount.php:
|
6331 |
msgid "Minimum order of %s not met."
|
6332 |
msgstr ""
|
6333 |
|
6334 |
-
#: includes/class-edd-discount.php:
|
6335 |
msgid "The product requirements for this discount are not met."
|
6336 |
msgstr ""
|
6337 |
|
6338 |
-
#: includes/class-edd-discount.php:
|
6339 |
msgid "This discount is not valid for the cart contents."
|
6340 |
msgstr ""
|
6341 |
|
6342 |
-
#: includes/class-edd-discount.php:
|
6343 |
msgid "This discount has already been redeemed."
|
6344 |
msgstr ""
|
6345 |
|
6346 |
-
#: includes/class-edd-discount.php:
|
6347 |
msgid "This discount is expired."
|
6348 |
msgstr ""
|
6349 |
|
6350 |
-
#: includes/class-edd-discount.php:
|
6351 |
msgid "This discount is not active."
|
6352 |
msgstr ""
|
6353 |
|
@@ -8462,7 +8481,7 @@ msgstr ""
|
|
8462 |
msgid "The user information is invalid"
|
8463 |
msgstr ""
|
8464 |
|
8465 |
-
#: includes/gateways/stripe/includes/compat.php:
|
8466 |
#: includes/process-purchase.php:44
|
8467 |
msgid ""
|
8468 |
"Missing nonce when processing checkout. Please read the following for more "
|
@@ -8471,7 +8490,7 @@ msgid ""
|
|
8471 |
"ajax-requests-in-easy-digital-downloads-2-9-4"
|
8472 |
msgstr ""
|
8473 |
|
8474 |
-
#: includes/gateways/stripe/includes/compat.php:
|
8475 |
#: includes/process-purchase.php:51
|
8476 |
msgid "Error processing purchase. Please reload the page and try again."
|
8477 |
msgstr ""
|
@@ -10505,12 +10524,12 @@ msgctxt "Apply discount at checkout"
|
|
10505 |
msgid "Apply"
|
10506 |
msgstr ""
|
10507 |
|
10508 |
-
#: includes/class-edd-discount.php:
|
10509 |
msgctxt "error shown when attempting to use a discount before its start date"
|
10510 |
msgid "This discount is invalid."
|
10511 |
msgstr ""
|
10512 |
|
10513 |
-
#: includes/class-edd-discount.php:
|
10514 |
msgctxt "error for when a discount is invalid based on its configuration"
|
10515 |
msgid "This discount is invalid."
|
10516 |
msgstr ""
|
2 |
# This file is distributed under the same license as the Easy Digital Downloads package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Easy Digital Downloads 2.11.5\n"
|
6 |
"Report-Msgid-Bugs-To: https://easydigitaldownloads.com/\n"
|
7 |
+
"POT-Creation-Date: 2022-01-27 12:49:30+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
70 |
#: includes/admin/downloads/dashboard-columns.php:171
|
71 |
#: includes/admin/import/class-batch-import-downloads.php:65
|
72 |
#: includes/admin/import/class-batch-import-payments.php:76
|
73 |
+
#: includes/admin/import/class-batch-import.php:188
|
74 |
#: includes/admin/payments/actions.php:25
|
75 |
#: includes/admin/payments/actions.php:295
|
76 |
#: includes/admin/payments/actions.php:318
|
287 |
msgid "Generate New API Keys"
|
288 |
msgstr ""
|
289 |
|
290 |
+
#: includes/admin/class-edd-notices.php:49 includes/template-functions.php:61
|
291 |
msgid ""
|
292 |
"No checkout page has been configured. Visit <a href=\"%s\">Settings</a> to "
|
293 |
"set one."
|
294 |
msgstr ""
|
295 |
|
296 |
+
#: includes/admin/class-edd-notices.php:50
|
297 |
+
#: includes/admin/class-edd-notices.php:71
|
298 |
+
#: includes/admin/class-edd-notices.php:88
|
299 |
#: includes/gateways/paypal/admin/notices.php:58
|
300 |
msgid "Dismiss Notice"
|
301 |
msgstr ""
|
302 |
|
303 |
+
#: includes/admin/class-edd-notices.php:57
|
304 |
msgid ""
|
305 |
"Note: Test Mode is enabled. While in test mode no live transactions are "
|
306 |
"processed. <a href=\"%s\">Settings</a>."
|
307 |
msgstr ""
|
308 |
|
309 |
+
#: includes/admin/class-edd-notices.php:68
|
310 |
msgid ""
|
311 |
"The download files in %s are not currently protected due to your site "
|
312 |
"running on NGINX."
|
313 |
msgstr ""
|
314 |
|
315 |
+
#: includes/admin/class-edd-notices.php:69
|
316 |
msgid ""
|
317 |
"To protect them, you must add a redirect rule as explained in <a "
|
318 |
"href=\"http://docs.easydigitaldownloads.com/article/682-protected-download-"
|
319 |
"files-on-nginx\">this guide</a>."
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: includes/admin/class-edd-notices.php:70
|
323 |
msgid ""
|
324 |
"If you have already added the redirect rule, you may safely dismiss this "
|
325 |
"notice"
|
326 |
msgstr ""
|
327 |
|
328 |
+
#: includes/admin/class-edd-notices.php:85
|
329 |
msgid "The Easy Digital Downloads .htaccess file is missing from %s!"
|
330 |
msgstr ""
|
331 |
|
332 |
+
#: includes/admin/class-edd-notices.php:86
|
333 |
msgid ""
|
334 |
"First, please resave the Misc settings tab a few times. If this warning "
|
335 |
"continues to appear, create a file called \".htaccess\" in the %s "
|
336 |
"directory, and copy the following into it:"
|
337 |
msgstr ""
|
338 |
|
339 |
+
#: includes/admin/class-edd-notices.php:100
|
340 |
msgid ""
|
341 |
"Easy Digital Downloads 2.5 contains a <a href=\"%s\">built in recount "
|
342 |
"tool</a>. Please <a href=\"%s\">deactivate the Easy Digital Downloads - "
|
343 |
"Recount Earnings plugin</a>"
|
344 |
msgstr ""
|
345 |
|
346 |
+
#: includes/admin/class-edd-notices.php:115
|
347 |
msgid "Upgrade PHP to Prepare for Easy Digital Downloads 3.0"
|
348 |
msgstr ""
|
349 |
|
350 |
+
#: includes/admin/class-edd-notices.php:128
|
351 |
#. translators: %1$s Opening paragraph tag, do not translate. %2$s
|
352 |
#. Current PHP version %3$s Opening strong tag, do not translate.
|
353 |
#. %4$s Closing strong tag, do not translate. %5$s Opening anchor
|
362 |
"more about updating PHP.%6$s%7$s"
|
363 |
msgstr ""
|
364 |
|
365 |
+
#: includes/admin/class-edd-notices.php:146
|
366 |
#. translators: %1$s Opening paragraph tag, do not translate. %2$s
|
367 |
#. Opening anchor tag, do not translate. %3$s Closing anchor tag, do not
|
368 |
#. translate. %4$s Closing paragraph tag, do not translate.
|
373 |
"recommendations%3$s."
|
374 |
msgstr ""
|
375 |
|
376 |
+
#: includes/admin/class-edd-notices.php:156
|
377 |
#. Translators: %1$s - Opening anchor tag, %2$s - The url to dismiss the ajax
|
378 |
#. notice, %3$s - Complete the opening of the anchor tag, %4$s - Open span tag,
|
379 |
#. %4$s - Close span tag
|
380 |
msgid "%1$s%2$s%3$s %4$s Dismiss this notice. %5$s"
|
381 |
msgstr ""
|
382 |
|
383 |
+
#: includes/admin/class-edd-notices.php:192
|
384 |
msgid "Discount code added."
|
385 |
msgstr ""
|
386 |
|
387 |
+
#: includes/admin/class-edd-notices.php:195
|
388 |
msgid "There was a problem adding your discount code, please try again."
|
389 |
msgstr ""
|
390 |
|
391 |
+
#: includes/admin/class-edd-notices.php:198
|
392 |
msgid "A discount with that code already exists, please use a different code."
|
393 |
msgstr ""
|
394 |
|
395 |
+
#: includes/admin/class-edd-notices.php:201
|
396 |
#: includes/admin/discounts/edit-discount.php:33
|
397 |
msgid "Discount code updated."
|
398 |
msgstr ""
|
399 |
|
400 |
+
#: includes/admin/class-edd-notices.php:204
|
401 |
msgid "There was a problem updating your discount code, please try again."
|
402 |
msgstr ""
|
403 |
|
404 |
+
#: includes/admin/class-edd-notices.php:207
|
405 |
msgid ""
|
406 |
"The discount code could not be added because one or more of the required "
|
407 |
"fields was empty, please try again."
|
408 |
msgstr ""
|
409 |
|
410 |
+
#: includes/admin/class-edd-notices.php:210
|
411 |
msgid ""
|
412 |
"The discount code entered is invalid; only alphanumeric characters are "
|
413 |
"allowed, please try again."
|
414 |
msgstr ""
|
415 |
|
416 |
+
#: includes/admin/class-edd-notices.php:213
|
417 |
msgid ""
|
418 |
"The discount amount must be a valid percentage or numeric flat amount. "
|
419 |
"Please try again."
|
420 |
msgstr ""
|
421 |
|
422 |
+
#: includes/admin/class-edd-notices.php:222
|
423 |
msgid "The payment has been deleted."
|
424 |
msgstr ""
|
425 |
|
426 |
+
#: includes/admin/class-edd-notices.php:225
|
427 |
msgid "The purchase receipt has been resent."
|
428 |
msgstr ""
|
429 |
|
430 |
+
#: includes/admin/class-edd-notices.php:228
|
431 |
msgid "Failed to send purchase receipt."
|
432 |
msgstr ""
|
433 |
|
434 |
+
#: includes/admin/class-edd-notices.php:231
|
435 |
msgid "The reports have been refreshed."
|
436 |
msgstr ""
|
437 |
|
438 |
+
#: includes/admin/class-edd-notices.php:234
|
439 |
msgid "The payment note has been deleted."
|
440 |
msgstr ""
|
441 |
|
442 |
+
#: includes/admin/class-edd-notices.php:243
|
443 |
msgid "The settings have been imported."
|
444 |
msgstr ""
|
445 |
|
446 |
+
#: includes/admin/class-edd-notices.php:246
|
447 |
msgid "API keys successfully generated."
|
448 |
msgstr ""
|
449 |
|
450 |
+
#: includes/admin/class-edd-notices.php:249
|
451 |
msgid "The specified user already has API keys."
|
452 |
msgstr ""
|
453 |
|
454 |
+
#: includes/admin/class-edd-notices.php:252
|
455 |
msgid "API keys successfully regenerated."
|
456 |
msgstr ""
|
457 |
|
458 |
+
#: includes/admin/class-edd-notices.php:255
|
459 |
msgid "API keys successfully revoked."
|
460 |
msgstr ""
|
461 |
|
462 |
+
#: includes/admin/class-edd-notices.php:264
|
463 |
msgid "The payment note has been added successfully."
|
464 |
msgstr ""
|
465 |
|
466 |
+
#: includes/admin/class-edd-notices.php:267
|
467 |
msgid "The payment has been successfully updated."
|
468 |
msgstr ""
|
469 |
|
470 |
+
#: includes/admin/class-edd-notices.php:276
|
471 |
msgid "Customer successfully deleted"
|
472 |
msgstr ""
|
473 |
|
474 |
+
#: includes/admin/class-edd-notices.php:279
|
475 |
msgid "User successfully verified"
|
476 |
msgstr ""
|
477 |
|
478 |
+
#: includes/admin/class-edd-notices.php:282
|
479 |
msgid "Customer email added"
|
480 |
msgstr ""
|
481 |
|
482 |
+
#: includes/admin/class-edd-notices.php:285
|
483 |
msgid "Customer email removed"
|
484 |
msgstr ""
|
485 |
|
486 |
+
#: includes/admin/class-edd-notices.php:288
|
487 |
msgid "Failed to remove customer email"
|
488 |
msgstr ""
|
489 |
|
490 |
+
#: includes/admin/class-edd-notices.php:291
|
491 |
msgid "Primary email updated for customer"
|
492 |
msgstr ""
|
493 |
|
494 |
+
#: includes/admin/class-edd-notices.php:294
|
495 |
msgid "Failed to set primary email"
|
496 |
msgstr ""
|
497 |
|
498 |
+
#: includes/admin/class-edd-notices.php:344
|
499 |
+
msgid ""
|
500 |
+
"Easy Digital Downloads debug logging is enabled. Please only leave it "
|
501 |
+
"enabled for as long as it is needed for troubleshooting."
|
502 |
+
msgstr ""
|
503 |
+
|
504 |
+
#: includes/admin/class-edd-notices.php:347
|
505 |
+
msgid "View Debug Log"
|
506 |
+
msgstr ""
|
507 |
+
|
508 |
+
#: includes/admin/class-edd-notices.php:348
|
509 |
+
msgid "Delete Log File and Disable Logging"
|
510 |
+
msgstr ""
|
511 |
+
|
512 |
+
#: includes/admin/class-edd-notices.php:364
|
513 |
+
#: includes/admin/promos/class-promo-handler.php:116
|
514 |
+
#: includes/admin/promos/class-promo-handler.php:123
|
515 |
+
#: includes/admin/promos/class-promo-handler.php:128
|
516 |
+
#: includes/gateways/paypal/admin/connect.php:106
|
517 |
+
#: includes/gateways/paypal/admin/connect.php:182
|
518 |
+
#: includes/gateways/paypal/admin/connect.php:292
|
519 |
+
#: includes/gateways/paypal/admin/connect.php:455
|
520 |
+
#: includes/gateways/paypal/admin/connect.php:459
|
521 |
+
#: includes/gateways/paypal/admin/connect.php:511
|
522 |
+
#: includes/gateways/paypal/admin/connect.php:545
|
523 |
+
#: includes/gateways/paypal/admin/connect.php:568
|
524 |
+
#: includes/gateways/paypal/admin/connect.php:597
|
525 |
+
msgid "You do not have permission to perform this action."
|
526 |
+
msgstr ""
|
527 |
+
|
528 |
+
#: includes/admin/class-edd-notices.php:369
|
529 |
+
msgid "The debug log has been cleared and logging has been disabled."
|
530 |
+
msgstr ""
|
531 |
+
|
532 |
#: includes/admin/customers/class-customer-table.php:72
|
533 |
#: includes/admin/payments/class-payments-table.php:274
|
534 |
#: includes/admin/reporting/class-file-downloads-logs-list-table.php:153
|
868 |
msgstr ""
|
869 |
|
870 |
#: includes/admin/customers/customers.php:406
|
871 |
+
#: includes/admin/downloads/metabox.php:442
|
872 |
+
#: includes/admin/downloads/metabox.php:650
|
873 |
+
#: includes/admin/downloads/metabox.php:706
|
874 |
+
#: includes/admin/downloads/metabox.php:831
|
875 |
#: includes/admin/payments/view-order-details.php:523
|
876 |
#: includes/admin/settings/register-settings.php:2231 includes/scripts.php:227
|
877 |
#: templates/checkout_cart.php:57 templates/checkout_cart.php:75
|
963 |
msgstr ""
|
964 |
|
965 |
#: includes/admin/customers/customers.php:486
|
966 |
+
#: includes/admin/extensions/abstract-extension.php:315
|
967 |
#. translators: the plural Downloads label.
|
968 |
msgid "View %s"
|
969 |
msgstr ""
|
1308 |
|
1309 |
#: includes/admin/discounts/class-discount-codes-table.php:126
|
1310 |
#: includes/admin/discounts/edit-discount.php:188
|
1311 |
+
#: includes/class-edd-discount.php:796
|
1312 |
msgid "Active"
|
1313 |
msgstr ""
|
1314 |
|
1315 |
#: includes/admin/discounts/class-discount-codes-table.php:127
|
1316 |
#: includes/admin/discounts/edit-discount.php:189
|
1317 |
+
#: includes/class-edd-discount.php:792
|
1318 |
msgid "Inactive"
|
1319 |
msgstr ""
|
1320 |
|
1666 |
|
1667 |
#: includes/admin/downloads/dashboard-columns.php:34
|
1668 |
#: includes/admin/downloads/dashboard-columns.php:286
|
1669 |
+
#: includes/admin/downloads/metabox.php:462
|
1670 |
#: includes/admin/payments/view-order-details.php:543
|
1671 |
#: includes/admin/reporting/export/class-batch-export-downloads.php:51
|
1672 |
#: templates/shortcode-receipt.php:130
|
1706 |
msgid "%1$s Stats"
|
1707 |
msgstr ""
|
1708 |
|
1709 |
+
#: includes/admin/downloads/metabox.php:304
|
1710 |
msgid "Pricing Options:"
|
1711 |
msgstr ""
|
1712 |
|
1713 |
+
#: includes/admin/downloads/metabox.php:310
|
1714 |
msgid "Enable variable pricing"
|
1715 |
msgstr ""
|
1716 |
|
1717 |
+
#: includes/admin/downloads/metabox.php:340
|
1718 |
msgid ""
|
1719 |
"Enable multi-option purchase mode. Allows multiple price options to be "
|
1720 |
"added to your cart at once"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
+
#: includes/admin/downloads/metabox.php:369
|
1724 |
msgid "Add New Price"
|
1725 |
msgstr ""
|
1726 |
|
1727 |
+
#: includes/admin/downloads/metabox.php:432
|
1728 |
msgid "Click and drag to re-order price options"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
+
#: includes/admin/downloads/metabox.php:433
|
1732 |
msgid "Price ID: %s"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
+
#: includes/admin/downloads/metabox.php:439 includes/scripts.php:234
|
1736 |
msgid "Show advanced settings"
|
1737 |
msgstr ""
|
1738 |
|
1739 |
+
#: includes/admin/downloads/metabox.php:442
|
1740 |
msgid "Remove price option %s"
|
1741 |
msgstr ""
|
1742 |
|
1743 |
+
#: includes/admin/downloads/metabox.php:452
|
1744 |
+
#: includes/admin/downloads/metabox.php:456
|
1745 |
msgid "Option Name"
|
1746 |
msgstr ""
|
1747 |
|
1748 |
+
#: includes/admin/downloads/metabox.php:484 includes/download-functions.php:523
|
1749 |
#: includes/gateways/stripe/includes/template-functions.php:404
|
1750 |
msgid "Default"
|
1751 |
msgstr ""
|
1752 |
|
1753 |
+
#: includes/admin/downloads/metabox.php:487
|
1754 |
msgid "Set ID %s as default price"
|
1755 |
msgstr ""
|
1756 |
|
1757 |
+
#: includes/admin/downloads/metabox.php:552
|
1758 |
msgid "Product Type Options:"
|
1759 |
msgstr ""
|
1760 |
|
1761 |
+
#: includes/admin/downloads/metabox.php:563
|
1762 |
msgid "Select a product type"
|
1763 |
msgstr ""
|
1764 |
|
1765 |
+
#: includes/admin/downloads/metabox.php:564
|
1766 |
msgid ""
|
1767 |
"<strong>Product Type</strong>: Sell this item as a single product, or use "
|
1768 |
"the Bundle type to sell a collection of products."
|
1769 |
msgstr ""
|
1770 |
|
1771 |
+
#: includes/admin/downloads/metabox.php:597
|
1772 |
msgid "Bundled %s"
|
1773 |
msgstr ""
|
1774 |
|
1775 |
+
#: includes/admin/downloads/metabox.php:605
|
1776 |
+
#: includes/admin/downloads/metabox.php:667
|
1777 |
msgid "Click and drag to re-order bundled %s"
|
1778 |
msgstr ""
|
1779 |
|
1780 |
+
#: includes/admin/downloads/metabox.php:609
|
1781 |
+
#: includes/admin/downloads/metabox.php:671
|
1782 |
msgid "Select %s:"
|
1783 |
msgstr ""
|
1784 |
|
1785 |
+
#: includes/admin/downloads/metabox.php:623
|
1786 |
+
#: includes/admin/downloads/metabox.php:684
|
1787 |
msgid "Price assignment:"
|
1788 |
msgstr ""
|
1789 |
|
1790 |
+
#: includes/admin/downloads/metabox.php:650
|
1791 |
msgid "Remove bundle option %s"
|
1792 |
msgstr ""
|
1793 |
|
1794 |
+
#: includes/admin/downloads/metabox.php:661
|
1795 |
msgid "Bundled %s:"
|
1796 |
msgstr ""
|
1797 |
|
1798 |
+
#: includes/admin/downloads/metabox.php:706
|
1799 |
msgid "Remove bundle option 1"
|
1800 |
msgstr ""
|
1801 |
|
1802 |
+
#: includes/admin/downloads/metabox.php:716
|
1803 |
+
#: includes/admin/downloads/metabox.php:784
|
1804 |
msgid "Add New File"
|
1805 |
msgstr ""
|
1806 |
|
1807 |
+
#: includes/admin/downloads/metabox.php:826
|
1808 |
msgid "Click and drag to re-order files"
|
1809 |
msgstr ""
|
1810 |
|
1811 |
+
#: includes/admin/downloads/metabox.php:827
|
1812 |
msgid "%1$s file ID: %2$s"
|
1813 |
msgstr ""
|
1814 |
|
1815 |
+
#: includes/admin/downloads/metabox.php:831
|
1816 |
msgid "Remove file %s"
|
1817 |
msgstr ""
|
1818 |
|
1819 |
+
#: includes/admin/downloads/metabox.php:839
|
1820 |
+
#: includes/admin/downloads/metabox.php:845
|
1821 |
msgid "File Name"
|
1822 |
msgstr ""
|
1823 |
|
1824 |
+
#: includes/admin/downloads/metabox.php:851
|
1825 |
msgid "File URL"
|
1826 |
msgstr ""
|
1827 |
|
1828 |
+
#: includes/admin/downloads/metabox.php:856
|
1829 |
msgid "Upload or enter the file URL"
|
1830 |
msgstr ""
|
1831 |
|
1832 |
+
#: includes/admin/downloads/metabox.php:861
|
1833 |
msgid "Insert File"
|
1834 |
msgstr ""
|
1835 |
|
1836 |
+
#: includes/admin/downloads/metabox.php:861
|
1837 |
msgid "Insert"
|
1838 |
msgstr ""
|
1839 |
|
1840 |
+
#: includes/admin/downloads/metabox.php:861
|
1841 |
msgid "Upload a File"
|
1842 |
msgstr ""
|
1843 |
|
1844 |
+
#: includes/admin/downloads/metabox.php:868
|
1845 |
msgid "Price Assignment"
|
1846 |
msgstr ""
|
1847 |
|
1848 |
+
#: includes/admin/downloads/metabox.php:868
|
1849 |
msgid ""
|
1850 |
"<strong>Price Assignment</strong>: With variable pricing enabled, you can "
|
1851 |
"choose to allow certain price variations access to specific files, or allow "
|
1852 |
"all price variations to access a file."
|
1853 |
msgstr ""
|
1854 |
|
1855 |
+
#: includes/admin/downloads/metabox.php:913
|
1856 |
msgid "Insert into %s"
|
1857 |
msgstr ""
|
1858 |
|
1859 |
+
#: includes/admin/downloads/metabox.php:939
|
1860 |
msgid "File Download Limit:"
|
1861 |
msgstr ""
|
1862 |
|
1863 |
+
#: includes/admin/downloads/metabox.php:946
|
1864 |
msgid "Leave blank for global setting or 0 for unlimited"
|
1865 |
msgstr ""
|
1866 |
|
1867 |
+
#: includes/admin/downloads/metabox.php:948
|
1868 |
msgid ""
|
1869 |
"<strong>File Download Limit</strong>: Limit the number of times a customer "
|
1870 |
"who purchased this product can access their download links."
|
1871 |
msgstr ""
|
1872 |
|
1873 |
+
#: includes/admin/downloads/metabox.php:984
|
1874 |
msgid "Ignore Tax:"
|
1875 |
msgstr ""
|
1876 |
|
1877 |
+
#: includes/admin/downloads/metabox.php:990
|
1878 |
msgid "Mark this product as exclusive of tax"
|
1879 |
msgstr ""
|
1880 |
|
1881 |
+
#: includes/admin/downloads/metabox.php:1012
|
1882 |
msgid "Item Quantities:"
|
1883 |
msgstr ""
|
1884 |
|
1885 |
+
#: includes/admin/downloads/metabox.php:1018
|
1886 |
msgid "Disable quantity input for this product"
|
1887 |
msgstr ""
|
1888 |
|
1889 |
+
#: includes/admin/downloads/metabox.php:1020
|
1890 |
msgid ""
|
1891 |
"<strong>Item Quantities</strong>: if disabled, customers will not be "
|
1892 |
"provided an option to change the number they wish to purchase."
|
1893 |
msgstr ""
|
1894 |
|
1895 |
+
#: includes/admin/downloads/metabox.php:1039
|
1896 |
#: includes/admin/settings/register-settings.php:799
|
1897 |
#: includes/admin/thickbox.php:59 includes/checkout/template.php:1005
|
1898 |
#: includes/gateways/stripe/includes/payment-methods/buy-now/template.php:214
|
1900 |
msgid "Purchase"
|
1901 |
msgstr ""
|
1902 |
|
1903 |
+
#: includes/admin/downloads/metabox.php:1046
|
1904 |
msgid "Purchase Shortcode:"
|
1905 |
msgstr ""
|
1906 |
|
1907 |
+
#: includes/admin/downloads/metabox.php:1047
|
1908 |
msgid ""
|
1909 |
"<strong>Purchase Shortcode</strong>: Use this shortcode to output a "
|
1910 |
"purchase link for this product in the location of your choosing."
|
1911 |
msgstr ""
|
1912 |
|
1913 |
+
#: includes/admin/downloads/metabox.php:1068
|
1914 |
msgid "Accounting Options:"
|
1915 |
msgstr ""
|
1916 |
|
1917 |
+
#: includes/admin/downloads/metabox.php:1076
|
1918 |
msgid "Enter an SKU for this %s."
|
1919 |
msgstr ""
|
1920 |
|
1921 |
+
#: includes/admin/downloads/metabox.php:1095
|
1922 |
msgid "Button Options:"
|
1923 |
msgstr ""
|
1924 |
|
1925 |
+
#: includes/admin/downloads/metabox.php:1102
|
1926 |
msgid "Disable the automatic output of the purchase button"
|
1927 |
msgstr ""
|
1928 |
|
1929 |
+
#: includes/admin/downloads/metabox.php:1103
|
1930 |
msgid ""
|
1931 |
"<strong>Automatic Output</strong>: By default, the purchase buttons will be "
|
1932 |
"displayed at the bottom of the download, when disabled you will need to use "
|
1934 |
"where you prefer."
|
1935 |
msgstr ""
|
1936 |
|
1937 |
+
#: includes/admin/downloads/metabox.php:1113
|
1938 |
#: includes/admin/settings/register-settings.php:813
|
1939 |
#: includes/admin/thickbox.php:101
|
1940 |
msgid "Add to Cart"
|
1941 |
msgstr ""
|
1942 |
|
1943 |
+
#: includes/admin/downloads/metabox.php:1114
|
1944 |
#: includes/admin/settings/register-settings.php:827
|
1945 |
#: includes/gateways/stripe/includes/payment-methods/buy-now/template.php:47
|
1946 |
#: includes/shortcodes.php:47 includes/template-functions.php:78
|
1947 |
msgid "Buy Now"
|
1948 |
msgstr ""
|
1949 |
|
1950 |
+
#: includes/admin/downloads/metabox.php:1127
|
1951 |
msgid "Purchase button behavior"
|
1952 |
msgstr ""
|
1953 |
|
1954 |
+
#: includes/admin/downloads/metabox.php:1129
|
1955 |
msgid ""
|
1956 |
"<strong>Button Behavior</strong>: Add to Cart buttons follow a traditional "
|
1957 |
"eCommerce flow. A Buy Now button bypasses most of the process, taking the "
|
1959 |
"process of buying the product."
|
1960 |
msgstr ""
|
1961 |
|
1962 |
+
#: includes/admin/downloads/metabox.php:1131
|
1963 |
msgid ""
|
1964 |
"<strong>Button Behavior</strong>: Add to Cart buttons follow a traditional "
|
1965 |
"eCommerce flow. Buy Now buttons are only available for stores that have a "
|
1966 |
"single supported gateway active and that do not use taxes."
|
1967 |
msgstr ""
|
1968 |
|
1969 |
+
#: includes/admin/downloads/metabox.php:1169
|
1970 |
msgid ""
|
1971 |
"Special notes or instructions for this product. These notes will be added "
|
1972 |
"to the purchase receipt."
|
1973 |
msgstr ""
|
1974 |
|
1975 |
+
#: includes/admin/downloads/metabox.php:1196
|
1976 |
msgid "Sales:"
|
1977 |
msgstr ""
|
1978 |
|
1979 |
+
#: includes/admin/downloads/metabox.php:1201
|
1980 |
msgid "Earnings:"
|
1981 |
msgstr ""
|
1982 |
|
1983 |
+
#: includes/admin/downloads/metabox.php:1208
|
1984 |
msgid "View File Download Log"
|
1985 |
msgstr ""
|
1986 |
|
1987 |
+
#: includes/admin/downloads/metabox.php:1235
|
1988 |
#. Translators: The %s represents the link to the pricing page on the Easy
|
1989 |
#. Digital Downloads website.
|
1990 |
msgid ""
|
1993 |
"6th CST. <a target=\"_blank\" href=\"%s\">Don't miss out</a>!"
|
1994 |
msgstr ""
|
1995 |
|
1996 |
+
#: includes/admin/extensions/abstract-extension.php:243
|
1997 |
#. translators: The extension name.
|
1998 |
msgid "Log In to Your Account to Download %s"
|
1999 |
msgstr ""
|
2000 |
|
2001 |
+
#: includes/admin/extensions/abstract-extension.php:251
|
2002 |
#. translators: The extension name.
|
2003 |
msgid "Upgrade Today to Access %s!"
|
2004 |
msgstr ""
|
2005 |
|
2006 |
+
#: includes/admin/extensions/abstract-extension.php:262
|
2007 |
#. translators: The extension name.
|
2008 |
msgid "Activate %s"
|
2009 |
msgstr ""
|
2010 |
|
2011 |
+
#: includes/admin/extensions/abstract-extension.php:327
|
2012 |
#. translators: The extension name.
|
2013 |
msgid "Configure %s"
|
2014 |
msgstr ""
|
2075 |
msgid "Extension installed & activated."
|
2076 |
msgstr ""
|
2077 |
|
2078 |
+
#: includes/admin/extensions/product-education/class-email-marketing.php:57
|
2079 |
msgid "Email Marketing"
|
2080 |
msgstr ""
|
2081 |
|
2082 |
+
#: includes/admin/extensions/product-education/class-email-marketing.php:73
|
2083 |
#. translators: the product name
|
2084 |
msgid "Get %s Today!"
|
2085 |
msgstr ""
|
2086 |
|
2087 |
+
#: includes/admin/extensions/product-education/class-email-marketing.php:91
|
2088 |
msgid ""
|
2089 |
"Looks like you have an email marketing extension installed, but we support "
|
2090 |
"more providers!"
|
2091 |
msgstr ""
|
2092 |
|
2093 |
+
#: includes/admin/extensions/product-education/class-invoices.php:103
|
2094 |
msgid "Invoices"
|
2095 |
msgstr ""
|
2096 |
|
2097 |
+
#: includes/admin/extensions/product-education/class-recurring.php:103
|
2098 |
msgid "Recurring Payments"
|
2099 |
msgstr ""
|
2100 |
|
2101 |
+
#: includes/admin/extensions/product-education/class-reviews.php:108
|
2102 |
msgid "Reviews"
|
2103 |
msgstr ""
|
2104 |
|
2105 |
+
#: includes/admin/extensions/product-education/class-reviews.php:128
|
2106 |
msgid "Product Reviews"
|
2107 |
msgstr ""
|
2108 |
|
2134 |
|
2135 |
#: includes/admin/import/class-batch-import-downloads.php:65
|
2136 |
#: includes/admin/import/class-batch-import-payments.php:76
|
2137 |
+
#: includes/admin/import/class-batch-import.php:188
|
2138 |
msgid "You do not have permission to import data."
|
2139 |
msgstr ""
|
2140 |
|
2143 |
msgid "Products (Raw)"
|
2144 |
msgstr ""
|
2145 |
|
2146 |
+
#: includes/admin/import/class-batch-import-payments.php:621
|
2147 |
msgid "payments"
|
2148 |
msgstr ""
|
2149 |
|
2722 |
msgid "Missing notice ID."
|
2723 |
msgstr ""
|
2724 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2725 |
#: includes/admin/promos/notices/abstract-notice.php:113
|
2726 |
msgid "Dismiss notice"
|
2727 |
msgstr ""
|
5717 |
msgstr ""
|
5718 |
|
5719 |
#: includes/cart/template.php:120
|
5720 |
+
#: includes/gateways/stripe/includes/compat.php:224
|
5721 |
msgid "Your cart is empty."
|
5722 |
msgstr ""
|
5723 |
|
6332 |
msgid "Once Weekly"
|
6333 |
msgstr ""
|
6334 |
|
6335 |
+
#: includes/class-edd-customer.php:201 includes/class-edd-discount.php:272
|
6336 |
#: includes/class-edd-download.php:196
|
6337 |
msgid "Can't get property %s"
|
6338 |
msgstr ""
|
6339 |
|
6340 |
+
#: includes/class-edd-discount.php:789
|
6341 |
#: includes/gateways/stripe/includes/template-functions.php:326
|
6342 |
msgid "Expired"
|
6343 |
msgstr ""
|
6344 |
|
6345 |
+
#: includes/class-edd-discount.php:1535
|
6346 |
msgid "This discount has reached its maximum usage."
|
6347 |
msgstr ""
|
6348 |
|
6349 |
+
#: includes/class-edd-discount.php:1568
|
6350 |
msgid "Minimum order of %s not met."
|
6351 |
msgstr ""
|
6352 |
|
6353 |
+
#: includes/class-edd-discount.php:1654 includes/class-edd-discount.php:1683
|
6354 |
msgid "The product requirements for this discount are not met."
|
6355 |
msgstr ""
|
6356 |
|
6357 |
+
#: includes/class-edd-discount.php:1701
|
6358 |
msgid "This discount is not valid for the cart contents."
|
6359 |
msgstr ""
|
6360 |
|
6361 |
+
#: includes/class-edd-discount.php:1790
|
6362 |
msgid "This discount has already been redeemed."
|
6363 |
msgstr ""
|
6364 |
|
6365 |
+
#: includes/class-edd-discount.php:1869
|
6366 |
msgid "This discount is expired."
|
6367 |
msgstr ""
|
6368 |
|
6369 |
+
#: includes/class-edd-discount.php:1874
|
6370 |
msgid "This discount is not active."
|
6371 |
msgstr ""
|
6372 |
|
8481 |
msgid "The user information is invalid"
|
8482 |
msgstr ""
|
8483 |
|
8484 |
+
#: includes/gateways/stripe/includes/compat.php:228
|
8485 |
#: includes/process-purchase.php:44
|
8486 |
msgid ""
|
8487 |
"Missing nonce when processing checkout. Please read the following for more "
|
8490 |
"ajax-requests-in-easy-digital-downloads-2-9-4"
|
8491 |
msgstr ""
|
8492 |
|
8493 |
+
#: includes/gateways/stripe/includes/compat.php:235
|
8494 |
#: includes/process-purchase.php:51
|
8495 |
msgid "Error processing purchase. Please reload the page and try again."
|
8496 |
msgstr ""
|
10524 |
msgid "Apply"
|
10525 |
msgstr ""
|
10526 |
|
10527 |
+
#: includes/class-edd-discount.php:1468
|
10528 |
msgctxt "error shown when attempting to use a discount before its start date"
|
10529 |
msgid "This discount is invalid."
|
10530 |
msgstr ""
|
10531 |
|
10532 |
+
#: includes/class-edd-discount.php:1838
|
10533 |
msgctxt "error for when a discount is invalid based on its configuration"
|
10534 |
msgid "This discount is invalid."
|
10535 |
msgstr ""
|
readme.txt
CHANGED
@@ -5,12 +5,12 @@ Contributors: easydigitaldownloads, mordauk, sunnyratilal, chriscct7, section214
|
|
5 |
Donate link: https://easydigitaldownloads.com/donate/
|
6 |
Tags: ecommerce, e-commerce, sell, digital store, stripe
|
7 |
Requires at least: 4.4
|
8 |
-
Tested up to: 5.
|
9 |
Requires PHP: 5.4
|
10 |
-
Stable Tag: 2.11.
|
11 |
License: GNU Version 2 or Any Later Version
|
12 |
|
13 |
-
Sell your digital products the
|
14 |
|
15 |
== Description ==
|
16 |
|
@@ -18,15 +18,15 @@ Easy Digital Downloads is a complete eCommerce solution for selling digital prod
|
|
18 |
|
19 |
= Sell effortlessly =
|
20 |
|
21 |
-
Whether it is [software](https://easydigitaldownloads.com/blog/selling-software/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description), [documents](https://easydigitaldownloads.com/blog/selling-documents/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description), [
|
22 |
|
23 |
> Easy Digital Downloads is an invaluable tool that I use throughout my business and for my clients. I love its simplicity yet powerful features and library of useful extensions. EDD stands out as one of the only affordable options for scaling a business centered around providing digital ecommerce sites to its clients.
|
24 |
|
25 |
> Mark Hunter - Mark of Approval
|
26 |
|
27 |
-
=
|
28 |
|
29 |
-
|
30 |
|
31 |
> EDD gives me a solid platform out of the box, with the flexibility of being able to customize anything I want or need to. The best of both worlds!
|
32 |
|
@@ -34,12 +34,12 @@ Do you prefer an eCommerce solution which is simple and intuitive or one which i
|
|
34 |
|
35 |
Here are some of the features supported out-of-the-box:
|
36 |
|
37 |
-
- **
|
38 |
- **Highly customizable and clean checkout** - Buyers can complete their purchase with ease, directly on your site's checkout page.
|
39 |
- **Payment flexibility** - Accept credit card payments using [Stripe](https://stripe.com/) as well as PayPal payments. Apple Pay and Google Pay are also included via Stripe's Payment Request Buttons.
|
40 |
- **Complete customer management** - View and manage detailed records of all customers and their purchase history.
|
41 |
- **Detailed eCommerce reports** - Keep track of your earnings, refunds, sales, and more.
|
42 |
-
- **
|
43 |
- **Discount codes** - Boost sales by offering potential customers coupon or discount codes which can be applied at checkout.
|
44 |
- **Works with any theme** - Let your chosen WordPress theme handle the design. Easy Digital Downloads will fit right in.
|
45 |
- [And much more](https://easydigitaldownloads.com/edd-features/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=much-more&utm_term=description)!
|
@@ -58,7 +58,7 @@ Payment gateways supported in the free Easy Digital Downloads plugin:
|
|
58 |
* PayPal
|
59 |
* Amazon Payments
|
60 |
|
61 |
-
Payment gateways supported through free or
|
62 |
|
63 |
* Stripe Pro (reduced fees and preapproved payments functionality)
|
64 |
* PayPal Commerce Pro (unbranded card payments and additional payment methods)
|
@@ -66,42 +66,40 @@ Payment gateways supported through free or premium extensions:
|
|
66 |
* Authorize.net
|
67 |
* 2Checkout
|
68 |
* SOFORT Banking
|
69 |
-
* BitPay
|
70 |
-
* Coinbase
|
71 |
|
72 |
> What can I say? Stripe is my go-to payment processor and without this [integration] I don't know what I would do. Connect EDD to your Stripe account in seconds and you're done! Having a simple test mode toggle is also a valuable development tool.
|
73 |
|
74 |
> Matt Whiteley - Whiteley Designs
|
75 |
|
76 |
-
See our [payment gateways
|
77 |
|
78 |
Easy Digital Downloads is a verified member of the [Stripe partner program](https://stripe.com/accept-payments/easy-digital-downloads). This program recognizes software that meets Stripe's strict quality requirements and provides users of Easy Digital Downloads and Stripe with the confidence they need to trust us both with their payment integrations.
|
79 |
|
80 |
= Take your store further with extensions =
|
81 |
|
82 |
-
With
|
83 |
-
|
84 |
-
* [Stripe Pro](https://easydigitaldownloads.com/downloads/stripe-gateway/?utm_source=extension&utm_medium=description_tab&utm_content=stripe-pro&utm_campaign=readme) removes the additional 2% processing fee as well as adds the ability to accept pre-approved payments (extension must be installed and activated)
|
85 |
-
* [PayPal Commerce Pro](https://easydigitaldownloads.com/downloads/paypal-commerce-pro/?utm_source=extension&utm_medium=description_tab&utm_content=paypal-commerce-pro&utm_campaign=readme) allows customers to pay by debit or credit card as well as alternative payments such as Sofort, iDEAL, Bancontact, and Giropay (extension must be installed and activated)
|
86 |
-
* [Software Licensing](https://easydigitaldownloads.com/downloads/software-licensing/?utm_source=extension&utm_medium=description_tab&utm_content=software-licensing&utm_campaign=readme) provides a complete solution for selling software license keys and distributing software updates to customers
|
87 |
-
* [Recurring Payments](https://easydigitaldownloads.com/downloads/recurring-payments/?utm_source=extension&utm_medium=description_tab&utm_content=recurring-payments&utm_campaign=readme) allows store owners to sell recurring subscriptions for digital products using payment gateways like Stripe and PayPal
|
88 |
-
* [Frontend Submissions](https://easydigitaldownloads.com/downloads/frontend-submissions/?utm_source=extension&utm_medium=description_tab&utm_content=frontend-submissions&utm_campaign=readme) transforms your store into a full-featured multi-vendor marketplace
|
89 |
-
* [Commissions](https://easydigitaldownloads.com/downloads/commissions/?utm_source=extension&utm_medium=description_tab&utm_content=commissions&utm_campaign=readme) enables store owners to easily track earnings for product vendors
|
90 |
-
* [Free Downloads](https://easydigitaldownloads.com/downloads/free-downloads/?utm_source=extension&utm_medium=description_tab&utm_content=free-downloads&utm_campaign=readme) allows free products to be purchased more easily by bypassing the standard checkout form
|
91 |
-
* [Zapier](https://easydigitaldownloads.com/downloads/zapier/?utm_source=extension&utm_medium=description_tab&utm_content=zapier&utm_campaign=readme) automates your store by connecting Easy Digital Downloads with more than 700 other web services and products
|
92 |
-
* [Reviews](https://easydigitaldownloads.com/downloads/product-reviews/?utm_source=extension&utm_medium=description_tab&utm_content=reviews&utm_campaign=readme) allows customers to leave reviews and feedback on the products they have purchased
|
93 |
-
* [Recommended Products](https://easydigitaldownloads.com/downloads/recommended-products/?utm_source=extension&utm_medium=description_tab&utm_content=recommended-products&utm_campaign=readme) increases revenue by showing customers recommendations on additional products to purchase based on real sales data
|
94 |
-
* [Content Restriction](https://easydigitaldownloads.com/downloads/content-restriction/?utm_source=extension&utm_medium=description_tab&utm_content=content-restriction&utm_campaign=readme) allows site owners to restrict access to page content to paying customers
|
95 |
-
* [Mailchimp](https://easydigitaldownloads.com/downloads/mailchimp/?utm_source=extension&utm_medium=description_tab&utm_content=mailchimp&utm_campaign=readme) connects your store to your Mailchimp account so you can easily subscribe customers to email lists based on which products they purchase
|
96 |
-
* [AWeber](https://easydigitaldownloads.com/downloads/aweber/?utm_source=extension&utm_medium=description_tab&utm_content=aweber&utm_campaign=readme) connects your store to your AWeber account so you can easily subscribe customers to email lists based on what they purchase
|
97 |
-
* [Amazon S3](https://easydigitaldownloads.com/downloads/amazon-s3/?utm_source=extension&utm_medium=description_tab&utm_content=amazon-s3&utm_campaign=readme) lets you securely host files on Amazon S3 for more reliable and secure file delivery
|
98 |
-
* [Dropbox File Store](https://easydigitaldownloads.com/downloads/dropbox-file-store//?utm_source=extension&utm_medium=description_tab&utm_content=dropbox-file-store/&utm_campaign=readme) lets you securely host files in your Dropbox account for more reliable and secure file delivery
|
99 |
-
|
100 |
-
These are just a few of the extensions we offer to help you optimize your store and
|
101 |
|
102 |
= Built with developers in mind =
|
103 |
|
104 |
-
Extensible, adaptable, and open source -- Easy Digital Downloads is created with developers in mind. Consult our detailed [developer documentation](http://docs.easydigitaldownloads.com/collection/174-developer-docs?utm_source=wporg&utm_medium=readme&utm_content=documentation&utm_campaign=dev-docs) to learn how you can extend and customize your Easy Digital Downloads powered eCommerce store.
|
105 |
|
106 |
The Easy Digital Downloads API makes it possible for developers to make customizations such as:
|
107 |
|
@@ -120,7 +118,7 @@ The Easy Digital Downloads API makes it possible for developers to make customiz
|
|
120 |
|
121 |
= Get help =
|
122 |
|
123 |
-
Easy Digital Downloads is backed by top-notch technical support from our globally distributed full-time support team. We also have an [extensive documentation site available](https://docs.easydigitaldownloads.com/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=docs&utm_term=description). If you
|
124 |
|
125 |
> EDD has been a long standing, rock-solid e-commerce solution for WordPress. The team lives and breathes WordPress, understands the platform, and is embedded in the community.
|
126 |
|
@@ -133,10 +131,10 @@ Check out some of our popular posts for actionable advice for running your busin
|
|
133 |
- [The 12 Most Popular Digital Products You Can Sell Online](https://easydigitaldownloads.com/blog/the-12-most-popular-digital-products-you-can-sell-online/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description)
|
134 |
- [How to Add Lead Magnets in WordPress to Grow Your Email List](https://easydigitaldownloads.com/blog/how-to-add-lead-magnets-in-wordpress-to-grow-your-email-list/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=lead-magnets&utm_term=description)
|
135 |
- [How to Successfully Launch Your Digital Product](https://easydigitaldownloads.com/blog/how-to-successfully-launch-your-digital-product/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=launch&utm_term=description)
|
136 |
-
- [
|
137 |
-
- [The
|
138 |
|
139 |
-
**[Subscribe to our newsletter](https://easydigitaldownloads.com/subscribe/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=subscribe&utm_term=description)** to get posts like these in your inbox as soon as they
|
140 |
|
141 |
= Contribute to Easy Digital Downloads =
|
142 |
|
@@ -144,7 +142,7 @@ Development for this plugin happens in a public GitHub repository to better faci
|
|
144 |
|
145 |
= Looking for something else? =
|
146 |
|
147 |
-
If Easy Digital Downloads doesn
|
148 |
|
149 |
- [WP Simple Pay](https://wpsimplepay.com/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=something-else&utm_term=description) – A lightweight Stripe payments plugin
|
150 |
- [AffiliateWP](https://affiliatewp.com/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=something-else&utm_term=description) – A full-featured affiliate marketing solution
|
@@ -164,7 +162,7 @@ If Easy Digital Downloads doesn’t quite fit your needs, take a look at some of
|
|
164 |
|
165 |
Full searchable docs for Easy Digital Downloads and all our extensions can be found at [http://docs.easydigitaldownloads.com/](http://docs.easydigitaldownloads.com/?utm_source=docs&utm_medium=faq_tab&utm_content=documentation&utm_campaign=readme)
|
166 |
|
167 |
-
= Where can I ask for help with my digital
|
168 |
|
169 |
You can submit a support ticket or pre-sale question from our [support page](https://easydigitaldownloads.com/support/?utm_source=docs&utm_medium=faq_tab&utm_content=support&utm_campaign=readme) at anytime.
|
170 |
|
@@ -182,7 +180,7 @@ Any properly written theme will work with Easy Digital Downloads.
|
|
182 |
|
183 |
That said, we have a nice collection of free themes that come with support for Easy Digital Downloads, requiring much less design work on the part of the store owner.
|
184 |
|
185 |
-
[See the
|
186 |
|
187 |
= Is there a sample import file I can use to setup a demo store? =
|
188 |
|
@@ -200,7 +198,7 @@ There are several reasons this happens. Please follow the suggestions [here](htt
|
|
200 |
|
201 |
To get rid of the 404 error when viewing a download, you need to resave your permalink structure. Go to Settings > Permalinks and click "Save Changes".
|
202 |
|
203 |
-
= How do I show the user
|
204 |
|
205 |
Place the [purchase_history] shortcode on any page.
|
206 |
|
@@ -221,7 +219,7 @@ Yes, with the Invoices extension, you can provide beautiful and downloadable inv
|
|
221 |
|
222 |
[Invoices](https://easydigitaldownloads.com/downloads/edd-invoices/?utm_source=edd-invoices&utm_medium=faq_tab&utm_content=pdf-invoices&utm_campaign=readme)
|
223 |
|
224 |
-
= Are recurring payments supported? =
|
225 |
|
226 |
Yes, through the use of our commercial addon called [Recurring Payments](https://easydigitaldownloads.com/downloads/recurring-payments/?utm_source=docs&utm_medium=faq_tab&utm_term=recurring_addon&utm_content=faqs&utm_campaign=readme). [Full documentation here](http://docs.easydigitaldownloads.com/article/1142-recurring-payments---overview?utm_source=docs&utm_medium=faq_tab&utm_term=recurring_addon&utm_content=faqs&utm_campaign=readme). The Recurring Payments extension allows you to create subscriptions so that customers continue paying you over time. This is great for selling memberships, courses, all access passes, software licenses, and other products which require an ongoing payment.
|
227 |
|
@@ -243,7 +241,16 @@ Yes, through the use of our commercial addon called [Recurring Payments](https:/
|
|
243 |
|
244 |
== Changelog ==
|
245 |
|
246 |
-
= 2.11.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
247 |
* Fix: "Submit" buttons missing from Reviews and Recurring Payments settings pages.
|
248 |
|
249 |
= 2.11.4, December 27, 2021 =
|
5 |
Donate link: https://easydigitaldownloads.com/donate/
|
6 |
Tags: ecommerce, e-commerce, sell, digital store, stripe
|
7 |
Requires at least: 4.4
|
8 |
+
Tested up to: 5.9
|
9 |
Requires PHP: 5.4
|
10 |
+
Stable Tag: 2.11.5
|
11 |
License: GNU Version 2 or Any Later Version
|
12 |
|
13 |
+
Sell your digital products with the ecommerce plugin written for digital creators, by digital creators.
|
14 |
|
15 |
== Description ==
|
16 |
|
18 |
|
19 |
= Sell effortlessly =
|
20 |
|
21 |
+
Whether it is selling [software like WordPress plugins or themes](https://easydigitaldownloads.com/blog/selling-software/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description), [documents](https://easydigitaldownloads.com/blog/selling-documents/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description) and [spreadsheets](https://easydigitaldownloads.com/blog/sell-excel-or-google-spreadsheets/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description), [photography](https://easydigitaldownloads.com/blog/selling-photographs/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description), [ebooks](https://easydigitaldownloads.com/blog/selling-ebooks/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description), [music](https://easydigitaldownloads.com/blog/selling-audio-and-music/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description), [graphics or digital artwork](https://easydigitaldownloads.com/blog/selling-graphics-and-digital-artwork/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description), [videos](https://easydigitaldownloads.com/blog/selling-videos/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description), or any other type of media file, Easy Digital Downloads provides a complete ecommerce platform that just works, so you can get back to creating.
|
22 |
|
23 |
> Easy Digital Downloads is an invaluable tool that I use throughout my business and for my clients. I love its simplicity yet powerful features and library of useful extensions. EDD stands out as one of the only affordable options for scaling a business centered around providing digital ecommerce sites to its clients.
|
24 |
|
25 |
> Mark Hunter - Mark of Approval
|
26 |
|
27 |
+
= Easy and free, meet robust and powerful =
|
28 |
|
29 |
+
Too often digital creators have to make the hard choice between affordable and powerful. Not with Easy Digital Downloads. It's free forever. It's easy to get started. Then, as you grow, there are hundreds of extensions to add functionality when you need it.
|
30 |
|
31 |
> EDD gives me a solid platform out of the box, with the flexibility of being able to customize anything I want or need to. The best of both worlds!
|
32 |
|
34 |
|
35 |
Here are some of the features supported out-of-the-box:
|
36 |
|
37 |
+
- **Complete shopping cart** - Customers can browse your product catalogue, add items to their cart, and checkout when they are ready. Or they can bypass the cart using Buy Now buttons.
|
38 |
- **Highly customizable and clean checkout** - Buyers can complete their purchase with ease, directly on your site's checkout page.
|
39 |
- **Payment flexibility** - Accept credit card payments using [Stripe](https://stripe.com/) as well as PayPal payments. Apple Pay and Google Pay are also included via Stripe's Payment Request Buttons.
|
40 |
- **Complete customer management** - View and manage detailed records of all customers and their purchase history.
|
41 |
- **Detailed eCommerce reports** - Keep track of your earnings, refunds, sales, and more.
|
42 |
+
- **Secure file protection** - Prevent unauthorized visitors from accessing your product files without paying.
|
43 |
- **Discount codes** - Boost sales by offering potential customers coupon or discount codes which can be applied at checkout.
|
44 |
- **Works with any theme** - Let your chosen WordPress theme handle the design. Easy Digital Downloads will fit right in.
|
45 |
- [And much more](https://easydigitaldownloads.com/edd-features/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=much-more&utm_term=description)!
|
58 |
* PayPal
|
59 |
* Amazon Payments
|
60 |
|
61 |
+
Payment gateways supported through free or paid extensions:
|
62 |
|
63 |
* Stripe Pro (reduced fees and preapproved payments functionality)
|
64 |
* PayPal Commerce Pro (unbranded card payments and additional payment methods)
|
66 |
* Authorize.net
|
67 |
* 2Checkout
|
68 |
* SOFORT Banking
|
|
|
|
|
69 |
|
70 |
> What can I say? Stripe is my go-to payment processor and without this [integration] I don't know what I would do. Connect EDD to your Stripe account in seconds and you're done! Having a simple test mode toggle is also a valuable development tool.
|
71 |
|
72 |
> Matt Whiteley - Whiteley Designs
|
73 |
|
74 |
+
See our [payment gateways](https://easydigitaldownloads.com/downloads/category/gateways/?utm_source=extensions&utm_medium=description_tab&utm_content=gateways&utm_campaign=readme) in the extensions catalog for a complete list of supported payment processors.
|
75 |
|
76 |
Easy Digital Downloads is a verified member of the [Stripe partner program](https://stripe.com/accept-payments/easy-digital-downloads). This program recognizes software that meets Stripe's strict quality requirements and provides users of Easy Digital Downloads and Stripe with the confidence they need to trust us both with their payment integrations.
|
77 |
|
78 |
= Take your store further with extensions =
|
79 |
|
80 |
+
With extensions from our [extensive catalog](https://easydigitaldownloads.com/downloads/?utm_source=extensions&utm_medium=description_tab&utm_content=extensions&utm_campaign=readme) you can super-charge your ecommerce business. Some of our most popular extensions are:
|
81 |
+
|
82 |
+
* [Stripe Pro](https://easydigitaldownloads.com/downloads/stripe-gateway/?utm_source=extension&utm_medium=description_tab&utm_content=stripe-pro&utm_campaign=readme) removes the additional 2% processing fee as well as adds the ability to accept pre-approved payments (extension must be installed and activated).
|
83 |
+
* [PayPal Commerce Pro](https://easydigitaldownloads.com/downloads/paypal-commerce-pro/?utm_source=extension&utm_medium=description_tab&utm_content=paypal-commerce-pro&utm_campaign=readme) allows customers to pay by debit or credit card as well as alternative payments such as Sofort, iDEAL, Bancontact, and Giropay (extension must be installed and activated).
|
84 |
+
* [Software Licensing](https://easydigitaldownloads.com/downloads/software-licensing/?utm_source=extension&utm_medium=description_tab&utm_content=software-licensing&utm_campaign=readme) provides a complete solution for selling software license keys and distributing software updates to customers. Trusted by some of the most successful WordPress Theme and Plugin developers.
|
85 |
+
* [Recurring Payments](https://easydigitaldownloads.com/downloads/recurring-payments/?utm_source=extension&utm_medium=description_tab&utm_content=recurring-payments&utm_campaign=readme) allows store owners to sell recurring subscriptions for digital products using payment gateways like Stripe and PayPal.
|
86 |
+
* [Frontend Submissions](https://easydigitaldownloads.com/downloads/frontend-submissions/?utm_source=extension&utm_medium=description_tab&utm_content=frontend-submissions&utm_campaign=readme) transforms your store into a full-featured multi-vendor marketplace.
|
87 |
+
* [Commissions](https://easydigitaldownloads.com/downloads/commissions/?utm_source=extension&utm_medium=description_tab&utm_content=commissions&utm_campaign=readme) enables store owners to easily track earnings for product vendors.
|
88 |
+
* [Free Downloads](https://easydigitaldownloads.com/downloads/free-downloads/?utm_source=extension&utm_medium=description_tab&utm_content=free-downloads&utm_campaign=readme) allows free products to be purchased more easily by bypassing the standard checkout form.
|
89 |
+
* [Zapier](https://easydigitaldownloads.com/downloads/zapier/?utm_source=extension&utm_medium=description_tab&utm_content=zapier&utm_campaign=readme) automates your store by connecting Easy Digital Downloads with more than 700 other web services and products.
|
90 |
+
* [Reviews](https://easydigitaldownloads.com/downloads/product-reviews/?utm_source=extension&utm_medium=description_tab&utm_content=reviews&utm_campaign=readme) allows customers to leave reviews and feedback on the products they have purchased.
|
91 |
+
* [Recommended Products](https://easydigitaldownloads.com/downloads/recommended-products/?utm_source=extension&utm_medium=description_tab&utm_content=recommended-products&utm_campaign=readme) increases revenue by showing customers recommendations on additional products to purchase based on real sales data.
|
92 |
+
* [Content Restriction](https://easydigitaldownloads.com/downloads/content-restriction/?utm_source=extension&utm_medium=description_tab&utm_content=content-restriction&utm_campaign=readme) allows site owners to restrict access to page content to paying customers.
|
93 |
+
* [Mailchimp](https://easydigitaldownloads.com/downloads/mailchimp/?utm_source=extension&utm_medium=description_tab&utm_content=mailchimp&utm_campaign=readme) connects your store to your Mailchimp account so you can easily subscribe customers to email lists based on which products they purchase.
|
94 |
+
* [AWeber](https://easydigitaldownloads.com/downloads/aweber/?utm_source=extension&utm_medium=description_tab&utm_content=aweber&utm_campaign=readme) connects your store to your AWeber account so you can easily subscribe customers to email lists based on what they purchase.
|
95 |
+
* [Amazon S3](https://easydigitaldownloads.com/downloads/amazon-s3/?utm_source=extension&utm_medium=description_tab&utm_content=amazon-s3&utm_campaign=readme) lets you securely host files on Amazon S3 for more reliable and secure file delivery.
|
96 |
+
* [Dropbox File Store](https://easydigitaldownloads.com/downloads/dropbox-file-store//?utm_source=extension&utm_medium=description_tab&utm_content=dropbox-file-store/&utm_campaign=readme) lets you securely host files in your Dropbox account for more reliable and secure file delivery.
|
97 |
+
|
98 |
+
These are just a few of the extensions we offer to help you optimize your digital store and increase revenue. See our complete [extensions catalogue](https://easydigitaldownloads.com/downloads/?utm_source=extensions&utm_medium=description_tab&utm_content=extensions&utm_campaign=readme) for more. There are also hundreds of extensions created by Easy Digital Downloads community members, which can be found on our [3rd Party Extensions page](https://easydigitaldownloads.com/3rd-party-extensions/?utm_source=3rd-party-extensions&utm_medium=description_tab&utm_content=3rd-party-extensions&utm_campaign=readme).
|
99 |
|
100 |
= Built with developers in mind =
|
101 |
|
102 |
+
Extensible, adaptable, and open source -- Easy Digital Downloads is created with designers and developers in mind. Consult our detailed [developer documentation](http://docs.easydigitaldownloads.com/collection/174-developer-docs?utm_source=wporg&utm_medium=readme&utm_content=documentation&utm_campaign=dev-docs) to learn how you can extend and customize your Easy Digital Downloads powered eCommerce store.
|
103 |
|
104 |
The Easy Digital Downloads API makes it possible for developers to make customizations such as:
|
105 |
|
118 |
|
119 |
= Get help =
|
120 |
|
121 |
+
Easy Digital Downloads is backed by top-notch technical support from our globally distributed full-time support team. We also have an [extensive documentation site available](https://docs.easydigitaldownloads.com/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=docs&utm_term=description). If you're looking for faster support via email, we encourage you to [purchase an Easy Digital Downloads pass](https://easydigitaldownloads.com/pricing/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=upgrade&utm_term=description) or premium extension.
|
122 |
|
123 |
> EDD has been a long standing, rock-solid e-commerce solution for WordPress. The team lives and breathes WordPress, understands the platform, and is embedded in the community.
|
124 |
|
131 |
- [The 12 Most Popular Digital Products You Can Sell Online](https://easydigitaldownloads.com/blog/the-12-most-popular-digital-products-you-can-sell-online/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description)
|
132 |
- [How to Add Lead Magnets in WordPress to Grow Your Email List](https://easydigitaldownloads.com/blog/how-to-add-lead-magnets-in-wordpress-to-grow-your-email-list/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=lead-magnets&utm_term=description)
|
133 |
- [How to Successfully Launch Your Digital Product](https://easydigitaldownloads.com/blog/how-to-successfully-launch-your-digital-product/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=launch&utm_term=description)
|
134 |
+
- [How to Sell Canva Templates with WordPress](https://easydigitaldownloads.com/blog/how-to-sell-canva-templates-with-wordpress/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=canva&utm_term=description)
|
135 |
+
- [The Astonishing Benefits of Selling Digital Products](https://easydigitaldownloads.com/blog/top-10-benefits-selling-digital-products/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=benefits&utm_term=description)
|
136 |
|
137 |
+
**[Subscribe to our newsletter](https://easydigitaldownloads.com/subscribe/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=subscribe&utm_term=description)** to get posts like these in your inbox as soon as they're published.
|
138 |
|
139 |
= Contribute to Easy Digital Downloads =
|
140 |
|
142 |
|
143 |
= Looking for something else? =
|
144 |
|
145 |
+
If Easy Digital Downloads doesn't quite fit your needs, take a look at some of our other projects.
|
146 |
|
147 |
- [WP Simple Pay](https://wpsimplepay.com/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=something-else&utm_term=description) – A lightweight Stripe payments plugin
|
148 |
- [AffiliateWP](https://affiliatewp.com/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=something-else&utm_term=description) – A full-featured affiliate marketing solution
|
162 |
|
163 |
Full searchable docs for Easy Digital Downloads and all our extensions can be found at [http://docs.easydigitaldownloads.com/](http://docs.easydigitaldownloads.com/?utm_source=docs&utm_medium=faq_tab&utm_content=documentation&utm_campaign=readme)
|
164 |
|
165 |
+
= Where can I ask for help with my digital e-Commerce store? =
|
166 |
|
167 |
You can submit a support ticket or pre-sale question from our [support page](https://easydigitaldownloads.com/support/?utm_source=docs&utm_medium=faq_tab&utm_content=support&utm_campaign=readme) at anytime.
|
168 |
|
180 |
|
181 |
That said, we have a nice collection of free themes that come with support for Easy Digital Downloads, requiring much less design work on the part of the store owner.
|
182 |
|
183 |
+
[See the themes here.](https://easydigitaldownloads.com/themes/?utm_source=docs&utm_medium=faq_tab&utm_term=free_themes&utm_content=faqs&utm_campaign=readme)
|
184 |
|
185 |
= Is there a sample import file I can use to setup a demo store? =
|
186 |
|
198 |
|
199 |
To get rid of the 404 error when viewing a download, you need to resave your permalink structure. Go to Settings > Permalinks and click "Save Changes".
|
200 |
|
201 |
+
= How do I show the user's purchase history? =
|
202 |
|
203 |
Place the [purchase_history] shortcode on any page.
|
204 |
|
219 |
|
220 |
[Invoices](https://easydigitaldownloads.com/downloads/edd-invoices/?utm_source=edd-invoices&utm_medium=faq_tab&utm_content=pdf-invoices&utm_campaign=readme)
|
221 |
|
222 |
+
= Are recurring payments (subscriptions) supported? =
|
223 |
|
224 |
Yes, through the use of our commercial addon called [Recurring Payments](https://easydigitaldownloads.com/downloads/recurring-payments/?utm_source=docs&utm_medium=faq_tab&utm_term=recurring_addon&utm_content=faqs&utm_campaign=readme). [Full documentation here](http://docs.easydigitaldownloads.com/article/1142-recurring-payments---overview?utm_source=docs&utm_medium=faq_tab&utm_term=recurring_addon&utm_content=faqs&utm_campaign=readme). The Recurring Payments extension allows you to create subscriptions so that customers continue paying you over time. This is great for selling memberships, courses, all access passes, software licenses, and other products which require an ongoing payment.
|
225 |
|
241 |
|
242 |
== Changelog ==
|
243 |
|
244 |
+
= 2.11.5, January 27, 2022 =
|
245 |
+
* New: Add an admin notice when the EDD Debug Log is enabled.
|
246 |
+
* Fix: Importer has been updated to work with PHP 8.
|
247 |
+
* Fix: Change how data is added to the debug log to prevent errors due to size.
|
248 |
+
* Fix: Bundled product metadata is no longer saved to the download for non-bundle products.
|
249 |
+
* Fix: A PHP notice was thrown when a payment had an unregistered status.
|
250 |
+
* Fix: Stripe - JavaScript error when viewing a preapproved payment record.
|
251 |
+
* Fix: Stripe - EDD 3.0: Incorrect tax amount being charged when customer uses a different country from the store's base country.
|
252 |
+
|
253 |
+
= 2.11.4.1, January 7, 2022 =
|
254 |
* Fix: "Submit" buttons missing from Reviews and Recurring Payments settings pages.
|
255 |
|
256 |
= 2.11.4, December 27, 2021 =
|