Easy Digital Downloads - Version 2.6.11

Version Description

Download this release

Release Info

Developer cklosows
Plugin Icon 128x128 Easy Digital Downloads
Version 2.6.11
Comparing to
See all releases

Code changes from version 2.6.10 to 2.6.11

Files changed (43) hide show
  1. assets/css/edd-admin.css +5 -3
  2. assets/css/edd-admin.min.css +1 -1
  3. assets/images/edd-logo.png +0 -0
  4. assets/images/icons/iphone.png +0 -0
  5. assets/js/admin-scripts.js +22 -5
  6. assets/js/admin-scripts.min.js +2 -2
  7. assets/js/edd-ajax.js +18 -9
  8. assets/js/edd-ajax.min.js +1 -1
  9. easy-digital-downloads.php +5 -4
  10. includes/EDD_SL_Plugin_Updater.php +2 -1
  11. includes/admin/class-api-keys-table.php +1 -1
  12. includes/admin/customers/customers.php +1 -1
  13. includes/admin/discounts/add-discount.php +2 -2
  14. includes/admin/discounts/edit-discount.php +2 -2
  15. includes/admin/import/class-batch-import-downloads.php +10 -2
  16. includes/admin/payments/payments-history.php +2 -2
  17. includes/admin/reporting/export/class-batch-export-file-downloads.php +11 -2
  18. includes/admin/reporting/export/class-batch-export-payments.php +1 -1
  19. includes/admin/reporting/graphing.php +116 -122
  20. includes/admin/reporting/reports.php +2 -1
  21. includes/admin/settings/register-settings.php +91 -25
  22. includes/admin/thickbox.php +1 -1
  23. includes/admin/tools.php +123 -1
  24. includes/admin/tools/class-edd-tools-recount-all-stats.php +8 -0
  25. includes/admin/tracking.php +6 -0
  26. includes/api/class-edd-api.php +12 -1
  27. includes/cart/functions.php +3 -0
  28. includes/class-edd-cli.php +18 -1
  29. includes/class-edd-fees.php +7 -0
  30. includes/class-edd-license-handler.php +19 -1
  31. includes/class-edd-stats.php +1 -0
  32. includes/discount-functions.php +7 -0
  33. includes/gateways/paypal-standard.php +26 -16
  34. includes/payments/class-edd-payment.php +11 -1
  35. includes/payments/class-payment-stats.php +113 -11
  36. includes/payments/functions.php +18 -11
  37. includes/post-types.php +1 -0
  38. includes/scripts.php +1 -14
  39. includes/shortcodes.php +26 -1
  40. includes/user-functions.php +31 -7
  41. languages/easy-digital-downloads.pot +674 -623
  42. readme.txt +39 -2
  43. templates/shortcode-profile-editor.php +1 -1
assets/css/edd-admin.css CHANGED
@@ -53,12 +53,14 @@ a.edd-delete:hover {
53
 
54
  .edd-ui-tooltip {
55
  background: #333 !important;
 
56
  border-radius: 3px !important;
57
- box-shadow: 1px 1px 2px 1px rgba(214,214,214,0.5);
58
  color: #dedede !important;
59
- max-width: 300px;
60
- padding: 7px;
61
  text-rendering: optimizeLegibility;
 
62
  z-index: 9999 !important;
63
  }
64
 
53
 
54
  .edd-ui-tooltip {
55
  background: #333 !important;
56
+ border-width: 1px !important;
57
  border-radius: 3px !important;
58
+ box-shadow: 1px 1px 2px 1px rgba(214,214,214,0.5) !important;
59
  color: #dedede !important;
60
+ max-width: 300px !important;
61
+ padding: 7px !important;
62
  text-rendering: optimizeLegibility;
63
+ text-shadow: none !important;
64
  z-index: 9999 !important;
65
  }
66
 
assets/css/edd-admin.min.css CHANGED
@@ -1 +1 @@
1
- .edd-admin-box .label,.edd-admin-box-inside .strong{font-weight:600}.edd-mobile-link,.edd_repeatable_row td{vertical-align:middle}.edd-hidden{display:none}.edd-clearfix:after{content:".";display:block;height:0;text-indent:-9999px;visibility:hidden}.edd-wrap a{text-decoration:none}a.edd-delete{color:#a00}a.edd-delete:hover{color:red}.download_page_edd-settings .form-table label{color:#666;font-size:14px;font-style:italic;margin:4px 0 0}.download_page_edd-settings .form-table input.small-text~label,.download_page_edd-settings .form-table input[type=checkbox]+label{display:inline}.download_page_edd-settings .form-table tr>th>h3,.download_page_edd-settings .form-table tr>th>strong{font-size:1.2em;font-weight:600;margin:0 auto}.edd-help-tip{cursor:help}.edd-ui-tooltip{background:#333!important;border-radius:3px!important;box-shadow:1px 1px 2px 1px rgba(214,214,214,.5);color:#dedede!important;max-width:300px;padding:7px;text-rendering:optimizeLegibility}#edd-add-ons h2.nav-tab-wrapper{position:relative}#edd-add-ons h2 .button-primary,.edd-tab-span{position:absolute}.edd-tab-span{top:-6px;right:0}.edd-add-ons-footer{padding-top:10px}#edd-add-ons h2{margin:0 0 15px}#edd-add-ons .edd-extension{background:#fff;border:1px solid #ccc;float:left;padding:14px;position:relative;margin:0 15px 15px 0;width:320px;height:315px}#edd-add-ons .edd-extension h3{font-size:13px;margin:0 0 8px}#edd-add-ons .edd-extension .button-secondary{position:absolute;bottom:14px;left:14px}#edd-add-ons .edd-browse-all{clear:both;width:100%}#edd-add-ons .edd-extension .third-party{display:none}#edd-add-ons .edd-starter-package{background-color:#85c0e5;border-color:#62a9d7;color:#fff}#edd-add-ons .edd-starter-package h3{color:#fff}#edd-add-ons .edd-extension .wp-post-image{width:100%;height:auto}#edd-products{height:100px;min-width:200px}#edd-add-discount input[type=checkbox],#edd-edit-discount input[type=checkbox]{width:15px}#edd-payment-filters{background:#f5f5f5;clear:both;background-image:-webkit-gradient(linear,left bottom,left top,from(#f5f5f5),to(#fafafa));background-image:-webkit-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:-moz-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:-o-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:linear-gradient(to top,#f5f5f5,#fafafa);border-color:#dfdfdf;border-width:1px;border-style:solid;border-radius:3px;font-size:13px;line-height:2.1em;overflow:auto;padding:12px;margin:8px 0}#edd-payments-filter ul.subsubsub{margin-bottom:8px}#edd-payment-filters p{color:#777}tr.status-refunded td{background:#cecece;border-top-color:#ccc}.wp-list-table.downloads th#ID{width:80px}.wp-list-table.downloads th#details{width:130px}.wp-list-table.downloads th#date{width:140px}.wp-list-table.downloads th#user{width:130px}.edd-mobile-link{line-height:32px}.edd-mobile-link img{max-width:80%;height:auto;float:left}@media handheld,only screen and (max-width:640px){.wp-list-table.downloads th{width:auto!important}}.download_page_edd-payment-history .ui-dialog .ui-dialog-titlebar-close span{margin-left:-8px;margin-top:-8px}#edd-download-link-textarea{width:100%}.edd_files_name_label{width:225px;float:left}.edd_files_url_label{width:220px;float:left}#postbox-container-1 .edd_files_name_label,#postbox-container-1 .edd_files_url_label{width:80px}.edd_add_repeatable{display:inline-block}#downloadinformation .edd_meta_table_wrap table input,#downloadinformation .edd_meta_table_wrap table select,#downloadinformation .edd_meta_table_wrap table textarea{margin:4px 0;width:100%}#downloadinformation .edd_meta_table_wrap table .submit input{width:auto}.edd_repeatable_upload_wrapper .edd_repeatable_upload_field_container{position:relative}.edd_upload_file{background:#fff;display:block;padding:2px 8px;position:absolute;top:2px;right:7px}.edd_upload_field{padding-right:8em}.edd_remove_repeatable{border:none;cursor:pointer;display:inline-block;padding:0;overflow:hidden;margin:8px 0 0;text-indent:-9999px;width:10px;height:10px}.edd_remove_repeatable:active,.edd_remove_repeatable:focus,.edd_remove_repeatable:hover{background-position:-10px 0!important}.edd_draghandle{background:url(../images/edd-cross-hair.png);cursor:move;display:block;margin:4px 0 0;width:20px;height:20px}textarea#edd-payment-note{width:100%;height:4em;margin:0}.edd_repeatable_product_wrapper .edd-select,.edd_repeatable_upload_wrapper .pricing select{min-width:100%}#edd_product_notes_field{margin:0;width:98%;height:4em}.edd_repeatable_default_wrapper{text-align:center;width:25px}#edd-purchased-files ul li.remove,td.edd_order_price{text-align:right}.edd-admin-box-inside{border-bottom:1px solid #eee;clear:both;padding:3px 12px;margin:0;word-break:break-word}.rtl .edd-admin-box-inside{padding:5px 10px 5px 0}.edd-payment-fees .fee-label{color:#666;font-weight:400}.edd-admin-box .right{float:right}.rtl .edd-admin-box .right{float:left;margin-left:10px}#edd-customer-details .actions,#edd-order-recalc-total{float:right}#edd-order-details .inside,#edd-order-update .inside{margin:0;padding:0}#edd-order-update input.edd_datepicker{width:180px}#edd-order-update input[type=number].edd-payment-time-hour,#edd-order-update input[type=number].edd-payment-time-min{width:50px}#edd-order-resend-receipt .inside{margin-top:11px}#edd-order-resend-receipt .edd-order-resend-receipt-addresses{margin-top:10px}.edd-admin-box-inside:last-child{border-bottom:0}#edd-edit-order-form .data-payment-key{word-break:break-all}.edd-order-update-box #major-publishing-actions .button-secondary{margin-right:10px}#edd-purchased-files .edd-select-chosen{width:196px}#edd-customer-details .order-data-address input,#edd-customer-details .order-data-column p.data input,#edd-edit-order-form .column input,#edd-order-address-country-wrap select,#edd-purchased-files ul{clear:both;display:block}.edd-order-data input.small-text{margin:0}.edd-order-data input.med-text{margin:0;width:100px}#edd-order-update span.label{display:inline;width:50px}.edd-order-update-box .button-primary{margin-right:0}#edd-edit-order-form .column .description{padding-right:10px}#edd-edit-order-form .column,#edd-purchased-files .inside>ul>li,#edd-purchased-files .row>ul>li{display:inline-block;line-height:30px;position:relative;margin-right:5%;vertical-align:middle}#edd-purchased-files li.actions{min-width:200px;text-align:right}#edd-purchased-files .row{border-bottom:1px solid #eee;padding:12px}#edd-purchased-files ul{font-size:0}#edd-purchased-files ul li{font-size:13px}#edd-order-data .data span{color:#666;font-weight:600}#edd-purchased-files .inside{padding:12px}.edd-price-field{width:80px}#edd_products .edd-select,.edd_repeatable_product_wrapper .edd-select,.edd_repeatable_upload_wrapper .pricing select{min-width:100%;max-width:200px}.edd_repeatable_product_wrapper td{overflow:visible}@media screen and (max-width:782px){.order-data-column input[type=email]{padding:6px 10px}}@media screen and (min-width:851px){#edd-purchased-files .inside li.actions{text-align:right}}@media screen and (max-width:1024px){#edd-edit-order-form .column{width:49%}}@media screen and (max-width:1280px) and (min-width:1279px){#edd-purchased-files .inside li.actions{width:35%}#edd-edit-order-form .column{width:32%}}@media screen and (min-width:1280px){#edd-edit-order-form .column,#edd-purchased-files.columns-3 .inside>ul>li,#edd-purchased-files.columns-3 .row>ul>li{width:32%;margin-right:3%}#edd-edit-order-form .columns-4 .column,#edd-purchased-files.columns-4 .inside>ul>li,#edd-purchased-files.columns-4 .row>ul>li{width:22%;margin-right:2%}#edd-edit-order-form .column:nth-child(2n+1),#edd-edit-order-form .columns-3 .column:nth-child(2n+1),#edd-edit-order-form .columns-4 .column:nth-child(3n+1){margin-right:0}#edd-purchased-files.columns-4 li.download{width:33%}#edd-purchased-files.columns-3 .inside>ul>li.price,#edd-purchased-files.columns-3 .row>ul>li.price,#edd-purchased-files.columns-4 li.price{width:14%}#edd-purchased-files.columns-4 li.actions{width:25%;margin-top:0;margin-right:0}}@media screen and (max-width:1284px){#edd-edit-order-form .column strong{display:block}}#edd_product_stats .label{display:inline-block}#edd_product_stats hr{border-style:solid;border-width:1px;border-color:#ccc #fff #fff #ccc}#edd_product_stats .product-earnings-stats:before,#edd_product_stats .product-sales-stats:before{color:#82878c;font:400 20px/1 dashicons;display:inline-block;padding:0 2px 0 0;position:relative;top:0;left:-1px;speak:none;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#edd-item-card-wrapper a.delete,#edd-item-stats-wrapper a,.customer-edit-link a,.disconnect-user a,.wrap-licenses .edd-license-data.edd-license-expired a:hover,.wrap-licenses .edd-license-data.license-expires-soon-notice a:hover,.wrap-licenses .edd-license-data[class*=edd-license-] a:hover{text-decoration:none}#edd_product_stats .product-sales-stats:before{content:'\f174'}#edd_product_stats .product-earnings-stats:before{content:'\f239'}.edd_dashboard_widget table thead td{border-bottom:1px solid #ececec;color:#777}.edd_dashboard_widget .table_left{float:left;width:45%}.edd_dashboard_widget .table_right{float:right;width:45%}.edd_dashboard_widget .inside{font-size:12px}.edd_dashboard_widget td{padding:3px 0}.edd_dashboard_widget .b,.edd_dashboard_widget .t{line-height:1.5;vertical-align:middle}.edd_dashboard_widget .b{font-size:14px;font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;padding-right:6px;width:auto}.edd_dashboard_widget .t{font-size:12px;padding-right:12px;color:#777;width:100%}.edd_dashboard_widget .label_heading{border-top:1px solid #ececec;color:#8f8f8f;font-family:Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;display:block;padding-top:10px;margin:0 0 8px 12px}.edd_dashboard_widget .edd_dashboard_widget_subheading{border-top:1px solid #ececec;color:#8f8f8f;font-size:14px;padding-top:10px;margin:1em 0 0}.edd_dashboard_widget .edd_dashboard_widget_subheading+.table{margin:8px 0 0}.edd_dashboard_widget .edd_price_label{background:#00769c;border-radius:3px;color:#fff;font-size:10px;padding:2px 4px;margin-right:2px}.edd_dashboard_widget table{width:100%;margin-left:0;margin-bottom:1em}td.edd_order_label{width:80%}@media handheld,only screen and (max-width:1000px){.edd_dashboard_widget .edd-recent-email{display:none}}#edd-dashboard-widgets-wrap .postbox h3{cursor:default}#edd-date-range-options,#edd-graphs-date-options{float:left}#edd-date-range-options span{float:left;line-height:24px;height:24px;margin-right:6px}.edd-import-export-form{position:relative}.edd-import-export-form .edd-progress{background:#ddd;position:absolute;bottom:15px;width:95%;height:15px}.edd-import-export-form .edd-progress div{background:#ccc;height:100%;width:0}.edd-import-export-form .notice-wrap{background-color:#f4f4f4;border-style:solid;border-width:1px 0;border-color:#eae9e9;padding:12px 12px 4px;overflow:auto;margin:20px -12px -23px}.edd-import-export-form .notice-wrap .spinner{margin:4px 10px 8px}.admin-color-fresh .edd-import-export-form .edd-progress div{background:#0073aa}.admin-color-light .edd-import-export-form .edd-progress div{background:#888}.admin-color-blue .edd-import-export-form .edd-progress div{background:#096484}.admin-color-coffee .edd-import-export-form .edd-progress div{background:#c7a589}.admin-color-ectoplasm .edd-import-export-form .edd-progress div{background:#a3b745}.admin-color-midnight .edd-import-export-form .edd-progress div{background:#e14d43}.admin-color-sunrise .edd-import-export-form .edd-progress div{background:#dd823b}#edd-graphs-filter label{vertical-align:inherit}#edd-graphs-filter .graph-option-section{float:left;line-height:2.5em;padding-right:5px}.edd-mix-totals{background-color:#fff;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);padding:10px}.edd-mix-chart{display:inline-block;width:49%;vertical-align:top}.edd-graph-notes{color:#9c9c9c}.edd-graph-notes span{display:block}.edd-pie-graph .legend{display:none}.edd-pie-legend{overflow:auto;margin-top:10px}.edd-legend-item-wrapper{color:#333;display:inline-block;font-size:8pt;padding:2px 5px 0;width:48%;height:20px}.edd-legend-color{border:1px solid #cfcfcf;display:inline-block;margin-right:5px;width:20px;height:15px}.edd-pie-legend-item{display:inline-block;vertical-align:top;width:80%}#edd_tax_rates{margin:1em 0 0}#edd_tax_rates .edd_tax_country *,#edd_tax_rates .edd_tax_state *{max-width:100%}#edd_tax_rates .edd_tax_country,#edd_tax_rates .edd_tax_state{width:180px}#edd_tax_rates .edd_tax_rate{width:80px}#edd_tax_rates th{padding:15px 10px}.wrap-licenses .form-table,.wrap-licenses caption,.wrap-licenses tbody,.wrap-licenses td,.wrap-licenses tfoot,.wrap-licenses th,.wrap-licenses thead,.wrap-licenses tr{display:block}.wrap-licenses .form-table tr{float:left;margin:0 15px 15px 0;background:#fff;border:1px solid #ccc;width:30.5%;max-width:350px;padding:14px;min-height:220px;position:relative;box-sizing:border-box}.wrap-licenses .form-table th{background:#f9f9f9;padding:14px;border-bottom:1px solid #ccc;margin:-14px -14px 20px;width:100%}.wrap-licenses .form-table td{padding:0}.wrap-licenses td input.regular-text{margin:0 0 8px;width:100%}.wrap-licenses .edd-license-data[class*=edd-license-]{position:absolute;background:#fafafa;padding:14px;border-top:1px solid #eee;margin:20px -14px -14px;min-height:67px;width:100%;bottom:14px;box-sizing:border-box}.wrap-licenses .edd-license-data[class*=edd-license-] a{color:#444}.wrap-licenses .edd-license-data.license-expires-soon-notice{background-color:#00a0d2;color:#fff;border-color:#00a0d2}.wrap-licenses .edd-license-data.edd-license-expired{background-color:#e24e4e;color:#fff;border-color:#e24e4e}.wrap-licenses .edd-license-data.edd-license-error,.wrap-licenses .edd-license-data.edd-license-invalid,.wrap-licenses .edd-license-data.edd-license-item_name_mismatch,.wrap-licenses .edd-license-data.edd-license-missing,.wrap-licenses .edd-license-data.edd-license-site_inactive{background-color:#ffebcd;border-color:#ffebcd}.wrap-licenses .edd-license-data p{font-size:13px;margin-top:0}.wrap-licenses .edd-license-data.edd-license-expired a,.wrap-licenses .edd-license-data.license-expires-soon-notice a{color:#fff}.wrap-licenses p.submit{clear:both}.post-type-download .fixed .column-name{width:27%}.post-type-download .fixed .column-description{width:30%}.post-type-download .fixed .column-slug{width:23%}.post-type-download .fixed .column-posts{text-align:left;width:17%}#system-info-textarea{background:0 0;font-family:Menlo,Monaco,monospace;display:block;overflow:auto;white-space:pre;width:800px;height:400px}#TB_window #edd-add-download:active,#TB_window #edd-add-download:focus,#TB_window #edd-add-download:hover{color:#fff}.edd-graph .y1Axis{color:#edc240!important}.edd-graph .y2Axis{color:#afd8f8!important}.download_page_edd-tools .apikeys .column-user{width:192px}.edd-select-chosen{width:300px}.chosen-container-multi .chosen-choices{background-image:none;border-color:#dfdfdf;-webkit-border-radius:3px;border-radius:3px}.chosen-container-multi .chosen-choices input{border-color:#dfdfdf;height:27px!important;margin:2px}.chosen-container .chosen-drop{border-color:#aaa;-webkit-box-shadow:1px 1px 2px rgba(0,0,0,.1);box-shadow:1px 1px 2px rgba(0,0,0,.1)}.chosen-container .search-field{float:none!important}.chosen-container .search-field input{width:90%!important}.chosen-container-active .chosen-choices{border-color:#aaa;-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;-webkit-border-bottom-left-radius:0;-webkit-box-shadow:1px 1px 2px rgba(0,0,0,.1);box-shadow:1px 1px 2px rgba(0,0,0,.1);border-radius:3px 3px 0 0}.download_page_edd-tools .tablenav .actions{overflow:visible}.edd_user_search_wrap{position:relative;overflow:visible}.edd_user_search_results{position:absolute;left:0;top:27px}.edd_user_search_results a.edd-ajax-user-cancel{position:absolute;right:6px;top:2px}.edd_user_search_results ul{background:#f0f0f0;border:1px solid #dfdfdf;overflow-y:scroll;padding:10px 10px 4px;margin:0;max-height:200px;width:300px}.wp-list-table .type-download .row-actions{color:#999}@media screen and (max-width:1100px){.edd-mix-chart{display:block;width:100%}.wrap-licenses .form-table tr{width:46%;max-width:none;min-height:230px}}@media screen and (max-width:782px){.post-type-download .nav-tab-wrapper a{font-size:50%;padding:2px 4px}.download_page_edd-tools .apikeys .column-user{width:80px}.license-expiration-date-notice,.license-lifetime-notice,.license-null{padding-left:0}[class^=license-] input[type=text]{margin-bottom:3px}}@media screen and (max-width:600px){.wrap-licenses .form-table tr{width:100%;min-height:230px}}#edd-item-tab-wrapper{display:inline-block;margin-left:-1px;text-align:center;z-index:1}#edd-item-tab-wrapper-list li{background-color:#fff;width:32px;height:32px}#edd-item-tab-wrapper-list .inactive{background-color:#fff;border-left:1px solid #e5e5e5;color:#eee}#edd-item-tab-wrapper-list .inactive a,#edd-item-tab-wrapper-list .inactive a:visited{color:#eee;display:block;line-height:32px;text-decoration:none}#edd-item-tab-wrapper-list .inactive a:active,#edd-item-tab-wrapper-list .inactive a:focus,#edd-item-tab-wrapper-list .inactive a:hover{color:#444}#edd-item-tab-wrapper-list .active{border-color:#e5e5e5;border-style:solid;border-width:1px 1px 1px 0}#edd-item-tab-wrapper-list :not(:last-child){margin-bottom:3px}#edd-item-tab-wrapper-list .dashicons{font-size:24px;line-height:32px}#edd-item-card-wrapper .left{float:left}#edd-item-card-wrapper .right{float:right}#edd-item-card-wrapper input{font-weight:400}#edd-item-card-wrapper .customer-id,.customer-info .customer-name{font-size:24px;font-weight:600}#edd-item-card-wrapper{background-color:#fff;border:1px solid #e5e5e5;webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);display:inline-block;margin-left:-1px;min-height:200px;width:700px;z-index:2}#edd-item-card-wrapper .customer-section{border-bottom:1px solid #eee;margin-bottom:10px;overflow:auto}#edd-item-card-wrapper .customer-section table{margin-bottom:20px}#edd-item-card-wrapper>div{padding:0 20px}#edd-item-card-wrapper>div:first-child{padding-top:20px}#edd-item-card-wrapper>div:last-child{border:none;padding-bottom:20px}#edd-item-card-wrapper .avatar-wrap{padding-right:10px;text-align:center}#edd-item-card-wrapper .customer-main-wrapper input{width:200px}#edd-item-card-wrapper .customer-address-wrapper{margin-right:25px;max-width:33%;width:202px}#edd-item-card-wrapper .customer-address-wrapper select,#edd-item-card-wrapper .edd_user_search_results ul{width:200px}#edd-item-card-wrapper .customer-info{margin-top:5px;margin-bottom:10px;min-height:185px}#edd-item-card-wrapper .info-wrapper{min-height:125px;overflow:visible}#edd-item-card-wrapper a.delete{color:red;margin-right:5px}.customer-edit-link a,.disconnect-user a{font-size:12px;font-weight:400}#customer-edit-actions{line-height:28px;margin-bottom:20px;text-align:center}#customer-edit-actions .button-secondary{margin-right:10px}#edd-item-card-wrapper .info-item{display:block;line-height:16px;padding-bottom:5px}#edd-item-card-wrapper .edit-item{display:none}#edd-item-card-wrapper .edd_user_search_results{left:1px;top:16px}#edd-item-stats-wrapper{margin:0 auto;min-height:30px;text-align:center}#edd-item-stats-wrapper li{font-size:14px;float:left;line-height:22px;width:50%}#edd-item-stats-wrapper .dashicons{color:#888}#edd-item-tables-wrapper table{text-align:center;width:100%}#edd-item-tables-wrapper th{text-align:center}#edd-item-tables-wrapper .downloads tr>td:first-child,#edd-item-tables-wrapper .downloads tr>th:first-child,#edd-item-tables-wrapper .emails tr>td:first-child,#edd-item-tables-wrapper .emails tr>th:first-child{text-align:left}#edd-item-tables-wrapper .downloads tr>td:only-child,.delete-customer{text-align:center}#edd-item-tables-wrapper .emails .add-customer-email-row td{background-color:#f9f9f9;border-top:1px solid #e5e5e5}#edd-item-tables-wrapper .emails .primary-email-icon{font-size:13px;vertical-align:middle;line-height:1.5em}#edd-item-tables-wrapper .emails input{vertical-align:middle;margin:6px 0}#edd-item-tables-wrapper .emails .spinner{float:none}#edd-item-notes-wrapper{min-height:50px}.edd-item-notes-header img,.edd-item-notes-header span{font-weight:600;line-height:30px;vertical-align:middle}.customer-note-input{margin-bottom:5px;width:100%}#edd-customer-notes div:nth-of-type(even){background-color:#fcfcfc}.customer-note-wrapper{border-bottom:1px solid #f9f9f9;min-height:38px;padding:7px 0 7px 7px}.customer-note-wrapper span{display:block}.note-content-wrap{padding-top:7px}#edd-item-card-wrapper .notice-wrap{padding-left:20px;padding-right:20px;margin-left:-20px;margin-right:-20px}@media screen and (max-width:810px) and (min-width:656px){#edd-item-card-wrapper{width:600px}.customer-info .customer-name{font-size:16px}#edd-item-card-wrapper .widefat td,.widefat th{padding:4px 6px;max-width:100px!important;display:table-cell}}@media screen and (max-width:656px){#edd-item-card-wrapper .customer-id,.customer-info .customer-name{font-size:16px}#edd-item-card-wrapper{margin:0;width:100%}#edd-item-tab-wrapper{margin:0 0 -5px}#edd-item-tab-wrapper-list{height:32px;margin:0}#edd-item-tab-wrapper-list .inactive{border-bottom:1px solid #e5e5e5;border-left:none}#edd-item-tab-wrapper-list .active{border-width:1px 1px 0}#edd-item-tab-wrapper-list li{float:left;margin:0 0 0 5px!important;width:32px;height:32px}#edd-item-tab-wrapper-list li span{width:32px;height:32px;margin:0!important}#edd-item-card-wrapper .customer-info{min-height:210px}.edd-item-info.customer-info{position:relative}#edd-item-card-wrapper .customer-address-wrapper{float:none;position:absolute;top:84px;left:110px;max-width:200px}#edd-item-card-wrapper .customer-main-wrapper{float:none;position:absolute;left:110px}#edd-item-card-wrapper #edd-item-stats-wrapper{padding-left:0;padding-right:0}#edd-item-card-wrapper .customer-section{margin-bottom:0}#edd-item-card-wrapper .widefat td,.widefat th{padding:4px 6px;max-width:100px!important;display:table-cell;overflow:hidden}#edd-item-card-wrapper>div:first-child{height:auto}}.recount-stats-controls form{display:inline}.edd-recount-stats-descriptions span{display:none;line-height:24px}
1
+ .edd-admin-box .label,.edd-admin-box-inside .strong{font-weight:600}.edd-mobile-link,.edd_repeatable_row td{vertical-align:middle}.edd-hidden{display:none}.edd-clearfix:after{content:".";display:block;height:0;text-indent:-9999px;visibility:hidden}.edd-wrap a{text-decoration:none}a.edd-delete{color:#a00}a.edd-delete:hover{color:red}.download_page_edd-settings .form-table label{color:#666;font-size:14px;font-style:italic;margin:4px 0 0}.download_page_edd-settings .form-table input.small-text~label,.download_page_edd-settings .form-table input[type=checkbox]+label{display:inline}.download_page_edd-settings .form-table tr>th>h3,.download_page_edd-settings .form-table tr>th>strong{font-size:1.2em;font-weight:600;margin:0 auto}.edd-help-tip{cursor:help}.edd-ui-tooltip{background:#333!important;border-width:1px!important;border-radius:3px!important;box-shadow:1px 1px 2px 1px rgba(214,214,214,.5)!important;color:#dedede!important;max-width:300px!important;padding:7px!important;text-rendering:optimizeLegibility;text-shadow:none!important;z-index:9999!important}#edd-add-ons h2.nav-tab-wrapper{position:relative}#edd-add-ons h2 .button-primary,.edd-tab-span{position:absolute}.edd-tab-span{top:-6px;right:0}.edd-add-ons-footer{padding-top:10px}#edd-add-ons h2{margin:0 0 15px}#edd-add-ons .edd-extension{background:#fff;border:1px solid #ccc;float:left;padding:14px;position:relative;margin:0 15px 15px 0;width:320px;height:315px}#edd-add-ons .edd-extension h3{font-size:13px;margin:0 0 8px}#edd-add-ons .edd-extension .button-secondary{position:absolute;bottom:14px;left:14px}#edd-add-ons .edd-browse-all{clear:both;width:100%}#edd-add-ons .edd-extension .third-party{display:none}#edd-add-ons .edd-starter-package{background-color:#85c0e5;border-color:#62a9d7;color:#fff}#edd-add-ons .edd-starter-package h3{color:#fff}#edd-add-ons .edd-extension .wp-post-image{width:100%;height:auto}#edd-products{height:100px;min-width:200px}#edd-add-discount input[type=checkbox],#edd-edit-discount input[type=checkbox]{width:15px}#edd-payment-filters{background:#f5f5f5;clear:both;background-image:-webkit-gradient(linear,left bottom,left top,from(#f5f5f5),to(#fafafa));background-image:-webkit-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:-moz-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:-o-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:linear-gradient(to top,#f5f5f5,#fafafa);border-color:#dfdfdf;border-width:1px;border-style:solid;border-radius:3px;font-size:13px;line-height:2.1em;overflow:auto;padding:12px;margin:8px 0}#edd-payments-filter ul.subsubsub{margin-bottom:8px}#edd-payment-filters p{color:#777}tr.status-refunded td{background:#cecece;border-top-color:#ccc}.wp-list-table.downloads th#ID{width:80px}.wp-list-table.downloads th#details{width:130px}.wp-list-table.downloads th#date{width:140px}.wp-list-table.downloads th#user{width:130px}.edd-mobile-link{line-height:32px}.edd-mobile-link img{max-width:80%;height:auto;float:left}@media handheld,only screen and (max-width:640px){.wp-list-table.downloads th{width:auto!important}}.download_page_edd-payment-history .ui-dialog .ui-dialog-titlebar-close span{margin-left:-8px;margin-top:-8px}#edd-download-link-textarea{width:100%}.edd_files_name_label{width:225px;float:left}.edd_files_url_label{width:220px;float:left}#postbox-container-1 .edd_files_name_label,#postbox-container-1 .edd_files_url_label{width:80px}.edd_add_repeatable{display:inline-block}#downloadinformation .edd_meta_table_wrap table input,#downloadinformation .edd_meta_table_wrap table select,#downloadinformation .edd_meta_table_wrap table textarea{margin:4px 0;width:100%}#downloadinformation .edd_meta_table_wrap table .submit input{width:auto}.edd_repeatable_upload_wrapper .edd_repeatable_upload_field_container{position:relative}.edd_upload_file{background:#fff;display:block;padding:2px 8px;position:absolute;top:2px;right:7px}.edd_upload_field{padding-right:8em}.edd_remove_repeatable{border:none;cursor:pointer;display:inline-block;padding:0;overflow:hidden;margin:8px 0 0;text-indent:-9999px;width:10px;height:10px}.edd_remove_repeatable:active,.edd_remove_repeatable:focus,.edd_remove_repeatable:hover{background-position:-10px 0!important}.edd_draghandle{background:url(../images/edd-cross-hair.png);cursor:move;display:block;margin:4px 0 0;width:20px;height:20px}textarea#edd-payment-note{width:100%;height:4em;margin:0}.edd_repeatable_product_wrapper .edd-select,.edd_repeatable_upload_wrapper .pricing select{min-width:100%}#edd_product_notes_field{margin:0;width:98%;height:4em}.edd_repeatable_default_wrapper{text-align:center;width:25px}#edd-purchased-files ul li.remove,td.edd_order_price{text-align:right}.edd-admin-box-inside{border-bottom:1px solid #eee;clear:both;padding:3px 12px;margin:0;word-break:break-word}.rtl .edd-admin-box-inside{padding:5px 10px 5px 0}.edd-payment-fees .fee-label{color:#666;font-weight:400}.edd-admin-box .right{float:right}.rtl .edd-admin-box .right{float:left;margin-left:10px}#edd-customer-details .actions,#edd-order-recalc-total{float:right}#edd-order-details .inside,#edd-order-update .inside{margin:0;padding:0}#edd-order-update input.edd_datepicker{width:180px}#edd-order-update input[type=number].edd-payment-time-hour,#edd-order-update input[type=number].edd-payment-time-min{width:50px}#edd-order-resend-receipt .inside{margin-top:11px}#edd-order-resend-receipt .edd-order-resend-receipt-addresses{margin-top:10px}.edd-admin-box-inside:last-child{border-bottom:0}#edd-edit-order-form .data-payment-key{word-break:break-all}.edd-order-update-box #major-publishing-actions .button-secondary{margin-right:10px}#edd-purchased-files .edd-select-chosen{width:196px}#edd-customer-details .order-data-address input,#edd-customer-details .order-data-column p.data input,#edd-edit-order-form .column input,#edd-order-address-country-wrap select,#edd-purchased-files ul{clear:both;display:block}.edd-order-data input.small-text{margin:0}.edd-order-data input.med-text{margin:0;width:100px}#edd-order-update span.label{display:inline;width:50px}.edd-order-update-box .button-primary{margin-right:0}#edd-edit-order-form .column .description{padding-right:10px}#edd-edit-order-form .column,#edd-purchased-files .inside>ul>li,#edd-purchased-files .row>ul>li{display:inline-block;line-height:30px;position:relative;margin-right:5%;vertical-align:middle}#edd-purchased-files li.actions{min-width:200px;text-align:right}#edd-purchased-files .row{border-bottom:1px solid #eee;padding:12px}#edd-purchased-files ul{font-size:0}#edd-purchased-files ul li{font-size:13px}#edd-order-data .data span{color:#666;font-weight:600}#edd-purchased-files .inside{padding:12px}.edd-price-field{width:80px}#edd_products .edd-select,.edd_repeatable_product_wrapper .edd-select,.edd_repeatable_upload_wrapper .pricing select{min-width:100%;max-width:200px}.edd_repeatable_product_wrapper td{overflow:visible}@media screen and (max-width:782px){.order-data-column input[type=email]{padding:6px 10px}}@media screen and (min-width:851px){#edd-purchased-files .inside li.actions{text-align:right}}@media screen and (max-width:1024px){#edd-edit-order-form .column{width:49%}}@media screen and (max-width:1280px) and (min-width:1279px){#edd-purchased-files .inside li.actions{width:35%}#edd-edit-order-form .column{width:32%}}@media screen and (min-width:1280px){#edd-edit-order-form .column,#edd-purchased-files.columns-3 .inside>ul>li,#edd-purchased-files.columns-3 .row>ul>li{width:32%;margin-right:3%}#edd-edit-order-form .columns-4 .column,#edd-purchased-files.columns-4 .inside>ul>li,#edd-purchased-files.columns-4 .row>ul>li{width:22%;margin-right:2%}#edd-edit-order-form .column:nth-child(2n+1),#edd-edit-order-form .columns-3 .column:nth-child(2n+1),#edd-edit-order-form .columns-4 .column:nth-child(3n+1){margin-right:0}#edd-purchased-files.columns-4 li.download{width:33%}#edd-purchased-files.columns-3 .inside>ul>li.price,#edd-purchased-files.columns-3 .row>ul>li.price,#edd-purchased-files.columns-4 li.price{width:14%}#edd-purchased-files.columns-4 li.actions{width:25%;margin-top:0;margin-right:0}}@media screen and (max-width:1284px){#edd-edit-order-form .column strong{display:block}}#edd_product_stats .label{display:inline-block}#edd_product_stats hr{border-style:solid;border-width:1px;border-color:#ccc #fff #fff #ccc}#edd_product_stats .product-earnings-stats:before,#edd_product_stats .product-sales-stats:before{color:#82878c;font:400 20px/1 dashicons;display:inline-block;padding:0 2px 0 0;position:relative;top:0;left:-1px;speak:none;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#edd-item-card-wrapper a.delete,#edd-item-stats-wrapper a,.customer-edit-link a,.disconnect-user a,.wrap-licenses .edd-license-data.edd-license-expired a:hover,.wrap-licenses .edd-license-data.license-expires-soon-notice a:hover,.wrap-licenses .edd-license-data[class*=edd-license-] a:hover{text-decoration:none}#edd_product_stats .product-sales-stats:before{content:'\f174'}#edd_product_stats .product-earnings-stats:before{content:'\f239'}.edd_dashboard_widget table thead td{border-bottom:1px solid #ececec;color:#777}.edd_dashboard_widget .table_left{float:left;width:45%}.edd_dashboard_widget .table_right{float:right;width:45%}.edd_dashboard_widget .inside{font-size:12px}.edd_dashboard_widget td{padding:3px 0}.edd_dashboard_widget .b,.edd_dashboard_widget .t{line-height:1.5;vertical-align:middle}.edd_dashboard_widget .b{font-size:14px;font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;padding-right:6px;width:auto}.edd_dashboard_widget .t{font-size:12px;padding-right:12px;color:#777;width:100%}.edd_dashboard_widget .label_heading{border-top:1px solid #ececec;color:#8f8f8f;font-family:Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;display:block;padding-top:10px;margin:0 0 8px 12px}.edd_dashboard_widget .edd_dashboard_widget_subheading{border-top:1px solid #ececec;color:#8f8f8f;font-size:14px;padding-top:10px;margin:1em 0 0}.edd_dashboard_widget .edd_dashboard_widget_subheading+.table{margin:8px 0 0}.edd_dashboard_widget .edd_price_label{background:#00769c;border-radius:3px;color:#fff;font-size:10px;padding:2px 4px;margin-right:2px}.edd_dashboard_widget table{width:100%;margin-left:0;margin-bottom:1em}td.edd_order_label{width:80%}@media handheld,only screen and (max-width:1000px){.edd_dashboard_widget .edd-recent-email{display:none}}#edd-dashboard-widgets-wrap .postbox h3{cursor:default}#edd-date-range-options,#edd-graphs-date-options{float:left}#edd-date-range-options span{float:left;line-height:24px;height:24px;margin-right:6px}.edd-import-export-form{position:relative}.edd-import-export-form .edd-progress{background:#ddd;position:absolute;bottom:15px;width:95%;height:15px}.edd-import-export-form .edd-progress div{background:#ccc;height:100%;width:0}.edd-import-export-form .notice-wrap{background-color:#f4f4f4;border-style:solid;border-width:1px 0;border-color:#eae9e9;padding:12px 12px 4px;overflow:auto;margin:20px -12px -23px}.edd-import-export-form .notice-wrap .spinner{margin:4px 10px 8px}.admin-color-fresh .edd-import-export-form .edd-progress div{background:#0073aa}.admin-color-light .edd-import-export-form .edd-progress div{background:#888}.admin-color-blue .edd-import-export-form .edd-progress div{background:#096484}.admin-color-coffee .edd-import-export-form .edd-progress div{background:#c7a589}.admin-color-ectoplasm .edd-import-export-form .edd-progress div{background:#a3b745}.admin-color-midnight .edd-import-export-form .edd-progress div{background:#e14d43}.admin-color-sunrise .edd-import-export-form .edd-progress div{background:#dd823b}#edd-graphs-filter label{vertical-align:inherit}#edd-graphs-filter .graph-option-section{float:left;line-height:2.5em;padding-right:5px}.edd-mix-totals{background-color:#fff;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);padding:10px}.edd-mix-chart{display:inline-block;width:49%;vertical-align:top}.edd-graph-notes{color:#9c9c9c}.edd-graph-notes span{display:block}.edd-pie-graph .legend{display:none}.edd-pie-legend{overflow:auto;margin-top:10px}.edd-legend-item-wrapper{color:#333;display:inline-block;font-size:8pt;padding:2px 5px 0;width:48%;height:20px}.edd-legend-color{border:1px solid #cfcfcf;display:inline-block;margin-right:5px;width:20px;height:15px}.edd-pie-legend-item{display:inline-block;vertical-align:top;width:80%}#edd_tax_rates{margin:1em 0 0}#edd_tax_rates .edd_tax_country *,#edd_tax_rates .edd_tax_state *{max-width:100%}#edd_tax_rates .edd_tax_country,#edd_tax_rates .edd_tax_state{width:180px}#edd_tax_rates .edd_tax_rate{width:80px}#edd_tax_rates th{padding:15px 10px}.wrap-licenses .form-table,.wrap-licenses caption,.wrap-licenses tbody,.wrap-licenses td,.wrap-licenses tfoot,.wrap-licenses th,.wrap-licenses thead,.wrap-licenses tr{display:block}.wrap-licenses .form-table tr{float:left;margin:0 15px 15px 0;background:#fff;border:1px solid #ccc;width:30.5%;max-width:350px;padding:14px;min-height:220px;position:relative;box-sizing:border-box}.wrap-licenses .form-table th{background:#f9f9f9;padding:14px;border-bottom:1px solid #ccc;margin:-14px -14px 20px;width:100%}.wrap-licenses .form-table td{padding:0}.wrap-licenses td input.regular-text{margin:0 0 8px;width:100%}.wrap-licenses .edd-license-data[class*=edd-license-]{position:absolute;background:#fafafa;padding:14px;border-top:1px solid #eee;margin:20px -14px -14px;min-height:67px;width:100%;bottom:14px;box-sizing:border-box}.wrap-licenses .edd-license-data[class*=edd-license-] a{color:#444}.wrap-licenses .edd-license-data.license-expires-soon-notice{background-color:#00a0d2;color:#fff;border-color:#00a0d2}.wrap-licenses .edd-license-data.edd-license-expired{background-color:#e24e4e;color:#fff;border-color:#e24e4e}.wrap-licenses .edd-license-data.edd-license-error,.wrap-licenses .edd-license-data.edd-license-invalid,.wrap-licenses .edd-license-data.edd-license-item_name_mismatch,.wrap-licenses .edd-license-data.edd-license-missing,.wrap-licenses .edd-license-data.edd-license-site_inactive{background-color:#ffebcd;border-color:#ffebcd}.wrap-licenses .edd-license-data p{font-size:13px;margin-top:0}.wrap-licenses .edd-license-data.edd-license-expired a,.wrap-licenses .edd-license-data.license-expires-soon-notice a{color:#fff}.wrap-licenses p.submit{clear:both}.post-type-download .fixed .column-name{width:27%}.post-type-download .fixed .column-description{width:30%}.post-type-download .fixed .column-slug{width:23%}.post-type-download .fixed .column-posts{text-align:left;width:17%}#system-info-textarea{background:0 0;font-family:Menlo,Monaco,monospace;display:block;overflow:auto;white-space:pre;width:800px;height:400px}#TB_window #edd-add-download:active,#TB_window #edd-add-download:focus,#TB_window #edd-add-download:hover{color:#fff}.edd-graph .y1Axis{color:#edc240!important}.edd-graph .y2Axis{color:#afd8f8!important}.download_page_edd-tools .apikeys .column-user{width:192px}.edd-select-chosen{width:300px}.chosen-container-multi .chosen-choices{background-image:none;border-color:#dfdfdf;-webkit-border-radius:3px;border-radius:3px}.chosen-container-multi .chosen-choices input{border-color:#dfdfdf;height:27px!important;margin:2px}.chosen-container .chosen-drop{border-color:#aaa;-webkit-box-shadow:1px 1px 2px rgba(0,0,0,.1);box-shadow:1px 1px 2px rgba(0,0,0,.1)}.chosen-container .search-field{float:none!important}.chosen-container .search-field input{width:90%!important}.chosen-container-active .chosen-choices{border-color:#aaa;-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;-webkit-border-bottom-left-radius:0;-webkit-box-shadow:1px 1px 2px rgba(0,0,0,.1);box-shadow:1px 1px 2px rgba(0,0,0,.1);border-radius:3px 3px 0 0}.download_page_edd-tools .tablenav .actions{overflow:visible}.edd_user_search_wrap{position:relative;overflow:visible}.edd_user_search_results{position:absolute;left:0;top:27px}.edd_user_search_results a.edd-ajax-user-cancel{position:absolute;right:6px;top:2px}.edd_user_search_results ul{background:#f0f0f0;border:1px solid #dfdfdf;overflow-y:scroll;padding:10px 10px 4px;margin:0;max-height:200px;width:300px}.wp-list-table .type-download .row-actions{color:#999}@media screen and (max-width:1100px){.edd-mix-chart{display:block;width:100%}.wrap-licenses .form-table tr{width:46%;max-width:none;min-height:230px}}@media screen and (max-width:782px){.post-type-download .nav-tab-wrapper a{font-size:50%;padding:2px 4px}.download_page_edd-tools .apikeys .column-user{width:80px}.license-expiration-date-notice,.license-lifetime-notice,.license-null{padding-left:0}[class^=license-] input[type=text]{margin-bottom:3px}}@media screen and (max-width:600px){.wrap-licenses .form-table tr{width:100%;min-height:230px}}#edd-item-tab-wrapper{display:inline-block;margin-left:-1px;text-align:center;z-index:1}#edd-item-tab-wrapper-list li{background-color:#fff;width:32px;height:32px}#edd-item-tab-wrapper-list .inactive{background-color:#fff;border-left:1px solid #e5e5e5;color:#eee}#edd-item-tab-wrapper-list .inactive a,#edd-item-tab-wrapper-list .inactive a:visited{color:#eee;display:block;line-height:32px;text-decoration:none}#edd-item-tab-wrapper-list .inactive a:active,#edd-item-tab-wrapper-list .inactive a:focus,#edd-item-tab-wrapper-list .inactive a:hover{color:#444}#edd-item-tab-wrapper-list .active{border-color:#e5e5e5;border-style:solid;border-width:1px 1px 1px 0}#edd-item-tab-wrapper-list :not(:last-child){margin-bottom:3px}#edd-item-tab-wrapper-list .dashicons{font-size:24px;line-height:32px}#edd-item-card-wrapper .left{float:left}#edd-item-card-wrapper .right{float:right}#edd-item-card-wrapper input{font-weight:400}#edd-item-card-wrapper .customer-id,.customer-info .customer-name{font-size:24px;font-weight:600}#edd-item-card-wrapper{background-color:#fff;border:1px solid #e5e5e5;webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);display:inline-block;margin-left:-1px;min-height:200px;width:700px;z-index:2}#edd-item-card-wrapper .customer-section{border-bottom:1px solid #eee;margin-bottom:10px;overflow:auto}#edd-item-card-wrapper .customer-section table{margin-bottom:20px}#edd-item-card-wrapper>div{padding:0 20px}#edd-item-card-wrapper>div:first-child{padding-top:20px}#edd-item-card-wrapper>div:last-child{border:none;padding-bottom:20px}#edd-item-card-wrapper .avatar-wrap{padding-right:10px;text-align:center}#edd-item-card-wrapper .customer-main-wrapper input{width:200px}#edd-item-card-wrapper .customer-address-wrapper{margin-right:25px;max-width:33%;width:202px}#edd-item-card-wrapper .customer-address-wrapper select,#edd-item-card-wrapper .edd_user_search_results ul{width:200px}#edd-item-card-wrapper .customer-info{margin-top:5px;margin-bottom:10px;min-height:185px}#edd-item-card-wrapper .info-wrapper{min-height:125px;overflow:visible}#edd-item-card-wrapper a.delete{color:red;margin-right:5px}.customer-edit-link a,.disconnect-user a{font-size:12px;font-weight:400}#customer-edit-actions{line-height:28px;margin-bottom:20px;text-align:center}#customer-edit-actions .button-secondary{margin-right:10px}#edd-item-card-wrapper .info-item{display:block;line-height:16px;padding-bottom:5px}#edd-item-card-wrapper .edit-item{display:none}#edd-item-card-wrapper .edd_user_search_results{left:1px;top:16px}#edd-item-stats-wrapper{margin:0 auto;min-height:30px;text-align:center}#edd-item-stats-wrapper li{font-size:14px;float:left;line-height:22px;width:50%}#edd-item-stats-wrapper .dashicons{color:#888}#edd-item-tables-wrapper table{text-align:center;width:100%}#edd-item-tables-wrapper th{text-align:center}#edd-item-tables-wrapper .downloads tr>td:first-child,#edd-item-tables-wrapper .downloads tr>th:first-child,#edd-item-tables-wrapper .emails tr>td:first-child,#edd-item-tables-wrapper .emails tr>th:first-child{text-align:left}#edd-item-tables-wrapper .downloads tr>td:only-child,.delete-customer{text-align:center}#edd-item-tables-wrapper .emails .add-customer-email-row td{background-color:#f9f9f9;border-top:1px solid #e5e5e5}#edd-item-tables-wrapper .emails .primary-email-icon{font-size:13px;vertical-align:middle;line-height:1.5em}#edd-item-tables-wrapper .emails input{vertical-align:middle;margin:6px 0}#edd-item-tables-wrapper .emails .spinner{float:none}#edd-item-notes-wrapper{min-height:50px}.edd-item-notes-header img,.edd-item-notes-header span{font-weight:600;line-height:30px;vertical-align:middle}.customer-note-input{margin-bottom:5px;width:100%}#edd-customer-notes div:nth-of-type(even){background-color:#fcfcfc}.customer-note-wrapper{border-bottom:1px solid #f9f9f9;min-height:38px;padding:7px 0 7px 7px}.customer-note-wrapper span{display:block}.note-content-wrap{padding-top:7px}#edd-item-card-wrapper .notice-wrap{padding-left:20px;padding-right:20px;margin-left:-20px;margin-right:-20px}@media screen and (max-width:810px) and (min-width:656px){#edd-item-card-wrapper{width:600px}.customer-info .customer-name{font-size:16px}#edd-item-card-wrapper .widefat td,.widefat th{padding:4px 6px;max-width:100px!important;display:table-cell}}@media screen and (max-width:656px){#edd-item-card-wrapper .customer-id,.customer-info .customer-name{font-size:16px}#edd-item-card-wrapper{margin:0;width:100%}#edd-item-tab-wrapper{margin:0 0 -5px}#edd-item-tab-wrapper-list{height:32px;margin:0}#edd-item-tab-wrapper-list .inactive{border-bottom:1px solid #e5e5e5;border-left:none}#edd-item-tab-wrapper-list .active{border-width:1px 1px 0}#edd-item-tab-wrapper-list li{float:left;margin:0 0 0 5px!important;width:32px;height:32px}#edd-item-tab-wrapper-list li span{width:32px;height:32px;margin:0!important}#edd-item-card-wrapper .customer-info{min-height:210px}.edd-item-info.customer-info{position:relative}#edd-item-card-wrapper .customer-address-wrapper{float:none;position:absolute;top:84px;left:110px;max-width:200px}#edd-item-card-wrapper .customer-main-wrapper{float:none;position:absolute;left:110px}#edd-item-card-wrapper #edd-item-stats-wrapper{padding-left:0;padding-right:0}#edd-item-card-wrapper .customer-section{margin-bottom:0}#edd-item-card-wrapper .widefat td,.widefat th{padding:4px 6px;max-width:100px!important;display:table-cell;overflow:hidden}#edd-item-card-wrapper>div:first-child{height:auto}}.recount-stats-controls form{display:inline}.edd-recount-stats-descriptions span{display:none;line-height:24px}
assets/images/edd-logo.png CHANGED
Binary file
assets/images/icons/iphone.png CHANGED
Binary file
assets/js/admin-scripts.js CHANGED
@@ -213,7 +213,13 @@ jQuery(document).ready(function ($) {
213
 
214
  prices : function() {
215
  $( document.body ).on( 'change', '#edd_variable_pricing', function(e) {
216
- $( '.edd_pricing_fields,.edd_repeatable_table .pricing' ).toggle();
 
 
 
 
 
 
217
  });
218
  },
219
 
@@ -469,8 +475,18 @@ jQuery(document).ready(function ($) {
469
 
470
  $('#edd-customer-details').on('click', '.edd-payment-new-customer, .edd-payment-new-customer-cancel', function(e) {
471
  e.preventDefault();
472
- $('.customer-info').toggle();
473
- $('.new-customer').toggle();
 
 
 
 
 
 
 
 
 
 
474
 
475
  var new_customer = $( '#edd-new-customer' );
476
  if ($('.new-customer').is(":visible")) {
@@ -781,8 +797,9 @@ jQuery(document).ready(function ($) {
781
  type_select : function() {
782
 
783
  $('#edd-edit-discount #edd-type, #edd-add-discount #edd-type').change(function() {
784
-
785
- $('.edd-amount-description').toggle();
 
786
 
787
  });
788
 
213
 
214
  prices : function() {
215
  $( document.body ).on( 'change', '#edd_variable_pricing', function(e) {
216
+ var checked = $(this).is(':checked');
217
+ var target = $( '.edd_pricing_fields,.edd_repeatable_table .pricing' );
218
+ if ( checked ) {
219
+ target.show();
220
+ } else {
221
+ target.hide();
222
+ }
223
  });
224
  },
225
 
475
 
476
  $('#edd-customer-details').on('click', '.edd-payment-new-customer, .edd-payment-new-customer-cancel', function(e) {
477
  e.preventDefault();
478
+
479
+ var new_customer = $(this).hasClass('edd-payment-new-customer');
480
+ var cancel = $(this).hasClass('edd-payment-new-customer-cancel');
481
+
482
+ if ( new_customer ) {
483
+ $('.customer-info').hide();
484
+ $('.new-customer').show();
485
+ } else if( cancel) {
486
+ $('.customer-info').show();
487
+ $('.new-customer').hide();
488
+ }
489
+
490
 
491
  var new_customer = $( '#edd-new-customer' );
492
  if ($('.new-customer').is(":visible")) {
797
  type_select : function() {
798
 
799
  $('#edd-edit-discount #edd-type, #edd-add-discount #edd-type').change(function() {
800
+ var val = $(this).val();
801
+ $('.edd-amount-description').hide();
802
+ $('.edd-amount-description.' + val + '-discount').show();
803
 
804
  });
805
 
assets/js/admin-scripts.min.js CHANGED
@@ -1,2 +1,2 @@
1
- jQuery(document).ready(function(a){a(".edd-help-tip").tooltip({content:function(){return a(this).prop("title")},tooltipClass:"edd-ui-tooltip",position:{my:"center top",at:"center bottom+10",collision:"flipfit"},hide:{duration:200},show:{duration:200}});var b={init:function(){this.add(),this.move(),this.remove(),this.type(),this.prices(),this.files(),this.updatePrices()},clone_repeatable:function(b){var c=highest=1;return b.parent().find("tr.edd_repeatable_row").each(function(){var b=a(this).data("key");parseInt(b)>highest&&(highest=b)}),c=highest+=1,clone=b.clone(),clone.find("select").each(function(){a(this).val(b.find('select[name="'+a(this).attr("name")+'"]').val())}),clone.removeClass("edd_add_blank"),clone.attr("data-key",c),clone.find("td input, td select, textarea").val(""),clone.find("input, select, textarea").each(function(){var b=a(this).attr("name"),d=a(this).attr("id");b&&(b=b.replace(/\[(\d+)\]/,"["+parseInt(c)+"]"),a(this).attr("name",b)),a(this).attr("data-key",c),"undefined"!=typeof d&&(d=d.replace(/(\d+)/,parseInt(c)),a(this).attr("id",d))}),clone.find("span.edd_price_id").each(function(){a(this).text(parseInt(c))}),clone.find("span.edd_file_id").each(function(){a(this).text(parseInt(c))}),clone.find(".edd_repeatable_default_input").each(function(){a(this).val(parseInt(c)).removeAttr("checked")}),clone.find(".search-choice").remove(),clone.find(".chosen-container").remove(),clone},add:function(){a(document.body).on("click",".submit .edd_add_repeatable",function(c){c.preventDefault();var d=a(this),e=d.parent().parent().prev("tr"),f=b.clone_repeatable(e);f.insertAfter(e).find("input, textarea, select").filter(":visible").eq(0).focus(),f.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}),f.find(".edd-select-chosen").css("width","100%"),f.find(".edd-select-chosen .chosen-search input").attr("placeholder",edd_vars.search_placeholder)})},move:function(){a(".edd_repeatable_table tbody").sortable({handle:".edd_draghandle",items:".edd_repeatable_row",opacity:.6,cursor:"move",axis:"y",update:function(){var b=0;a(this).find("tr").each(function(){a(this).find("input.edd_repeatable_index").each(function(){a(this).val(b)}),b++})}})},remove:function(){a(document.body).on("click",".edd_remove_repeatable",function(b){b.preventDefault();var g,h,i,c=a(this).parent().parent("tr"),d=c.parent().find("tr").length-1,e=a(this).data("type"),f="tr.edd_repeatable_"+e+"s";if(g=a(this).is(".ui-sortable tr:first-child .edd_remove_repeatable:first-child")?c.next("tr"):c.prev("tr"),h=g.find("select, input, textarea, button").filter(":visible"),i=h.eq(0),"price"===e){var j=c.data("key");a('.edd_repeatable_condition_field option[value="'+j+'"]').remove()}if(d>1)a("input, select",c).val(""),c.fadeOut("fast").remove(),i.focus();else switch(e){case"price":alert(edd_vars.one_price_min);break;case"file":a("input, select",c).val("");break;default:alert(edd_vars.one_field_min)}a(f).each(function(b){a(this).find("input, select").each(function(){var c=a(this).attr("name");c=c.replace(/\[(\d+)\]/,"["+b+"]"),a(this).attr("name",c).attr("id",c)})})})},type:function(){a(document.body).on("change","#_edd_product_type",function(b){var c=a("#edd_products"),d=a("#edd_download_files"),e=a("#edd_download_limit_wrap");"bundle"===a(this).val()?(c.show(),d.hide(),e.hide()):(c.hide(),d.show(),e.show())})},prices:function(){a(document.body).on("change","#edd_variable_pricing",function(b){a(".edd_pricing_fields,.edd_repeatable_table .pricing").toggle()})},files:function(){if("undefined"==typeof wp||"1"!==edd_vars.new_media_ui)a(".edd_upload_file_button").length>0&&(window.formfield="",a(document.body).on("click",".edd_upload_file_button",function(b){if(b.preventDefault(),window.formfield=a(this).parent().prev(),window.tbframe_interval=setInterval(function(){jQuery("#TB_iframeContent").contents().find(".savesend .button").val(edd_vars.use_this_file).end().find("#insert-gallery, .wp-post-thumbnail").hide()},2e3),null!=edd_vars.post_id)var c="post_id="+edd_vars.post_id+"&";tb_show(edd_vars.add_new_download,"media-upload.php?"+c+"TB_iframe=true")}),window.edd_send_to_editor=window.send_to_editor,window.send_to_editor=function(b){window.formfield?(imgurl=a("a","<div>"+b+"</div>").attr("href"),window.formfield.val(imgurl),window.clearInterval(window.tbframe_interval),tb_remove()):window.edd_send_to_editor(b),window.send_to_editor=window.edd_send_to_editor,window.formfield="",window.imagefield=!1});else{var c;window.formfield="",a(document.body).on("click",".edd_upload_file_button",function(d){d.preventDefault();var e=a(this);return window.formfield=a(this).closest(".edd_repeatable_upload_wrapper"),c?void c.open():(c=wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:e.data("uploader-title"),button:{text:e.data("uploader-button-text")},multiple:"0"==a(this).data("multiple")?!1:!0}),c.on("menu:render:default",function(a){var b={};a.unset("library-separator"),a.unset("gallery"),a.unset("featured-image"),a.unset("embed"),a.set(b)}),c.on("insert",function(){var a=c.state().get("selection");a.each(function(a,c){if(a=a.toJSON(),0===c)window.formfield.find(".edd_repeatable_attachment_id_field").val(a.id),window.formfield.find(".edd_repeatable_upload_field").val(a.url),window.formfield.find(".edd_repeatable_name_field").val(a.title);else{var d=window.formfield,e=b.clone_repeatable(d);e.find(".edd_repeatable_attachment_id_field").val(a.id),e.find(".edd_repeatable_upload_field").val(a.url),a.title.length>0?e.find(".edd_repeatable_name_field").val(a.title):e.find(".edd_repeatable_name_field").val(a.filename),e.insertAfter(d)}})}),void c.open())});var c;window.formfield=""}},updatePrices:function(){a("#edd_price_fields").on("keyup",".edd_variable_prices_name",function(){var b=a(this).parents("tr").data("key"),c=a(this).val(),d=a(".edd_repeatable_condition_field option[value="+b+"]");d.length>0?d.text(c):a(".edd_repeatable_condition_field").append(a("<option></option>").attr("value",b).text(c))})}};b.init();var c=a(".edd_datepicker");if(c.length>0){var d="mm/dd/yy";c.datepicker({dateFormat:d})}var e={init:function(){this.edit_address(),this.remove_download(),this.add_download(),this.new_customer(),this.recalculate_total(),this.variable_prices_check(),this.add_note(),this.remove_note(),this.resend_receipt(),this.copy_download_link()},edit_address:function(){a('select[name="edd-payment-address[0][country]"]').change(function(){var b=a(this);return data={action:"edd_get_shop_states",country:b.val(),field_name:"edd-payment-address[0][state]"},a.post(ajaxurl,data,function(b){var c=a("#edd-order-address-state-wrap select, #edd-order-address-state-wrap input");a("#edd-order-address-state-wrap .chosen-container").remove(),"nostates"==b?c.replaceWith('<input type="text" name="edd-payment-address[0][state]" value="" class="edd-edit-toggles medium-text"/>'):c.replaceWith(b)}),!1})},remove_download:function(){a("#edd-purchased-files").on("click",".edd-order-remove-download",function(){var b=a(document.body).find("#edd-purchased-files > .row").length;if(1===b)return alert(edd_vars.one_download_min),!1;if(confirm(edd_vars.delete_payment_download)){var c=a(this).data("key"),e=(a(".edd-payment-id").val(),a('input[name="edd-payment-details-downloads['+c+'][id]"]').val()),f=a('input[name="edd-payment-details-downloads['+c+'][price_id]"]').val(),g=a('input[name="edd-payment-details-downloads['+c+'][quantity]"]').val(),h=a('input[name="edd-payment-details-downloads['+c+'][amount]"]').val();if(a('input[name="edd-payment-details-downloads['+c+'][fees]"]'))var i=a.parseJSON(a('input[name="edd-payment-details-downloads['+c+'][fees]"]').val());var j=a('input[name="edd-payment-removed"]').val();j=a.parseJSON(j),j.length<1&&(j={});var k=[{id:e,price_id:f,quantity:g,amount:h,cart_index:c}];j[c]=k,a('input[name="edd-payment-removed"]').val(JSON.stringify(j)),a(this).parent().parent().parent().remove(),i&&i.length&&a.each(i,function(b,c){a('*li[data-fee-id="'+c+'"]').remove()}),a("#edd-payment-downloads-changed").val(1),a(".edd-order-payment-recalc-totals").show()}return!1})},new_customer:function(){a("#edd-customer-details").on("click",".edd-payment-new-customer, .edd-payment-new-customer-cancel",function(b){b.preventDefault(),a(".customer-info").toggle(),a(".new-customer").toggle();var c=a("#edd-new-customer");a(".new-customer").is(":visible")?c.val(1):c.val(0)})},add_download:function(){a("#edd-purchased-files").on("click","#edd-order-add-download",function(b){b.preventDefault();var c=a("#edd_order_download_select"),d=a("#edd-order-download-quantity"),e=a("#edd-order-download-amount"),f=a(".edd_price_options_select option:selected"),g=c.val(),h=c.find(":selected").text(),i=d.val(),j=e.val(),k=f.val(),l=f.text();if(1>g)return!1;if(j||(j=0),j=parseFloat(j),isNaN(j))return alert(edd_vars.numeric_item_price),!1;var m=j;if("1"===edd_vars.quantities_enabled){if(isNaN(parseInt(i)))return alert(edd_vars.numeric_quantity),!1;j*=i}j=j.toFixed(edd_vars.currency_decimals);var n=j+edd_vars.currency_sign;"before"===edd_vars.currency_pos&&(n=edd_vars.currency_sign+j),l&&(h=h+" - "+l);var o=a("#edd-purchased-files div.row").length,p=a("#edd-purchased-files div.row:last").clone();p.find(".download span").html('<a href="post.php?post='+g+'&action=edit"></a>'),p.find(".download span a").text(h),p.find(".price-text").text(n),p.find(".item-quantity").text(i),p.find(".item-price").text(edd_vars.currency_sign+(j/i).toFixed(edd_vars.currency_decimals)),p.find("input.edd-payment-details-download-id").val(g),p.find("input.edd-payment-details-download-price-id").val(k),p.find("input.edd-payment-details-download-item-price").val(m),p.find("input.edd-payment-details-download-amount").val(j),p.find("input.edd-payment-details-download-quantity").val(i),p.find("input.edd-payment-details-download-has-log").val(0),p.find("input").each(function(){var b=a(this).attr("name");b=b.replace(/\[(\d+)\]/,"["+parseInt(o)+"]"),a(this).attr("name",b).attr("id",b)}),a("#edd-payment-downloads-changed").val(1),a(p).insertAfter("#edd-purchased-files div.row:last"),a(".edd-order-payment-recalc-totals").show()})},recalculate_total:function(){a("#edd-order-recalc-total").on("click",function(b){b.preventDefault();var c=0,d=a("#edd-purchased-files .row .edd-payment-details-download-amount");d.length&&d.each(function(){c+=parseFloat(a(this).val())}),a(".edd-payment-fees").length&&a(".edd-payment-fees span.fee-amount").each(function(){c+=parseFloat(a(this).data("fee"))}),a("input[name=edd-payment-total]").val(c.toFixed(edd_vars.currency_decimals))})},variable_prices_check:function(){a("#edd-purchased-files").on("change","select#edd_order_download_select",function(){var b=a(this),c=b.val();if(parseInt(c)>0){var d={action:"edd_check_for_download_price_variations",download_id:c};a.ajax({type:"POST",data:d,url:ajaxurl,success:function(c){a(".edd_price_options_select").remove(),a(c).insertAfter(b.next())}}).fail(function(a){window.console&&window.console.log&&console.log(a)})}})},add_note:function(){a("#edd-add-payment-note").on("click",function(b){b.preventDefault();var c={action:"edd_insert_payment_note",payment_id:a(this).data("payment-id"),note:a("#edd-payment-note").val()};if(c.note)a.ajax({type:"POST",data:c,url:ajaxurl,success:function(b){a("#edd-payment-notes-inner").append(b),a(".edd-no-payment-notes").hide(),a("#edd-payment-note").val("")}}).fail(function(a){window.console&&window.console.log&&console.log(a)});else{var d=a("#edd-payment-note").css("border-color");a("#edd-payment-note").css("border-color","red"),setTimeout(function(){a("#edd-payment-note").css("border-color",d)},500)}})},remove_note:function(){a(document.body).on("click",".edd-delete-payment-note",function(b){if(b.preventDefault(),confirm(edd_vars.delete_payment_note)){var c={action:"edd_delete_payment_note",payment_id:a(this).data("payment-id"),note_id:a(this).data("note-id")};return a.ajax({type:"POST",data:c,url:ajaxurl,success:function(b){return a("#edd-payment-note-"+c.note_id).remove(),a(".edd-payment-note").length||a(".edd-no-payment-notes").show(),!1}}).fail(function(a){window.console&&window.console.log&&console.log(a)}),!0}})},resend_receipt:function(){var b=a(".edd-order-resend-receipt-addresses");a(document.body).on("click","#edd-select-receipt-email",function(a){a.preventDefault(),b.slideDown()}),a(document.body).on("change",".edd-order-resend-receipt-email",function(){var b=a("#edd-select-receipt-email").prop("href")+"&email="+a(this).val();confirm(edd_vars.resend_receipt)&&(window.location=b)}),a(document.body).on("click","#edd-resend-receipt",function(a){return confirm(edd_vars.resend_receipt)})},copy_download_link:function(){a(document.body).on("click",".edd-copy-download-link",function(b){b.preventDefault();var c=a(this),d={action:"edd_get_file_download_link",payment_id:a('input[name="edd_payment_id"]').val(),download_id:c.data("download-id"),price_id:c.data("price-id")};a.ajax({type:"POST",data:d,url:ajaxurl,success:function(b){return a("#edd-download-link").dialog({width:400}).html('<textarea rows="10" cols="40" id="edd-download-link-textarea">'+b+"</textarea>"),a("#edd-download-link-textarea").focus().select(),!1}}).fail(function(a){window.console&&window.console.log&&console.log(a)})})}};e.init();var f={init:function(){this.type_select(),this.product_requirements()},type_select:function(){a("#edd-edit-discount #edd-type, #edd-add-discount #edd-type").change(function(){a(".edd-amount-description").toggle()})},product_requirements:function(){a("#products").change(function(){var b=a("#edd-discount-product-conditions");a(this).val()?b.show():b.hide()})}};f.init();var g={init:function(){this.date_options(),this.customers_export()},date_options:function(){a("#edd-graphs-date-options").change(function(){var b=a(this),c=a("#edd-date-range-options");"other"===b.val()?c.show():c.hide()})},customers_export:function(){a("#edd_customer_export_download").change(function(){var b=a(this),c=a("option:selected",b).val(),d=a("#edd_customer_export_option");if("0"===b.val()?d.show():d.hide(),0!=parseInt(c)){var e={action:"edd_check_for_download_price_variations",download_id:c,all_prices:!0},f=a(".edd_price_options_select");a.post(ajaxurl,e,function(b){f.remove(),a("#edd_customer_export_download_chosen").after(b)})}else f.remove()})}};g.init();var h={init:function(){this.general(),this.taxes(),this.emails(),this.misc()},general:function(){var b=a(".edd-color-picker");if(b.length&&b.wpColorPicker(),"undefined"==typeof wp||"1"!==edd_vars.new_media_ui){var c=a(".edd_settings_upload_button");c.length>0&&(window.formfield="",a(document.body).on("click",c,function(b){b.preventDefault(),window.formfield=a(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(b){window.formfield?(imgurl=a("a","<div>"+b+"</div>").attr("href"),window.formfield.val(imgurl),window.clearInterval(window.tbframe_interval),tb_remove()):window.edd_send_to_editor(b),window.send_to_editor=window.edd_send_to_editor,window.formfield="",window.imagefield=!1})}else{var d;window.formfield="",a(document.body).on("click",".edd_settings_upload_button",function(b){b.preventDefault();var c=a(this);return window.formfield=a(this).parent().prev(),d?void d.open():(d=wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:c.data("uploader_title"),button:{text:c.data("uploader_button_text")},multiple:!1}),d.on("menu:render:default",function(a){var b={};a.unset("library-separator"),a.unset("gallery"),a.unset("featured-image"),a.unset("embed"),a.set(b)}),d.on("insert",function(){var a=d.state().get("selection");a.each(function(a,b){a=a.toJSON(),window.formfield.val(a.url)})}),void d.open())});var d;window.formfield=""}},taxes:function(){var b=a("select.edd-no-states");b.length&&b.closest("tr").hide(),a('select[name="edd_settings[base_country]"]').change(function(){var b=a(this),c=b.closest("tr");return data={action:"edd_get_shop_states",country:a(this).val(),field_name:"edd_settings[base_state]"},a.post(ajaxurl,data,function(a){"nostates"==a?c.next().hide():(c.next().show(),c.next().find("select").replaceWith(a))}),!1}),a(document.body).on("change","#edd_tax_rates select.edd-tax-country",function(){var b=a(this);return data={action:"edd_get_shop_states",country:a(this).val(),field_name:b.attr("name").replace("country","state")},a.post(ajaxurl,data,function(a){if("nostates"==a){var c='<input type="text" name="'+data.field_name+'" value=""/>';b.parent().next().find("select").replaceWith(c)}else b.parent().next().find("input,select").show(),b.parent().next().find("input,select").replaceWith(a)}),!1}),a("#edd_add_tax_rate").on("click",function(){var b=a("#edd_tax_rates tr:last"),c=b.clone(),d=b.parent().find("tr").length;return c.find("td input").not(":input[type=checkbox]").val(""),c.find('td [type="checkbox"]').attr("checked",!1),c.find("input, select").each(function(){var b=a(this).attr("name");b=b.replace(/\[(\d+)\]/,"["+parseInt(d)+"]"),a(this).attr("name",b).attr("id",b)}),c.find("label").each(function(){var b=a(this).attr("for");b=b.replace(/\[(\d+)\]/,"["+parseInt(d)+"]"),a(this).attr("for",b)}),c.insertAfter(b),!1}),a(document.body).on("click","#edd_tax_rates .edd_remove_tax_rate",function(){if(confirm(edd_vars.delete_tax_rate)){var b=a("#edd_tax_rates tr:visible"),c=b.length;2===c?(a("#edd_tax_rates select").val(""),a('#edd_tax_rates input[type="text"]').val(""),a('#edd_tax_rates input[type="number"]').val(""),a('#edd_tax_rates input[type="checkbox"]').attr("checked",!1)):a(this).closest("tr").remove(),a("#edd_tax_rates tr").each(function(b){a(this).children().find("input, select").each(function(){var c=a(this).attr("name");c=c.replace(/\[(\d+)\]/,"["+(b-1)+"]"),a(this).attr("name",c).attr("id",c)})})}return!1})},emails:function(){var b=a("#email-preview-wrap");if(b.length){var c=a("#email-preview");b.colorbox({inline:!0,href:c,width:"80%",height:"auto"})}},misc:function(){var b=a('select[name="edd_settings[download_method]"]'),c=b.parent().parent().next();"direct"==b.val()&&(c.hide(),c.find("input").prop("checked",!1)),b.on("change",function(){"direct"==a(this).val()?(c.hide(),c.find("input").prop("checked",!1)):c.show()})}};h.init(),a(".download_page_edd-payment-history .row-actions .delete a, a.edd-delete-payment").on("click",function(){return confirm(edd_vars.delete_payment)?!0:!1}),a("#the-list").on("click",".editinline",function(){var b=a(this).closest("tr").attr("id");b=b.replace("post-","");var c=a("#post-"+b),d=c.find(".column-price .downloadprice-"+b).val();d!=a("#post-"+b+".column-price .downloadprice-"+b).val()?a(".regprice","#edd-download-data").val(d).attr("disabled",!1):a(".regprice","#edd-download-data").val(edd_vars.quick_edit_warning).attr("disabled","disabled")}),a(document.body).on("click","#bulk_edit",function(){var b=a("#bulk-edit"),c=new Array;b.find("#bulk-titles").children().each(function(){c.push(a(this).attr("id").replace(/^(ttle)/i,""))});var d=a('#edd-download-data input[name="_edd_regprice"]').val(),e={action:"edd_save_bulk_edit",edd_bulk_nonce:c,post_ids:c,price:d};a.post(ajaxurl,e)}),a(".edd-select-chosen").chosen({inherit_select_classes:!0,placeholder_text_single:edd_vars.one_option,placeholder_text_multiple:edd_vars.one_or_more_option}),a(".edd-select-chosen .chosen-search input").each(function(){var b=a(this).parent().parent().parent().prev("select.edd-select-chosen").data("search-type"),c="";if("download"===b)c=edd_vars.search_placeholder;else{var b="search_placeholder_"+b;edd_vars[b]&&(c=edd_vars[b])}a(this).attr("placeholder",c)}),a(".chosen-choices").on("click",function(){a(this).children("li").children("input").attr("placeholder",edd_vars.type_to_search)});var i,j=342;a(document.body).on("keyup",".edd-select.chosen-container .chosen-search input, .edd-select.chosen-container .search-field input",function(b){var c=a(this).val(),d=a(this).closest(".edd-select-chosen"),e=d.attr("id").replace("_chosen",""),f=d.hasClass("no-bundles"),g=d.hasClass("variations"),h=b.which,k="edd_download_search";if(d.prev().data("search-type")){if("no_ajax"==d.prev().data("search-type"))return;k="edd_"+d.prev().data("search-type")+"_search"}c.length<=3&&"edd_download_search"==k||16==h||13==h||91==h||17==h||37==h||38==h||39==h||40==h||(clearTimeout(i),i=setTimeout(function(){a.ajax({type:"GET",url:ajaxurl,data:{action:k,s:c,no_bundles:f,variations:g},dataType:"json",beforeSend:function(){a("ul.chosen-results").empty()},success:function(b){a("#"+e+" option:not(:selected)").remove(),a.each(b,function(b,c){a("#"+e+' option[value="'+c.id+'"]').length||a("#"+e).prepend('<option value="'+c.id+'">'+c.name+"</option>")}),a(".edd-select-chosen").trigger("chosen:updated"),a("#"+e).next().find("input").val(c)}}).fail(function(a){window.console&&window.console.log&&console.log(a)}).done(function(a){})},j))}),a("#post").on("click",".edd-thickbox",function(){a(".edd-select-chosen","#choose-download").css("width","100%")});var k={init:function(){this.revoke_api_key(),this.regenerate_api_key(),this.create_api_key(),this.recount_stats()},revoke_api_key:function(){a(document.body).on("click",".edd-revoke-api-key",function(a){return confirm(edd_vars.revoke_api_key)})},regenerate_api_key:function(){a(document.body).on("click",".edd-regenerate-api-key",function(a){return confirm(edd_vars.regenerate_api_key)})},create_api_key:function(){a(document.body).on("submit","#api-key-generate-form",function(b){var c=a('input[type="text"][name="user_id"]');c.css("border-color","#ddd");var d=c.val();return d.length<1||0==d?(c.css("border-color","#ff0000"),!1):void 0})},recount_stats:function(){a("body").on("change","#recount-stats-type",function(){var b=a("#edd-tools-recount-form"),c=a("option:selected",this).data("type"),d=a("#recount-stats-submit"),e=a("#tools-product-dropdown");if(b.find(".notice-wrap").remove(),d.removeClass("button-disabled").attr("disabled",!1),e.hide(),a(".edd-recount-stats-descriptions span").hide(),"recount-download"===c)e.show(),e.find(".edd-select-chosen").css("width","auto");else if("reset-stats"===c){b.append('<div class="notice-wrap"></div>');var f=b.find(".notice-wrap");f.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>"),a("#recount-stats-submit").addClass("button-disabled").attr("disabled","disabled")}else e.hide(),e.val(0);a("#"+c).show()}),a("body").on("change","#confirm-reset",function(){var b=a(this).is(":checked");b?a("#recount-stats-submit").removeClass("button-disabled").removeAttr("disabled"):a("#recount-stats-submit").addClass("button-disabled").attr("disabled","disabled")}),a("#edd-tools-recount-form").submit(function(b){var c=a("#recount-stats-type").val(),d=a(this),e=a("option:selected",this).data("type");if("reset-stats"===e){var f=a("#confirm-reset").is(":checked");if(f)return!0;h=!0}d.find(".notice-wrap").remove(),d.append('<div class="notice-wrap"></div>');var g=d.find(".notice-wrap"),h=!1;if((null===c||0===c)&&(g.html('<div class="updated error"><p>'+edd_vars.batch_export_no_class+"</p></div>"),h=!0),"recount-download"===e){var i=a('select[name="download_id"]').val();0==i&&(g.html('<div class="updated error"><p>'+edd_vars.batch_export_no_reqs+"</p></div>"),h=!0)}return h?(d.find(".button-disabled").removeClass("button-disabled"),!1):void 0})}};k.init();var l={init:function(){this.submit(),this.dismiss_message()},submit:function(){var b=this;a(document.body).on("submit",".edd-export-form",function(c){c.preventDefault();var d=a(this).find('input[type="submit"]');if(!d.hasClass("button-disabled")){var e=a(this).serialize();d.addClass("button-disabled"),a(this).find(".notice-wrap").remove(),a(this).append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),b.process_step(1,e,b)}})},process_step:function(b,c,d){a.ajax({type:"POST",url:ajaxurl,data:{form:c,action:"edd_do_ajax_export",step:b},dataType:"json",success:function(b){if("done"==b.step||b.error||b.success){var e=a(".edd-export-form").find(".edd-progress").parent().parent(),f=e.find(".notice-wrap");if(e.find(".button-disabled").removeClass("button-disabled"),b.error){var g=b.message;f.html('<div class="updated error"><p>'+g+"</p></div>")}else if(b.success){var h=b.message;f.html('<div id="edd-batch-success" class="updated notice is-dismissible"><p>'+h+'<span class="notice-dismiss"></span></p></div>')}else f.remove(),window.location=b.url}else a(".edd-progress div").animate({width:b.percentage+"%"},50,function(){}),d.process_step(parseInt(b.step),c,d)}}).fail(function(a){window.console&&window.console.log&&console.log(a)})},dismiss_message:function(){a("body").on("click","#edd-batch-success .notice-dismiss",function(){a("#edd-batch-success").parent().slideUp("fast")})}};l.init();var m={init:function(){this.submit()},submit:function(){var b=this;a(".edd-import-form").ajaxForm({beforeSubmit:b.before_submit,success:b.success,complete:b.complete,dataType:"json",error:b.error})},before_submit:function(b,c,d){if(c.find(".notice-wrap").remove(),c.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 e=a(".edd-import-form").find(".edd-progress").parent().parent(),f=e.find(".notice-wrap");return e.find(".button-disabled").removeClass("button-disabled"),f.html('<div class="update error"><p>'+edd_vars.unsupported_browser+"</p></div>"),!1}},success:function(a,b,c,d){},complete:function(b){var c=jQuery.parseJSON(b.responseText);if(c.success){var d=a(".edd-import-form .notice-wrap").parent();d.find(".edd-import-file-wrap,.notice-wrap").remove(),d.find(".edd-import-options").slideDown();var e=d.find("select.edd-import-csv-column"),g=(e.parent().parent(),""),h=c.data.columns.sort(function(a,b){return b>a?-1:a>b?1:0});a.each(h,function(a,b){g+='<option value="'+b+'">'+b+"</option>"}),e.append(g),e.on("change",function(){var b=a(this).val();b&&0!=c.data.first_row[b]?a(this).parent().next().html(c.data.first_row[b]):a(this).parent().next().html("")}),a("body").on("click",".edd-import-proceed",function(a){a.preventDefault(),d.append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),c.data.mapping=d.serialize(),m.process_step(1,c.data,self)})}else m.error(b)},error:function(b){var c=jQuery.parseJSON(b.responseText),d=a(".edd-import-form").find(".edd-progress").parent().parent(),e=d.find(".notice-wrap");d.find(".button-disabled").removeClass("button-disabled"),c.data.error?e.html('<div class="update error"><p>'+c.data.error+"</p></div>"):e.remove()},process_step:function(b,c,d){a.ajax({type:"POST",url:ajaxurl,data:{form:c.form,nonce:c.nonce,"class":c["class"],upload:c.upload,mapping:c.mapping,action:"edd_do_ajax_import",step:b},dataType:"json",success:function(b){if("done"==b.data.step||b.data.error){var e=a(".edd-import-form").find(".edd-progress").parent().parent(),f=e.find(".notice-wrap");e.find(".button-disabled").removeClass("button-disabled"),b.data.error?f.html('<div class="update error"><p>'+b.data.error+"</p></div>"):(e.find(".edd-import-options").hide(),a("html, body").animate({scrollTop:e.parent().offset().top},500),f.html('<div class="updated"><p>'+b.data.message+"</p></div>"))}else a(".edd-progress div").animate({width:b.data.percentage+"%"},50,function(){}),m.process_step(parseInt(b.data.step),c,d)}}).fail(function(a){window.console&&window.console.log&&console.log(a)})}};m.init();var n={vars:{customer_card_wrap_editable:a(".edd-customer-card-wrapper .editable"),customer_card_wrap_edit_item:a(".edd-customer-card-wrapper .edit-item"),user_id:a('input[name="customerinfo[user_id]"]'),state_input:a(':input[name="customerinfo[state]"]'),note:a("#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(){a(document.body).on("click","#edit-customer",function(a){a.preventDefault(),n.vars.customer_card_wrap_editable.hide(),n.vars.customer_card_wrap_edit_item.fadeIn().css("display","block")})},add_email:function(){a(document.body).on("click","#add-customer-email",function(b){b.preventDefault();var c=a(this),d=c.parent();d.parent().find(".notice-wrap").remove(),d.find(".spinner").css("visibility","visible"),c.attr("disabled",!0);var e=d.find('input[name="customer-id"]').val(),f=d.find('input[name="additional-email"]').val(),g=d.find('input[name="make-additional-primary"]').is(":checked"),h=d.find('input[name="add_email_nonce"]').val(),i={edd_action:"customer-add-email",customer_id:e,email:f,primary:g,_wpnonce:h};a.post(ajaxurl,i,function(a){!0===a.success?window.location.href=a.redirect:(c.attr("disabled",!1),d.after('<div class="notice-wrap"><div class="notice notice-error inline"><p>'+a.message+"</p></div></div>"),d.find(".spinner").css("visibility","hidden"))},"json")})},user_search:function(){a(document.body).on("click.eddSelectUser",".edd_user_search_results a",function(b){b.preventDefault();var c=a(this).data("userid");n.vars.user_id.val(c)})},remove_user:function(){a(document.body).on("click","#disconnect-customer",function(b){b.preventDefault();var c=a('input[name="customerinfo[id]"]').val(),d={edd_action:"disconnect-userid",customer_id:c,_wpnonce:a("#edit-customer-info #_wpnonce").val()};a.post(ajaxurl,d,function(a){window.location.href=window.location.href},"json")})},cancel_edit:function(){a(document.body).on("click","#edd-edit-customer-cancel",function(b){b.preventDefault(),n.vars.customer_card_wrap_edit_item.hide(),n.vars.customer_card_wrap_editable.show(),a(".edd_user_search_results").html("")})},change_country:function(){a('select[name="customerinfo[country]"]').change(function(){var b=a(this);return data={action:"edd_get_shop_states",country:b.val(),field_name:"customerinfo[state]"},a.post(ajaxurl,data,function(a){"nostates"==a?n.vars.state_input.replaceWith('<input type="text" name="'+data.field_name+'" value="" class="edd-edit-toggles medium-text"/>'):n.vars.state_input.replaceWith(a)}),!1})},add_note:function(){a(document.body).on("click","#add-customer-note",function(b){b.preventDefault();var c={edd_action:"add-customer-note",customer_id:a("#customer-id").val(),customer_note:n.vars.note.val(),add_customer_note_nonce:a("#add_customer_note_nonce").val()};if(c.customer_note)a.ajax({type:"POST",data:c,url:ajaxurl,success:function(b){a("#edd-customer-notes").prepend(b),a(".edd-no-customer-notes").hide(),n.vars.note.val("")}}).fail(function(a){window.console&&window.console.log&&console.log(a)});else{var d=n.vars.note.css("border-color");n.vars.note.css("border-color","red"),setTimeout(function(){n.vars.note.css("border-color",d)},500)}})},delete_checked:function(){a("#edd-customer-delete-confirm").change(function(){var b=a("#edd-customer-delete-records"),c=a("#edd-delete-customer");a(this).prop("checked")?(b.attr("disabled",!1),c.attr("disabled",!1)):(b.attr("disabled",!0),b.prop("checked",!1),c.attr("disabled",!0))})}};n.init(),a(".edd-ajax-user-search").keyup(function(){var b=a(this).val(),c="";a(this).data("exclude")&&(c=a(this).data("exclude")),a(".edd-ajax").show(),data={action:"edd_search_users",user_name:b,exclude:c},document.body.style.cursor="wait",a.ajax({type:"POST",data:data,dataType:"json",url:ajaxurl,success:function(b){a(".edd-ajax").hide(),a(".edd_user_search_results").removeClass("hidden"),a(".edd_user_search_results span").html(""),a(b.results).appendTo(".edd_user_search_results span"),
2
- document.body.style.cursor="default"}})}),a(document.body).on("click.eddSelectUser",".edd_user_search_results span a",function(b){b.preventDefault();var c=a(this).data("login");a(".edd-ajax-user-search").val(c),a(".edd_user_search_results").addClass("hidden"),a(".edd_user_search_results span").html("")}),a(document.body).on("click.eddCancelUserSearch",".edd_user_search_results a.edd-ajax-user-cancel",function(b){b.preventDefault(),a(".edd-ajax-user-search").val(""),a(".edd_user_search_results").addClass("hidden"),a(".edd_user_search_results span").html("")}),a("#edd_dashboard_sales").length&&a.ajax({type:"GET",data:{action:"edd_load_dashboard_widget"},url:ajaxurl,success:function(b){a("#edd_dashboard_sales .inside").html(b)}}),a(document).on("keydown",".customer-note-input",function(b){13==b.keyCode&&(b.metaKey||b.ctrlKey)&&a("#add-customer-note").click()})});var eddFormatCurrency=function(a){var b=parseFloat(a),c=edd_vars.currency,d=edd_vars.currency_decimals;return b.toLocaleString(c,{style:"currency",currency:c,minimumFractionDigits:d,maximumFractionDigits:d})},eddFormatNumber=function(a){var b=parseFloat(a),c=edd_vars.currency;edd_vars.currency_decimals;return b.toLocaleString(c,{style:"decimal",minimumFractionDigits:0,maximumFractionDigits:0})},eddLabelFormatter=function(a,b){return'<div style="font-size:12px; text-align:center; padding:2px">'+a+"</div>"},eddLegendFormatterSales=function(a,b){var c=a.toLowerCase().replace(/\s/g,"-"),d='<div class="edd-legend-color" style="background-color: '+b.color+'"></div>',e='<div class="edd-pie-legend-item">'+a+": "+Math.round(b.percent)+"% ("+eddFormatNumber(b.data[0][1])+")</div>",f='<div id="'+b.edd_vars.id+c+'" class="edd-legend-item-wrapper">'+d+e+"</div>";return jQuery("#edd-pie-legend-"+b.edd_vars.id).append(f),f},eddLegendFormatterEarnings=function(a,b){var c=a.toLowerCase().replace(/\s/g,"-"),d='<div class="edd-legend-color" style="background-color: '+b.color+'"></div>',e='<div class="edd-pie-legend-item">'+a+": "+Math.round(b.percent)+"% ("+eddFormatCurrency(b.data[0][1])+")</div>",f='<div id="'+b.edd_vars.id+c+'" class="edd-legend-item-wrapper">'+d+e+"</div>";return jQuery("#edd-pie-legend-"+b.edd_vars.id).append(f),f};
1
+ jQuery(document).ready(function(a){a(".edd-help-tip").tooltip({content:function(){return a(this).prop("title")},tooltipClass:"edd-ui-tooltip",position:{my:"center top",at:"center bottom+10",collision:"flipfit"},hide:{duration:200},show:{duration:200}});var b={init:function(){this.add(),this.move(),this.remove(),this.type(),this.prices(),this.files(),this.updatePrices()},clone_repeatable:function(b){var c=highest=1;return b.parent().find("tr.edd_repeatable_row").each(function(){var b=a(this).data("key");parseInt(b)>highest&&(highest=b)}),c=highest+=1,clone=b.clone(),clone.find("select").each(function(){a(this).val(b.find('select[name="'+a(this).attr("name")+'"]').val())}),clone.removeClass("edd_add_blank"),clone.attr("data-key",c),clone.find("td input, td select, textarea").val(""),clone.find("input, select, textarea").each(function(){var b=a(this).attr("name"),d=a(this).attr("id");b&&(b=b.replace(/\[(\d+)\]/,"["+parseInt(c)+"]"),a(this).attr("name",b)),a(this).attr("data-key",c),"undefined"!=typeof d&&(d=d.replace(/(\d+)/,parseInt(c)),a(this).attr("id",d))}),clone.find("span.edd_price_id").each(function(){a(this).text(parseInt(c))}),clone.find("span.edd_file_id").each(function(){a(this).text(parseInt(c))}),clone.find(".edd_repeatable_default_input").each(function(){a(this).val(parseInt(c)).removeAttr("checked")}),clone.find(".search-choice").remove(),clone.find(".chosen-container").remove(),clone},add:function(){a(document.body).on("click",".submit .edd_add_repeatable",function(c){c.preventDefault();var d=a(this),e=d.parent().parent().prev("tr"),f=b.clone_repeatable(e);f.insertAfter(e).find("input, textarea, select").filter(":visible").eq(0).focus(),f.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}),f.find(".edd-select-chosen").css("width","100%"),f.find(".edd-select-chosen .chosen-search input").attr("placeholder",edd_vars.search_placeholder)})},move:function(){a(".edd_repeatable_table tbody").sortable({handle:".edd_draghandle",items:".edd_repeatable_row",opacity:.6,cursor:"move",axis:"y",update:function(){var b=0;a(this).find("tr").each(function(){a(this).find("input.edd_repeatable_index").each(function(){a(this).val(b)}),b++})}})},remove:function(){a(document.body).on("click",".edd_remove_repeatable",function(b){b.preventDefault();var g,h,i,c=a(this).parent().parent("tr"),d=c.parent().find("tr").length-1,e=a(this).data("type"),f="tr.edd_repeatable_"+e+"s";if(g=a(this).is(".ui-sortable tr:first-child .edd_remove_repeatable:first-child")?c.next("tr"):c.prev("tr"),h=g.find("select, input, textarea, button").filter(":visible"),i=h.eq(0),"price"===e){var j=c.data("key");a('.edd_repeatable_condition_field option[value="'+j+'"]').remove()}if(d>1)a("input, select",c).val(""),c.fadeOut("fast").remove(),i.focus();else switch(e){case"price":alert(edd_vars.one_price_min);break;case"file":a("input, select",c).val("");break;default:alert(edd_vars.one_field_min)}a(f).each(function(b){a(this).find("input, select").each(function(){var c=a(this).attr("name");c=c.replace(/\[(\d+)\]/,"["+b+"]"),a(this).attr("name",c).attr("id",c)})})})},type:function(){a(document.body).on("change","#_edd_product_type",function(b){var c=a("#edd_products"),d=a("#edd_download_files"),e=a("#edd_download_limit_wrap");"bundle"===a(this).val()?(c.show(),d.hide(),e.hide()):(c.hide(),d.show(),e.show())})},prices:function(){a(document.body).on("change","#edd_variable_pricing",function(b){var c=a(this).is(":checked"),d=a(".edd_pricing_fields,.edd_repeatable_table .pricing");c?d.show():d.hide()})},files:function(){if("undefined"==typeof wp||"1"!==edd_vars.new_media_ui)a(".edd_upload_file_button").length>0&&(window.formfield="",a(document.body).on("click",".edd_upload_file_button",function(b){if(b.preventDefault(),window.formfield=a(this).parent().prev(),window.tbframe_interval=setInterval(function(){jQuery("#TB_iframeContent").contents().find(".savesend .button").val(edd_vars.use_this_file).end().find("#insert-gallery, .wp-post-thumbnail").hide()},2e3),null!=edd_vars.post_id)var c="post_id="+edd_vars.post_id+"&";tb_show(edd_vars.add_new_download,"media-upload.php?"+c+"TB_iframe=true")}),window.edd_send_to_editor=window.send_to_editor,window.send_to_editor=function(b){window.formfield?(imgurl=a("a","<div>"+b+"</div>").attr("href"),window.formfield.val(imgurl),window.clearInterval(window.tbframe_interval),tb_remove()):window.edd_send_to_editor(b),window.send_to_editor=window.edd_send_to_editor,window.formfield="",window.imagefield=!1});else{var c;window.formfield="",a(document.body).on("click",".edd_upload_file_button",function(d){d.preventDefault();var e=a(this);return window.formfield=a(this).closest(".edd_repeatable_upload_wrapper"),c?void c.open():(c=wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:e.data("uploader-title"),button:{text:e.data("uploader-button-text")},multiple:"0"==a(this).data("multiple")?!1:!0}),c.on("menu:render:default",function(a){var b={};a.unset("library-separator"),a.unset("gallery"),a.unset("featured-image"),a.unset("embed"),a.set(b)}),c.on("insert",function(){var a=c.state().get("selection");a.each(function(a,c){if(a=a.toJSON(),0===c)window.formfield.find(".edd_repeatable_attachment_id_field").val(a.id),window.formfield.find(".edd_repeatable_upload_field").val(a.url),window.formfield.find(".edd_repeatable_name_field").val(a.title);else{var d=window.formfield,e=b.clone_repeatable(d);e.find(".edd_repeatable_attachment_id_field").val(a.id),e.find(".edd_repeatable_upload_field").val(a.url),a.title.length>0?e.find(".edd_repeatable_name_field").val(a.title):e.find(".edd_repeatable_name_field").val(a.filename),e.insertAfter(d)}})}),void c.open())});var c;window.formfield=""}},updatePrices:function(){a("#edd_price_fields").on("keyup",".edd_variable_prices_name",function(){var b=a(this).parents("tr").data("key"),c=a(this).val(),d=a(".edd_repeatable_condition_field option[value="+b+"]");d.length>0?d.text(c):a(".edd_repeatable_condition_field").append(a("<option></option>").attr("value",b).text(c))})}};b.init();var c=a(".edd_datepicker");if(c.length>0){var d="mm/dd/yy";c.datepicker({dateFormat:d})}var e={init:function(){this.edit_address(),this.remove_download(),this.add_download(),this.new_customer(),this.recalculate_total(),this.variable_prices_check(),this.add_note(),this.remove_note(),this.resend_receipt(),this.copy_download_link()},edit_address:function(){a('select[name="edd-payment-address[0][country]"]').change(function(){var b=a(this);return data={action:"edd_get_shop_states",country:b.val(),field_name:"edd-payment-address[0][state]"},a.post(ajaxurl,data,function(b){var c=a("#edd-order-address-state-wrap select, #edd-order-address-state-wrap input");a("#edd-order-address-state-wrap .chosen-container").remove(),"nostates"==b?c.replaceWith('<input type="text" name="edd-payment-address[0][state]" value="" class="edd-edit-toggles medium-text"/>'):c.replaceWith(b)}),!1})},remove_download:function(){a("#edd-purchased-files").on("click",".edd-order-remove-download",function(){var b=a(document.body).find("#edd-purchased-files > .row").length;if(1===b)return alert(edd_vars.one_download_min),!1;if(confirm(edd_vars.delete_payment_download)){var c=a(this).data("key"),e=(a(".edd-payment-id").val(),a('input[name="edd-payment-details-downloads['+c+'][id]"]').val()),f=a('input[name="edd-payment-details-downloads['+c+'][price_id]"]').val(),g=a('input[name="edd-payment-details-downloads['+c+'][quantity]"]').val(),h=a('input[name="edd-payment-details-downloads['+c+'][amount]"]').val();if(a('input[name="edd-payment-details-downloads['+c+'][fees]"]'))var i=a.parseJSON(a('input[name="edd-payment-details-downloads['+c+'][fees]"]').val());var j=a('input[name="edd-payment-removed"]').val();j=a.parseJSON(j),j.length<1&&(j={});var k=[{id:e,price_id:f,quantity:g,amount:h,cart_index:c}];j[c]=k,a('input[name="edd-payment-removed"]').val(JSON.stringify(j)),a(this).parent().parent().parent().remove(),i&&i.length&&a.each(i,function(b,c){a('*li[data-fee-id="'+c+'"]').remove()}),a("#edd-payment-downloads-changed").val(1),a(".edd-order-payment-recalc-totals").show()}return!1})},new_customer:function(){a("#edd-customer-details").on("click",".edd-payment-new-customer, .edd-payment-new-customer-cancel",function(b){b.preventDefault();var c=a(this).hasClass("edd-payment-new-customer"),d=a(this).hasClass("edd-payment-new-customer-cancel");c?(a(".customer-info").hide(),a(".new-customer").show()):d&&(a(".customer-info").show(),a(".new-customer").hide());var c=a("#edd-new-customer");a(".new-customer").is(":visible")?c.val(1):c.val(0)})},add_download:function(){a("#edd-purchased-files").on("click","#edd-order-add-download",function(b){b.preventDefault();var c=a("#edd_order_download_select"),d=a("#edd-order-download-quantity"),e=a("#edd-order-download-amount"),f=a(".edd_price_options_select option:selected"),g=c.val(),h=c.find(":selected").text(),i=d.val(),j=e.val(),k=f.val(),l=f.text();if(1>g)return!1;if(j||(j=0),j=parseFloat(j),isNaN(j))return alert(edd_vars.numeric_item_price),!1;var m=j;if("1"===edd_vars.quantities_enabled){if(isNaN(parseInt(i)))return alert(edd_vars.numeric_quantity),!1;j*=i}j=j.toFixed(edd_vars.currency_decimals);var n=j+edd_vars.currency_sign;"before"===edd_vars.currency_pos&&(n=edd_vars.currency_sign+j),l&&(h=h+" - "+l);var o=a("#edd-purchased-files div.row").length,p=a("#edd-purchased-files div.row:last").clone();p.find(".download span").html('<a href="post.php?post='+g+'&action=edit"></a>'),p.find(".download span a").text(h),p.find(".price-text").text(n),p.find(".item-quantity").text(i),p.find(".item-price").text(edd_vars.currency_sign+(j/i).toFixed(edd_vars.currency_decimals)),p.find("input.edd-payment-details-download-id").val(g),p.find("input.edd-payment-details-download-price-id").val(k),p.find("input.edd-payment-details-download-item-price").val(m),p.find("input.edd-payment-details-download-amount").val(j),p.find("input.edd-payment-details-download-quantity").val(i),p.find("input.edd-payment-details-download-has-log").val(0),p.find("input").each(function(){var b=a(this).attr("name");b=b.replace(/\[(\d+)\]/,"["+parseInt(o)+"]"),a(this).attr("name",b).attr("id",b)}),a("#edd-payment-downloads-changed").val(1),a(p).insertAfter("#edd-purchased-files div.row:last"),a(".edd-order-payment-recalc-totals").show()})},recalculate_total:function(){a("#edd-order-recalc-total").on("click",function(b){b.preventDefault();var c=0,d=a("#edd-purchased-files .row .edd-payment-details-download-amount");d.length&&d.each(function(){c+=parseFloat(a(this).val())}),a(".edd-payment-fees").length&&a(".edd-payment-fees span.fee-amount").each(function(){c+=parseFloat(a(this).data("fee"))}),a("input[name=edd-payment-total]").val(c.toFixed(edd_vars.currency_decimals))})},variable_prices_check:function(){a("#edd-purchased-files").on("change","select#edd_order_download_select",function(){var b=a(this),c=b.val();if(parseInt(c)>0){var d={action:"edd_check_for_download_price_variations",download_id:c};a.ajax({type:"POST",data:d,url:ajaxurl,success:function(c){a(".edd_price_options_select").remove(),a(c).insertAfter(b.next())}}).fail(function(a){window.console&&window.console.log&&console.log(a)})}})},add_note:function(){a("#edd-add-payment-note").on("click",function(b){b.preventDefault();var c={action:"edd_insert_payment_note",payment_id:a(this).data("payment-id"),note:a("#edd-payment-note").val()};if(c.note)a.ajax({type:"POST",data:c,url:ajaxurl,success:function(b){a("#edd-payment-notes-inner").append(b),a(".edd-no-payment-notes").hide(),a("#edd-payment-note").val("")}}).fail(function(a){window.console&&window.console.log&&console.log(a)});else{var d=a("#edd-payment-note").css("border-color");a("#edd-payment-note").css("border-color","red"),setTimeout(function(){a("#edd-payment-note").css("border-color",d)},500)}})},remove_note:function(){a(document.body).on("click",".edd-delete-payment-note",function(b){if(b.preventDefault(),confirm(edd_vars.delete_payment_note)){var c={action:"edd_delete_payment_note",payment_id:a(this).data("payment-id"),note_id:a(this).data("note-id")};return a.ajax({type:"POST",data:c,url:ajaxurl,success:function(b){return a("#edd-payment-note-"+c.note_id).remove(),a(".edd-payment-note").length||a(".edd-no-payment-notes").show(),!1}}).fail(function(a){window.console&&window.console.log&&console.log(a)}),!0}})},resend_receipt:function(){var b=a(".edd-order-resend-receipt-addresses");a(document.body).on("click","#edd-select-receipt-email",function(a){a.preventDefault(),b.slideDown()}),a(document.body).on("change",".edd-order-resend-receipt-email",function(){var b=a("#edd-select-receipt-email").prop("href")+"&email="+a(this).val();confirm(edd_vars.resend_receipt)&&(window.location=b)}),a(document.body).on("click","#edd-resend-receipt",function(a){return confirm(edd_vars.resend_receipt)})},copy_download_link:function(){a(document.body).on("click",".edd-copy-download-link",function(b){b.preventDefault();var c=a(this),d={action:"edd_get_file_download_link",payment_id:a('input[name="edd_payment_id"]').val(),download_id:c.data("download-id"),price_id:c.data("price-id")};a.ajax({type:"POST",data:d,url:ajaxurl,success:function(b){return a("#edd-download-link").dialog({width:400}).html('<textarea rows="10" cols="40" id="edd-download-link-textarea">'+b+"</textarea>"),a("#edd-download-link-textarea").focus().select(),!1}}).fail(function(a){window.console&&window.console.log&&console.log(a)})})}};e.init();var f={init:function(){this.type_select(),this.product_requirements()},type_select:function(){a("#edd-edit-discount #edd-type, #edd-add-discount #edd-type").change(function(){var b=a(this).val();a(".edd-amount-description").hide(),a(".edd-amount-description."+b+"-discount").show()})},product_requirements:function(){a("#products").change(function(){var b=a("#edd-discount-product-conditions");a(this).val()?b.show():b.hide()})}};f.init();var g={init:function(){this.date_options(),this.customers_export()},date_options:function(){a("#edd-graphs-date-options").change(function(){var b=a(this),c=a("#edd-date-range-options");"other"===b.val()?c.show():c.hide()})},customers_export:function(){a("#edd_customer_export_download").change(function(){var b=a(this),c=a("option:selected",b).val(),d=a("#edd_customer_export_option");if("0"===b.val()?d.show():d.hide(),0!=parseInt(c)){var e={action:"edd_check_for_download_price_variations",download_id:c,all_prices:!0},f=a(".edd_price_options_select");a.post(ajaxurl,e,function(b){f.remove(),a("#edd_customer_export_download_chosen").after(b)})}else f.remove()})}};g.init();var h={init:function(){this.general(),this.taxes(),this.emails(),this.misc()},general:function(){var b=a(".edd-color-picker");if(b.length&&b.wpColorPicker(),"undefined"==typeof wp||"1"!==edd_vars.new_media_ui){var c=a(".edd_settings_upload_button");c.length>0&&(window.formfield="",a(document.body).on("click",c,function(b){b.preventDefault(),window.formfield=a(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(b){window.formfield?(imgurl=a("a","<div>"+b+"</div>").attr("href"),window.formfield.val(imgurl),window.clearInterval(window.tbframe_interval),tb_remove()):window.edd_send_to_editor(b),window.send_to_editor=window.edd_send_to_editor,window.formfield="",window.imagefield=!1})}else{var d;window.formfield="",a(document.body).on("click",".edd_settings_upload_button",function(b){b.preventDefault();var c=a(this);return window.formfield=a(this).parent().prev(),d?void d.open():(d=wp.media.frames.file_frame=wp.media({frame:"post",state:"insert",title:c.data("uploader_title"),button:{text:c.data("uploader_button_text")},multiple:!1}),d.on("menu:render:default",function(a){var b={};a.unset("library-separator"),a.unset("gallery"),a.unset("featured-image"),a.unset("embed"),a.set(b)}),d.on("insert",function(){var a=d.state().get("selection");a.each(function(a,b){a=a.toJSON(),window.formfield.val(a.url)})}),void d.open())});var d;window.formfield=""}},taxes:function(){var b=a("select.edd-no-states");b.length&&b.closest("tr").hide(),a('select[name="edd_settings[base_country]"]').change(function(){var b=a(this),c=b.closest("tr");return data={action:"edd_get_shop_states",country:a(this).val(),field_name:"edd_settings[base_state]"},a.post(ajaxurl,data,function(a){"nostates"==a?c.next().hide():(c.next().show(),c.next().find("select").replaceWith(a))}),!1}),a(document.body).on("change","#edd_tax_rates select.edd-tax-country",function(){var b=a(this);return data={action:"edd_get_shop_states",country:a(this).val(),field_name:b.attr("name").replace("country","state")},a.post(ajaxurl,data,function(a){if("nostates"==a){var c='<input type="text" name="'+data.field_name+'" value=""/>';b.parent().next().find("select").replaceWith(c)}else b.parent().next().find("input,select").show(),b.parent().next().find("input,select").replaceWith(a)}),!1}),a("#edd_add_tax_rate").on("click",function(){var b=a("#edd_tax_rates tr:last"),c=b.clone(),d=b.parent().find("tr").length;return c.find("td input").not(":input[type=checkbox]").val(""),c.find('td [type="checkbox"]').attr("checked",!1),c.find("input, select").each(function(){var b=a(this).attr("name");b=b.replace(/\[(\d+)\]/,"["+parseInt(d)+"]"),a(this).attr("name",b).attr("id",b)}),c.find("label").each(function(){var b=a(this).attr("for");b=b.replace(/\[(\d+)\]/,"["+parseInt(d)+"]"),a(this).attr("for",b)}),c.insertAfter(b),!1}),a(document.body).on("click","#edd_tax_rates .edd_remove_tax_rate",function(){if(confirm(edd_vars.delete_tax_rate)){var b=a("#edd_tax_rates tr:visible"),c=b.length;2===c?(a("#edd_tax_rates select").val(""),a('#edd_tax_rates input[type="text"]').val(""),a('#edd_tax_rates input[type="number"]').val(""),a('#edd_tax_rates input[type="checkbox"]').attr("checked",!1)):a(this).closest("tr").remove(),a("#edd_tax_rates tr").each(function(b){a(this).children().find("input, select").each(function(){var c=a(this).attr("name");c=c.replace(/\[(\d+)\]/,"["+(b-1)+"]"),a(this).attr("name",c).attr("id",c)})})}return!1})},emails:function(){var b=a("#email-preview-wrap");if(b.length){var c=a("#email-preview");b.colorbox({inline:!0,href:c,width:"80%",height:"auto"})}},misc:function(){var b=a('select[name="edd_settings[download_method]"]'),c=b.parent().parent().next();"direct"==b.val()&&(c.hide(),c.find("input").prop("checked",!1)),b.on("change",function(){"direct"==a(this).val()?(c.hide(),c.find("input").prop("checked",!1)):c.show()})}};h.init(),a(".download_page_edd-payment-history .row-actions .delete a, a.edd-delete-payment").on("click",function(){return confirm(edd_vars.delete_payment)?!0:!1}),a("#the-list").on("click",".editinline",function(){var b=a(this).closest("tr").attr("id");b=b.replace("post-","");var c=a("#post-"+b),d=c.find(".column-price .downloadprice-"+b).val();d!=a("#post-"+b+".column-price .downloadprice-"+b).val()?a(".regprice","#edd-download-data").val(d).attr("disabled",!1):a(".regprice","#edd-download-data").val(edd_vars.quick_edit_warning).attr("disabled","disabled")}),a(document.body).on("click","#bulk_edit",function(){var b=a("#bulk-edit"),c=new Array;b.find("#bulk-titles").children().each(function(){c.push(a(this).attr("id").replace(/^(ttle)/i,""))});var d=a('#edd-download-data input[name="_edd_regprice"]').val(),e={action:"edd_save_bulk_edit",edd_bulk_nonce:c,post_ids:c,price:d};a.post(ajaxurl,e)}),a(".edd-select-chosen").chosen({inherit_select_classes:!0,placeholder_text_single:edd_vars.one_option,placeholder_text_multiple:edd_vars.one_or_more_option}),a(".edd-select-chosen .chosen-search input").each(function(){var b=a(this).parent().parent().parent().prev("select.edd-select-chosen").data("search-type"),c="";if("download"===b)c=edd_vars.search_placeholder;else{var b="search_placeholder_"+b;edd_vars[b]&&(c=edd_vars[b])}a(this).attr("placeholder",c)}),a(".chosen-choices").on("click",function(){a(this).children("li").children("input").attr("placeholder",edd_vars.type_to_search)});var i,j=342;a(document.body).on("keyup",".edd-select.chosen-container .chosen-search input, .edd-select.chosen-container .search-field input",function(b){var c=a(this).val(),d=a(this).closest(".edd-select-chosen"),e=d.attr("id").replace("_chosen",""),f=d.hasClass("no-bundles"),g=d.hasClass("variations"),h=b.which,k="edd_download_search";if(d.prev().data("search-type")){if("no_ajax"==d.prev().data("search-type"))return;k="edd_"+d.prev().data("search-type")+"_search"}c.length<=3&&"edd_download_search"==k||16==h||13==h||91==h||17==h||37==h||38==h||39==h||40==h||(clearTimeout(i),i=setTimeout(function(){a.ajax({type:"GET",url:ajaxurl,data:{action:k,s:c,no_bundles:f,variations:g},dataType:"json",beforeSend:function(){a("ul.chosen-results").empty()},success:function(b){a("#"+e+" option:not(:selected)").remove(),a.each(b,function(b,c){a("#"+e+' option[value="'+c.id+'"]').length||a("#"+e).prepend('<option value="'+c.id+'">'+c.name+"</option>")}),a(".edd-select-chosen").trigger("chosen:updated"),a("#"+e).next().find("input").val(c)}}).fail(function(a){window.console&&window.console.log&&console.log(a)}).done(function(a){})},j))}),a("#post").on("click",".edd-thickbox",function(){a(".edd-select-chosen","#choose-download").css("width","100%")});var k={init:function(){this.revoke_api_key(),this.regenerate_api_key(),this.create_api_key(),this.recount_stats()},revoke_api_key:function(){a(document.body).on("click",".edd-revoke-api-key",function(a){return confirm(edd_vars.revoke_api_key)})},regenerate_api_key:function(){a(document.body).on("click",".edd-regenerate-api-key",function(a){return confirm(edd_vars.regenerate_api_key)})},create_api_key:function(){a(document.body).on("submit","#api-key-generate-form",function(b){var c=a('input[type="text"][name="user_id"]');c.css("border-color","#ddd");var d=c.val();return d.length<1||0==d?(c.css("border-color","#ff0000"),!1):void 0})},recount_stats:function(){a("body").on("change","#recount-stats-type",function(){var b=a("#edd-tools-recount-form"),c=a("option:selected",this).data("type"),d=a("#recount-stats-submit"),e=a("#tools-product-dropdown");if(b.find(".notice-wrap").remove(),d.removeClass("button-disabled").attr("disabled",!1),e.hide(),a(".edd-recount-stats-descriptions span").hide(),"recount-download"===c)e.show(),e.find(".edd-select-chosen").css("width","auto");else if("reset-stats"===c){b.append('<div class="notice-wrap"></div>');var f=b.find(".notice-wrap");f.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>"),a("#recount-stats-submit").addClass("button-disabled").attr("disabled","disabled")}else e.hide(),e.val(0);a("#"+c).show()}),a("body").on("change","#confirm-reset",function(){var b=a(this).is(":checked");b?a("#recount-stats-submit").removeClass("button-disabled").removeAttr("disabled"):a("#recount-stats-submit").addClass("button-disabled").attr("disabled","disabled")}),a("#edd-tools-recount-form").submit(function(b){var c=a("#recount-stats-type").val(),d=a(this),e=a("option:selected",this).data("type");if("reset-stats"===e){var f=a("#confirm-reset").is(":checked");if(f)return!0;h=!0}d.find(".notice-wrap").remove(),d.append('<div class="notice-wrap"></div>');var g=d.find(".notice-wrap"),h=!1;if((null===c||0===c)&&(g.html('<div class="updated error"><p>'+edd_vars.batch_export_no_class+"</p></div>"),h=!0),"recount-download"===e){var i=a('select[name="download_id"]').val();0==i&&(g.html('<div class="updated error"><p>'+edd_vars.batch_export_no_reqs+"</p></div>"),h=!0)}return h?(d.find(".button-disabled").removeClass("button-disabled"),!1):void 0})}};k.init();var l={init:function(){this.submit(),this.dismiss_message()},submit:function(){var b=this;a(document.body).on("submit",".edd-export-form",function(c){c.preventDefault();var d=a(this).find('input[type="submit"]');if(!d.hasClass("button-disabled")){var e=a(this).serialize();d.addClass("button-disabled"),a(this).find(".notice-wrap").remove(),a(this).append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),b.process_step(1,e,b)}})},process_step:function(b,c,d){a.ajax({type:"POST",url:ajaxurl,data:{form:c,action:"edd_do_ajax_export",step:b},dataType:"json",success:function(b){if("done"==b.step||b.error||b.success){var e=a(".edd-export-form").find(".edd-progress").parent().parent(),f=e.find(".notice-wrap");if(e.find(".button-disabled").removeClass("button-disabled"),b.error){var g=b.message;f.html('<div class="updated error"><p>'+g+"</p></div>")}else if(b.success){var h=b.message;f.html('<div id="edd-batch-success" class="updated notice is-dismissible"><p>'+h+'<span class="notice-dismiss"></span></p></div>')}else f.remove(),window.location=b.url}else a(".edd-progress div").animate({width:b.percentage+"%"},50,function(){}),d.process_step(parseInt(b.step),c,d)}}).fail(function(a){window.console&&window.console.log&&console.log(a)})},dismiss_message:function(){a("body").on("click","#edd-batch-success .notice-dismiss",function(){a("#edd-batch-success").parent().slideUp("fast")})}};l.init();var m={init:function(){this.submit()},submit:function(){var b=this;a(".edd-import-form").ajaxForm({beforeSubmit:b.before_submit,success:b.success,complete:b.complete,dataType:"json",error:b.error})},before_submit:function(b,c,d){if(c.find(".notice-wrap").remove(),c.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 e=a(".edd-import-form").find(".edd-progress").parent().parent(),f=e.find(".notice-wrap");return e.find(".button-disabled").removeClass("button-disabled"),f.html('<div class="update error"><p>'+edd_vars.unsupported_browser+"</p></div>"),!1}},success:function(a,b,c,d){},complete:function(b){var c=jQuery.parseJSON(b.responseText);if(c.success){var d=a(".edd-import-form .notice-wrap").parent();d.find(".edd-import-file-wrap,.notice-wrap").remove(),d.find(".edd-import-options").slideDown();var e=d.find("select.edd-import-csv-column"),g=(e.parent().parent(),""),h=c.data.columns.sort(function(a,b){return b>a?-1:a>b?1:0});a.each(h,function(a,b){g+='<option value="'+b+'">'+b+"</option>"}),e.append(g),e.on("change",function(){var b=a(this).val();b&&0!=c.data.first_row[b]?a(this).parent().next().html(c.data.first_row[b]):a(this).parent().next().html("")}),a("body").on("click",".edd-import-proceed",function(a){a.preventDefault(),d.append('<div class="notice-wrap"><span class="spinner is-active"></span><div class="edd-progress"><div></div></div></div>'),c.data.mapping=d.serialize(),m.process_step(1,c.data,self)})}else m.error(b)},error:function(b){var c=jQuery.parseJSON(b.responseText),d=a(".edd-import-form").find(".edd-progress").parent().parent(),e=d.find(".notice-wrap");d.find(".button-disabled").removeClass("button-disabled"),c.data.error?e.html('<div class="update error"><p>'+c.data.error+"</p></div>"):e.remove()},process_step:function(b,c,d){a.ajax({type:"POST",url:ajaxurl,data:{form:c.form,nonce:c.nonce,"class":c["class"],upload:c.upload,mapping:c.mapping,action:"edd_do_ajax_import",step:b},dataType:"json",success:function(b){if("done"==b.data.step||b.data.error){var e=a(".edd-import-form").find(".edd-progress").parent().parent(),f=e.find(".notice-wrap");e.find(".button-disabled").removeClass("button-disabled"),b.data.error?f.html('<div class="update error"><p>'+b.data.error+"</p></div>"):(e.find(".edd-import-options").hide(),a("html, body").animate({scrollTop:e.parent().offset().top},500),f.html('<div class="updated"><p>'+b.data.message+"</p></div>"))}else a(".edd-progress div").animate({width:b.data.percentage+"%"},50,function(){}),m.process_step(parseInt(b.data.step),c,d)}}).fail(function(a){window.console&&window.console.log&&console.log(a)})}};m.init();var n={vars:{customer_card_wrap_editable:a(".edd-customer-card-wrapper .editable"),customer_card_wrap_edit_item:a(".edd-customer-card-wrapper .edit-item"),user_id:a('input[name="customerinfo[user_id]"]'),state_input:a(':input[name="customerinfo[state]"]'),note:a("#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(){a(document.body).on("click","#edit-customer",function(a){a.preventDefault(),n.vars.customer_card_wrap_editable.hide(),n.vars.customer_card_wrap_edit_item.fadeIn().css("display","block")})},add_email:function(){a(document.body).on("click","#add-customer-email",function(b){b.preventDefault();var c=a(this),d=c.parent();d.parent().find(".notice-wrap").remove(),d.find(".spinner").css("visibility","visible"),c.attr("disabled",!0);var e=d.find('input[name="customer-id"]').val(),f=d.find('input[name="additional-email"]').val(),g=d.find('input[name="make-additional-primary"]').is(":checked"),h=d.find('input[name="add_email_nonce"]').val(),i={edd_action:"customer-add-email",customer_id:e,email:f,primary:g,_wpnonce:h};a.post(ajaxurl,i,function(a){!0===a.success?window.location.href=a.redirect:(c.attr("disabled",!1),d.after('<div class="notice-wrap"><div class="notice notice-error inline"><p>'+a.message+"</p></div></div>"),d.find(".spinner").css("visibility","hidden"))},"json")})},user_search:function(){a(document.body).on("click.eddSelectUser",".edd_user_search_results a",function(b){b.preventDefault();var c=a(this).data("userid");n.vars.user_id.val(c)})},remove_user:function(){a(document.body).on("click","#disconnect-customer",function(b){b.preventDefault();var c=a('input[name="customerinfo[id]"]').val(),d={edd_action:"disconnect-userid",customer_id:c,_wpnonce:a("#edit-customer-info #_wpnonce").val()};a.post(ajaxurl,d,function(a){window.location.href=window.location.href},"json")})},cancel_edit:function(){a(document.body).on("click","#edd-edit-customer-cancel",function(b){b.preventDefault(),n.vars.customer_card_wrap_edit_item.hide(),n.vars.customer_card_wrap_editable.show(),a(".edd_user_search_results").html("")})},change_country:function(){a('select[name="customerinfo[country]"]').change(function(){var b=a(this);return data={action:"edd_get_shop_states",country:b.val(),field_name:"customerinfo[state]"},a.post(ajaxurl,data,function(a){"nostates"==a?n.vars.state_input.replaceWith('<input type="text" name="'+data.field_name+'" value="" class="edd-edit-toggles medium-text"/>'):n.vars.state_input.replaceWith(a)}),!1})},add_note:function(){a(document.body).on("click","#add-customer-note",function(b){b.preventDefault();var c={edd_action:"add-customer-note",customer_id:a("#customer-id").val(),customer_note:n.vars.note.val(),add_customer_note_nonce:a("#add_customer_note_nonce").val()};if(c.customer_note)a.ajax({type:"POST",data:c,url:ajaxurl,success:function(b){a("#edd-customer-notes").prepend(b),a(".edd-no-customer-notes").hide(),n.vars.note.val("")}}).fail(function(a){window.console&&window.console.log&&console.log(a)});else{var d=n.vars.note.css("border-color");n.vars.note.css("border-color","red"),setTimeout(function(){n.vars.note.css("border-color",d)},500)}})},delete_checked:function(){a("#edd-customer-delete-confirm").change(function(){var b=a("#edd-customer-delete-records"),c=a("#edd-delete-customer");a(this).prop("checked")?(b.attr("disabled",!1),c.attr("disabled",!1)):(b.attr("disabled",!0),b.prop("checked",!1),c.attr("disabled",!0))})}};n.init(),a(".edd-ajax-user-search").keyup(function(){var b=a(this).val(),c="";a(this).data("exclude")&&(c=a(this).data("exclude")),a(".edd-ajax").show(),data={action:"edd_search_users",user_name:b,exclude:c},document.body.style.cursor="wait",
2
+ a.ajax({type:"POST",data:data,dataType:"json",url:ajaxurl,success:function(b){a(".edd-ajax").hide(),a(".edd_user_search_results").removeClass("hidden"),a(".edd_user_search_results span").html(""),a(b.results).appendTo(".edd_user_search_results span"),document.body.style.cursor="default"}})}),a(document.body).on("click.eddSelectUser",".edd_user_search_results span a",function(b){b.preventDefault();var c=a(this).data("login");a(".edd-ajax-user-search").val(c),a(".edd_user_search_results").addClass("hidden"),a(".edd_user_search_results span").html("")}),a(document.body).on("click.eddCancelUserSearch",".edd_user_search_results a.edd-ajax-user-cancel",function(b){b.preventDefault(),a(".edd-ajax-user-search").val(""),a(".edd_user_search_results").addClass("hidden"),a(".edd_user_search_results span").html("")}),a("#edd_dashboard_sales").length&&a.ajax({type:"GET",data:{action:"edd_load_dashboard_widget"},url:ajaxurl,success:function(b){a("#edd_dashboard_sales .inside").html(b)}}),a(document).on("keydown",".customer-note-input",function(b){13==b.keyCode&&(b.metaKey||b.ctrlKey)&&a("#add-customer-note").click()})});var eddFormatCurrency=function(a){var b=parseFloat(a),c=edd_vars.currency,d=edd_vars.currency_decimals;return b.toLocaleString(c,{style:"currency",currency:c,minimumFractionDigits:d,maximumFractionDigits:d})},eddFormatNumber=function(a){var b=parseFloat(a),c=edd_vars.currency;edd_vars.currency_decimals;return b.toLocaleString(c,{style:"decimal",minimumFractionDigits:0,maximumFractionDigits:0})},eddLabelFormatter=function(a,b){return'<div style="font-size:12px; text-align:center; padding:2px">'+a+"</div>"},eddLegendFormatterSales=function(a,b){var c=a.toLowerCase().replace(/\s/g,"-"),d='<div class="edd-legend-color" style="background-color: '+b.color+'"></div>',e='<div class="edd-pie-legend-item">'+a+": "+Math.round(b.percent)+"% ("+eddFormatNumber(b.data[0][1])+")</div>",f='<div id="'+b.edd_vars.id+c+'" class="edd-legend-item-wrapper">'+d+e+"</div>";return jQuery("#edd-pie-legend-"+b.edd_vars.id).append(f),f},eddLegendFormatterEarnings=function(a,b){var c=a.toLowerCase().replace(/\s/g,"-"),d='<div class="edd-legend-color" style="background-color: '+b.color+'"></div>',e='<div class="edd-pie-legend-item">'+a+": "+Math.round(b.percent)+"% ("+eddFormatCurrency(b.data[0][1])+")</div>",f='<div id="'+b.edd_vars.id+c+'" class="edd-legend-item-wrapper">'+d+e+"</div>";return jQuery("#edd-pie-legend-"+b.edd_vars.id).append(f),f};
assets/js/edd-ajax.js CHANGED
@@ -33,15 +33,20 @@ jQuery(document).ready(function ($) {
33
  }
34
 
35
  // Remove the selected cart item
36
- $('.edd-cart').find("[data-cart-item='" + item + "']").parent().remove();
 
 
37
 
38
  //Reset the data-cart-item attributes to match their new values in the EDD session cart array
39
- var cart_item_counter = 0;
40
- $('.edd-cart').find("[data-cart-item]").each(function(){
41
- $(this).attr('data-cart-item', cart_item_counter);
42
- cart_item_counter = cart_item_counter + 1;
 
 
43
  });
44
 
 
45
  // Check to see if the purchase form(s) for this download is present on this page
46
  if( $( '[id^=edd_purchase_' + id + ']' ).length ) {
47
  $( '[id^=edd_purchase_' + id + '] .edd_go_to_checkout' ).hide();
@@ -62,7 +67,9 @@ jQuery(document).ready(function ($) {
62
 
63
  if( response.cart_quantity == 0 ) {
64
  $('.cart_item.edd_subtotal,.edd-cart-number-of-items,.cart_item.edd_checkout,.cart_item.edd_cart_tax,.cart_item.edd_total').hide();
65
- $('.edd-cart').append('<li class="cart_item empty">' + edd_scripts.empty_cart_message + '</li>');
 
 
66
  }
67
 
68
  $('body').trigger('edd_cart_item_removed', [ response ]);
@@ -190,12 +197,14 @@ jQuery(document).ready(function ($) {
190
  $('.cart_item.edd_checkout').show();
191
 
192
  if ($('.cart_item.empty').length) {
193
- $(response.cart_item).insertBefore('.edd-cart-meta:first');
194
  $('.cart_item.empty').hide();
195
- } else {
196
- $(response.cart_item).insertBefore('.edd-cart-meta:first');
197
  }
198
 
 
 
 
 
 
199
  // Update the totals
200
  if ( edd_scripts.taxes_enabled === '1' ) {
201
  $('.edd-cart-meta.edd_subtotal span').html( response.subtotal );
33
  }
34
 
35
  // Remove the selected cart item
36
+ $('.edd-cart').each( function() {
37
+ $(this).find("[data-cart-item='" + item + "']").parent().remove();
38
+ });
39
 
40
  //Reset the data-cart-item attributes to match their new values in the EDD session cart array
41
+ $('.edd-cart').each( function() {
42
+ var cart_item_counter = 0;
43
+ $(this).find("[data-cart-item]").each( function() {
44
+ $(this).attr('data-cart-item', cart_item_counter);
45
+ cart_item_counter = cart_item_counter + 1;
46
+ });
47
  });
48
 
49
+
50
  // Check to see if the purchase form(s) for this download is present on this page
51
  if( $( '[id^=edd_purchase_' + id + ']' ).length ) {
52
  $( '[id^=edd_purchase_' + id + '] .edd_go_to_checkout' ).hide();
67
 
68
  if( response.cart_quantity == 0 ) {
69
  $('.cart_item.edd_subtotal,.edd-cart-number-of-items,.cart_item.edd_checkout,.cart_item.edd_cart_tax,.cart_item.edd_total').hide();
70
+ $('.edd-cart').each( function() {
71
+ $(this).append('<li class="cart_item empty">' + edd_scripts.empty_cart_message + '</li>');
72
+ });
73
  }
74
 
75
  $('body').trigger('edd_cart_item_removed', [ response ]);
197
  $('.cart_item.edd_checkout').show();
198
 
199
  if ($('.cart_item.empty').length) {
 
200
  $('.cart_item.empty').hide();
 
 
201
  }
202
 
203
+ $('.widget_edd_cart_widget .edd-cart').each( function( cart ) {
204
+ var target = $(this).find('.edd-cart-meta:first');
205
+ $(response.cart_item).insertBefore(target);
206
+ });
207
+
208
  // Update the totals
209
  if ( edd_scripts.taxes_enabled === '1' ) {
210
  $('.edd-cart-meta.edd_subtotal span').html( response.subtotal );
assets/js/edd-ajax.min.js CHANGED
@@ -1 +1 @@
1
- function edd_load_gateway(a){jQuery(".edd-cart-ajax").show(),jQuery("#edd_purchase_form_wrap").html('<img src="'+edd_scripts.ajax_loader+'"/>');var b=edd_scripts.ajaxurl;b+=b.indexOf("?")>0?"&":"?",b=b+"payment-mode="+a,jQuery.post(b,{action:"edd_load_gateway",edd_payment_mode:a},function(b){jQuery("#edd_purchase_form_wrap").html(b),jQuery(".edd-no-js").hide(),jQuery("body").trigger("edd_gateway_loaded",[a])})}var edd_scripts;jQuery(document).ready(function(a){function b(){var c,b=a(this),d="undefined"!=typeof edd_global_vars;if("card_state"!=b.attr("id")){var e={action:"edd_get_shop_states",country:b.val(),field_name:"card_state"};a.ajax({type:"POST",data:e,url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(e){c=d?a("#edd_purchase_form"):b.closest("form");var f='input[name="card_state"], select[name="card_state"], input[name="edd_address_state"], select[name="edd_address_state"]';if("nostates"==a.trim(e)){var g='<input type="text" name="card_state" class="cart-state edd-input required" value=""/>';c.find(f).replaceWith(g)}else c.find(f).replaceWith(e);d&&a("body").trigger("edd_cart_billing_address_updated",[e])}}).fail(function(a){window.console&&window.console.log&&console.log(a)}).done(function(a){d&&recalculate_taxes()})}else d&&recalculate_taxes();return!1}a(".edd-no-js").hide(),a("a.edd-add-to-cart").addClass("edd-has-js"),a("body").on("click.eddRemoveFromCart",".edd-remove-from-cart",function(b){var c=a(this),d=c.data("cart-item"),e=c.data("action"),f=c.data("download-id"),g={action:e,cart_item:d};return a.ajax({type:"POST",data:g,dataType:"json",url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(b){if(b.removed){if(parseInt(edd_scripts.position_in_cart,10)===parseInt(d,10)||edd_scripts.has_purchase_links)return window.location=window.location,!1;a(".edd-cart").find("[data-cart-item='"+d+"']").parent().remove();var c=0;a(".edd-cart").find("[data-cart-item]").each(function(){a(this).attr("data-cart-item",c),c+=1}),a("[id^=edd_purchase_"+f+"]").length&&(a("[id^=edd_purchase_"+f+"] .edd_go_to_checkout").hide(),a("[id^=edd_purchase_"+f+"] a.edd-add-to-cart").show().removeAttr("data-edd-loading"),"1"==edd_scripts.quantities_enabled&&a("[id^=edd_purchase_"+f+"] .edd_download_quantity_wrapper").show()),a("span.edd-cart-quantity").text(b.cart_quantity),a("body").trigger("edd_quantity_updated",[b.cart_quantity]),edd_scripts.taxes_enabled&&(a(".cart_item.edd_subtotal span").html(b.subtotal),a(".cart_item.edd_cart_tax span").html(b.tax)),a(".cart_item.edd_total span").html(b.total),0==b.cart_quantity&&(a(".cart_item.edd_subtotal,.edd-cart-number-of-items,.cart_item.edd_checkout,.cart_item.edd_cart_tax,.cart_item.edd_total").hide(),a(".edd-cart").append('<li class="cart_item empty">'+edd_scripts.empty_cart_message+"</li>")),a("body").trigger("edd_cart_item_removed",[b])}}}).fail(function(a){window.console&&window.console.log&&console.log(a)}).done(function(a){}),!1}),a("body").on("click.eddAddToCart",".edd-add-to-cart",function(b){b.preventDefault();var c=a(this),d=c.closest("form");c.prop("disabled",!0);var e=c.find(".edd-loading"),f=c.closest("div"),g=e.width(),h=e.height();c.attr("data-edd-loading",""),e.css({"margin-left":g/-2,"margin-top":h/-2});var d=c.parents("form").last(),i=c.data("download-id"),j=c.data("variable-price"),k=c.data("price-mode"),l=[],m=!0;if("yes"==j)if(d.find(".edd_price_option_"+i+'[type="hidden"]').length>0)l[0]=a(".edd_price_option_"+i,d).val(),d.find(".edd-submit").data("price")&&d.find(".edd-submit").data("price")>0&&(m=!1);else{if(!d.find(".edd_price_option_"+i+":checked",d).length)return c.removeAttr("data-edd-loading"),void alert(edd_scripts.select_option);d.find(".edd_price_option_"+i+":checked",d).each(function(b){if(l[b]=a(this).val(),!0===m){var c=a(this).data("price");c&&c>0&&(m=!1)}})}else l[0]=i,c.data("price")&&c.data("price")>0&&(m=!1);if(m&&d.find(".edd_action_input").val("add_to_cart"),"straight_to_gateway"==d.find(".edd_action_input").val())return d.submit(),!0;var n=c.data("action"),o={action:n,download_id:i,price_ids:l,post_data:a(d).serialize()};return a.ajax({type:"POST",data:o,dataType:"json",url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(b){if("1"==edd_scripts.redirect_to_checkout&&"1"==d.find("#edd_redirect_to_checkout").val())window.location=edd_scripts.checkout_page;else{"1"===edd_scripts.taxes_enabled&&(a(".cart_item.edd_subtotal").show(),a(".cart_item.edd_cart_tax").show()),a(".cart_item.edd_total").show(),a(".cart_item.edd_checkout").show(),a(".cart_item.empty").length?(a(b.cart_item).insertBefore(".edd-cart-meta:first"),a(".cart_item.empty").hide()):a(b.cart_item).insertBefore(".edd-cart-meta:first"),"1"===edd_scripts.taxes_enabled&&(a(".edd-cart-meta.edd_subtotal span").html(b.subtotal),a(".edd-cart-meta.edd_cart_tax span").html(b.tax)),a(".edd-cart-meta.edd_total span").html(b.total);a(".edd-cart-item-title",b.cart_item).length;if(a("span.edd-cart-quantity").each(function(){a(this).text(b.cart_quantity),a("body").trigger("edd_quantity_updated",[b.cart_quantity])}),"none"==a(".edd-cart-number-of-items").css("display")&&a(".edd-cart-number-of-items").show("slow"),"no"!=j&&"multi"==k||(a("a.edd-add-to-cart",f).toggle(),a(".edd_go_to_checkout",f).css("display","inline-block")),"multi"==k&&c.removeAttr("data-edd-loading"),a(".edd_download_purchase_form").length&&("no"==j||!d.find(".edd_price_option_"+i).is("input:hidden"))){var g=a('.edd_download_purchase_form *[data-download-id="'+i+'"]').parents("form");a("a.edd-add-to-cart",g).hide(),"multi"!=k&&g.find(".edd_download_quantity_wrapper").slideUp(),a(".edd_go_to_checkout",g).show().removeAttr("data-edd-loading")}"incart"!=b&&(a(".edd-cart-added-alert",f).fadeIn(),setTimeout(function(){a(".edd-cart-added-alert",f).fadeOut()},3e3)),c.prop("disabled",!1),a("body").trigger("edd_cart_item_added",[b])}}}).fail(function(a){window.console&&window.console.log&&console.log(a)}).done(function(a){}),!1}),a("#edd_checkout_form_wrap").on("click",".edd_checkout_register_login",function(){var b=a(this),c={action:b.data("action")};return a(".edd-cart-ajax").show(),a.post(edd_scripts.ajaxurl,c,function(b){a("#edd_checkout_login_register").html(edd_scripts.loading),a("#edd_checkout_login_register").html(b),a(".edd-cart-ajax").hide()}),!1}),a(document).on("click","#edd_purchase_form #edd_login_fields input[type=submit]",function(b){b.preventDefault();var c=a(this).val();a(this).val(edd_global_vars.purchase_loading),a(this).after('<span class="edd-cart-ajax"><i class="edd-icon-spinner edd-icon-spin"></i></span>');var d={action:"edd_process_checkout_login",edd_ajax:1,edd_user_login:a("#edd_login_fields #edd_user_login").val(),edd_user_pass:a("#edd_login_fields #edd_user_pass").val()};a.post(edd_global_vars.ajaxurl,d,function(b){"success"==a.trim(b)?(a(".edd_errors").remove(),window.location=edd_scripts.checkout_page):(a("#edd_login_fields input[type=submit]").val(c),a(".edd-cart-ajax").remove(),a(".edd_errors").remove(),a("#edd-user-login-submit").before(b))})}),a("select#edd-gateway, input.edd-gateway").change(function(b){var c=a("#edd-gateway option:selected, input.edd-gateway:checked").val();return"0"!=c&&(edd_load_gateway(c),!1)}),"1"==edd_scripts.is_checkout&&a("select#edd-gateway, input.edd-gateway").length&&setTimeout(function(){edd_load_gateway(edd_scripts.default_gateway)},200),a(document).on("click","#edd_purchase_form #edd_purchase_submit input[type=submit]",function(b){var c=document.getElementById("edd_purchase_form");if("function"!=typeof c.checkValidity||!1!==c.checkValidity()){b.preventDefault();var d=a(this).val();a(this).val(edd_global_vars.purchase_loading),a(this).prop("disabled",!0),a(this).after('<span class="edd-cart-ajax"><i class="edd-icon-spinner edd-icon-spin"></i></span>'),a.post(edd_global_vars.ajaxurl,a("#edd_purchase_form").serialize()+"&action=edd_process_checkout&edd_ajax=true",function(b){"success"==a.trim(b)?(a(".edd_errors").remove(),a(".edd-error").hide(),a(c).submit()):(a("#edd-purchase-button").val(d),a(".edd-cart-ajax").remove(),a(".edd_errors").remove(),a(".edd-error").hide(),a("#edd_purchase_submit").before(b),a("#edd-purchase-button").prop("disabled",!1))})}}),a("body").on("change","#edd_cc_address input.card_state, #edd_cc_address select, #edd_address_country",b)});
1
+ function edd_load_gateway(a){jQuery(".edd-cart-ajax").show(),jQuery("#edd_purchase_form_wrap").html('<img src="'+edd_scripts.ajax_loader+'"/>');var b=edd_scripts.ajaxurl;b+=b.indexOf("?")>0?"&":"?",b=b+"payment-mode="+a,jQuery.post(b,{action:"edd_load_gateway",edd_payment_mode:a},function(b){jQuery("#edd_purchase_form_wrap").html(b),jQuery(".edd-no-js").hide(),jQuery("body").trigger("edd_gateway_loaded",[a])})}var edd_scripts;jQuery(document).ready(function(a){function b(){var c,b=a(this),d="undefined"!=typeof edd_global_vars;if("card_state"!=b.attr("id")){var e={action:"edd_get_shop_states",country:b.val(),field_name:"card_state"};a.ajax({type:"POST",data:e,url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(e){c=d?a("#edd_purchase_form"):b.closest("form");var f='input[name="card_state"], select[name="card_state"], input[name="edd_address_state"], select[name="edd_address_state"]';if("nostates"==a.trim(e)){var g='<input type="text" name="card_state" class="cart-state edd-input required" value=""/>';c.find(f).replaceWith(g)}else c.find(f).replaceWith(e);d&&a("body").trigger("edd_cart_billing_address_updated",[e])}}).fail(function(a){window.console&&window.console.log&&console.log(a)}).done(function(a){d&&recalculate_taxes()})}else d&&recalculate_taxes();return!1}a(".edd-no-js").hide(),a("a.edd-add-to-cart").addClass("edd-has-js"),a("body").on("click.eddRemoveFromCart",".edd-remove-from-cart",function(b){var c=a(this),d=c.data("cart-item"),e=c.data("action"),f=c.data("download-id"),g={action:e,cart_item:d};return a.ajax({type:"POST",data:g,dataType:"json",url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(b){if(b.removed){if(parseInt(edd_scripts.position_in_cart,10)===parseInt(d,10)||edd_scripts.has_purchase_links)return window.location=window.location,!1;a(".edd-cart").each(function(){a(this).find("[data-cart-item='"+d+"']").parent().remove()}),a(".edd-cart").each(function(){var b=0;a(this).find("[data-cart-item]").each(function(){a(this).attr("data-cart-item",b),b+=1})}),a("[id^=edd_purchase_"+f+"]").length&&(a("[id^=edd_purchase_"+f+"] .edd_go_to_checkout").hide(),a("[id^=edd_purchase_"+f+"] a.edd-add-to-cart").show().removeAttr("data-edd-loading"),"1"==edd_scripts.quantities_enabled&&a("[id^=edd_purchase_"+f+"] .edd_download_quantity_wrapper").show()),a("span.edd-cart-quantity").text(b.cart_quantity),a("body").trigger("edd_quantity_updated",[b.cart_quantity]),edd_scripts.taxes_enabled&&(a(".cart_item.edd_subtotal span").html(b.subtotal),a(".cart_item.edd_cart_tax span").html(b.tax)),a(".cart_item.edd_total span").html(b.total),0==b.cart_quantity&&(a(".cart_item.edd_subtotal,.edd-cart-number-of-items,.cart_item.edd_checkout,.cart_item.edd_cart_tax,.cart_item.edd_total").hide(),a(".edd-cart").each(function(){a(this).append('<li class="cart_item empty">'+edd_scripts.empty_cart_message+"</li>")})),a("body").trigger("edd_cart_item_removed",[b])}}}).fail(function(a){window.console&&window.console.log&&console.log(a)}).done(function(a){}),!1}),a("body").on("click.eddAddToCart",".edd-add-to-cart",function(b){b.preventDefault();var c=a(this),d=c.closest("form");c.prop("disabled",!0);var e=c.find(".edd-loading"),f=c.closest("div"),g=e.width(),h=e.height();c.attr("data-edd-loading",""),e.css({"margin-left":g/-2,"margin-top":h/-2});var d=c.parents("form").last(),i=c.data("download-id"),j=c.data("variable-price"),k=c.data("price-mode"),l=[],m=!0;if("yes"==j)if(d.find(".edd_price_option_"+i+'[type="hidden"]').length>0)l[0]=a(".edd_price_option_"+i,d).val(),d.find(".edd-submit").data("price")&&d.find(".edd-submit").data("price")>0&&(m=!1);else{if(!d.find(".edd_price_option_"+i+":checked",d).length)return c.removeAttr("data-edd-loading"),void alert(edd_scripts.select_option);d.find(".edd_price_option_"+i+":checked",d).each(function(b){if(l[b]=a(this).val(),!0===m){var c=a(this).data("price");c&&c>0&&(m=!1)}})}else l[0]=i,c.data("price")&&c.data("price")>0&&(m=!1);if(m&&d.find(".edd_action_input").val("add_to_cart"),"straight_to_gateway"==d.find(".edd_action_input").val())return d.submit(),!0;var n=c.data("action"),o={action:n,download_id:i,price_ids:l,post_data:a(d).serialize()};return a.ajax({type:"POST",data:o,dataType:"json",url:edd_scripts.ajaxurl,xhrFields:{withCredentials:!0},success:function(b){if("1"==edd_scripts.redirect_to_checkout&&"1"==d.find("#edd_redirect_to_checkout").val())window.location=edd_scripts.checkout_page;else{"1"===edd_scripts.taxes_enabled&&(a(".cart_item.edd_subtotal").show(),a(".cart_item.edd_cart_tax").show()),a(".cart_item.edd_total").show(),a(".cart_item.edd_checkout").show(),a(".cart_item.empty").length&&a(".cart_item.empty").hide(),a(".widget_edd_cart_widget .edd-cart").each(function(c){var d=a(this).find(".edd-cart-meta:first");a(b.cart_item).insertBefore(d)}),"1"===edd_scripts.taxes_enabled&&(a(".edd-cart-meta.edd_subtotal span").html(b.subtotal),a(".edd-cart-meta.edd_cart_tax span").html(b.tax)),a(".edd-cart-meta.edd_total span").html(b.total);a(".edd-cart-item-title",b.cart_item).length;if(a("span.edd-cart-quantity").each(function(){a(this).text(b.cart_quantity),a("body").trigger("edd_quantity_updated",[b.cart_quantity])}),"none"==a(".edd-cart-number-of-items").css("display")&&a(".edd-cart-number-of-items").show("slow"),("no"==j||"multi"!=k)&&(a("a.edd-add-to-cart",f).toggle(),a(".edd_go_to_checkout",f).css("display","inline-block")),"multi"==k&&c.removeAttr("data-edd-loading"),a(".edd_download_purchase_form").length&&("no"==j||!d.find(".edd_price_option_"+i).is("input:hidden"))){var g=a('.edd_download_purchase_form *[data-download-id="'+i+'"]').parents("form");a("a.edd-add-to-cart",g).hide(),"multi"!=k&&g.find(".edd_download_quantity_wrapper").slideUp(),a(".edd_go_to_checkout",g).show().removeAttr("data-edd-loading")}"incart"!=b&&(a(".edd-cart-added-alert",f).fadeIn(),setTimeout(function(){a(".edd-cart-added-alert",f).fadeOut()},3e3)),c.prop("disabled",!1),a("body").trigger("edd_cart_item_added",[b])}}}).fail(function(a){window.console&&window.console.log&&console.log(a)}).done(function(a){}),!1}),a("#edd_checkout_form_wrap").on("click",".edd_checkout_register_login",function(){var b=a(this),c={action:b.data("action")};return a(".edd-cart-ajax").show(),a.post(edd_scripts.ajaxurl,c,function(b){a("#edd_checkout_login_register").html(edd_scripts.loading),a("#edd_checkout_login_register").html(b),a(".edd-cart-ajax").hide()}),!1}),a(document).on("click","#edd_purchase_form #edd_login_fields input[type=submit]",function(b){b.preventDefault();var c=a(this).val();a(this).val(edd_global_vars.purchase_loading),a(this).after('<span class="edd-cart-ajax"><i class="edd-icon-spinner edd-icon-spin"></i></span>');var d={action:"edd_process_checkout_login",edd_ajax:1,edd_user_login:a("#edd_login_fields #edd_user_login").val(),edd_user_pass:a("#edd_login_fields #edd_user_pass").val()};a.post(edd_global_vars.ajaxurl,d,function(b){"success"==a.trim(b)?(a(".edd_errors").remove(),window.location=edd_scripts.checkout_page):(a("#edd_login_fields input[type=submit]").val(c),a(".edd-cart-ajax").remove(),a(".edd_errors").remove(),a("#edd-user-login-submit").before(b))})}),a("select#edd-gateway, input.edd-gateway").change(function(b){var c=a("#edd-gateway option:selected, input.edd-gateway:checked").val();return"0"==c?!1:(edd_load_gateway(c),!1)}),"1"==edd_scripts.is_checkout&&a("select#edd-gateway, input.edd-gateway").length&&setTimeout(function(){edd_load_gateway(edd_scripts.default_gateway)},200),a(document).on("click","#edd_purchase_form #edd_purchase_submit input[type=submit]",function(b){var c=document.getElementById("edd_purchase_form");if("function"!=typeof c.checkValidity||!1!==c.checkValidity()){b.preventDefault();var d=a(this).val();a(this).val(edd_global_vars.purchase_loading),a(this).prop("disabled",!0),a(this).after('<span class="edd-cart-ajax"><i class="edd-icon-spinner edd-icon-spin"></i></span>'),a.post(edd_global_vars.ajaxurl,a("#edd_purchase_form").serialize()+"&action=edd_process_checkout&edd_ajax=true",function(b){"success"==a.trim(b)?(a(".edd_errors").remove(),a(".edd-error").hide(),a(c).submit()):(a("#edd-purchase-button").val(d),a(".edd-cart-ajax").remove(),a(".edd_errors").remove(),a(".edd-error").hide(),a("#edd_purchase_submit").before(b),a("#edd-purchase-button").prop("disabled",!1))})}}),a("body").on("change","#edd_cc_address input.card_state, #edd_cc_address select, #edd_address_country",b)});
easy-digital-downloads.php CHANGED
@@ -3,9 +3,9 @@
3
  * Plugin Name: Easy Digital Downloads
4
  * Plugin URI: https://easydigitaldownloads.com
5
  * Description: The easiest way to sell digital products with WordPress.
6
- * Author: Pippin Williamson and Company
7
  * Author URI: https://easydigitaldownloads.com
8
- * Version: 2.6.10
9
  * Text Domain: easy-digital-downloads
10
  * Domain Path: languages
11
  *
@@ -25,7 +25,7 @@
25
  * @package EDD
26
  * @category Core
27
  * @author Pippin Williamson
28
- * @version 2.6.10
29
  */
30
 
31
  // Exit if accessed directly.
@@ -153,6 +153,7 @@ final class Easy_Digital_Downloads {
153
  self::$instance->email_tags = new EDD_Email_Template_Tags();
154
  self::$instance->customers = new EDD_DB_Customers();
155
  self::$instance->customer_meta = new EDD_DB_Customer_Meta();
 
156
  }
157
  return self::$instance;
158
  }
@@ -195,7 +196,7 @@ final class Easy_Digital_Downloads {
195
 
196
  // Plugin version.
197
  if ( ! defined( 'EDD_VERSION' ) ) {
198
- define( 'EDD_VERSION', '2.6.10' );
199
  }
200
 
201
  // Plugin Folder Path.
3
  * Plugin Name: Easy Digital Downloads
4
  * Plugin URI: https://easydigitaldownloads.com
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.6.11
9
  * Text Domain: easy-digital-downloads
10
  * Domain Path: languages
11
  *
25
  * @package EDD
26
  * @category Core
27
  * @author Pippin Williamson
28
+ * @version 2.6.11
29
  */
30
 
31
  // Exit if accessed directly.
153
  self::$instance->email_tags = new EDD_Email_Template_Tags();
154
  self::$instance->customers = new EDD_DB_Customers();
155
  self::$instance->customer_meta = new EDD_DB_Customer_Meta();
156
+ self::$instance->payment_stats = new EDD_Payment_Stats();
157
  }
158
  return self::$instance;
159
  }
196
 
197
  // Plugin version.
198
  if ( ! defined( 'EDD_VERSION' ) ) {
199
+ define( 'EDD_VERSION', '2.6.11' );
200
  }
201
 
202
  // Plugin Folder Path.
includes/EDD_SL_Plugin_Updater.php CHANGED
@@ -320,7 +320,8 @@ class EDD_SL_Plugin_Updater {
320
  'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false,
321
  'slug' => $data['slug'],
322
  'author' => $data['author'],
323
- 'url' => home_url()
 
324
  );
325
 
326
  $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
320
  'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false,
321
  'slug' => $data['slug'],
322
  'author' => $data['author'],
323
+ 'url' => home_url(),
324
+ 'beta' => $data['beta']
325
  );
326
 
327
  $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
includes/admin/class-api-keys-table.php CHANGED
@@ -308,7 +308,7 @@ class EDD_API_Keys_Table extends WP_List_Table {
308
  $hidden = array(); // No hidden columns
309
  $sortable = array(); // Not sortable... for now
310
 
311
- $this->_column_headers = array( $columns, $hidden, $sortable, 'id' );
312
 
313
  $data = $this->query();
314
 
308
  $hidden = array(); // No hidden columns
309
  $sortable = array(); // Not sortable... for now
310
 
311
+ $this->_column_headers = array( $columns, $hidden, $sortable, 'user' );
312
 
313
  $data = $this->query();
314
 
includes/admin/customers/customers.php CHANGED
@@ -614,7 +614,7 @@ function edd_customer_tools_view( $customer ) {
614
  <div class="edd-item-info customer-info">
615
  <h4><?php _e( 'Recount Customer Stats', 'easy-digital-downloads' ); ?></h4>
616
  <p class="edd-item-description"><?php _e( 'Use this tool to recalculate the purchase count and total value of the customer.', 'easy-digital-downloads' ); ?></p>
617
- <form method="post" id="edd-tools-recount-form" class="edd-export-form">
618
  <span>
619
  <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
620
 
614
  <div class="edd-item-info customer-info">
615
  <h4><?php _e( 'Recount Customer Stats', 'easy-digital-downloads' ); ?></h4>
616
  <p class="edd-item-description"><?php _e( 'Use this tool to recalculate the purchase count and total value of the customer.', 'easy-digital-downloads' ); ?></p>
617
+ <form method="post" id="edd-tools-recount-form" class="edd-export-form edd-import-export-form">
618
  <span>
619
  <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
620
 
includes/admin/discounts/add-discount.php CHANGED
@@ -57,8 +57,8 @@ if ( ! defined( 'ABSPATH' ) ) exit;
57
  </th>
58
  <td>
59
  <input type="text" id="edd-amount" name="amount" value="" style="width: 40px;"/>
60
- <p class="description edd-amount-description" style="display:none;"><?php printf( __( 'Enter the discount amount in %s', 'easy-digital-downloads' ), edd_get_currency() ); ?></p>
61
- <p class="description edd-amount-description"><?php _e( 'Enter the discount percentage. 10 = 10%', 'easy-digital-downloads' ); ?></p>
62
  </td>
63
  </tr>
64
  <?php do_action( 'edd_add_discount_form_before_products' ); ?>
57
  </th>
58
  <td>
59
  <input type="text" id="edd-amount" name="amount" value="" style="width: 40px;"/>
60
+ <p class="description edd-amount-description flat-discount" style="display:none;"><?php printf( __( 'Enter the discount amount in %s', 'easy-digital-downloads' ), edd_get_currency() ); ?></p>
61
+ <p class="description edd-amount-description percent-discount"><?php _e( 'Enter the discount percentage. 10 = 10%', 'easy-digital-downloads' ); ?></p>
62
  </td>
63
  </tr>
64
  <?php do_action( 'edd_add_discount_form_before_products' ); ?>
includes/admin/discounts/edit-discount.php CHANGED
@@ -71,8 +71,8 @@ $condition_display = empty( $product_reqs ) ? ' style="display:none;"' : '';
71
  </th>
72
  <td>
73
  <input type="text" id="edd-amount" name="amount" value="<?php echo esc_attr( edd_get_discount_amount( $discount_id ) ); ?>" style="width: 40px;"/>
74
- <p class="description edd-amount-description"<?php echo $flat_display; ?>><?php printf( __( 'Enter the discount amount in %s', 'easy-digital-downloads' ), edd_get_currency() ); ?></p>
75
- <p class="description edd-amount-description"<?php echo $percent_display; ?>><?php _e( 'Enter the discount percentage. 10 = 10%', 'easy-digital-downloads' ); ?></p>
76
  </td>
77
  </tr>
78
  <?php do_action( 'edd_edit_discount_form_before_products', $discount_id, $discount ); ?>
71
  </th>
72
  <td>
73
  <input type="text" id="edd-amount" name="amount" value="<?php echo esc_attr( edd_get_discount_amount( $discount_id ) ); ?>" style="width: 40px;"/>
74
+ <p class="description edd-amount-description flat"<?php echo $flat_display; ?>><?php printf( __( 'Enter the discount amount in %s', 'easy-digital-downloads' ), edd_get_currency() ); ?></p>
75
+ <p class="description edd-amount-description percent"<?php echo $percent_display; ?>><?php _e( 'Enter the discount percentage. 10 = 10%', 'easy-digital-downloads' ); ?></p>
76
  </td>
77
  </tr>
78
  <?php do_action( 'edd_edit_discount_form_before_products', $discount_id, $discount ); ?>
includes/admin/import/class-batch-import-downloads.php CHANGED
@@ -299,14 +299,21 @@ class EDD_Batch_Downloads_Import extends EDD_Batch_Import {
299
  if( ! empty( $files ) ) {
300
 
301
  $download_files = array();
 
302
  foreach( $files as $file ) {
303
 
304
  $condition = '';
305
 
306
- if ( strpos( $file, ';' ) ) {
 
307
  $split_on = strpos( $file, ';' );
308
  $file_url = substr( $file, 0, $split_on );
309
  $condition = substr( $file, $split_on + 1 );
 
 
 
 
 
310
  }
311
 
312
  $download_file_args = array(
@@ -318,7 +325,8 @@ class EDD_Batch_Downloads_Import extends EDD_Batch_Import {
318
  $download_file_args['condition'] = $condition;
319
  }
320
 
321
- $download_files[] = $download_file_args;
 
322
 
323
  }
324
 
299
  if( ! empty( $files ) ) {
300
 
301
  $download_files = array();
302
+ $file_id = 1;
303
  foreach( $files as $file ) {
304
 
305
  $condition = '';
306
 
307
+ if ( false !== strpos( $file, ';' ) ) {
308
+
309
  $split_on = strpos( $file, ';' );
310
  $file_url = substr( $file, 0, $split_on );
311
  $condition = substr( $file, $split_on + 1 );
312
+
313
+ } else {
314
+
315
+ $file_url = $file;
316
+
317
  }
318
 
319
  $download_file_args = array(
325
  $download_file_args['condition'] = $condition;
326
  }
327
 
328
+ $download_files[ $file_id ] = $download_file_args;
329
+ $file_id++;
330
 
331
  }
332
 
includes/admin/payments/payments-history.php CHANGED
@@ -59,8 +59,8 @@ function edd_payment_history_page() {
59
  function edd_payment_history_mobile_link() {
60
  ?>
61
  <p class="edd-mobile-link">
62
- <a href="https://easydigitaldownloads.com/downloads/ios-sales-earnings-tracker/?utm_source=payments&utm_medium=mobile-link&utm_campaign=admin" target="_blank">
63
- <img src="<?php echo EDD_PLUGIN_URL . 'assets/images/icons/iphone.png'; ?>"/>
64
  <?php _e( 'Get the EDD Sales / Earnings tracker for iOS', 'easy-digital-downloads' ); ?>
65
  </a>
66
  </p>
59
  function edd_payment_history_mobile_link() {
60
  ?>
61
  <p class="edd-mobile-link">
62
+ <a href="https://easydigitaldownloads.com/downloads/ios-app/?utm_source=payments&utm_medium=mobile-link&utm_campaign=admin" target="_blank">
63
+ <img src="<?php echo EDD_PLUGIN_URL . 'assets/images/icons/iphone.png'; ?>" alt="<?php _e( 'Easy Digital Downloads iOS App', 'easy-digital-downloads' ); ?>"/>
64
  <?php _e( 'Get the EDD Sales / Earnings tracker for iOS', 'easy-digital-downloads' ); ?>
65
  </a>
66
  </p>
includes/admin/reporting/export/class-batch-export-file-downloads.php CHANGED
@@ -81,6 +81,10 @@ class EDD_Batch_File_Downloads_Export extends EDD_Batch_Export {
81
 
82
  }
83
 
 
 
 
 
84
  $logs = $edd_logs->get_connected_logs( $args );
85
 
86
  if ( $logs ) {
@@ -142,6 +146,10 @@ class EDD_Batch_File_Downloads_Export extends EDD_Batch_Export {
142
  )
143
  );
144
 
 
 
 
 
145
  $logs = new WP_Query( $args );
146
  $total = (int) $logs->post_count;
147
  $percentage = 100;
@@ -158,7 +166,8 @@ class EDD_Batch_File_Downloads_Export extends EDD_Batch_Export {
158
  }
159
 
160
  public function set_properties( $request ) {
161
- $this->start = isset( $request['start'] ) ? sanitize_text_field( $request['start'] ) : '';
162
- $this->end = isset( $request['end'] ) ? sanitize_text_field( $request['end'] ) : '';
 
163
  }
164
  }
81
 
82
  }
83
 
84
+ if ( 0 !== $this->download_id ) {
85
+ $args['post_parent'] = $this->download_id;
86
+ }
87
+
88
  $logs = $edd_logs->get_connected_logs( $args );
89
 
90
  if ( $logs ) {
146
  )
147
  );
148
 
149
+ if ( 0 !== $this->download_id ) {
150
+ $args['post_parent'] = $this->download_id;
151
+ }
152
+
153
  $logs = new WP_Query( $args );
154
  $total = (int) $logs->post_count;
155
  $percentage = 100;
166
  }
167
 
168
  public function set_properties( $request ) {
169
+ $this->start = isset( $request['start'] ) ? sanitize_text_field( $request['start'] ) : '';
170
+ $this->end = isset( $request['end'] ) ? sanitize_text_field( $request['end'] ) : '';
171
+ $this->download_id = isset( $request['download_id'] ) ? absint( $request['download_id'] ) : 0;
172
  }
173
  }
includes/admin/reporting/export/class-batch-export-payments.php CHANGED
@@ -224,7 +224,7 @@ class EDD_Batch_Payments_Export extends EDD_Batch_Export {
224
  'currency' => $payment->currency,
225
  'ip' => $payment->ip,
226
  'mode' => $payment->get_meta( '_edd_payment_mode', true ),
227
- 'status' => $payment->status
228
  );
229
 
230
  }
224
  'currency' => $payment->currency,
225
  'ip' => $payment->ip,
226
  'mode' => $payment->get_meta( '_edd_payment_mode', true ),
227
+ 'status' => ( 'publish' === $payment->status ) ? 'complete' : $payment->status
228
  );
229
 
230
  }
includes/admin/reporting/graphing.php CHANGED
@@ -53,22 +53,33 @@ function edd_reports_graph() {
53
 
54
  $include_taxes = empty( $_GET['exclude_taxes'] ) ? true : false;
55
 
56
- if( $dates['range'] == 'today' || $dates['range'] == 'yesterday' ) {
57
  // Hour by hour
58
  $hour = 1;
59
  $month = $dates['m_start'];
 
 
 
 
 
 
 
 
60
  while ( $hour <= 23 ) {
 
61
 
62
- $sales = edd_get_sales_by_date( $dates['day'], $month, $dates['year'], $hour );
63
  $earnings = edd_get_earnings_by_date( $dates['day'], $month, $dates['year'], $hour, $include_taxes );
64
-
65
- $sales_totals += $sales;
66
  $earnings_totals += $earnings;
67
-
68
- $date = mktime( $hour, 0, 0, $month, $dates['day'], $dates['year'] ) * 1000;
69
- $sales_data[] = array( $date, $sales );
70
  $earnings_data[] = array( $date, $earnings );
71
 
 
 
 
 
 
 
 
 
72
  $hour++;
73
  }
74
 
@@ -79,7 +90,6 @@ function edd_reports_graph() {
79
  $report_dates = array();
80
  $i = 0;
81
  while ( $i <= 6 ) {
82
-
83
  if ( ( $dates['day'] + $i ) <= $num_of_days ) {
84
  $report_dates[ $i ] = array(
85
  'day' => (string) $dates['day'] + $i,
@@ -97,19 +107,33 @@ function edd_reports_graph() {
97
  $i++;
98
  }
99
 
 
 
 
 
 
 
100
  foreach ( $report_dates as $report_date ) {
101
- $sales = edd_get_sales_by_date( $report_date['day'], $report_date['month'], $report_date['year'] );
102
- $sales_totals += $sales;
 
 
 
 
 
 
 
103
 
104
  $earnings = edd_get_earnings_by_date( $report_date['day'], $report_date['month'], $report_date['year'] , null, $include_taxes );
105
  $earnings_totals += $earnings;
106
-
107
- $date = mktime( 0, 0, 0, $report_date['month'], $report_date['day'], $report_date['year'] ) * 1000;
108
- $sales_data[] = array( $date, $sales );
109
  $earnings_data[] = array( $date, $earnings );
110
  }
111
 
112
  } else {
 
 
 
 
113
 
114
  $y = $dates['year'];
115
  $temp_data = array(
@@ -117,11 +141,42 @@ function edd_reports_graph() {
117
  'earnings' => array(),
118
  );
119
 
120
- while( $y <= $dates['year_end'] ) {
 
 
 
 
 
 
 
 
 
 
 
 
121
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  $last_year = false;
123
 
124
- if( $dates['year'] == $dates['year_end'] ) {
125
  $month_start = $dates['m_start'];
126
  $month_end = $dates['m_end'];
127
  $last_year = true;
@@ -138,43 +193,28 @@ function edd_reports_graph() {
138
 
139
  $i = $month_start;
140
  while ( $i <= $month_end ) {
141
-
142
-
143
  $d = $dates['day'];
144
 
145
- if( $i == $month_end ) {
146
-
147
  $num_of_days = $dates['day_end'];
148
 
149
  if ( $month_start < $month_end ) {
150
-
151
  $d = 1;
152
-
153
  }
154
-
155
  } else {
156
-
157
  $num_of_days = cal_days_in_month( CAL_GREGORIAN, $i, $y );
158
-
159
  }
160
 
161
  while ( $d <= $num_of_days ) {
162
-
163
  $earnings = edd_get_earnings_by_date( $d, $i, $y, null, $include_taxes );
164
  $earnings_totals += $earnings;
165
 
166
- $sales = edd_get_sales_by_date( $d, $i, $y );
167
- $sales_totals += $sales;
168
-
169
  $temp_data['earnings'][ $y ][ $i ][ $d ] = $earnings;
170
- $temp_data['sales'][ $y ][ $i ][ $d ] = $sales;
171
 
172
  $d++;
173
-
174
  }
175
 
176
  $i++;
177
-
178
  }
179
 
180
  $y++;
@@ -185,21 +225,25 @@ function edd_reports_graph() {
185
 
186
  // When using 3 months or smaller as the custom range, show each day individually on the graph
187
  if ( $day_by_day ) {
188
-
189
- foreach ( $temp_data[ 'sales' ] as $year => $months ) {
190
- foreach( $months as $month => $days ) {
191
- foreach ( $days as $day => $sales ) {
192
  $date = mktime( 0, 0, 0, $month, $day, $year ) * 1000;
193
- $sales_data[] = array( $date, $sales );
194
  }
195
-
196
  }
197
  }
198
 
199
- foreach ( $temp_data[ 'earnings' ] as $year => $months ) {
200
- foreach( $months as $month => $days ) {
 
 
 
 
 
 
201
  foreach ( $days as $day => $earnings ) {
202
- $date = mktime( 0, 0, 0, $month, $day, $year ) * 1000;
203
  $earnings_data[] = array( $date, $earnings );
204
  }
205
 
@@ -209,33 +253,45 @@ function edd_reports_graph() {
209
  // When showing more than 3 months of results, group them by month, by the first (except for the last month, group on the last day of the month selected)
210
  } else {
211
 
212
- foreach ( $temp_data[ 'sales' ] as $year => $months ) {
213
-
214
  $month_keys = array_keys( $months );
215
  $last_month = end( $month_keys );
216
 
217
- foreach( $months as $month => $days ) {
 
 
 
218
 
219
- $day_keys = array_keys( $days );
220
- $last_day = end( $day_keys );
221
 
222
- $consolidated_date = $month === $last_month ? $last_day : 1;
223
 
224
- $sales = array_sum( $days );
225
- $date = mktime( 0, 0, 0, $month, $consolidated_date, $year ) * 1000;
226
- $sales_data[] = array( $date, $sales );
 
 
 
 
 
227
 
 
 
 
228
  }
 
229
 
 
 
 
230
  }
 
231
 
232
  foreach ( $temp_data[ 'earnings' ] as $year => $months ) {
233
-
234
  $month_keys = array_keys( $months );
235
  $last_month = end( $month_keys );
236
 
237
- foreach( $months as $month => $days ) {
238
-
239
  $day_keys = array_keys( $days );
240
  $last_day = end( $day_keys );
241
 
@@ -244,13 +300,9 @@ function edd_reports_graph() {
244
  $earnings = array_sum( $days );
245
  $date = mktime( 0, 0, 0, $month, $consolidated_date, $year ) * 1000;
246
  $earnings_data[] = array( $date, $earnings );
247
-
248
  }
249
-
250
  }
251
-
252
  }
253
-
254
  }
255
 
256
  $data = array(
@@ -375,16 +427,14 @@ function edd_reports_graph_of_download( $download_id = 0 ) {
375
  $sales_data = array();
376
  $stats = new EDD_Payment_Stats;
377
 
378
- if( $dates['range'] == 'today' || $dates['range'] == 'yesterday' ) {
379
-
380
  // Hour by hour
381
  $month = $dates['m_start'];
382
  $hour = 1;
383
  $minute = 0;
384
  $second = 0;
385
  while ( $hour <= 23 ) :
386
-
387
- if( $hour == 23 ) {
388
  $minute = $second = 59;
389
  }
390
 
@@ -402,15 +452,12 @@ function edd_reports_graph_of_download( $download_id = 0 ) {
402
 
403
  $hour++;
404
  endwhile;
405
-
406
  } elseif( $dates['range'] == 'this_week' || $dates['range'] == 'last_week' ) {
407
-
408
  $num_of_days = cal_days_in_month( CAL_GREGORIAN, $dates['m_start'], $dates['year'] );
409
 
410
  $report_dates = array();
411
  $i = 0;
412
  while ( $i <= 6 ) {
413
-
414
  if ( ( $dates['day'] + $i ) <= $num_of_days ) {
415
  $report_dates[ $i ] = array(
416
  'day' => (string) $dates['day'] + $i,
@@ -429,7 +476,6 @@ function edd_reports_graph_of_download( $download_id = 0 ) {
429
  }
430
 
431
  foreach ( $report_dates as $report_date ) {
432
-
433
  $date = mktime( 0, 0, 0, $report_date['month'], $report_date['day'], $report_date['year'] );
434
  $date_end = mktime( 23, 59, 59, $report_date['month'], $report_date['day'], $report_date['year'] );
435
  $sales = $stats->get_sales( $download_id, $date, $date_end );
@@ -440,11 +486,8 @@ function edd_reports_graph_of_download( $download_id = 0 ) {
440
 
441
  $sales_data[] = array( $date * 1000, $sales );
442
  $earnings_data[] = array( $date * 1000, $earnings );
443
-
444
  }
445
-
446
  } else {
447
-
448
  $y = $dates['year'];
449
  $temp_data = array();
450
 
@@ -469,28 +512,19 @@ function edd_reports_graph_of_download( $download_id = 0 ) {
469
 
470
  $i = $month_start;
471
  while ( $i <= $month_end ) {
472
-
473
-
474
  $d = $dates['day'];
475
 
476
- if( $i == $month_end ) {
477
-
478
  $num_of_days = $dates['day_end'];
479
 
480
  if ( $month_start < $month_end ) {
481
-
482
  $d = 1;
483
-
484
  }
485
-
486
  } else {
487
-
488
  $num_of_days = cal_days_in_month( CAL_GREGORIAN, $i, $y );
489
-
490
  }
491
 
492
  while ( $d <= $num_of_days ) {
493
-
494
  $date = mktime( 0, 0, 0, $i, $d, $y );
495
  $end_date = mktime( 23, 59, 59, $i, $d, $y );
496
 
@@ -504,11 +538,9 @@ function edd_reports_graph_of_download( $download_id = 0 ) {
504
  $temp_data['sales'][ $y ][ $i ][ $d ] = $sales;
505
 
506
  $d++;
507
-
508
  }
509
 
510
  $i++;
511
-
512
  }
513
 
514
  $y++;
@@ -519,37 +551,31 @@ function edd_reports_graph_of_download( $download_id = 0 ) {
519
 
520
  // When using 2 months or smaller as the custom range, show each day individually on the graph
521
  if ( $day_by_day ) {
522
-
523
  foreach ( $temp_data[ 'sales' ] as $year => $months ) {
524
  foreach( $months as $month => $dates ) {
525
  foreach ( $dates as $day => $sales ) {
526
  $date = mktime( 0, 0, 0, $month, $day, $year ) * 1000;
527
  $sales_data[] = array( $date, $sales );
528
  }
529
-
530
  }
531
  }
532
 
533
  foreach ( $temp_data[ 'earnings' ] as $year => $months ) {
534
  foreach( $months as $month => $dates ) {
535
  foreach ( $dates as $day => $earnings ) {
536
- $date = mktime( 0, 0, 0, $month, $day, $year ) * 1000;
537
  $earnings_data[] = array( $date, $earnings );
538
  }
539
-
540
  }
541
  }
542
 
543
  // When showing more than 2 months of results, group them by month, by the first (except for the last month, group on the last day of the month selected)
544
  } else {
545
-
546
  foreach ( $temp_data[ 'sales' ] as $year => $months ) {
547
-
548
  $month_keys = array_keys( $months );
549
  $last_month = end( $month_keys );
550
 
551
- foreach( $months as $month => $days ) {
552
-
553
  $day_keys = array_keys( $days );
554
  $last_day = end( $day_keys );
555
 
@@ -558,18 +584,14 @@ function edd_reports_graph_of_download( $download_id = 0 ) {
558
  $sales = array_sum( $days );
559
  $date = mktime( 0, 0, 0, $month, $consolidated_date, $year ) * 1000;
560
  $sales_data[] = array( $date, $sales );
561
-
562
  }
563
-
564
  }
565
 
566
  foreach ( $temp_data[ 'earnings' ] as $year => $months ) {
567
-
568
  $month_keys = array_keys( $months );
569
  $last_month = end( $month_keys );
570
 
571
- foreach( $months as $month => $days ) {
572
-
573
  $day_keys = array_keys( $days );
574
  $last_day = end( $day_keys );
575
 
@@ -578,13 +600,9 @@ function edd_reports_graph_of_download( $download_id = 0 ) {
578
  $earnings = array_sum( $days );
579
  $date = mktime( 0, 0, 0, $month, $consolidated_date, $year ) * 1000;
580
  $earnings_data[] = array( $date, $earnings );
581
-
582
  }
583
-
584
  }
585
-
586
  }
587
-
588
  }
589
 
590
  $data = array(
@@ -729,7 +747,7 @@ function edd_get_report_dates() {
729
 
730
  $current_time = current_time( 'timestamp' );
731
 
732
- $dates['range'] = isset( $_GET['range'] ) ? $_GET['range'] : 'this_month';
733
 
734
  if ( 'custom' !== $dates['range'] ) {
735
  $dates['year'] = isset( $_GET['year'] ) ? $_GET['year'] : date( 'Y' );
@@ -753,7 +771,7 @@ function edd_get_report_dates() {
753
  break;
754
 
755
  case 'last_month' :
756
- if( date( 'n' ) == 1 ) {
757
  $dates['m_start'] = 12;
758
  $dates['m_end'] = 12;
759
  $dates['year'] = date( 'Y', $current_time ) - 1;
@@ -780,20 +798,14 @@ function edd_get_report_dates() {
780
  $day = date( 'd', $current_time );
781
 
782
  if ( $month == 1 && $day == 1 ) {
783
-
784
  $year -= 1;
785
  $month = 12;
786
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
787
-
788
  } elseif ( $month > 1 && $day == 1 ) {
789
-
790
  $month -= 1;
791
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
792
-
793
  } else {
794
-
795
  $day -= 1;
796
-
797
  }
798
 
799
  $dates['day'] = $day;
@@ -823,27 +835,17 @@ function edd_get_report_dates() {
823
  $dates['year_end'] = $dates['year'];
824
 
825
  if ( $month_now <= 3 ) {
826
-
827
  $dates['m_start'] = 1;
828
  $dates['m_end'] = 3;
829
-
830
-
831
  } else if ( $month_now <= 6 ) {
832
-
833
  $dates['m_start'] = 4;
834
  $dates['m_end'] = 6;
835
-
836
-
837
  } else if ( $month_now <= 9 ) {
838
-
839
  $dates['m_start'] = 7;
840
  $dates['m_end'] = 9;
841
-
842
  } else {
843
-
844
  $dates['m_start'] = 10;
845
  $dates['m_end'] = 12;
846
-
847
  }
848
 
849
  $dates['day_end'] = cal_days_in_month( CAL_GREGORIAN, $dates['m_end'], $dates['year'] );
@@ -853,29 +855,21 @@ function edd_get_report_dates() {
853
  $month_now = date( 'n' );
854
 
855
  if ( $month_now <= 3 ) {
856
-
857
  $dates['m_start'] = 10;
858
  $dates['m_end'] = 12;
859
  $dates['year'] = date( 'Y', $current_time ) - 1; // Previous year
860
-
861
  } else if ( $month_now <= 6 ) {
862
-
863
  $dates['m_start'] = 1;
864
  $dates['m_end'] = 3;
865
  $dates['year'] = date( 'Y', $current_time );
866
-
867
  } else if ( $month_now <= 9 ) {
868
-
869
  $dates['m_start'] = 4;
870
  $dates['m_end'] = 6;
871
  $dates['year'] = date( 'Y', $current_time );
872
-
873
  } else {
874
-
875
  $dates['m_start'] = 7;
876
  $dates['m_end'] = 9;
877
  $dates['year'] = date( 'Y', $current_time );
878
-
879
  }
880
 
881
  $dates['day_end'] = cal_days_in_month( CAL_GREGORIAN, $dates['m_end'], $dates['year'] );
53
 
54
  $include_taxes = empty( $_GET['exclude_taxes'] ) ? true : false;
55
 
56
+ if ( $dates['range'] == 'today' || $dates['range'] == 'yesterday' ) {
57
  // Hour by hour
58
  $hour = 1;
59
  $month = $dates['m_start'];
60
+
61
+ $i = 0;
62
+
63
+ $start = $dates['year'] . '-' . $dates['m_start'] . '-' . $dates['day'];
64
+ $end = $dates['year_end'] . '-' . $dates['m_end'] . '-' . $dates['day_end'];
65
+
66
+ $sales = EDD()->payment_stats->get_sales_by_range( $dates['range'], true, $start, $end );
67
+
68
  while ( $hour <= 23 ) {
69
+ $date = mktime( $hour, 0, 0, $month, $dates['day'], $dates['year'] ) * 1000;
70
 
 
71
  $earnings = edd_get_earnings_by_date( $dates['day'], $month, $dates['year'], $hour, $include_taxes );
 
 
72
  $earnings_totals += $earnings;
 
 
 
73
  $earnings_data[] = array( $date, $earnings );
74
 
75
+ if ( $sales[ $i ]['h'] == $hour ) {
76
+ $sales_data[] = array( $date, $sales[ $i ]['count'] );
77
+ $sales_totals += $sales[ $i ]['count'];
78
+ $i++;
79
+ } else {
80
+ $sales_data[] = array( $date, 0 );
81
+ }
82
+
83
  $hour++;
84
  }
85
 
90
  $report_dates = array();
91
  $i = 0;
92
  while ( $i <= 6 ) {
 
93
  if ( ( $dates['day'] + $i ) <= $num_of_days ) {
94
  $report_dates[ $i ] = array(
95
  'day' => (string) $dates['day'] + $i,
107
  $i++;
108
  }
109
 
110
+ $start_date = $report_dates[0];
111
+ $end_date = end( $report_dates );
112
+
113
+ $sales = EDD()->payment_stats->get_sales_by_range( $dates['range'], true, $start_date['year'] . '-' . date( 'm', strtotime( $start_date['month'] ) ) . '-' . date( 'd', strtotime( $start_date['day'] ) ), $end_date['year'] . '-' . date( 'm', strtotime( $end_date['month'] ) ) . '-' . date( 'd', strtotime( $end_date['day'] ) ) );
114
+
115
+ $i = 0;
116
  foreach ( $report_dates as $report_date ) {
117
+ $date = mktime( 0, 0, 0, $report_date['month'], $report_date['day'], $report_date['year'] ) * 1000;
118
+
119
+ if ( $report_date['day'] == $sales[ $i ]['d'] && $report_date['month'] == $sales[ $i ]['m'] && $report_date['year'] == $sales[ $i ]['y'] ) {
120
+ $sales_data[] = array( $date, $sales[ $i ]['count'] );
121
+ $sales_totals += $sales[ $i ]['count'];
122
+ $i++;
123
+ } else {
124
+ $sales_data[] = array( $date, 0 );
125
+ }
126
 
127
  $earnings = edd_get_earnings_by_date( $report_date['day'], $report_date['month'], $report_date['year'] , null, $include_taxes );
128
  $earnings_totals += $earnings;
 
 
 
129
  $earnings_data[] = array( $date, $earnings );
130
  }
131
 
132
  } else {
133
+ $date_start = $dates['year'] . '-' . $dates['m_start'] . '-' . $dates['day'];
134
+ $date_end = $dates['year_end'] . '-' . $dates['m_end'] . '-' . $dates['day_end'];
135
+
136
+ $sales = EDD()->payment_stats->get_sales_by_range( $dates['range'], $day_by_day, $date_start, $date_end );
137
 
138
  $y = $dates['year'];
139
  $temp_data = array(
141
  'earnings' => array(),
142
  );
143
 
144
+ foreach ( $sales as $sale ) {
145
+ if ( $day_by_day ) {
146
+ $temp_data['sales'][ $sale['y'] ][ $sale['m'] ][ $sale['d'] ] = $sale['count'];
147
+ } else {
148
+ $temp_data['sales'][ $sale['y'] ][ $sale['m'] ] = $sale['count'];
149
+ }
150
+ $sales_totals += $sale['count'];
151
+ }
152
+
153
+ while ( $day_by_day && ( strtotime( $date_start ) <= strtotime( $date_end ) ) ) {
154
+ $d = date( 'd', strtotime( $date_start ) );
155
+ $m = date( 'm', strtotime( $date_start ) );
156
+ $y = date( 'Y', strtotime( $date_start ) );
157
 
158
+ if ( ! isset( $temp_data['sales'][ $y ][ $m ][ $d ] ) ) {
159
+ $temp_data['sales'][ $y ][ $m ][ $d ] = 0;
160
+ }
161
+
162
+ $date_start = date( 'Y-m-d', strtotime( '+1 day', strtotime( $date_start ) ) );
163
+ }
164
+
165
+ while ( ! $day_by_day && ( strtotime( $date_start ) <= strtotime( $date_end ) ) ) {
166
+ $m = date( 'm', strtotime( $date_start ) );
167
+ $y = date( 'Y', strtotime( $date_start ) );
168
+
169
+ if ( ! isset( $temp_data['sales'][ $y ][ $m ] ) ) {
170
+ $temp_data['sales'][ $y ][ $m ] = 0;
171
+ }
172
+
173
+ $date_start = date( 'Y-m', strtotime( '+1 month', strtotime( $date_start ) ) );
174
+ }
175
+
176
+ while ( $y <= $dates['year_end'] ) {
177
  $last_year = false;
178
 
179
+ if ( $dates['year'] == $dates['year_end'] ) {
180
  $month_start = $dates['m_start'];
181
  $month_end = $dates['m_end'];
182
  $last_year = true;
193
 
194
  $i = $month_start;
195
  while ( $i <= $month_end ) {
 
 
196
  $d = $dates['day'];
197
 
198
+ if ( $i == $month_end ) {
 
199
  $num_of_days = $dates['day_end'];
200
 
201
  if ( $month_start < $month_end ) {
 
202
  $d = 1;
 
203
  }
 
204
  } else {
 
205
  $num_of_days = cal_days_in_month( CAL_GREGORIAN, $i, $y );
 
206
  }
207
 
208
  while ( $d <= $num_of_days ) {
 
209
  $earnings = edd_get_earnings_by_date( $d, $i, $y, null, $include_taxes );
210
  $earnings_totals += $earnings;
211
 
 
 
 
212
  $temp_data['earnings'][ $y ][ $i ][ $d ] = $earnings;
 
213
 
214
  $d++;
 
215
  }
216
 
217
  $i++;
 
218
  }
219
 
220
  $y++;
225
 
226
  // When using 3 months or smaller as the custom range, show each day individually on the graph
227
  if ( $day_by_day ) {
228
+ foreach ( $temp_data['sales'] as $year => $months ) {
229
+ foreach ( $months as $month => $days ) {
230
+ foreach ( $days as $day => $count ) {
 
231
  $date = mktime( 0, 0, 0, $month, $day, $year ) * 1000;
232
+ $sales_data[] = array( $date, $count );
233
  }
 
234
  }
235
  }
236
 
237
+ // Sort dates in ascending order
238
+ foreach ( $sales_data as $key => $value ) {
239
+ $timestamps[ $key ] = $value[0];
240
+ }
241
+ array_multisort( $timestamps, SORT_ASC, $sales_data );
242
+
243
+ foreach ( $temp_data['earnings'] as $year => $months ) {
244
+ foreach ( $months as $month => $days ) {
245
  foreach ( $days as $day => $earnings ) {
246
+ $date = mktime( 0, 0, 0, $month, $day, $year ) * 1000;
247
  $earnings_data[] = array( $date, $earnings );
248
  }
249
 
253
  // When showing more than 3 months of results, group them by month, by the first (except for the last month, group on the last day of the month selected)
254
  } else {
255
 
256
+ foreach ( $temp_data['sales'] as $year => $months ) {
 
257
  $month_keys = array_keys( $months );
258
  $last_month = end( $month_keys );
259
 
260
+ if ( $day_by_day ) {
261
+ foreach ( $months as $month => $days ) {
262
+ $day_keys = array_keys( $days );
263
+ $last_day = end( $day_keys );
264
 
265
+ $month_keys = array_keys( $months );
 
266
 
267
+ $consolidated_date = $month === end( $month_keys ) ? cal_days_in_month( CAL_GREGORIAN, $month, $year ) : 1;
268
 
269
+ $sales = array_sum( $days );
270
+ $date = mktime( 0, 0, 0, $month, $consolidated_date, $year ) * 1000;
271
+ $sales_data[] = array( $date, $sales );
272
+ }
273
+ } else {
274
+ foreach ( $months as $month => $count ) {
275
+ $month_keys = array_keys( $months );
276
+ $consolidated_date = $month === end( $month_keys ) ? cal_days_in_month( CAL_GREGORIAN, $month, $year ) : 1;
277
 
278
+ $date = mktime( 0, 0, 0, $month, $consolidated_date, $year ) * 1000;
279
+ $sales_data[] = array( $date, $count );
280
+ }
281
  }
282
+ }
283
 
284
+ // Sort dates in ascending order
285
+ foreach ( $sales_data as $key => $value ) {
286
+ $timestamps[ $key ] = $value[0];
287
  }
288
+ array_multisort( $timestamps, SORT_ASC, $sales_data );
289
 
290
  foreach ( $temp_data[ 'earnings' ] as $year => $months ) {
 
291
  $month_keys = array_keys( $months );
292
  $last_month = end( $month_keys );
293
 
294
+ foreach ( $months as $month => $days ) {
 
295
  $day_keys = array_keys( $days );
296
  $last_day = end( $day_keys );
297
 
300
  $earnings = array_sum( $days );
301
  $date = mktime( 0, 0, 0, $month, $consolidated_date, $year ) * 1000;
302
  $earnings_data[] = array( $date, $earnings );
 
303
  }
 
304
  }
 
305
  }
 
306
  }
307
 
308
  $data = array(
427
  $sales_data = array();
428
  $stats = new EDD_Payment_Stats;
429
 
430
+ if ( $dates['range'] == 'today' || $dates['range'] == 'yesterday' ) {
 
431
  // Hour by hour
432
  $month = $dates['m_start'];
433
  $hour = 1;
434
  $minute = 0;
435
  $second = 0;
436
  while ( $hour <= 23 ) :
437
+ if ( $hour == 23 ) {
 
438
  $minute = $second = 59;
439
  }
440
 
452
 
453
  $hour++;
454
  endwhile;
 
455
  } elseif( $dates['range'] == 'this_week' || $dates['range'] == 'last_week' ) {
 
456
  $num_of_days = cal_days_in_month( CAL_GREGORIAN, $dates['m_start'], $dates['year'] );
457
 
458
  $report_dates = array();
459
  $i = 0;
460
  while ( $i <= 6 ) {
 
461
  if ( ( $dates['day'] + $i ) <= $num_of_days ) {
462
  $report_dates[ $i ] = array(
463
  'day' => (string) $dates['day'] + $i,
476
  }
477
 
478
  foreach ( $report_dates as $report_date ) {
 
479
  $date = mktime( 0, 0, 0, $report_date['month'], $report_date['day'], $report_date['year'] );
480
  $date_end = mktime( 23, 59, 59, $report_date['month'], $report_date['day'], $report_date['year'] );
481
  $sales = $stats->get_sales( $download_id, $date, $date_end );
486
 
487
  $sales_data[] = array( $date * 1000, $sales );
488
  $earnings_data[] = array( $date * 1000, $earnings );
 
489
  }
 
490
  } else {
 
491
  $y = $dates['year'];
492
  $temp_data = array();
493
 
512
 
513
  $i = $month_start;
514
  while ( $i <= $month_end ) {
 
 
515
  $d = $dates['day'];
516
 
517
+ if ( $i == $month_end ) {
 
518
  $num_of_days = $dates['day_end'];
519
 
520
  if ( $month_start < $month_end ) {
 
521
  $d = 1;
 
522
  }
 
523
  } else {
 
524
  $num_of_days = cal_days_in_month( CAL_GREGORIAN, $i, $y );
 
525
  }
526
 
527
  while ( $d <= $num_of_days ) {
 
528
  $date = mktime( 0, 0, 0, $i, $d, $y );
529
  $end_date = mktime( 23, 59, 59, $i, $d, $y );
530
 
538
  $temp_data['sales'][ $y ][ $i ][ $d ] = $sales;
539
 
540
  $d++;
 
541
  }
542
 
543
  $i++;
 
544
  }
545
 
546
  $y++;
551
 
552
  // When using 2 months or smaller as the custom range, show each day individually on the graph
553
  if ( $day_by_day ) {
 
554
  foreach ( $temp_data[ 'sales' ] as $year => $months ) {
555
  foreach( $months as $month => $dates ) {
556
  foreach ( $dates as $day => $sales ) {
557
  $date = mktime( 0, 0, 0, $month, $day, $year ) * 1000;
558
  $sales_data[] = array( $date, $sales );
559
  }
 
560
  }
561
  }
562
 
563
  foreach ( $temp_data[ 'earnings' ] as $year => $months ) {
564
  foreach( $months as $month => $dates ) {
565
  foreach ( $dates as $day => $earnings ) {
566
+ $date = mktime( 0, 0, 0, $month, $day, $year ) * 1000;
567
  $earnings_data[] = array( $date, $earnings );
568
  }
 
569
  }
570
  }
571
 
572
  // When showing more than 2 months of results, group them by month, by the first (except for the last month, group on the last day of the month selected)
573
  } else {
 
574
  foreach ( $temp_data[ 'sales' ] as $year => $months ) {
 
575
  $month_keys = array_keys( $months );
576
  $last_month = end( $month_keys );
577
 
578
+ foreach ( $months as $month => $days ) {
 
579
  $day_keys = array_keys( $days );
580
  $last_day = end( $day_keys );
581
 
584
  $sales = array_sum( $days );
585
  $date = mktime( 0, 0, 0, $month, $consolidated_date, $year ) * 1000;
586
  $sales_data[] = array( $date, $sales );
 
587
  }
 
588
  }
589
 
590
  foreach ( $temp_data[ 'earnings' ] as $year => $months ) {
 
591
  $month_keys = array_keys( $months );
592
  $last_month = end( $month_keys );
593
 
594
+ foreach ( $months as $month => $days ) {
 
595
  $day_keys = array_keys( $days );
596
  $last_day = end( $day_keys );
597
 
600
  $earnings = array_sum( $days );
601
  $date = mktime( 0, 0, 0, $month, $consolidated_date, $year ) * 1000;
602
  $earnings_data[] = array( $date, $earnings );
 
603
  }
 
604
  }
 
605
  }
 
606
  }
607
 
608
  $data = array(
747
 
748
  $current_time = current_time( 'timestamp' );
749
 
750
+ $dates['range'] = isset( $_GET['range'] ) ? $_GET['range'] : 'this_month';
751
 
752
  if ( 'custom' !== $dates['range'] ) {
753
  $dates['year'] = isset( $_GET['year'] ) ? $_GET['year'] : date( 'Y' );
771
  break;
772
 
773
  case 'last_month' :
774
+ if ( date( 'n' ) == 1 ) {
775
  $dates['m_start'] = 12;
776
  $dates['m_end'] = 12;
777
  $dates['year'] = date( 'Y', $current_time ) - 1;
798
  $day = date( 'd', $current_time );
799
 
800
  if ( $month == 1 && $day == 1 ) {
 
801
  $year -= 1;
802
  $month = 12;
803
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
 
804
  } elseif ( $month > 1 && $day == 1 ) {
 
805
  $month -= 1;
806
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
 
807
  } else {
 
808
  $day -= 1;
 
809
  }
810
 
811
  $dates['day'] = $day;
835
  $dates['year_end'] = $dates['year'];
836
 
837
  if ( $month_now <= 3 ) {
 
838
  $dates['m_start'] = 1;
839
  $dates['m_end'] = 3;
 
 
840
  } else if ( $month_now <= 6 ) {
 
841
  $dates['m_start'] = 4;
842
  $dates['m_end'] = 6;
 
 
843
  } else if ( $month_now <= 9 ) {
 
844
  $dates['m_start'] = 7;
845
  $dates['m_end'] = 9;
 
846
  } else {
 
847
  $dates['m_start'] = 10;
848
  $dates['m_end'] = 12;
 
849
  }
850
 
851
  $dates['day_end'] = cal_days_in_month( CAL_GREGORIAN, $dates['m_end'], $dates['year'] );
855
  $month_now = date( 'n' );
856
 
857
  if ( $month_now <= 3 ) {
 
858
  $dates['m_start'] = 10;
859
  $dates['m_end'] = 12;
860
  $dates['year'] = date( 'Y', $current_time ) - 1; // Previous year
 
861
  } else if ( $month_now <= 6 ) {
 
862
  $dates['m_start'] = 1;
863
  $dates['m_end'] = 3;
864
  $dates['year'] = date( 'Y', $current_time );
 
865
  } else if ( $month_now <= 9 ) {
 
866
  $dates['m_start'] = 4;
867
  $dates['m_end'] = 6;
868
  $dates['year'] = date( 'Y', $current_time );
 
869
  } else {
 
870
  $dates['m_start'] = 7;
871
  $dates['m_end'] = 9;
872
  $dates['year'] = date( 'Y', $current_time );
 
873
  }
874
 
875
  $dates['day_end'] = cal_days_in_month( CAL_GREGORIAN, $dates['m_end'], $dates['year'] );
includes/admin/reporting/reports.php CHANGED
@@ -430,8 +430,9 @@ function edd_reports_tab_export() {
430
  <div class="postbox edd-export-download-history">
431
  <h3><span><?php _e('Export Download History in CSV','easy-digital-downloads' ); ?></span></h3>
432
  <div class="inside">
433
- <p><?php _e( 'Download a CSV of file downloads.', 'easy-digital-downloads' ); ?></p>
434
  <form id="edd-export-file-downloads" class="edd-export-form edd-import-export-form" method="post">
 
435
  <?php echo EDD()->html->date_field( array( 'id' => 'edd-file-download-export-start', 'name' => 'start', 'placeholder' => __( 'Choose start date', 'easy-digital-downloads' ) )); ?>
436
  <?php echo EDD()->html->date_field( array( 'id' => 'edd-file-download-export-end', 'name' => 'end', 'placeholder' => __( 'Choose end date', 'easy-digital-downloads' ) )); ?>
437
  <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
430
  <div class="postbox edd-export-download-history">
431
  <h3><span><?php _e('Export Download History in CSV','easy-digital-downloads' ); ?></span></h3>
432
  <div class="inside">
433
+ <p><?php _e( 'Download a CSV of file downloads. To download a CSV for all file downloads, leave "Choose a Download" as it is.', 'easy-digital-downloads' ); ?></p>
434
  <form id="edd-export-file-downloads" class="edd-export-form edd-import-export-form" method="post">
435
+ <?php echo EDD()->html->product_dropdown( array( 'name' => 'download_id', 'id' => 'edd_file_download_export_download', 'chosen' => true ) ); ?>
436
  <?php echo EDD()->html->date_field( array( 'id' => 'edd-file-download-export-start', 'name' => 'start', 'placeholder' => __( 'Choose start date', 'easy-digital-downloads' ) )); ?>
437
  <?php echo EDD()->html->date_field( array( 'id' => 'edd-file-download-export-end', 'name' => 'end', 'placeholder' => __( 'Choose end date', 'easy-digital-downloads' ) )); ?>
438
  <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
includes/admin/settings/register-settings.php CHANGED
@@ -198,6 +198,7 @@ function edd_register_settings() {
198
  'faux' => false,
199
  'tooltip_title' => false,
200
  'tooltip_desc' => false,
 
201
  ) );
202
 
203
  add_settings_field(
@@ -283,7 +284,9 @@ function edd_get_registered_settings() {
283
  'login_redirect_page' => array(
284
  'id' => 'login_redirect_page',
285
  'name' => __( 'Login Redirect Page', 'easy-digital-downloads' ),
286
- 'desc' => __( 'This is the page where buyers will be redirected by default once they log in. The [edd_login redirect="'.trailingslashit( home_url() ).'"] shortcode with the redirect attribute can override this setting.', 'easy-digital-downloads' ),
 
 
287
  'type' => 'select',
288
  'options' => edd_get_pages(),
289
  'chosen' => true,
@@ -656,6 +659,8 @@ function edd_get_registered_settings() {
656
  'yes' => __( 'Including tax', 'easy-digital-downloads' ),
657
  'no' => __( 'Excluding tax', 'easy-digital-downloads' ),
658
  ),
 
 
659
  ),
660
  ),
661
  )
@@ -1155,6 +1160,26 @@ function edd_sanitize_text_field( $input ) {
1155
  }
1156
  add_filter( 'edd_settings_sanitize_text', 'edd_sanitize_text_field' );
1157
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1158
  /**
1159
  * Retrieve settings tabs
1160
  *
@@ -1317,10 +1342,12 @@ function edd_checkbox_callback( $args ) {
1317
  } else {
1318
  $name = 'name="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"';
1319
  }
 
 
1320
 
1321
  $checked = ! empty( $edd_option ) ? checked( 1, $edd_option, false ) : '';
1322
  $html = '<input type="hidden"' . $name . ' value="-1" />';
1323
- $html .= '<input type="checkbox" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"' . $name . ' value="1" ' . $checked . '/>';
1324
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1325
 
1326
  echo apply_filters( 'edd_after_setting_output', $html, $args );
@@ -1338,13 +1365,15 @@ function edd_checkbox_callback( $args ) {
1338
  */
1339
  function edd_multicheck_callback( $args ) {
1340
  $edd_option = edd_get_option( $args['id'] );
 
 
1341
 
1342
  $html = '';
1343
  if ( ! empty( $args['options'] ) ) {
1344
  $html .= '<input type="hidden" name="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" value="-1" />';
1345
  foreach( $args['options'] as $key => $option ):
1346
  if( isset( $edd_option[ $key ] ) ) { $enabled = $option; } else { $enabled = NULL; }
1347
- $html .= '<input name="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked($option, $enabled, false) . '/>&nbsp;';
1348
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']">' . wp_kses_post( $option ) . '</label><br/>';
1349
  endforeach;
1350
  $html .= '<p class="description">' . $args['desc'] . '</p>';
@@ -1363,12 +1392,14 @@ function edd_multicheck_callback( $args ) {
1363
  */
1364
  function edd_payment_icons_callback( $args ) {
1365
  $edd_option = edd_get_option( $args['id'] );
 
 
1366
 
1367
  $html = '<input type="hidden" name="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" value="-1" />';
1368
  if ( ! empty( $args['options'] ) ) {
1369
  foreach( $args['options'] as $key => $option ) {
1370
 
1371
- if( isset( $edd_option[$key] ) ) {
1372
  $enabled = $option;
1373
  } else {
1374
  $enabled = NULL;
@@ -1376,11 +1407,11 @@ function edd_payment_icons_callback( $args ) {
1376
 
1377
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
1378
 
1379
- $html .= '<input name="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/>&nbsp;';
1380
 
1381
  if( edd_string_is_image_url( $key ) ) {
1382
 
1383
- echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
1384
 
1385
  } else {
1386
 
@@ -1434,6 +1465,8 @@ function edd_radio_callback( $args ) {
1434
  $edd_options = edd_get_option( $args['id'] );
1435
 
1436
  $html = '';
 
 
1437
 
1438
  foreach ( $args['options'] as $key => $option ) :
1439
  $checked = false;
@@ -1443,7 +1476,7 @@ function edd_radio_callback( $args ) {
1443
  elseif( isset( $args['std'] ) && $args['std'] == $key && ! $edd_options )
1444
  $checked = true;
1445
 
1446
- $html .= '<input name="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" type="radio" value="' . edd_sanitize_key( $key ) . '" ' . checked(true, $checked, false) . '/>&nbsp;';
1447
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']">' . esc_html( $option ) . '</label><br/>';
1448
  endforeach;
1449
 
@@ -1464,6 +1497,8 @@ function edd_radio_callback( $args ) {
1464
  */
1465
  function edd_gateways_callback( $args ) {
1466
  $edd_option = edd_get_option( $args['id'] );
 
 
1467
 
1468
  $html = '<input type="hidden" name="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" value="-1" />';
1469
 
@@ -1473,7 +1508,7 @@ function edd_gateways_callback( $args ) {
1473
  else
1474
  $enabled = null;
1475
 
1476
- $html .= '<input name="edd_settings[' . esc_attr( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" type="checkbox" value="1" ' . checked('1', $enabled, false) . '/>&nbsp;';
1477
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']">' . esc_html( $option['admin_label'] ) . '</label><br/>';
1478
  endforeach;
1479
 
@@ -1492,10 +1527,12 @@ function edd_gateways_callback( $args ) {
1492
  */
1493
  function edd_gateway_select_callback( $args ) {
1494
  $edd_option = edd_get_option( $args['id'] );
 
 
1495
 
1496
  $html = '';
1497
 
1498
- $html .= '<select name="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']">';
1499
 
1500
  foreach ( $args['options'] as $key => $option ) :
1501
  $selected = isset( $edd_option ) ? selected( $key, $edd_option, false ) : '';
@@ -1534,10 +1571,12 @@ function edd_text_callback( $args ) {
1534
  } else {
1535
  $name = 'name="edd_settings[' . esc_attr( $args['id'] ) . ']"';
1536
  }
 
 
1537
 
1538
  $readonly = $args['readonly'] === true ? ' readonly="readonly"' : '';
1539
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1540
- $html = '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" ' . $name . ' value="' . esc_attr( stripslashes( $value ) ) . '"' . $readonly . '/>';
1541
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1542
 
1543
  echo apply_filters( 'edd_after_setting_output', $html, $args );
@@ -1569,13 +1608,15 @@ function edd_number_callback( $args ) {
1569
  } else {
1570
  $name = 'name="edd_settings[' . esc_attr( $args['id'] ) . ']"';
1571
  }
 
 
1572
 
1573
  $max = isset( $args['max'] ) ? $args['max'] : 999999;
1574
  $min = isset( $args['min'] ) ? $args['min'] : 0;
1575
  $step = isset( $args['step'] ) ? $args['step'] : 1;
1576
 
1577
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1578
- $html = '<input type="number" step="' . esc_attr( $step ) . '" max="' . esc_attr( $max ) . '" min="' . esc_attr( $min ) . '" class="' . sanitize_html_class( $size ) . '-text" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" ' . $name . ' value="' . esc_attr( stripslashes( $value ) ) . '"/>';
1579
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1580
 
1581
  echo apply_filters( 'edd_after_setting_output', $html, $args );
@@ -1599,8 +1640,10 @@ function edd_textarea_callback( $args ) {
1599
  } else {
1600
  $value = isset( $args['std'] ) ? $args['std'] : '';
1601
  }
 
 
1602
 
1603
- $html = '<textarea class="large-text" cols="50" rows="5" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
1604
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1605
 
1606
  echo apply_filters( 'edd_after_setting_output', $html, $args );
@@ -1624,9 +1667,11 @@ function edd_password_callback( $args ) {
1624
  } else {
1625
  $value = isset( $args['std'] ) ? $args['std'] : '';
1626
  }
 
 
1627
 
1628
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1629
- $html = '<input type="password" class="' . sanitize_html_class( $size ) . '-text" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
1630
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1631
 
1632
  echo apply_filters( 'edd_after_setting_output', $html, $args );
@@ -1672,14 +1717,14 @@ function edd_select_callback($args) {
1672
  } else {
1673
  $placeholder = '';
1674
  }
 
 
1675
 
1676
  if ( isset( $args['chosen'] ) ) {
1677
- $chosen = 'class="edd-chosen"';
1678
- } else {
1679
- $chosen = '';
1680
  }
1681
 
1682
- $html = '<select id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']" ' . $chosen . 'data-placeholder="' . esc_html( $placeholder ) . '" />';
1683
 
1684
  foreach ( $args['options'] as $option => $name ) {
1685
  $selected = selected( $option, $value, false );
@@ -1710,8 +1755,10 @@ function edd_color_select_callback( $args ) {
1710
  } else {
1711
  $value = isset( $args['std'] ) ? $args['std'] : '';
1712
  }
 
 
1713
 
1714
- $html = '<select id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']"/>';
1715
 
1716
  foreach ( $args['options'] as $option => $color ) {
1717
  $selected = selected( $option, $value, false );
@@ -1747,9 +1794,10 @@ function edd_rich_editor_callback( $args ) {
1747
 
1748
  $rows = isset( $args['size'] ) ? $args['size'] : 20;
1749
 
 
1750
 
1751
  ob_start();
1752
- wp_editor( stripslashes( $value ), 'edd_settings_' . esc_attr( $args['id'] ), array( 'textarea_name' => 'edd_settings[' . esc_attr( $args['id'] ) . ']', 'textarea_rows' => absint( $rows ) ) );
1753
  $html = ob_get_clean();
1754
 
1755
  $html .= '<br/><label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
@@ -1775,9 +1823,11 @@ function edd_upload_callback( $args ) {
1775
  } else {
1776
  $value = isset($args['std']) ? $args['std'] : '';
1777
  }
 
 
1778
 
1779
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1780
- $html = '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>';
1781
  $html .= '<span>&nbsp;<input type="button" class="edd_settings_upload_button button-secondary" value="' . __( 'Upload File', 'easy-digital-downloads' ) . '"/></span>';
1782
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1783
 
@@ -1805,8 +1855,10 @@ function edd_color_callback( $args ) {
1805
  }
1806
 
1807
  $default = isset( $args['std'] ) ? $args['std'] : '';
 
 
1808
 
1809
- $html = '<input type="text" class="edd-color-picker" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $default ) . '" />';
1810
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1811
 
1812
  echo apply_filters( 'edd_after_setting_output', $html, $args );
@@ -1830,11 +1882,19 @@ function edd_shop_states_callback($args) {
1830
  } else {
1831
  $placeholder = '';
1832
  }
 
 
1833
 
1834
  $states = edd_get_shop_states();
1835
-
1836
- $chosen = ( $args['chosen'] ? ' edd-chosen' : '' );
1837
- $class = empty( $states ) ? ' class="edd-no-states' . $chosen . '"' : 'class="' . $chosen . '"';
 
 
 
 
 
 
1838
  $html = '<select id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']"' . $class . 'data-placeholder="' . esc_html( $placeholder ) . '"/>';
1839
 
1840
  foreach ( $states as $option => $name ) {
@@ -1859,9 +1919,12 @@ function edd_shop_states_callback($args) {
1859
  */
1860
  function edd_tax_rates_callback($args) {
1861
  $rates = edd_get_tax_rates();
 
 
 
1862
  ob_start(); ?>
1863
  <p><?php echo $args['desc']; ?></p>
1864
- <table id="edd_tax_rates" class="wp-list-table widefat fixed posts">
1865
  <thead>
1866
  <tr>
1867
  <th scope="col" class="edd_tax_country"><?php _e( 'Country', 'easy-digital-downloads' ); ?></th>
@@ -1924,6 +1987,7 @@ function edd_tax_rates_callback($args) {
1924
  echo EDD()->html->select( array(
1925
  'options' => edd_get_country_list(),
1926
  'name' => 'tax_rates[0][country]',
 
1927
  'show_option_all' => false,
1928
  'show_option_none' => false,
1929
  'class' => 'edd-tax-country',
@@ -2137,6 +2201,8 @@ if ( ! function_exists( 'edd_license_key_callback' ) ) {
2137
 
2138
  $license_status = null;
2139
  }
 
 
2140
 
2141
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
2142
  $html = '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" name="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
198
  'faux' => false,
199
  'tooltip_title' => false,
200
  'tooltip_desc' => false,
201
+ 'field_class' => '',
202
  ) );
203
 
204
  add_settings_field(
284
  'login_redirect_page' => array(
285
  'id' => 'login_redirect_page',
286
  'name' => __( 'Login Redirect Page', 'easy-digital-downloads' ),
287
+ 'desc' => sprintf(
288
+ __( 'This is the page where buyers will be redirected by default once they log in. The [edd_login redirect="%s"] shortcode with the redirect attribute can override this setting.', 'easy-digital-downloads' ), trailingslashit( home_url() )
289
+ ),
290
  'type' => 'select',
291
  'options' => edd_get_pages(),
292
  'chosen' => true,
659
  'yes' => __( 'Including tax', 'easy-digital-downloads' ),
660
  'no' => __( 'Excluding tax', 'easy-digital-downloads' ),
661
  ),
662
+ 'tooltip_title' => __( 'Taxes Displayed for Products on Checkout', 'easy-digital-downloads' ),
663
+ 'tooltip_desc' => __( 'This option will determine whether the product price displays with or without tax on checkout.', 'easy-digital-downloads' ),
664
  ),
665
  ),
666
  )
1160
  }
1161
  add_filter( 'edd_settings_sanitize_text', 'edd_sanitize_text_field' );
1162
 
1163
+ /**
1164
+ * Sanitize HTML Class Names
1165
+ *
1166
+ * @since 2.6.11
1167
+ * @param string|array $class HTML Class Name(s)
1168
+ * @return string $class
1169
+ */
1170
+ function edd_sanitize_html_class( $class = '' ) {
1171
+
1172
+ if ( is_string( $class ) ) {
1173
+ $class = sanitize_html_class( $class );
1174
+ } else if ( is_array( $class ) ) {
1175
+ $class = array_values( array_map( 'sanitize_html_class', $class ) );
1176
+ $class = implode( ' ', array_unique( $class ) );
1177
+ }
1178
+
1179
+ return $class;
1180
+
1181
+ }
1182
+
1183
  /**
1184
  * Retrieve settings tabs
1185
  *
1342
  } else {
1343
  $name = 'name="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"';
1344
  }
1345
+
1346
+ $class = edd_sanitize_html_class( $args['field_class'] );
1347
 
1348
  $checked = ! empty( $edd_option ) ? checked( 1, $edd_option, false ) : '';
1349
  $html = '<input type="hidden"' . $name . ' value="-1" />';
1350
+ $html .= '<input type="checkbox" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"' . $name . ' value="1" ' . $checked . ' class="' . $class . '"/>';
1351
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1352
 
1353
  echo apply_filters( 'edd_after_setting_output', $html, $args );
1365
  */
1366
  function edd_multicheck_callback( $args ) {
1367
  $edd_option = edd_get_option( $args['id'] );
1368
+
1369
+ $class = edd_sanitize_html_class( $args['field_class'] );
1370
 
1371
  $html = '';
1372
  if ( ! empty( $args['options'] ) ) {
1373
  $html .= '<input type="hidden" name="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" value="-1" />';
1374
  foreach( $args['options'] as $key => $option ):
1375
  if( isset( $edd_option[ $key ] ) ) { $enabled = $option; } else { $enabled = NULL; }
1376
+ $html .= '<input name="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" class="' . $class . '" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked($option, $enabled, false) . '/>&nbsp;';
1377
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']">' . wp_kses_post( $option ) . '</label><br/>';
1378
  endforeach;
1379
  $html .= '<p class="description">' . $args['desc'] . '</p>';
1392
  */
1393
  function edd_payment_icons_callback( $args ) {
1394
  $edd_option = edd_get_option( $args['id'] );
1395
+
1396
+ $class = edd_sanitize_html_class( $args['field_class'] );
1397
 
1398
  $html = '<input type="hidden" name="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" value="-1" />';
1399
  if ( ! empty( $args['options'] ) ) {
1400
  foreach( $args['options'] as $key => $option ) {
1401
 
1402
+ if( isset( $edd_option[ $key ] ) ) {
1403
  $enabled = $option;
1404
  } else {
1405
  $enabled = NULL;
1407
 
1408
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
1409
 
1410
+ $html .= '<input name="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" class="' . $class . '" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/>&nbsp;';
1411
 
1412
  if( edd_string_is_image_url( $key ) ) {
1413
 
1414
+ $html .= '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
1415
 
1416
  } else {
1417
 
1465
  $edd_options = edd_get_option( $args['id'] );
1466
 
1467
  $html = '';
1468
+
1469
+ $class = edd_sanitize_html_class( $args['field_class'] );
1470
 
1471
  foreach ( $args['options'] as $key => $option ) :
1472
  $checked = false;
1476
  elseif( isset( $args['std'] ) && $args['std'] == $key && ! $edd_options )
1477
  $checked = true;
1478
 
1479
+ $html .= '<input name="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" class="' . $class . '" type="radio" value="' . edd_sanitize_key( $key ) . '" ' . checked(true, $checked, false) . '/>&nbsp;';
1480
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']">' . esc_html( $option ) . '</label><br/>';
1481
  endforeach;
1482
 
1497
  */
1498
  function edd_gateways_callback( $args ) {
1499
  $edd_option = edd_get_option( $args['id'] );
1500
+
1501
+ $class = edd_sanitize_html_class( $args['field_class'] );
1502
 
1503
  $html = '<input type="hidden" name="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" value="-1" />';
1504
 
1508
  else
1509
  $enabled = null;
1510
 
1511
+ $html .= '<input name="edd_settings[' . esc_attr( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']" class="' . $class . '" type="checkbox" value="1" ' . checked('1', $enabled, false) . '/>&nbsp;';
1512
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . '][' . edd_sanitize_key( $key ) . ']">' . esc_html( $option['admin_label'] ) . '</label><br/>';
1513
  endforeach;
1514
 
1527
  */
1528
  function edd_gateway_select_callback( $args ) {
1529
  $edd_option = edd_get_option( $args['id'] );
1530
+
1531
+ $class = edd_sanitize_html_class( $args['field_class'] );
1532
 
1533
  $html = '';
1534
 
1535
+ $html .= '<select name="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" class="' . $class . '">';
1536
 
1537
  foreach ( $args['options'] as $key => $option ) :
1538
  $selected = isset( $edd_option ) ? selected( $key, $edd_option, false ) : '';
1571
  } else {
1572
  $name = 'name="edd_settings[' . esc_attr( $args['id'] ) . ']"';
1573
  }
1574
+
1575
+ $class = edd_sanitize_html_class( $args['field_class'] );
1576
 
1577
  $readonly = $args['readonly'] === true ? ' readonly="readonly"' : '';
1578
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1579
+ $html = '<input type="text" class="' . $class . ' ' . sanitize_html_class( $size ) . '-text" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" ' . $name . ' value="' . esc_attr( stripslashes( $value ) ) . '"' . $readonly . '/>';
1580
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1581
 
1582
  echo apply_filters( 'edd_after_setting_output', $html, $args );
1608
  } else {
1609
  $name = 'name="edd_settings[' . esc_attr( $args['id'] ) . ']"';
1610
  }
1611
+
1612
+ $class = edd_sanitize_html_class( $args['field_class'] );
1613
 
1614
  $max = isset( $args['max'] ) ? $args['max'] : 999999;
1615
  $min = isset( $args['min'] ) ? $args['min'] : 0;
1616
  $step = isset( $args['step'] ) ? $args['step'] : 1;
1617
 
1618
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1619
+ $html = '<input type="number" step="' . esc_attr( $step ) . '" max="' . esc_attr( $max ) . '" min="' . esc_attr( $min ) . '" class="' . $class . ' ' . sanitize_html_class( $size ) . '-text" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" ' . $name . ' value="' . esc_attr( stripslashes( $value ) ) . '"/>';
1620
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1621
 
1622
  echo apply_filters( 'edd_after_setting_output', $html, $args );
1640
  } else {
1641
  $value = isset( $args['std'] ) ? $args['std'] : '';
1642
  }
1643
+
1644
+ $class = edd_sanitize_html_class( $args['field_class'] );
1645
 
1646
+ $html = '<textarea class="' . $class . ' large-text" cols="50" rows="5" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
1647
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1648
 
1649
  echo apply_filters( 'edd_after_setting_output', $html, $args );
1667
  } else {
1668
  $value = isset( $args['std'] ) ? $args['std'] : '';
1669
  }
1670
+
1671
+ $class = edd_sanitize_html_class( $args['field_class'] );
1672
 
1673
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1674
+ $html = '<input type="password" class="' . $class . ' ' . sanitize_html_class( $size ) . '-text" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
1675
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1676
 
1677
  echo apply_filters( 'edd_after_setting_output', $html, $args );
1717
  } else {
1718
  $placeholder = '';
1719
  }
1720
+
1721
+ $class = edd_sanitize_html_class( $args['field_class'] );
1722
 
1723
  if ( isset( $args['chosen'] ) ) {
1724
+ $class .= ' edd-chosen';
 
 
1725
  }
1726
 
1727
+ $html = '<select id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']" class="' . $class . '" data-placeholder="' . esc_html( $placeholder ) . '" />';
1728
 
1729
  foreach ( $args['options'] as $option => $name ) {
1730
  $selected = selected( $option, $value, false );
1755
  } else {
1756
  $value = isset( $args['std'] ) ? $args['std'] : '';
1757
  }
1758
+
1759
+ $class = edd_sanitize_html_class( $args['field_class'] );
1760
 
1761
+ $html = '<select id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" class="' . $class . '" name="edd_settings[' . esc_attr( $args['id'] ) . ']"/>';
1762
 
1763
  foreach ( $args['options'] as $option => $color ) {
1764
  $selected = selected( $option, $value, false );
1794
 
1795
  $rows = isset( $args['size'] ) ? $args['size'] : 20;
1796
 
1797
+ $class = edd_sanitize_html_class( $args['field_class'] );
1798
 
1799
  ob_start();
1800
+ wp_editor( stripslashes( $value ), 'edd_settings_' . esc_attr( $args['id'] ), array( 'textarea_name' => 'edd_settings[' . esc_attr( $args['id'] ) . ']', 'textarea_rows' => absint( $rows ), 'editor_class' => $class ) );
1801
  $html = ob_get_clean();
1802
 
1803
  $html .= '<br/><label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1823
  } else {
1824
  $value = isset($args['std']) ? $args['std'] : '';
1825
  }
1826
+
1827
+ $class = edd_sanitize_html_class( $args['field_class'] );
1828
 
1829
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
1830
+ $html = '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" clas="' . $class . '" name="edd_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>';
1831
  $html .= '<span>&nbsp;<input type="button" class="edd_settings_upload_button button-secondary" value="' . __( 'Upload File', 'easy-digital-downloads' ) . '"/></span>';
1832
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1833
 
1855
  }
1856
 
1857
  $default = isset( $args['std'] ) ? $args['std'] : '';
1858
+
1859
+ $class = edd_sanitize_html_class( $args['field_class'] );
1860
 
1861
+ $html = '<input type="text" class="' . $class . ' edd-color-picker" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $default ) . '" />';
1862
  $html .= '<label for="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
1863
 
1864
  echo apply_filters( 'edd_after_setting_output', $html, $args );
1882
  } else {
1883
  $placeholder = '';
1884
  }
1885
+
1886
+ $class = edd_sanitize_html_class( $args['field_class'] );
1887
 
1888
  $states = edd_get_shop_states();
1889
+
1890
+ if ( $args['chosen'] ) {
1891
+ $class .= ' edd-chosen';
1892
+ }
1893
+
1894
+ if ( empty( $states ) ) {
1895
+ $class .= ' edd-no-states';
1896
+ }
1897
+
1898
  $html = '<select id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" name="edd_settings[' . esc_attr( $args['id'] ) . ']"' . $class . 'data-placeholder="' . esc_html( $placeholder ) . '"/>';
1899
 
1900
  foreach ( $states as $option => $name ) {
1919
  */
1920
  function edd_tax_rates_callback($args) {
1921
  $rates = edd_get_tax_rates();
1922
+
1923
+ $class = edd_sanitize_html_class( $args['field_class'] );
1924
+
1925
  ob_start(); ?>
1926
  <p><?php echo $args['desc']; ?></p>
1927
+ <table id="edd_tax_rates" class="wp-list-table widefat fixed posts <?php echo $class; ?>">
1928
  <thead>
1929
  <tr>
1930
  <th scope="col" class="edd_tax_country"><?php _e( 'Country', 'easy-digital-downloads' ); ?></th>
1987
  echo EDD()->html->select( array(
1988
  'options' => edd_get_country_list(),
1989
  'name' => 'tax_rates[0][country]',
1990
+ 'selected' => '',
1991
  'show_option_all' => false,
1992
  'show_option_none' => false,
1993
  'class' => 'edd-tax-country',
2201
 
2202
  $license_status = null;
2203
  }
2204
+
2205
+ $class .= ' ' . edd_sanitize_html_class( $args['field_class'] );
2206
 
2207
  $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
2208
  $html = '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" name="edd_settings[' . edd_sanitize_key( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
includes/admin/thickbox.php CHANGED
@@ -25,7 +25,7 @@ function edd_media_button() {
25
  /** Only run in post/page creation and edit screens */
26
  if ( in_array( $pagenow, array( 'post.php', 'page.php', 'post-new.php', 'post-edit.php' ) ) && $typenow != 'download' ) {
27
 
28
- $img = '<span class="wp-media-buttons-icon" id="edd-media-button"></span>';
29
  $output = '<a href="#TB_inline?width=640&inlineId=choose-download" class="thickbox button edd-thickbox" style="padding-left: .4em;">' . $img . sprintf( __( 'Insert %s', 'easy-digital-downloads' ), strtolower( edd_get_label_singular() ) ) . '</a>';
30
 
31
  }
25
  /** Only run in post/page creation and edit screens */
26
  if ( in_array( $pagenow, array( 'post.php', 'page.php', 'post-new.php', 'post-edit.php' ) ) && $typenow != 'download' ) {
27
 
28
+ $img = '<span class="wp-media-buttons-icon dashicons dashicons-download" id="edd-media-button"></span>';
29
  $output = '<a href="#TB_inline?width=640&inlineId=choose-download" class="thickbox button edd-thickbox" style="padding-left: .4em;">' . $img . sprintf( __( 'Insert %s', 'easy-digital-downloads' ), strtolower( edd_get_label_singular() ) ) . '</a>';
30
 
31
  }
includes/admin/tools.php CHANGED
@@ -67,6 +67,11 @@ function edd_get_tools_tabs() {
67
  $tabs = array();
68
  $tabs['general'] = __( 'General', 'easy-digital-downloads' );
69
  $tabs['api_keys'] = __( 'API Keys', 'easy-digital-downloads' );
 
 
 
 
 
70
  $tabs['system_info'] = __( 'System Info', 'easy-digital-downloads' );
71
  $tabs['import_export'] = __( 'Import/Export', 'easy-digital-downloads' );
72
 
@@ -130,7 +135,7 @@ function edd_tools_recount_stats_display() {
130
  <h3><span><?php _e( 'Recount Stats', 'easy-digital-downloads' ); ?></span></h3>
131
  <div class="inside recount-stats-controls">
132
  <p><?php _e( 'Use these tools to recount / reset store stats.', 'easy-digital-downloads' ); ?></p>
133
- <form method="post" id="edd-tools-recount-form" class="edd-export-form">
134
  <span>
135
 
136
  <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
@@ -248,6 +253,123 @@ function edd_tools_api_keys_display() {
248
  add_action( 'edd_tools_tab_api_keys', 'edd_tools_api_keys_display' );
249
 
250
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
251
  /**
252
  * Save banned emails
253
  *
67
  $tabs = array();
68
  $tabs['general'] = __( 'General', 'easy-digital-downloads' );
69
  $tabs['api_keys'] = __( 'API Keys', 'easy-digital-downloads' );
70
+
71
+ if( count( edd_get_beta_enabled_extensions() ) > 0 ) {
72
+ $tabs['betas'] = __( 'Beta Versions', 'easy-digital-downloads' );
73
+ }
74
+
75
  $tabs['system_info'] = __( 'System Info', 'easy-digital-downloads' );
76
  $tabs['import_export'] = __( 'Import/Export', 'easy-digital-downloads' );
77
 
135
  <h3><span><?php _e( 'Recount Stats', 'easy-digital-downloads' ); ?></span></h3>
136
  <div class="inside recount-stats-controls">
137
  <p><?php _e( 'Use these tools to recount / reset store stats.', 'easy-digital-downloads' ); ?></p>
138
+ <form method="post" id="edd-tools-recount-form" class="edd-export-form edd-import-export-form">
139
  <span>
140
 
141
  <?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
253
  add_action( 'edd_tools_tab_api_keys', 'edd_tools_api_keys_display' );
254
 
255
 
256
+ /**
257
+ * Display beta opt-ins
258
+ *
259
+ * @since 2.6.11
260
+ * @return void
261
+ */
262
+ function edd_tools_betas_display() {
263
+ if( ! current_user_can( 'manage_shop_settings' ) ) {
264
+ return;
265
+ }
266
+
267
+ $has_beta = edd_get_beta_enabled_extensions();
268
+
269
+ do_action( 'edd_tools_betas_before' );
270
+ ?>
271
+
272
+ <div class="postbox edd-beta-support">
273
+ <h3><span><?php _e( 'Enable Beta Versions', 'easy-digital-downloads' ); ?></span></h3>
274
+ <div class="inside">
275
+ <p><?php _e( 'Checking any of the below checkboxes will opt you in to receive pre-release update notifications. You can opt-out at any time. Pre-release updates do not install automatically, you will still have the opportunity to ignore update notifications.', 'easy-digital-downloads' ); ?></p>
276
+ <form method="post" action="<?php echo admin_url( 'edit.php?post_type=download&page=edd-tools&tab=betas' ); ?>">
277
+ <table class="form-table edd-beta-support">
278
+ <tbody>
279
+ <?php foreach( $has_beta as $slug => $product ) : ?>
280
+ <tr>
281
+ <?php $checked = edd_extension_has_beta_support( $slug ); ?>
282
+ <th scope="row"><?php echo esc_html( $product ); ?></th>
283
+ <td>
284
+ <input type="checkbox" name="enabled_betas[<?php echo esc_attr( $slug ); ?>]" id="enabled_betas[<?php echo esc_attr( $slug ); ?>]"<?php echo $checked; ?> value="1" />
285
+ <label for="enabled_betas[<?php echo esc_attr( $slug ); ?>]"><?php printf( __( 'Get updates for pre-release versions of %s', 'easy-digital-downloads' ), $product ); ?></label>
286
+ </td>
287
+ </tr>
288
+ <?php endforeach; ?>
289
+ </tbody>
290
+ </table>
291
+ <input type="hidden" name="edd_action" value="save_enabled_betas" />
292
+ <?php wp_nonce_field( 'edd_save_betas_nonce', 'edd_save_betas_nonce' ); ?>
293
+ <?php submit_button( __( 'Save', 'easy-digital-downloads' ), 'secondary', 'submit', false ); ?>
294
+ </form>
295
+ </div>
296
+ </div>
297
+
298
+ <?php
299
+ do_action( 'edd_tools_betas_after' );
300
+ }
301
+ add_action( 'edd_tools_tab_betas', 'edd_tools_betas_display' );
302
+
303
+
304
+ /**
305
+ * Return an array of all extensions with beta support
306
+ *
307
+ * Extensions should be added as 'extension-slug' => 'Extension Name'
308
+ *
309
+ * @since 2.6.11
310
+ * @return array $extensions The array of extensions
311
+ */
312
+ function edd_get_beta_enabled_extensions() {
313
+ return apply_filters( 'edd_beta_enabled_extensions', array() );
314
+ }
315
+
316
+
317
+ /**
318
+ * Check if a given extensions has beta support enabled
319
+ *
320
+ * @since 2.6.11
321
+ * @param string $slug The slug of the extension to check
322
+ * @return bool True if enabled, false otherwise
323
+ */
324
+ function edd_extension_has_beta_support( $slug ) {
325
+ $enabled_betas = edd_get_option( 'enabled_betas', array() );
326
+ $return = false;
327
+
328
+ if( array_key_exists( $slug, $enabled_betas ) ) {
329
+ $return = true;
330
+ }
331
+
332
+ return $return;
333
+ }
334
+
335
+
336
+ /**
337
+ * Save enabled betas
338
+ *
339
+ * @since 2.6.11
340
+ * @return void
341
+ */
342
+ function edd_tools_enabled_betas_save() {
343
+ if( ! wp_verify_nonce( $_POST['edd_save_betas_nonce'], 'edd_save_betas_nonce' ) ) {
344
+ return;
345
+ }
346
+
347
+ if( ! current_user_can( 'manage_shop_settings' ) ) {
348
+ return;
349
+ }
350
+
351
+ if( ! empty( $_POST['enabled_betas'] ) ) {
352
+ $enabled_betas = array_filter( array_map( 'edd_tools_enabled_betas_sanitize_value', $_POST['enabled_betas'] ) );
353
+ edd_update_option( 'enabled_betas', $enabled_betas );
354
+ } else {
355
+ edd_delete_option( 'enabled_betas' );
356
+ }
357
+ }
358
+ add_action( 'edd_save_enabled_betas', 'edd_tools_enabled_betas_save' );
359
+
360
+ /**
361
+ * Sanitize the supported beta values by making them booleans
362
+ *
363
+ * @since 2.6.11
364
+ * @param mixed $value The value being sent in, determining if beta support is enabled.
365
+ *
366
+ * @return bool
367
+ */
368
+ function edd_tools_enabled_betas_sanitize_value( $value ) {
369
+ return filter_var( $value, FILTER_VALIDATE_BOOLEAN );
370
+ }
371
+
372
+
373
  /**
374
  * Save banned emails
375
  *
includes/admin/tools/class-edd-tools-recount-all-stats.php CHANGED
@@ -132,6 +132,7 @@ class EDD_Tools_Recount_All_Stats extends EDD_Batch_Export {
132
  $amount += $fee['amount'];
133
  }
134
  }
 
135
  $totals[ $download_id ]['sales']++;
136
  $totals[ $download_id ]['earnings'] += $amount;
137
 
@@ -279,6 +280,13 @@ class EDD_Tools_Recount_All_Stats extends EDD_Batch_Export {
279
 
280
  $all_downloads = get_posts( $args );
281
  $this->store_data( 'edd_temp_download_ids', $all_downloads );
 
 
 
 
 
 
 
282
  }
283
 
284
  $args = apply_filters( 'edd_recount_download_stats_total_args', array(
132
  $amount += $fee['amount'];
133
  }
134
  }
135
+
136
  $totals[ $download_id ]['sales']++;
137
  $totals[ $download_id ]['earnings'] += $amount;
138
 
280
 
281
  $all_downloads = get_posts( $args );
282
  $this->store_data( 'edd_temp_download_ids', $all_downloads );
283
+
284
+ if ( $this->step == 1 ) {
285
+ foreach ( $all_downloads as $download ) {
286
+ update_post_meta( $download, '_edd_download_sales' , 0 );
287
+ update_post_meta( $download, '_edd_download_earnings', 0 );
288
+ }
289
+ }
290
  }
291
 
292
  $args = apply_filters( 'edd_recount_download_stats_total_args', array(
includes/admin/tracking.php CHANGED
@@ -114,6 +114,12 @@ class EDD_Tracking {
114
  */
115
  public function send_checkin( $override = false, $ignore_last_checkin = false ) {
116
 
 
 
 
 
 
 
117
  if( ! $this->tracking_allowed() && ! $override ) {
118
  return false;
119
  }
114
  */
115
  public function send_checkin( $override = false, $ignore_last_checkin = false ) {
116
 
117
+ $home_url = trailingslashit( home_url() );
118
+ // Allows us to stop our own site from checking in, and a filter for our additional sites
119
+ if ( $home_url === 'https://easydigitaldownloads.com/' || apply_filters( 'edd_disable_tracking_checkin', false ) ) {
120
+ return false;
121
+ }
122
+
123
  if( ! $this->tracking_allowed() && ! $override ) {
124
  return false;
125
  }
includes/api/class-edd-api.php CHANGED
@@ -30,7 +30,7 @@ class EDD_API {
30
  /**
31
  * Latest API Version
32
  */
33
- const VERSION = 1;
34
 
35
  /**
36
  * Pretty Print?
@@ -937,6 +937,17 @@ class EDD_API {
937
 
938
  if( is_numeric( $customer ) ) {
939
  $field = 'id';
 
 
 
 
 
 
 
 
 
 
 
940
  } else {
941
  $field = 'email';
942
  }
30
  /**
31
  * Latest API Version
32
  */
33
+ const VERSION = 2;
34
 
35
  /**
36
  * Pretty Print?
937
 
938
  if( is_numeric( $customer ) ) {
939
  $field = 'id';
940
+ } elseif ( is_array( $customer ) ) {
941
+ // Checking if search is being done by id, email, user_id fields.
942
+ if ( array_key_exists( 'id', $customer ) ) {
943
+ $field = 'id';
944
+ } elseif ( array_key_exists( 'email', $customer ) ) {
945
+ $field = 'email';
946
+ } elseif ( array_key_exists( 'user_id', $customer ) ) {
947
+ $field = 'user_id';
948
+ }
949
+
950
+ $customer = $customer[ $field ];
951
  } else {
952
  $field = 'email';
953
  }
includes/cart/functions.php CHANGED
@@ -398,6 +398,9 @@ function edd_set_cart_item_quantity( $download_id = 0, $quantity = 1, $options =
398
 
399
  $cart[ $key ]['quantity'] = $quantity;
400
  EDD()->session->set( 'edd_cart', $cart );
 
 
 
401
  return $cart;
402
 
403
  }
398
 
399
  $cart[ $key ]['quantity'] = $quantity;
400
  EDD()->session->set( 'edd_cart', $cart );
401
+
402
+ do_action( 'edd_after_set_cart_item_quantity', $download_id, $quantity, $options, $cart );
403
+
404
  return $cart;
405
 
406
  }
includes/class-edd-cli.php CHANGED
@@ -300,7 +300,24 @@ class EDD_CLI extends WP_CLI_Command {
300
 
301
  // Search for customers
302
 
303
- $search = $customer_id ? $customer_id : $email;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
304
  $customers = $this->api->get_customers( $search );
305
 
306
  if( isset( $customers['error'] ) ) {
300
 
301
  // Search for customers
302
 
303
+ $search = false;
304
+
305
+ // Checking if search is being done by id, email or user_id fields.
306
+ if ( $customer_id || $email || ( 'null' !== $user_id ) ) {
307
+ $search = array();
308
+ $customer_details = array();
309
+
310
+ if ( $customer_id ) {
311
+ $customer_details['id'] = $customer_id;
312
+ } elseif ( $email ) {
313
+ $customer_details['email'] = $email;
314
+ } elseif ( null !== $user_id ) {
315
+ $customer_details['user_id'] = $user_id;
316
+ }
317
+
318
+ $search['customer'] = $customer_details;
319
+ }
320
+
321
  $customers = $this->api->get_customers( $search );
322
 
323
  if( isset( $customers['error'] ) ) {
includes/class-edd-fees.php CHANGED
@@ -89,6 +89,13 @@ class EDD_Fees {
89
  unset( $args['price_id'] );
90
  }
91
 
 
 
 
 
 
 
 
92
  $fees = $this->get_fees( 'all' );
93
 
94
  // Determine the key
89
  unset( $args['price_id'] );
90
  }
91
 
92
+ if ( ! empty( $args['download_id'] ) ) {
93
+ $options = isset( $args['price_id'] ) ? array( 'price_id' => $args['price_id'] ) : array();
94
+ if ( ! edd_item_in_cart( $args['download_id'], $options ) ) {
95
+ return false;
96
+ }
97
+ }
98
+
99
  $fees = $this->get_fees( 'all' );
100
 
101
  // Determine the key
includes/class-edd-license-handler.php CHANGED
@@ -118,6 +118,8 @@ class EDD_License {
118
 
119
  add_action( 'in_plugin_update_message-' . plugin_basename( $this->file ), array( $this, 'plugin_row_license_missing' ), 10, 2 );
120
 
 
 
121
  }
122
 
123
  /**
@@ -127,11 +129,13 @@ class EDD_License {
127
  * @return void
128
  */
129
  public function auto_updater() {
 
130
 
131
  $args = array(
132
  'version' => $this->version,
133
  'license' => $this->license,
134
- 'author' => $this->author
 
135
  );
136
 
137
  if( ! empty( $this->item_id ) ) {
@@ -462,6 +466,20 @@ class EDD_License {
462
  }
463
 
464
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
465
  }
466
 
467
  endif; // end class_exists check
118
 
119
  add_action( 'in_plugin_update_message-' . plugin_basename( $this->file ), array( $this, 'plugin_row_license_missing' ), 10, 2 );
120
 
121
+ // Register plugins for beta support
122
+ add_filter( 'edd_beta_enabled_extensions', array( $this, 'register_beta_support' ) );
123
  }
124
 
125
  /**
129
  * @return void
130
  */
131
  public function auto_updater() {
132
+ $betas = edd_get_option( 'enabled_betas', array() );
133
 
134
  $args = array(
135
  'version' => $this->version,
136
  'license' => $this->license,
137
+ 'author' => $this->author,
138
+ 'beta' => edd_extension_has_beta_support( $this->item_shortname ),
139
  );
140
 
141
  if( ! empty( $this->item_id ) ) {
466
  }
467
 
468
  }
469
+
470
+ /**
471
+ * Adds this plugin to the beta page
472
+ *
473
+ * @access public
474
+ * @param array $products
475
+ * @since 2.6.11
476
+ * @return void
477
+ */
478
+ public function register_beta_support( $products ) {
479
+ $products[ $this->item_shortname ] = $this->item_name;
480
+
481
+ return $products;
482
+ }
483
  }
484
 
485
  endif; // end class_exists check
includes/class-edd-stats.php CHANGED
@@ -408,6 +408,7 @@ class EDD_Stats {
408
  $year -= 1;
409
  if( ! $end_date ) {
410
  $month = 1;
 
411
  } else {
412
  $month = 12;
413
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
408
  $year -= 1;
409
  if( ! $end_date ) {
410
  $month = 1;
411
+ $day = 1;
412
  } else {
413
  $month = 12;
414
  $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
includes/discount-functions.php CHANGED
@@ -1117,6 +1117,9 @@ function edd_set_cart_discount( $code = '' ) {
1117
 
1118
  EDD()->session->set( 'cart_discounts', implode( '|', $discounts ) );
1119
 
 
 
 
1120
  return $discounts;
1121
  }
1122
 
@@ -1140,6 +1143,9 @@ function edd_unset_cart_discount( $code = '' ) {
1140
  EDD()->session->set( 'cart_discounts', $discounts );
1141
  }
1142
 
 
 
 
1143
  return $discounts;
1144
  }
1145
 
@@ -1151,6 +1157,7 @@ function edd_unset_cart_discount( $code = '' ) {
1151
  */
1152
  function edd_unset_all_cart_discounts() {
1153
  EDD()->session->set( 'cart_discounts', null );
 
1154
  }
1155
 
1156
  /**
1117
 
1118
  EDD()->session->set( 'cart_discounts', implode( '|', $discounts ) );
1119
 
1120
+ do_action( 'edd_cart_discount_set', $code, $discounts );
1121
+ do_action( 'edd_cart_discounts_updated', $discounts );
1122
+
1123
  return $discounts;
1124
  }
1125
 
1143
  EDD()->session->set( 'cart_discounts', $discounts );
1144
  }
1145
 
1146
+ do_action( 'edd_cart_discount_removed', $code, $discounts );
1147
+ do_action( 'edd_cart_discounts_updated', $discounts );
1148
+
1149
  return $discounts;
1150
  }
1151
 
1157
  */
1158
  function edd_unset_all_cart_discounts() {
1159
  EDD()->session->set( 'cart_discounts', null );
1160
+ do_action( 'edd_cart_discounts_removed' );
1161
  }
1162
 
1163
  /**
includes/gateways/paypal-standard.php CHANGED
@@ -345,7 +345,7 @@ function edd_process_paypal_ipn() {
345
  // Verify there is a post_data
346
  if ( $post_data || strlen( $post_data ) > 0 ) {
347
  // Append the data
348
- $encoded_data .= $arg_separator.$post_data;
349
  } else {
350
  // Check if POST is empty
351
  if ( empty( $_POST ) ) {
@@ -355,13 +355,11 @@ function edd_process_paypal_ipn() {
355
  // Loop through each POST
356
  foreach ( $_POST as $key => $value ) {
357
  // Encode the value and append the data
358
- $encoded_data .= $arg_separator."$key=" . urlencode( $value );
359
  }
360
  }
361
  }
362
 
363
-
364
-
365
  // Convert collected post data to an array
366
  parse_str( $encoded_data, $encoded_data_array );
367
 
@@ -369,7 +367,7 @@ function edd_process_paypal_ipn() {
369
 
370
  if ( false !== strpos( $key, 'amp;' ) ) {
371
  $new_key = str_replace( '&amp;', '&', $key );
372
- $new_key = str_replace( 'amp;', '&' , $new_key );
373
 
374
  unset( $encoded_data_array[ $key ] );
375
  $encoded_data_array[ $new_key ] = $value;
@@ -384,21 +382,21 @@ function edd_process_paypal_ipn() {
384
 
385
  // Validate the IPN
386
 
387
- $remote_post_vars = array(
388
- 'method' => 'POST',
389
- 'timeout' => 45,
390
- 'redirection' => 5,
391
- 'httpversion' => '1.1',
392
- 'blocking' => true,
393
- 'headers' => array(
394
  'host' => 'www.paypal.com',
395
  'connection' => 'close',
396
  'content-type' => 'application/x-www-form-urlencoded',
397
  'post' => '/cgi-bin/webscr HTTP/1.1',
398
 
399
  ),
400
- 'sslverify' => false,
401
- 'body' => $encoded_data_array
402
  );
403
 
404
  // Get response
@@ -406,18 +404,20 @@ function edd_process_paypal_ipn() {
406
 
407
  if ( is_wp_error( $api_response ) ) {
408
  edd_record_gateway_error( __( 'IPN Error', 'easy-digital-downloads' ), sprintf( __( 'Invalid IPN verification response. IPN data: %s', 'easy-digital-downloads' ), json_encode( $api_response ) ) );
 
409
  return; // Something went wrong
410
  }
411
 
412
  if ( wp_remote_retrieve_body( $api_response ) !== 'VERIFIED' && edd_get_option( 'disable_paypal_verification', false ) ) {
413
  edd_record_gateway_error( __( 'IPN Error', 'easy-digital-downloads' ), sprintf( __( 'Invalid IPN verification response. IPN data: %s', 'easy-digital-downloads' ), json_encode( $api_response ) ) );
 
414
  return; // Response not okay
415
  }
416
 
417
  }
418
 
419
  // Check if $post_data_array has been populated
420
- if ( ! is_array( $encoded_data_array ) && !empty( $encoded_data_array ) ) {
421
  return;
422
  }
423
 
@@ -428,7 +428,17 @@ function edd_process_paypal_ipn() {
428
 
429
  $encoded_data_array = wp_parse_args( $encoded_data_array, $defaults );
430
 
431
- $payment_id = isset( $encoded_data_array['custom'] ) ? absint( $encoded_data_array['custom'] ) : 0;
 
 
 
 
 
 
 
 
 
 
432
 
433
  if ( has_action( 'edd_paypal_' . $encoded_data_array['txn_type'] ) ) {
434
  // Allow PayPal IPN types to be processed separately
345
  // Verify there is a post_data
346
  if ( $post_data || strlen( $post_data ) > 0 ) {
347
  // Append the data
348
+ $encoded_data .= $arg_separator . $post_data;
349
  } else {
350
  // Check if POST is empty
351
  if ( empty( $_POST ) ) {
355
  // Loop through each POST
356
  foreach ( $_POST as $key => $value ) {
357
  // Encode the value and append the data
358
+ $encoded_data .= $arg_separator . "$key=" . urlencode( $value );
359
  }
360
  }
361
  }
362
 
 
 
363
  // Convert collected post data to an array
364
  parse_str( $encoded_data, $encoded_data_array );
365
 
367
 
368
  if ( false !== strpos( $key, 'amp;' ) ) {
369
  $new_key = str_replace( '&amp;', '&', $key );
370
+ $new_key = str_replace( 'amp;', '&', $new_key );
371
 
372
  unset( $encoded_data_array[ $key ] );
373
  $encoded_data_array[ $new_key ] = $value;
382
 
383
  // Validate the IPN
384
 
385
+ $remote_post_vars = array(
386
+ 'method' => 'POST',
387
+ 'timeout' => 45,
388
+ 'redirection' => 5,
389
+ 'httpversion' => '1.1',
390
+ 'blocking' => true,
391
+ 'headers' => array(
392
  'host' => 'www.paypal.com',
393
  'connection' => 'close',
394
  'content-type' => 'application/x-www-form-urlencoded',
395
  'post' => '/cgi-bin/webscr HTTP/1.1',
396
 
397
  ),
398
+ 'sslverify' => false,
399
+ 'body' => $encoded_data_array
400
  );
401
 
402
  // Get response
404
 
405
  if ( is_wp_error( $api_response ) ) {
406
  edd_record_gateway_error( __( 'IPN Error', 'easy-digital-downloads' ), sprintf( __( 'Invalid IPN verification response. IPN data: %s', 'easy-digital-downloads' ), json_encode( $api_response ) ) );
407
+
408
  return; // Something went wrong
409
  }
410
 
411
  if ( wp_remote_retrieve_body( $api_response ) !== 'VERIFIED' && edd_get_option( 'disable_paypal_verification', false ) ) {
412
  edd_record_gateway_error( __( 'IPN Error', 'easy-digital-downloads' ), sprintf( __( 'Invalid IPN verification response. IPN data: %s', 'easy-digital-downloads' ), json_encode( $api_response ) ) );
413
+
414
  return; // Response not okay
415
  }
416
 
417
  }
418
 
419
  // Check if $post_data_array has been populated
420
+ if ( ! is_array( $encoded_data_array ) && ! empty( $encoded_data_array ) ) {
421
  return;
422
  }
423
 
428
 
429
  $encoded_data_array = wp_parse_args( $encoded_data_array, $defaults );
430
 
431
+ $payment_id = 0;
432
+
433
+ if ( ! empty( $encoded_data_array[ 'parent_txn_id' ] ) ) {
434
+ $payment_id = edd_get_purchase_id_by_transaction_id( $encoded_data_array[ 'parent_txn_id' ] );
435
+ } elseif ( ! empty( $encoded_data_array[ 'txn_id' ] ) ) {
436
+ $payment_id = edd_get_purchase_id_by_transaction_id( $encoded_data_array[ 'txn_id' ] );
437
+ }
438
+
439
+ if ( empty( $payment_id ) ) {
440
+ $payment_id = ! empty( $encoded_data_array[ 'custom' ] ) ? absint( $encoded_data_array[ 'custom' ] ) : 0;
441
+ }
442
 
443
  if ( has_action( 'edd_paypal_' . $encoded_data_array['txn_type'] ) ) {
444
  // Allow PayPal IPN types to be processed separately
includes/payments/class-edd-payment.php CHANGED
@@ -831,6 +831,10 @@ class EDD_Payment {
831
  break;
832
 
833
  default:
 
 
 
 
834
  do_action( 'edd_payment_save', $this, $key );
835
  break;
836
  }
@@ -904,6 +908,12 @@ class EDD_Payment {
904
 
905
  if ( true === $saved ) {
906
  $this->setup_payment( $this->ID );
 
 
 
 
 
 
907
  }
908
 
909
  return $saved;
@@ -1830,7 +1840,7 @@ class EDD_Payment {
1830
  // We don't have tax as it's own meta and no meta was passed
1831
  if ( '' === $tax ) {
1832
 
1833
- $tax = isset( $payment_meta['tax'] ) ? $payment_meta['tax'] : 0;
1834
 
1835
  }
1836
 
831
  break;
832
 
833
  default:
834
+ /**
835
+ * Used to save non-standard data. Developers can hook here if they want to save
836
+ * specific payment data when $payment->save() is run and their item is in the $pending array
837
+ */
838
  do_action( 'edd_payment_save', $this, $key );
839
  break;
840
  }
908
 
909
  if ( true === $saved ) {
910
  $this->setup_payment( $this->ID );
911
+
912
+ /**
913
+ * This action fires anytime that $payment->save() is run, allowing developers to run actions
914
+ * when a payment is updated
915
+ */
916
+ do_action( 'edd_payment_saved', $this->ID, $this );
917
  }
918
 
919
  return $saved;
1840
  // We don't have tax as it's own meta and no meta was passed
1841
  if ( '' === $tax ) {
1842
 
1843
+ $tax = isset( $this->payment_meta['tax'] ) ? $this->payment_meta['tax'] : 0;
1844
 
1845
  }
1846
 
includes/payments/class-payment-stats.php CHANGED
@@ -127,11 +127,10 @@ class EDD_Payment_Stats extends EDD_Stats {
127
  );
128
 
129
  $args = apply_filters( 'edd_stats_earnings_args', $args );
130
- $key = 'edd_stats_' . md5( serialize( $args ) );
 
131
 
132
- $earnings = get_transient( $key );
133
-
134
- if( false === $earnings ) {
135
  $sales = get_posts( $args );
136
  $earnings = 0;
137
 
@@ -152,7 +151,8 @@ class EDD_Payment_Stats extends EDD_Stats {
152
 
153
  }
154
  // Cache the results for one hour
155
- set_transient( $key, $earnings, HOUR_IN_SECONDS );
 
156
  }
157
 
158
  } else {
@@ -173,11 +173,10 @@ class EDD_Payment_Stats extends EDD_Stats {
173
  );
174
 
175
  $args = apply_filters( 'edd_stats_earnings_args', $args );
176
- $key = 'edd_stats_' . md5( serialize( $args ) );
177
-
178
- $earnings = get_transient( $key );
179
- if( false === $earnings ) {
180
 
 
181
  $this->timestamp = false;
182
  $log_ids = $edd_logs->get_connected_logs( $args, 'sale' );
183
 
@@ -217,13 +216,16 @@ class EDD_Payment_Stats extends EDD_Stats {
217
  }
218
 
219
  // Cache the results for one hour
220
- set_transient( $key, $earnings, HOUR_IN_SECONDS );
 
221
  }
222
  }
223
 
224
  remove_filter( 'posts_where', array( $this, 'payments_where' ) );
225
 
226
- return round( $earnings, edd_currency_decimal_filter() );
 
 
227
 
228
  }
229
 
@@ -249,4 +251,104 @@ class EDD_Payment_Stats extends EDD_Stats {
249
  return $downloads;
250
  }
251
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
252
  }
127
  );
128
 
129
  $args = apply_filters( 'edd_stats_earnings_args', $args );
130
+ $cached = get_transient( 'edd_stats_earnings' );
131
+ $key = md5( json_encode( $args ) );
132
 
133
+ if ( ! isset( $cached[ $key ] ) ) {
 
 
134
  $sales = get_posts( $args );
135
  $earnings = 0;
136
 
151
 
152
  }
153
  // Cache the results for one hour
154
+ $cached[ $key ] = $earnings;
155
+ set_transient( 'edd_stats_earnings', $cached, HOUR_IN_SECONDS );
156
  }
157
 
158
  } else {
173
  );
174
 
175
  $args = apply_filters( 'edd_stats_earnings_args', $args );
176
+ $cached = get_transient( 'edd_stats_earnings' );
177
+ $key = md5( json_encode( $args ) );
 
 
178
 
179
+ if ( ! isset( $cached[ $key ] ) ) {
180
  $this->timestamp = false;
181
  $log_ids = $edd_logs->get_connected_logs( $args, 'sale' );
182
 
216
  }
217
 
218
  // Cache the results for one hour
219
+ $cached[ $key ] = $earnings;
220
+ set_transient( 'edd_stats_earnings', $cached, HOUR_IN_SECONDS );
221
  }
222
  }
223
 
224
  remove_filter( 'posts_where', array( $this, 'payments_where' ) );
225
 
226
+ $result = $cached[ $key ];
227
+
228
+ return round( $result, edd_currency_decimal_filter() );
229
 
230
  }
231
 
251
  return $downloads;
252
  }
253
 
254
+ /**
255
+ * Retrieve sales stats based on range provided (used for Reporting)
256
+ *
257
+ * @access public
258
+ * @since 2.6.11
259
+ *
260
+ * @param int $download_id The download product to retrieve stats for. If false, gets stats for all products
261
+ * @param string|bool $start_date The starting date for which we'd like to filter our sale stats. If false, we'll use the default start date of `this_month`
262
+ * @param string|bool $end_date The end date for which we'd like to filter our sale stats. If false, we'll use the default end date of `this_month`
263
+ * @param string|array $status The sale status(es) to count. Only valid when retrieving global stats
264
+ *
265
+ * @return array Total amount of sales based on the passed arguments.
266
+ */
267
+ public function get_sales_by_range( $range = 'today', $day_by_day = false, $start_date = false, $end_date = false, $status = 'publish' ) {
268
+ global $wpdb;
269
+
270
+ $this->setup_dates( $start_date, $end_date );
271
+
272
+ $this->end_date = strtotime( 'midnight', $this->end_date );
273
+
274
+ // Make sure start date is valid
275
+ if ( is_wp_error( $this->start_date ) ) {
276
+ return $this->start_date;
277
+ }
278
+
279
+ // Make sure end date is valid
280
+ if ( is_wp_error( $this->end_date ) ) {
281
+ return $this->end_date;
282
+ }
283
+
284
+ $cached = get_transient( 'edd_stats_sales' );
285
+ $key = md5( $range . '_' . date( 'Y-m-d', $this->start_date ) . '_' . date( 'Y-m-d', strtotime( '+1 DAY', $this->end_date ) ) );
286
+ $sales = isset( $cached[ $key ] ) ? $cached[ $key ] : false;
287
+
288
+ if ( false === $sales || ! $this->is_cacheable( $range ) ) {
289
+ if ( ! $day_by_day ) {
290
+ $select = "DATE_FORMAT(posts.post_date, '%%m') AS m, YEAR(posts.post_date) AS y, COUNT(DISTINCT posts.ID) as count";
291
+ $grouping = "YEAR(posts.post_date), MONTH(posts.post_date)";
292
+ } else {
293
+ if ( $range == 'today' ) {
294
+ $select = "DATE_FORMAT(posts.post_date, '%%d') AS d, DATE_FORMAT(posts.post_date, '%%m') AS m, YEAR(posts.post_date) AS y, HOUR(posts.post_date) AS h, COUNT(DISTINCT posts.ID) as count";
295
+ $grouping = "YEAR(posts.post_date), MONTH(posts.post_date), DAY(posts.post_date), HOUR(posts.post_date)";
296
+ } else {
297
+ $select = "DATE_FORMAT(posts.post_date, '%%d') AS d, DATE_FORMAT(posts.post_date, '%%m') AS m, YEAR(posts.post_date) AS y, COUNT(DISTINCT posts.ID) as count";
298
+ $grouping = "YEAR(posts.post_date), MONTH(posts.post_date), DAY(posts.post_date)";
299
+ }
300
+ }
301
+
302
+ if ( $range == 'today' ) {
303
+ $grouping = "YEAR(posts.post_date), MONTH(posts.post_date), DAY(posts.post_date), HOUR(posts.post_date)";
304
+ }
305
+
306
+ $sales = $wpdb->get_results( $wpdb->prepare(
307
+ "SELECT $select
308
+ FROM {$wpdb->posts} AS posts
309
+ WHERE posts.post_type IN ('edd_payment')
310
+ AND posts.post_status IN (%s)
311
+ AND posts.post_date >= %s
312
+ AND posts.post_date < %s
313
+ AND ((posts.post_status = 'publish' OR posts.post_status = 'revoked' OR posts.post_status = 'cancelled' OR posts.post_status = 'edd_subscription'))
314
+ GROUP BY $grouping
315
+ ORDER by posts.post_date ASC", $status, date( 'Y-m-d', $this->start_date ), date( 'Y-m-d', strtotime( '+1 day', $this->end_date ) ) ), ARRAY_A );
316
+
317
+ if ( $this->is_cacheable( $range ) ) {
318
+ $cached[ $key ] = $sales;
319
+ set_transient( 'edd_stats_sales', $cached, HOUR_IN_SECONDS );
320
+ }
321
+ }
322
+
323
+ return $sales;
324
+ }
325
+
326
+ /**
327
+ * Is the date range cachable
328
+ *
329
+ * @access public
330
+ * @since 2.6.11
331
+ *
332
+ * @param string $range Date range of the report
333
+ * @return boolean Whether the date range is allowed to be cached or not
334
+ */
335
+ public function is_cacheable( $date_range = "" ) {
336
+ if ( empty( $date_range ) ) {
337
+ return false;
338
+ }
339
+
340
+ $cacheable_ranges = array(
341
+ 'today',
342
+ 'yesterday',
343
+ 'this_week',
344
+ 'last_week',
345
+ 'this_month',
346
+ 'last_month',
347
+ 'this_quarter',
348
+ 'last_quarter'
349
+ );
350
+
351
+ return in_array( $date_range, $cacheable_ranges );
352
+ }
353
+
354
  }
includes/payments/functions.php CHANGED
@@ -702,11 +702,11 @@ function edd_get_earnings_by_date( $day = null, $month_num, $year = null, $hour
702
  if ( ! empty( $hour ) )
703
  $args['hour'] = $hour;
704
 
705
- $args = apply_filters( 'edd_get_earnings_by_date_args', $args );
706
- $key = 'edd_stats_' . substr( md5( serialize( $args ) ), 0, 15 );
707
- $earnings = get_transient( $key );
708
 
709
- if( false === $earnings ) {
710
  $sales = get_posts( $args );
711
  $earnings = 0;
712
  if ( $sales ) {
@@ -722,10 +722,13 @@ function edd_get_earnings_by_date( $day = null, $month_num, $year = null, $hour
722
  $earnings += ( $total_earnings - $total_tax );
723
  }
724
  // Cache the results for one hour
725
- set_transient( $key, $earnings, HOUR_IN_SECONDS );
 
726
  }
727
 
728
- return round( $earnings, 2 );
 
 
729
  }
730
 
731
  /**
@@ -777,17 +780,21 @@ function edd_get_sales_by_date( $day = null, $month_num = null, $year = null, $h
777
 
778
  $args = apply_filters( 'edd_get_sales_by_date_args', $args );
779
 
780
- $key = 'edd_stats_' . substr( md5( serialize( $args ) ), 0, 15 );
781
- $count = get_transient( $key );
782
 
783
- if( false === $count ) {
784
  $sales = new WP_Query( $args );
785
  $count = (int) $sales->post_count;
 
786
  // Cache the results for one hour
787
- set_transient( $key, $count, HOUR_IN_SECONDS );
 
788
  }
789
 
790
- return $count;
 
 
791
  }
792
 
793
  /**
702
  if ( ! empty( $hour ) )
703
  $args['hour'] = $hour;
704
 
705
+ $args = apply_filters( 'edd_get_earnings_by_date_args', $args );
706
+ $cached = get_transient( 'edd_stats_earnings' );
707
+ $key = md5( json_encode( $args ) );
708
 
709
+ if ( ! isset( $cached[ $key ] ) ) {
710
  $sales = get_posts( $args );
711
  $earnings = 0;
712
  if ( $sales ) {
722
  $earnings += ( $total_earnings - $total_tax );
723
  }
724
  // Cache the results for one hour
725
+ $cached[ $key ] = $earnings;
726
+ set_transient( 'edd_stats_earnings', $cached, HOUR_IN_SECONDS );
727
  }
728
 
729
+ $result = $cached[ $key ];
730
+
731
+ return round( $result, 2 );
732
  }
733
 
734
  /**
780
 
781
  $args = apply_filters( 'edd_get_sales_by_date_args', $args );
782
 
783
+ $cached = get_transient( 'edd_stats_sales' );
784
+ $key = md5( json_encode( $args ) );
785
 
786
+ if ( ! isset( $cached[ $key ] ) ) {
787
  $sales = new WP_Query( $args );
788
  $count = (int) $sales->post_count;
789
+
790
  // Cache the results for one hour
791
+ $cached[ $key ] = $count;
792
+ set_transient( 'edd_stats_sales', $cached, HOUR_IN_SECONDS );
793
  }
794
 
795
+ $result = $cached[ $key ];
796
+
797
+ return $result;
798
  }
799
 
800
  /**
includes/post-types.php CHANGED
@@ -58,6 +58,7 @@ function edd_setup_edd_post_types() {
58
  'show_ui' => true,
59
  'show_in_menu' => true,
60
  'query_var' => true,
 
61
  'rewrite' => $rewrite,
62
  'capability_type' => 'product',
63
  'map_meta_cap' => true,
58
  'show_ui' => true,
59
  'show_in_menu' => true,
60
  'query_var' => true,
61
+ 'menu_icon' => 'dashicons-download',
62
  'rewrite' => $rewrite,
63
  'capability_type' => 'product',
64
  'map_meta_cap' => true,
includes/scripts.php CHANGED
@@ -270,32 +270,23 @@ add_action( 'admin_enqueue_scripts', 'edd_load_admin_scripts', 100 );
270
  * Echoes the CSS for the downloads post type icon.
271
  *
272
  * @since 1.0
273
- * @global $post_type
274
- * @global $wp_version
275
  * @return void
276
  */
277
  function edd_admin_downloads_icon() {
278
- global $post_type, $wp_version;
279
 
280
  $images_url = EDD_PLUGIN_URL . 'assets/images/';
281
  $menu_icon = '\f316';
282
- $icon_url = $images_url . 'edd-icon.png';
283
  $icon_cpt_url = $images_url . 'edd-cpt.png';
284
- $icon_2x_url = $images_url . 'edd-icon-2x.png';
285
  $icon_cpt_2x_url = $images_url . 'edd-cpt-2x.png';
286
  ?>
287
  <style type="text/css" media="screen">
288
- #adminmenu #menu-posts-download .wp-menu-image:before,
289
  #dashboard_right_now .download-count:before {
290
  content: '<?php echo $menu_icon; ?>';
291
  }
292
  #icon-edit.icon32-posts-download {
293
  background: url(<?php echo $icon_cpt_url; ?>) -7px -5px no-repeat;
294
  }
295
- #edd-media-button {
296
- background: url(<?php echo $icon_url; ?>) 0 -16px no-repeat;
297
- background-size: 12px 30px;
298
- }
299
  @media
300
  only screen and (-webkit-min-device-pixel-ratio: 1.5),
301
  only screen and ( min--moz-device-pixel-ratio: 1.5),
@@ -306,10 +297,6 @@ function edd_admin_downloads_icon() {
306
  background: url(<?php echo $icon_cpt_2x_url; ?>) no-repeat -7px -5px !important;
307
  background-size: 55px 45px !important;
308
  }
309
- #edd-media-button {
310
- background-image: url(<?php echo $icon_2x_url; ?>);
311
- background-position: 0 -17px;
312
- }
313
  }
314
  </style>
315
  <?php
270
  * Echoes the CSS for the downloads post type icon.
271
  *
272
  * @since 1.0
273
+ * @since 2.6.11 Removed globals and CSS for custom icon
 
274
  * @return void
275
  */
276
  function edd_admin_downloads_icon() {
 
277
 
278
  $images_url = EDD_PLUGIN_URL . 'assets/images/';
279
  $menu_icon = '\f316';
 
280
  $icon_cpt_url = $images_url . 'edd-cpt.png';
 
281
  $icon_cpt_2x_url = $images_url . 'edd-cpt-2x.png';
282
  ?>
283
  <style type="text/css" media="screen">
 
284
  #dashboard_right_now .download-count:before {
285
  content: '<?php echo $menu_icon; ?>';
286
  }
287
  #icon-edit.icon32-posts-download {
288
  background: url(<?php echo $icon_cpt_url; ?>) -7px -5px no-repeat;
289
  }
 
 
 
 
290
  @media
291
  only screen and (-webkit-min-device-pixel-ratio: 1.5),
292
  only screen and ( min--moz-device-pixel-ratio: 1.5),
297
  background: url(<?php echo $icon_cpt_2x_url; ?>) no-repeat -7px -5px !important;
298
  background-size: 55px 45px !important;
299
  }
 
 
 
 
300
  }
301
  </style>
302
  <?php
includes/shortcodes.php CHANGED
@@ -324,6 +324,7 @@ function edd_downloads_query( $atts, $content = null ) {
324
  'exclude_category' => '',
325
  'tags' => '',
326
  'exclude_tags' => '',
 
327
  'relation' => 'OR',
328
  'number' => 9,
329
  'price' => 'no',
@@ -335,7 +336,7 @@ function edd_downloads_query( $atts, $content = null ) {
335
  'orderby' => 'post_date',
336
  'order' => 'DESC',
337
  'ids' => '',
338
- 'pagination' => 'true'
339
  ), $atts, 'downloads' );
340
 
341
  $query = array(
@@ -535,6 +536,30 @@ function edd_downloads_query( $atts, $content = null ) {
535
  $query['tax_query']['relation'] = 'AND';
536
  }
537
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
538
  if( ! empty( $atts['ids'] ) )
539
  $query['post__in'] = explode( ',', $atts['ids'] );
540
 
324
  'exclude_category' => '',
325
  'tags' => '',
326
  'exclude_tags' => '',
327
+ 'author' => false,
328
  'relation' => 'OR',
329
  'number' => 9,
330
  'price' => 'no',
336
  'orderby' => 'post_date',
337
  'order' => 'DESC',
338
  'ids' => '',
339
+ 'pagination' => 'true',
340
  ), $atts, 'downloads' );
341
 
342
  $query = array(
536
  $query['tax_query']['relation'] = 'AND';
537
  }
538
 
539
+ if ( $atts['author'] ) {
540
+ $authors = explode( ',', $atts['author'] );
541
+ if ( ! empty( $authors ) ) {
542
+ $author_ids = array();
543
+ $author_names = array();
544
+
545
+ foreach ( $authors as $author ) {
546
+ if ( is_numeric( $author ) ) {
547
+ $author_ids[] = $author;
548
+ } else {
549
+ $user = get_user_by( 'login', $author );
550
+ if ( $user ) {
551
+ $author_ids[] = $user->ID;
552
+ }
553
+ }
554
+ }
555
+
556
+ if ( ! empty( $author_ids ) ) {
557
+ $author_ids = array_unique( array_map( 'absint', $author_ids ) );
558
+ $query['author'] = implode( ',', $author_ids );
559
+ }
560
+ }
561
+ }
562
+
563
  if( ! empty( $atts['ids'] ) )
564
  $query['post__in'] = explode( ',', $atts['ids'] );
565
 
includes/user-functions.php CHANGED
@@ -959,8 +959,16 @@ add_action( 'delete_user', 'edd_detach_deleted_user', 10, 1 );
959
  * @return void
960
  */
961
  function edd_show_user_api_key_field( $user ) {
 
 
 
 
 
962
  if ( ( edd_get_option( 'api_allow_user_keys', false ) || current_user_can( 'manage_shop_settings' ) ) && current_user_can( 'edit_user', $user->ID ) ) {
963
  $user = get_userdata( $user->ID );
 
 
 
964
  ?>
965
  <table class="form-table">
966
  <tbody>
@@ -969,17 +977,13 @@ function edd_show_user_api_key_field( $user ) {
969
  <?php _e( 'Easy Digital Downloads API Keys', 'easy-digital-downloads' ); ?>
970
  </th>
971
  <td>
972
- <?php
973
- $public_key = EDD()->api->get_user_public_key( $user->ID );
974
- $secret_key = EDD()->api->get_user_secret_key( $user->ID );
975
- ?>
976
  <?php if ( empty( $user->edd_user_public_key ) ) { ?>
977
  <input name="edd_set_api_key" type="checkbox" id="edd_set_api_key" value="0" />
978
  <span class="description"><?php _e( 'Generate API Key', 'easy-digital-downloads' ); ?></span>
979
  <?php } else { ?>
980
- <strong style="display:inline-block; width: 125px;"><?php _e( 'Public key:', 'easy-digital-downloads' ); ?>&nbsp;</strong><input type="text" disabled="disabled" class="regular-text" id="publickey" value="<?php echo esc_attr( $public_key ); ?>"/><br/>
981
- <strong style="display:inline-block; width: 125px;"><?php _e( 'Secret key:', 'easy-digital-downloads' ); ?>&nbsp;</strong><input type="text" disabled="disabled" class="regular-text" id="privatekey" value="<?php echo esc_attr( $secret_key ); ?>"/><br/>
982
- <strong style="display:inline-block; width: 125px;"><?php _e( 'Token:', 'easy-digital-downloads' ); ?>&nbsp;</strong><input type="text" disabled="disabled" class="regular-text" id="token" value="<?php echo esc_attr( EDD()->api->get_token( $user->ID ) ); ?>"/><br/>
983
  <input name="edd_set_api_key" type="checkbox" id="edd_set_api_key" value="0" />
984
  <span class="description"><label for="edd_set_api_key"><?php _e( 'Revoke API Keys', 'easy-digital-downloads' ); ?></label></span>
985
  <?php } ?>
@@ -987,6 +991,26 @@ function edd_show_user_api_key_field( $user ) {
987
  </tr>
988
  </tbody>
989
  </table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
990
  <?php }
991
  }
992
  add_action( 'show_user_profile', 'edd_show_user_api_key_field' );
959
  * @return void
960
  */
961
  function edd_show_user_api_key_field( $user ) {
962
+
963
+ if ( get_current_user_id() !== $user->ID ) {
964
+ return;
965
+ }
966
+
967
  if ( ( edd_get_option( 'api_allow_user_keys', false ) || current_user_can( 'manage_shop_settings' ) ) && current_user_can( 'edit_user', $user->ID ) ) {
968
  $user = get_userdata( $user->ID );
969
+ $public_key = EDD()->api->get_user_public_key( $user->ID );
970
+ $secret_key = EDD()->api->get_user_secret_key( $user->ID );
971
+ $token = EDD()->api->get_token( $user->ID );
972
  ?>
973
  <table class="form-table">
974
  <tbody>
977
  <?php _e( 'Easy Digital Downloads API Keys', 'easy-digital-downloads' ); ?>
978
  </th>
979
  <td>
 
 
 
 
980
  <?php if ( empty( $user->edd_user_public_key ) ) { ?>
981
  <input name="edd_set_api_key" type="checkbox" id="edd_set_api_key" value="0" />
982
  <span class="description"><?php _e( 'Generate API Key', 'easy-digital-downloads' ); ?></span>
983
  <?php } else { ?>
984
+ <strong style="display:inline-block; width: 125px;"><?php _e( 'Public key:', 'easy-digital-downloads' ); ?>&nbsp;</strong><input type="text" readonly="readonly" class="regular-text" id="publickey" value="<?php echo esc_attr( $public_key ); ?>"/><br/>
985
+ <strong style="display:inline-block; width: 125px;"><?php _e( 'Secret key:', 'easy-digital-downloads' ); ?>&nbsp;</strong><input type="text" readonly="readonly" class="regular-text" id="privatekey" value="<?php echo esc_attr( $secret_key ); ?>"/><br/>
986
+ <strong style="display:inline-block; width: 125px;"><?php _e( 'Token:', 'easy-digital-downloads' ); ?>&nbsp;</strong><input type="text" readonly="readonly" class="regular-text" id="token" value="<?php echo esc_attr( EDD()->api->get_token( $user->ID ) ); ?>"/><br/>
987
  <input name="edd_set_api_key" type="checkbox" id="edd_set_api_key" value="0" />
988
  <span class="description"><label for="edd_set_api_key"><?php _e( 'Revoke API Keys', 'easy-digital-downloads' ); ?></label></span>
989
  <?php } ?>
991
  </tr>
992
  </tbody>
993
  </table>
994
+
995
+ <?php if ( wp_is_mobile() ) : ?>
996
+ <table class="form-table">
997
+ <tbody>
998
+ <tr>
999
+ <th>
1000
+ <?php printf( __( 'Easy Digital Downloads <a href="%s">iOS App</a>', 'easy-digital-downloads' ), 'https://itunes.apple.com/us/app/easy-digital-downloads-2/id1169488828?ls=1&mt=8' ); ?>
1001
+ </th>
1002
+ <td>
1003
+ <?php
1004
+ $sitename = get_bloginfo( 'name' );
1005
+ $ios_url = 'edd://new?sitename=' . $sitename . '&siteurl=' . home_url() . '&key=' . $public_key . '&token=' . $token;
1006
+ ?>
1007
+ <a class="button-secondary" href="<?php echo $ios_url; ?>"><?php _e( 'Add to iOS App', 'easy-digital-downloads' ); ?></a>
1008
+ </td>
1009
+ </tr>
1010
+ </tbody>
1011
+ </table>
1012
+ <?php endif; ?>
1013
+
1014
  <?php }
1015
  }
1016
  add_action( 'show_user_profile', 'edd_show_user_api_key_field' );
languages/easy-digital-downloads.pot CHANGED
@@ -1,10 +1,10 @@
1
- # Copyright (C) 2016 Pippin Williamson and Company
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.6.9\n"
6
  "Report-Msgid-Bugs-To: https://easydigitaldownloads.com/\n"
7
- "POT-Creation-Date: 2016-10-20 17:50:47+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -24,7 +24,7 @@ msgstr ""
24
  "X-Poedit-Bookmarks: \n"
25
  "X-Textdomain-Support: yes\n"
26
 
27
- #: easy-digital-downloads.php:172 easy-digital-downloads.php:184
28
  msgid "Cheatin&#8217; huh?"
29
  msgstr ""
30
 
@@ -38,11 +38,11 @@ msgid ""
38
  "or %5$supdate now%6$s."
39
  msgstr ""
40
 
41
- #: includes/EDD_SL_Plugin_Updater.php:358
42
  msgid "You do not have permission to install plugin updates"
43
  msgstr ""
44
 
45
- #: includes/EDD_SL_Plugin_Updater.php:358
46
  #: includes/admin/customers/customer-actions.php:301
47
  #: includes/admin/customers/customer-actions.php:345
48
  #: includes/admin/customers/customer-actions.php:603
@@ -74,13 +74,13 @@ msgstr ""
74
  #: includes/admin/reporting/pdf-reports.php:29
75
  #: includes/admin/reporting/pdf-reports.php:33
76
  #: includes/admin/reporting/reports.php:97
77
- #: includes/admin/tools/class-edd-tools-recount-all-stats.php:205
78
  #: includes/admin/tools/class-edd-tools-recount-customer-stats.php:192
79
  #: includes/admin/tools/class-edd-tools-recount-download-stats.php:224
80
  #: includes/admin/tools/class-edd-tools-recount-single-customer-stats.php:149
81
  #: includes/admin/tools/class-edd-tools-recount-store-earnings.php:154
82
  #: includes/admin/tools/class-edd-tools-reset-stats.php:180
83
- #: includes/admin/tools.php:901 includes/admin/tools.php:907
84
  #: includes/admin/upgrades/upgrade-functions.php:210
85
  #: includes/admin/upgrades/upgrade-functions.php:526
86
  #: includes/admin/upgrades/upgrade-functions.php:608
@@ -89,10 +89,10 @@ msgstr ""
89
  #: includes/admin/upgrades/upgrade-functions.php:890
90
  #: includes/admin/upgrades/upgrade-functions.php:1018
91
  #: includes/admin/upgrades/upgrade-functions.php:1103
92
- #: includes/api/class-edd-api.php:1912 includes/api/class-edd-api.php:1917
93
- #: includes/api/class-edd-api.php:1929 includes/api/class-edd-api.php:1931
94
- #: includes/cart/functions.php:1202 includes/cart/functions.php:1219
95
- #: includes/class-edd-license-handler.php:304
96
  #: includes/deprecated-functions.php:517 includes/deprecated-functions.php:532
97
  #: includes/deprecated-functions.php:542 includes/download-functions.php:1229
98
  #: includes/emails/actions.php:49 includes/emails/template.php:245
@@ -174,7 +174,7 @@ msgstr ""
174
 
175
  #: includes/admin/admin-pages.php:43 includes/admin/plugins.php:58
176
  #: includes/admin/settings/contextual-help.php:87
177
- #: includes/admin/settings/register-settings.php:1176
178
  msgid "Extensions"
179
  msgstr ""
180
 
@@ -389,7 +389,7 @@ msgstr ""
389
  #: includes/admin/discounts/class-discount-codes-table.php:289
390
  #: includes/admin/payments/class-payments-table.php:323
391
  #: includes/admin/payments/class-payments-table.php:395
392
- #: includes/payments/functions.php:1606
393
  msgid "Delete"
394
  msgstr ""
395
 
@@ -496,8 +496,8 @@ msgstr ""
496
  #: includes/admin/import/import-functions.php:113
497
  #: includes/admin/reporting/export/export-actions.php:23
498
  #: includes/admin/reporting/pdf-reports.php:33
499
- #: includes/api/class-edd-api.php:1912
500
- #: includes/class-edd-license-handler.php:304
501
  msgid "Nonce verification failed"
502
  msgstr ""
503
 
@@ -591,14 +591,14 @@ msgstr ""
591
  #: includes/admin/customers/customers.php:219
592
  #: includes/admin/reporting/class-export-payments.php:68
593
  #: includes/admin/reporting/export/class-batch-export-payments.php:48
594
- #: includes/admin/tools.php:564 includes/checkout/template.php:355
595
  #: templates/shortcode-profile-editor.php:132
596
  msgid "City"
597
  msgstr ""
598
 
599
  #: includes/admin/customers/customers.php:246
600
- #: includes/admin/settings/register-settings.php:1868
601
- #: includes/admin/tools.php:573 includes/checkout/template.php:417
602
  #: templates/shortcode-profile-editor.php:145
603
  msgid "State / Province"
604
  msgstr ""
@@ -671,7 +671,7 @@ msgstr ""
671
  #: includes/admin/reporting/class-export-payments.php:63
672
  #: includes/admin/reporting/export/class-batch-export-customers.php:44
673
  #: includes/admin/reporting/export/class-batch-export-payments.php:42
674
- #: includes/admin/tools.php:375 templates/shortcode-register.php:23
675
  msgid "Email"
676
  msgstr ""
677
 
@@ -688,7 +688,7 @@ msgstr ""
688
 
689
  #: includes/admin/customers/customers.php:378
690
  #: includes/admin/payments/view-order-details.php:375
691
- #: includes/admin/settings/register-settings.php:1871 includes/scripts.php:222
692
  #: templates/checkout_cart.php:57 templates/checkout_cart.php:75
693
  #: templates/shortcode-profile-editor.php:114
694
  msgid "Remove"
@@ -747,7 +747,7 @@ msgstr ""
747
  #: includes/admin/reporting/class-sales-logs-list-table.php:136
748
  #: includes/admin/reporting/export/class-batch-export-file-downloads.php:42
749
  #: includes/admin/reporting/export/class-batch-export-payments.php:61
750
- #: includes/admin/tools.php:465 templates/history-purchases.php:19
751
  #: templates/shortcode-receipt.php:59
752
  msgid "Date"
753
  msgstr ""
@@ -759,7 +759,7 @@ msgstr ""
759
  #: includes/admin/reporting/class-export-payments.php:82
760
  #: includes/admin/reporting/export/class-batch-export-downloads.php:49
761
  #: includes/admin/reporting/export/class-batch-export-payments.php:66
762
- #: includes/admin/tools.php:492
763
  msgid "Status"
764
  msgstr ""
765
 
@@ -801,7 +801,7 @@ msgstr ""
801
  msgid "Delete all associated payments and records?"
802
  msgstr ""
803
 
804
- #: includes/admin/customers/customers.php:615 includes/admin/tools.php:143
805
  msgid "Recount Customer Stats"
806
  msgstr ""
807
 
@@ -811,7 +811,7 @@ msgid ""
811
  "customer."
812
  msgstr ""
813
 
814
- #: includes/admin/customers/customers.php:623 includes/admin/tools.php:130
815
  msgid "Recount Stats"
816
  msgstr ""
817
 
@@ -838,8 +838,8 @@ msgstr ""
838
  #: includes/admin/reporting/class-download-reports-table.php:112
839
  #: includes/admin/reporting/class-export-earnings.php:64
840
  #: includes/admin/reporting/export/class-batch-export-downloads.php:59
841
- #: includes/admin/reporting/graphing.php:257
842
- #: includes/admin/reporting/graphing.php:591
843
  #: includes/admin/reporting/pdf-reports.php:206
844
  #: includes/admin/reporting/reports.php:54
845
  msgid "Earnings"
@@ -853,12 +853,12 @@ msgstr[0] ""
853
  msgstr[1] ""
854
 
855
  #: includes/admin/dashboard-widgets.php:80
856
- #: includes/admin/reporting/graphing.php:632 includes/class-edd-stats.php:89
857
  msgid "Last Month"
858
  msgstr ""
859
 
860
  #: includes/admin/dashboard-widgets.php:105
861
- #: includes/admin/reporting/graphing.php:627 includes/class-edd-stats.php:84
862
  msgid "Today"
863
  msgstr ""
864
 
@@ -867,8 +867,8 @@ msgstr ""
867
  #: includes/admin/reporting/class-download-reports-table.php:111
868
  #: includes/admin/reporting/class-export-earnings.php:63
869
  #: includes/admin/reporting/export/class-batch-export-downloads.php:58
870
- #: includes/admin/reporting/graphing.php:258
871
- #: includes/admin/reporting/graphing.php:592
872
  #: includes/admin/reporting/logs.php:145
873
  #: includes/admin/reporting/pdf-reports.php:223
874
  msgid "Sales"
@@ -880,7 +880,7 @@ msgstr ""
880
 
881
  #: includes/admin/dashboard-widgets.php:138
882
  #: includes/admin/reporting/class-categories-reports-table.php:85
883
- #: includes/admin/tools.php:792
884
  msgid "Total Earnings"
885
  msgstr ""
886
 
@@ -898,7 +898,7 @@ msgstr ""
898
  msgid "View All"
899
  msgstr ""
900
 
901
- #: includes/admin/discounts/add-discount.php:15 includes/post-types.php:106
902
  msgid "Add New Discount"
903
  msgstr ""
904
 
@@ -1157,7 +1157,7 @@ msgstr ""
1157
 
1158
  #: includes/admin/discounts/contextual-help.php:38
1159
  #: includes/admin/settings/contextual-help.php:42
1160
- #: includes/admin/settings/register-settings.php:1169
1161
  #: includes/admin/tools.php:68
1162
  msgid "General"
1163
  msgstr ""
@@ -1282,7 +1282,7 @@ msgid "You do not have permission to delete discount codes"
1282
  msgstr ""
1283
 
1284
  #: includes/admin/discounts/discount-codes.php:33 includes/post-types.php:30
1285
- #: includes/post-types.php:75 includes/post-types.php:105
1286
  msgid "Add New"
1287
  msgstr ""
1288
 
@@ -1296,7 +1296,7 @@ msgstr ""
1296
  msgid "Something went wrong."
1297
  msgstr ""
1298
 
1299
- #: includes/admin/discounts/edit-discount.php:29 includes/post-types.php:107
1300
  msgid "Edit Discount"
1301
  msgstr ""
1302
 
@@ -1598,7 +1598,7 @@ msgid "Mark this product as exclusive of tax"
1598
  msgstr ""
1599
 
1600
  #: includes/admin/downloads/metabox.php:847
1601
- #: includes/admin/settings/register-settings.php:768
1602
  #: includes/admin/thickbox.php:58 includes/checkout/template.php:847
1603
  #: includes/scripts.php:65 includes/shortcodes.php:49
1604
  #: includes/template-functions.php:67
@@ -1640,13 +1640,13 @@ msgid ""
1640
  msgstr ""
1641
 
1642
  #: includes/admin/downloads/metabox.php:921
1643
- #: includes/admin/settings/register-settings.php:775
1644
  #: includes/admin/thickbox.php:96
1645
  msgid "Add to Cart"
1646
  msgstr ""
1647
 
1648
  #: includes/admin/downloads/metabox.php:922
1649
- #: includes/admin/settings/register-settings.php:782 includes/shortcodes.php:47
1650
  #: includes/template-functions.php:67
1651
  msgid "Buy Now"
1652
  msgstr ""
@@ -1876,7 +1876,7 @@ msgstr ""
1876
  msgid "You also have the option to bulk delete payments should you wish."
1877
  msgstr ""
1878
 
1879
- #: includes/admin/payments/contextual-help.php:51 includes/post-types.php:81
1880
  msgid "Search Payments"
1881
  msgstr ""
1882
 
@@ -1956,11 +1956,15 @@ msgstr ""
1956
  msgid "A unique key used to identify the payment."
1957
  msgstr ""
1958
 
 
 
 
 
1959
  #: includes/admin/payments/payments-history.php:64
1960
  msgid "Get the EDD Sales / Earnings tracker for iOS"
1961
  msgstr ""
1962
 
1963
- #: includes/admin/payments/payments-history.php:93 includes/post-types.php:77
1964
  msgid "Edit Payment"
1965
  msgstr ""
1966
 
@@ -2034,7 +2038,7 @@ msgid "Discount Code"
2034
  msgstr ""
2035
 
2036
  #: includes/admin/payments/view-order-details.php:115
2037
- #: includes/admin/settings/register-settings.php:739
2038
  msgid "None"
2039
  msgstr ""
2040
 
@@ -2046,7 +2050,7 @@ msgstr ""
2046
  #: includes/admin/payments/view-order-details.php:135
2047
  #: includes/admin/reporting/class-export-payments.php:75
2048
  #: includes/admin/reporting/export/class-batch-export-payments.php:56
2049
- #: includes/admin/tools.php:510 templates/checkout_cart.php:120
2050
  #: templates/shortcode-receipt.php:90
2051
  msgid "Tax"
2052
  msgstr ""
@@ -2202,12 +2206,12 @@ msgid "Street Address Line 2:"
2202
  msgstr ""
2203
 
2204
  #: includes/admin/payments/view-order-details.php:536
2205
- #: includes/admin/settings/register-settings.php:307
2206
  msgid "Select a country"
2207
  msgstr ""
2208
 
2209
  #: includes/admin/payments/view-order-details.php:554
2210
- #: includes/admin/settings/register-settings.php:315
2211
  msgid "Select a state"
2212
  msgstr ""
2213
 
@@ -2224,7 +2228,7 @@ msgid "Add Note"
2224
  msgstr ""
2225
 
2226
  #: includes/admin/plugins.php:27
2227
- #: includes/admin/settings/register-settings.php:1224
2228
  msgid "General Settings"
2229
  msgstr ""
2230
 
@@ -2314,7 +2318,7 @@ msgstr ""
2314
  #: includes/admin/reporting/class-export-customers.php:66
2315
  #: includes/admin/reporting/class-export-payments.php:64
2316
  #: includes/admin/reporting/export/class-batch-export-payments.php:44
2317
- #: includes/admin/tools.php:384 includes/checkout/template.php:191
2318
  #: templates/shortcode-profile-editor.php:33
2319
  msgid "First Name"
2320
  msgstr ""
@@ -2322,7 +2326,7 @@ msgstr ""
2322
  #: includes/admin/reporting/class-export-customers.php:67
2323
  #: includes/admin/reporting/class-export-payments.php:65
2324
  #: includes/admin/reporting/export/class-batch-export-payments.php:45
2325
- #: includes/admin/tools.php:393 includes/checkout/template.php:201
2326
  #: templates/shortcode-profile-editor.php:36
2327
  msgid "Last Name"
2328
  msgstr ""
@@ -2348,7 +2352,7 @@ msgstr ""
2348
  #: includes/admin/reporting/class-file-downloads-logs-list-table.php:149
2349
  #: includes/admin/reporting/export/class-batch-export-file-downloads.php:44
2350
  #: includes/admin/reporting/export/class-batch-export-payments.php:64
2351
- #: includes/admin/tools.php:420
2352
  msgid "IP Address"
2353
  msgstr ""
2354
 
@@ -2365,7 +2369,7 @@ msgstr ""
2365
 
2366
  #: includes/admin/reporting/class-export-payments.php:62
2367
  #: includes/admin/reporting/export/class-batch-export-payments.php:41
2368
- #: includes/admin/tools.php:456
2369
  msgid "Payment Number"
2370
  msgstr ""
2371
 
@@ -2386,14 +2390,14 @@ msgstr ""
2386
 
2387
  #: includes/admin/reporting/class-export-payments.php:70
2388
  #: includes/admin/reporting/export/class-batch-export-payments.php:50
2389
- #: includes/admin/settings/register-settings.php:1867
2390
- #: includes/admin/tools.php:591 templates/shortcode-profile-editor.php:138
2391
  msgid "Country"
2392
  msgstr ""
2393
 
2394
  #: includes/admin/reporting/class-export-payments.php:71
2395
  #: includes/admin/reporting/export/class-batch-export-payments.php:51
2396
- #: includes/admin/tools.php:582 includes/checkout/template.php:365
2397
  #: templates/shortcode-profile-editor.php:135
2398
  msgid "Zip / Postal Code"
2399
  msgstr ""
@@ -2410,19 +2414,19 @@ msgstr ""
2410
 
2411
  #: includes/admin/reporting/class-export-payments.php:77
2412
  #: includes/admin/reporting/export/class-batch-export-payments.php:58
2413
- #: includes/admin/tools.php:447 templates/shortcode-receipt.php:53
2414
  msgid "Payment Method"
2415
  msgstr ""
2416
 
2417
  #: includes/admin/reporting/class-export-payments.php:78
2418
  #: includes/admin/reporting/export/class-batch-export-payments.php:59
2419
- #: includes/admin/tools.php:528
2420
  msgid "Transaction ID"
2421
  msgstr ""
2422
 
2423
  #: includes/admin/reporting/class-export-payments.php:79
2424
  #: includes/admin/reporting/export/class-batch-export-payments.php:60
2425
- #: includes/admin/tools.php:474
2426
  msgid "Purchase Key"
2427
  msgstr ""
2428
 
@@ -2430,7 +2434,7 @@ msgstr ""
2430
  #: includes/admin/reporting/class-file-downloads-logs-list-table.php:146
2431
  #: includes/admin/reporting/class-sales-logs-list-table.php:132
2432
  #: includes/admin/reporting/export/class-batch-export-payments.php:62
2433
- #: includes/admin/tools.php:537
2434
  msgid "User"
2435
  msgstr ""
2436
 
@@ -2441,7 +2445,7 @@ msgstr ""
2441
 
2442
  #: includes/admin/reporting/class-export.php:172
2443
  #: includes/admin/reporting/export/class-batch-export.php:131
2444
- #: includes/admin/tools/class-edd-tools-recount-all-stats.php:205
2445
  #: includes/admin/tools/class-edd-tools-recount-customer-stats.php:192
2446
  #: includes/admin/tools/class-edd-tools-recount-download-stats.php:224
2447
  #: includes/admin/tools/class-edd-tools-recount-store-earnings.php:154
@@ -2497,7 +2501,7 @@ msgid ""
2497
  msgstr ""
2498
 
2499
  #: includes/admin/reporting/contextual-help.php:48
2500
- #: includes/admin/reporting/reports.php:31 includes/admin/tools.php:819
2501
  msgid "Export"
2502
  msgstr ""
2503
 
@@ -2578,12 +2582,12 @@ msgid "Excerpt"
2578
  msgstr ""
2579
 
2580
  #: includes/admin/reporting/export/class-batch-export-downloads.php:50
2581
- #: includes/post-types.php:219
2582
  msgid "Categories"
2583
  msgstr ""
2584
 
2585
  #: includes/admin/reporting/export/class-batch-export-downloads.php:51
2586
- #: includes/admin/reporting/pdf-reports.php:72 includes/post-types.php:246
2587
  msgid "Tags"
2588
  msgstr ""
2589
 
@@ -2593,8 +2597,8 @@ msgid "Files"
2593
  msgstr ""
2594
 
2595
  #: includes/admin/reporting/export/class-batch-export-downloads.php:54
2596
- #: includes/admin/settings/register-settings.php:811
2597
- #: includes/admin/tools.php:774
2598
  msgid "File Download Limit"
2599
  msgstr ""
2600
 
@@ -2610,7 +2614,7 @@ msgid "SKU"
2610
  msgstr ""
2611
 
2612
  #: includes/admin/reporting/export/class-batch-export-payments.php:43
2613
- #: includes/admin/tools.php:402
2614
  msgid "Customer ID"
2615
  msgstr ""
2616
 
@@ -2619,12 +2623,12 @@ msgid "Products (Verbose)"
2619
  msgstr ""
2620
 
2621
  #: includes/admin/reporting/export/class-batch-export-payments.php:63
2622
- #: includes/admin/settings/register-settings.php:342
2623
  msgid "Currency"
2624
  msgstr ""
2625
 
2626
  #: includes/admin/reporting/export/class-batch-export-payments.php:65
2627
- #: includes/admin/tools.php:429
2628
  msgid "Mode (Live|Test)"
2629
  msgstr ""
2630
 
@@ -2640,98 +2644,98 @@ msgstr ""
2640
  msgid "Batch Processing Complete"
2641
  msgstr ""
2642
 
2643
- #: includes/admin/reporting/graphing.php:267
2644
  msgid "Earnings Over Time"
2645
  msgstr ""
2646
 
2647
- #: includes/admin/reporting/graphing.php:285
2648
- #: includes/admin/reporting/graphing.php:608
2649
  msgid "Total earnings for period shown: "
2650
  msgstr ""
2651
 
2652
- #: includes/admin/reporting/graphing.php:293
2653
- #: includes/admin/reporting/graphing.php:609
2654
  msgid "Total sales for period shown: "
2655
  msgstr ""
2656
 
2657
- #: includes/admin/reporting/graphing.php:299
2658
  msgid "Estimated monthly earnings: "
2659
  msgstr ""
2660
 
2661
- #: includes/admin/reporting/graphing.php:307
2662
  msgid "Estimated monthly sales: "
2663
  msgstr ""
2664
 
2665
- #: includes/admin/reporting/graphing.php:314
2666
  msgid "Excludes sales tax."
2667
  msgstr ""
2668
 
2669
- #: includes/admin/reporting/graphing.php:598
2670
  msgid "Earnings Over Time for %s"
2671
  msgstr ""
2672
 
2673
- #: includes/admin/reporting/graphing.php:610
2674
  msgid "Average monthly earnings: %s"
2675
  msgstr ""
2676
 
2677
- #: includes/admin/reporting/graphing.php:611
2678
  msgid "Average monthly sales: %s"
2679
  msgstr ""
2680
 
2681
- #: includes/admin/reporting/graphing.php:628 includes/class-edd-stats.php:85
2682
  msgid "Yesterday"
2683
  msgstr ""
2684
 
2685
- #: includes/admin/reporting/graphing.php:629 includes/class-edd-stats.php:86
2686
  msgid "This Week"
2687
  msgstr ""
2688
 
2689
- #: includes/admin/reporting/graphing.php:630 includes/class-edd-stats.php:87
2690
  msgid "Last Week"
2691
  msgstr ""
2692
 
2693
- #: includes/admin/reporting/graphing.php:631 includes/class-edd-stats.php:88
2694
  msgid "This Month"
2695
  msgstr ""
2696
 
2697
- #: includes/admin/reporting/graphing.php:633 includes/class-edd-stats.php:90
2698
  msgid "This Quarter"
2699
  msgstr ""
2700
 
2701
- #: includes/admin/reporting/graphing.php:634 includes/class-edd-stats.php:91
2702
  msgid "Last Quarter"
2703
  msgstr ""
2704
 
2705
- #: includes/admin/reporting/graphing.php:635 includes/class-edd-stats.php:92
2706
  msgid "This Year"
2707
  msgstr ""
2708
 
2709
- #: includes/admin/reporting/graphing.php:636 includes/class-edd-stats.php:93
2710
  msgid "Last Year"
2711
  msgstr ""
2712
 
2713
- #: includes/admin/reporting/graphing.php:637
2714
  msgid "Custom"
2715
  msgstr ""
2716
 
2717
- #: includes/admin/reporting/graphing.php:669
2718
  msgid "From"
2719
  msgstr ""
2720
 
2721
- #: includes/admin/reporting/graphing.php:685
2722
  msgid "To"
2723
  msgstr ""
2724
 
2725
- #: includes/admin/reporting/graphing.php:705
2726
  msgid "Exclude Taxes"
2727
  msgstr ""
2728
 
2729
- #: includes/admin/reporting/graphing.php:710
2730
  msgid "Filter"
2731
  msgstr ""
2732
 
2733
  #: includes/admin/reporting/logs.php:144
2734
- #: includes/admin/settings/register-settings.php:1251
2735
  msgid "File Downloads"
2736
  msgstr ""
2737
 
@@ -2850,7 +2854,7 @@ msgstr ""
2850
 
2851
  #: includes/admin/reporting/reports.php:58
2852
  #: includes/admin/settings/contextual-help.php:71
2853
- #: includes/admin/settings/register-settings.php:1173
2854
  msgid "Taxes"
2855
  msgstr ""
2856
 
@@ -2894,7 +2898,7 @@ msgid ""
2894
  "year."
2895
  msgstr ""
2896
 
2897
- #: includes/admin/reporting/reports.php:324 includes/admin/tools.php:159
2898
  msgid "Submit"
2899
  msgstr ""
2900
 
@@ -2928,7 +2932,7 @@ msgstr ""
2928
  #: includes/admin/reporting/reports.php:397
2929
  #: includes/admin/reporting/reports.php:413
2930
  #: includes/admin/reporting/reports.php:425
2931
- #: includes/admin/reporting/reports.php:439
2932
  msgid "Generate CSV"
2933
  msgstr ""
2934
 
@@ -2941,12 +2945,12 @@ msgid "Download a CSV of all payments recorded."
2941
  msgstr ""
2942
 
2943
  #: includes/admin/reporting/reports.php:383
2944
- #: includes/admin/reporting/reports.php:435
2945
  msgid "Choose start date"
2946
  msgstr ""
2947
 
2948
  #: includes/admin/reporting/reports.php:384
2949
- #: includes/admin/reporting/reports.php:436
2950
  msgid "Choose end date"
2951
  msgstr ""
2952
 
@@ -2975,7 +2979,9 @@ msgid "Export Download History in CSV"
2975
  msgstr ""
2976
 
2977
  #: includes/admin/reporting/reports.php:433
2978
- msgid "Download a CSV of file downloads."
 
 
2979
  msgstr ""
2980
 
2981
  #: includes/admin/settings/contextual-help.php:43
@@ -2986,8 +2992,8 @@ msgid ""
2986
  msgstr ""
2987
 
2988
  #: includes/admin/settings/contextual-help.php:48
2989
- #: includes/admin/settings/register-settings.php:416
2990
- #: includes/admin/settings/register-settings.php:1170
2991
  msgid "Payment Gateways"
2992
  msgstr ""
2993
 
@@ -3016,7 +3022,7 @@ msgid ""
3016
  msgstr ""
3017
 
3018
  #: includes/admin/settings/contextual-help.php:57
3019
- #: includes/admin/settings/register-settings.php:1171
3020
  msgid "Emails"
3021
  msgstr ""
3022
 
@@ -3036,7 +3042,7 @@ msgid ""
3036
  msgstr ""
3037
 
3038
  #: includes/admin/settings/contextual-help.php:65
3039
- #: includes/admin/settings/register-settings.php:1172
3040
  msgid "Styles"
3041
  msgstr ""
3042
 
@@ -3132,12 +3138,12 @@ msgstr ""
3132
  msgid "A description of all the options are provided beside their input boxes."
3133
  msgstr ""
3134
 
3135
- #: includes/admin/settings/register-settings.php:241
3136
- #: includes/admin/settings/register-settings.php:244
3137
  msgid "Page Settings"
3138
  msgstr ""
3139
 
3140
- #: includes/admin/settings/register-settings.php:245
3141
  msgid ""
3142
  "Easy Digital Downloads uses the pages below for handling the display of "
3143
  "checkout, purchase confirmation, purchase history, and purchase failures. "
@@ -3146,98 +3152,105 @@ msgid ""
3146
  "in the page content area."
3147
  msgstr ""
3148
 
3149
- #: includes/admin/settings/register-settings.php:249
3150
  msgid "Checkout Page"
3151
  msgstr ""
3152
 
3153
- #: includes/admin/settings/register-settings.php:250
3154
  msgid ""
3155
  "This is the checkout page where buyers will complete their purchases. The "
3156
  "[download_checkout] shortcode must be on this page."
3157
  msgstr ""
3158
 
3159
- #: includes/admin/settings/register-settings.php:254
3160
- #: includes/admin/settings/register-settings.php:263
3161
- #: includes/admin/settings/register-settings.php:272
3162
- #: includes/admin/settings/register-settings.php:281
3163
- #: includes/admin/settings/register-settings.php:290
3164
  msgid "Select a page"
3165
  msgstr ""
3166
 
3167
- #: includes/admin/settings/register-settings.php:258
3168
  msgid "Success Page"
3169
  msgstr ""
3170
 
3171
- #: includes/admin/settings/register-settings.php:259
3172
  msgid ""
3173
  "This is the page buyers are sent to after completing their purchases. The "
3174
  "[edd_receipt] shortcode should be on this page."
3175
  msgstr ""
3176
 
3177
- #: includes/admin/settings/register-settings.php:267
3178
  msgid "Failed Transaction Page"
3179
  msgstr ""
3180
 
3181
- #: includes/admin/settings/register-settings.php:268
3182
  msgid ""
3183
  "This is the page buyers are sent to if their transaction is cancelled or "
3184
  "fails."
3185
  msgstr ""
3186
 
3187
- #: includes/admin/settings/register-settings.php:276
3188
  msgid "Purchase History Page"
3189
  msgstr ""
3190
 
3191
- #: includes/admin/settings/register-settings.php:277
3192
  msgid ""
3193
  "This page shows a complete purchase history for the current user, including "
3194
  "download links. The [purchase_history] shortcode should be on this page."
3195
  msgstr ""
3196
 
3197
- #: includes/admin/settings/register-settings.php:285
3198
  msgid "Login Redirect Page"
3199
  msgstr ""
3200
 
3201
- #: includes/admin/settings/register-settings.php:294
3202
- msgid "Store Location"
 
 
 
3203
  msgstr ""
3204
 
3205
  #: includes/admin/settings/register-settings.php:297
 
 
 
 
3206
  msgid "Store Location Settings"
3207
  msgstr ""
3208
 
3209
- #: includes/admin/settings/register-settings.php:298
3210
  msgid ""
3211
  "Easy Digital Downloads will use the following Country and State to pre-fill "
3212
  "fields at checkout. This will also pre-calculate any taxes defined if the "
3213
  "location below has taxes enabled."
3214
  msgstr ""
3215
 
3216
- #: includes/admin/settings/register-settings.php:302
3217
  msgid "Base Country"
3218
  msgstr ""
3219
 
3220
- #: includes/admin/settings/register-settings.php:303
3221
  msgid "Where does your store operate from?"
3222
  msgstr ""
3223
 
3224
- #: includes/admin/settings/register-settings.php:311
3225
  msgid "Base State / Province"
3226
  msgstr ""
3227
 
3228
- #: includes/admin/settings/register-settings.php:312
3229
  msgid "What state / province does your store operate from?"
3230
  msgstr ""
3231
 
3232
- #: includes/admin/settings/register-settings.php:319
3233
  msgid "Tracking Settings"
3234
  msgstr ""
3235
 
3236
- #: includes/admin/settings/register-settings.php:325
3237
  msgid "Allow Usage Tracking?"
3238
  msgstr ""
3239
 
3240
- #: includes/admin/settings/register-settings.php:327
3241
  msgid ""
3242
  "Allow Easy Digital Downloads to anonymously track how this plugin is used "
3243
  "and help us make the plugin better. Opt-in to tracking and our newsletter "
@@ -3246,385 +3259,385 @@ msgid ""
3246
  "sensitive data is tracked."
3247
  msgstr ""
3248
 
3249
- #: includes/admin/settings/register-settings.php:336
3250
- #: includes/admin/settings/register-settings.php:1225
3251
  msgid "Currency Settings"
3252
  msgstr ""
3253
 
3254
- #: includes/admin/settings/register-settings.php:343
3255
  msgid ""
3256
  "Choose your currency. Note that some payment gateways have currency "
3257
  "restrictions."
3258
  msgstr ""
3259
 
3260
- #: includes/admin/settings/register-settings.php:350
3261
  msgid "Currency Position"
3262
  msgstr ""
3263
 
3264
- #: includes/admin/settings/register-settings.php:351
3265
  msgid "Choose the location of the currency sign."
3266
  msgstr ""
3267
 
3268
- #: includes/admin/settings/register-settings.php:354
3269
  msgid "Before - $10"
3270
  msgstr ""
3271
 
3272
- #: includes/admin/settings/register-settings.php:355
3273
  msgid "After - 10$"
3274
  msgstr ""
3275
 
3276
- #: includes/admin/settings/register-settings.php:360
3277
  msgid "Thousands Separator"
3278
  msgstr ""
3279
 
3280
- #: includes/admin/settings/register-settings.php:361
3281
  msgid "The symbol (usually , or .) to separate thousands"
3282
  msgstr ""
3283
 
3284
- #: includes/admin/settings/register-settings.php:368
3285
  msgid "Decimal Separator"
3286
  msgstr ""
3287
 
3288
- #: includes/admin/settings/register-settings.php:369
3289
  msgid "The symbol (usually , or .) to separate decimal points"
3290
  msgstr ""
3291
 
3292
- #: includes/admin/settings/register-settings.php:378
3293
  #: includes/admin/settings/register-settings.php:381
3294
- #: includes/admin/settings/register-settings.php:1226
 
3295
  msgid "API Settings"
3296
  msgstr ""
3297
 
3298
- #: includes/admin/settings/register-settings.php:382
3299
  msgid ""
3300
  "The Easy Digital Downloads REST API provides access to store data through "
3301
  "our API endpoints. Enable this setting if you would like all user accounts "
3302
  "to be able to generate their own API keys."
3303
  msgstr ""
3304
 
3305
- #: includes/admin/settings/register-settings.php:386
3306
  msgid "Allow User Keys"
3307
  msgstr ""
3308
 
3309
- #: includes/admin/settings/register-settings.php:387
3310
  msgid ""
3311
  "Check this box to allow all users to generate API keys. Users with the "
3312
  "'manage_shop_settings' capability are always allowed to generate keys."
3313
  msgstr ""
3314
 
3315
- #: includes/admin/settings/register-settings.php:392
3316
  msgid ""
3317
  "Visit the <a href=\"%s\" target=\"_blank\">REST API documentation</a> for "
3318
  "further information."
3319
  msgstr ""
3320
 
3321
- #: includes/admin/settings/register-settings.php:404
3322
- #: includes/admin/settings/register-settings.php:1229
3323
  msgid "Gateway Settings"
3324
  msgstr ""
3325
 
3326
- #: includes/admin/settings/register-settings.php:410
3327
  msgid "Test Mode"
3328
  msgstr ""
3329
 
3330
- #: includes/admin/settings/register-settings.php:411
3331
  msgid ""
3332
  "While in test mode no live transactions are processed. To fully use test "
3333
  "mode, you must have a sandbox (test) account for the payment gateway you "
3334
  "are testing."
3335
  msgstr ""
3336
 
3337
- #: includes/admin/settings/register-settings.php:417
3338
  msgid "Choose the payment gateways you want to enable."
3339
  msgstr ""
3340
 
3341
- #: includes/admin/settings/register-settings.php:423
3342
  msgid "Default Gateway"
3343
  msgstr ""
3344
 
3345
- #: includes/admin/settings/register-settings.php:424
3346
  msgid "This gateway will be loaded automatically with the checkout page."
3347
  msgstr ""
3348
 
3349
- #: includes/admin/settings/register-settings.php:430
3350
  msgid "Accepted Payment Method Icons"
3351
  msgstr ""
3352
 
3353
- #: includes/admin/settings/register-settings.php:431
3354
  msgid "Display icons for the selected payment methods"
3355
  msgstr ""
3356
 
3357
- #: includes/admin/settings/register-settings.php:431
3358
  msgid ""
3359
  "You will also need to configure your gateway settings if you are accepting "
3360
  "credit cards"
3361
  msgstr ""
3362
 
3363
- #: includes/admin/settings/register-settings.php:451
3364
- #: includes/admin/settings/register-settings.php:1233
3365
  msgid "Email Settings"
3366
  msgstr ""
3367
 
3368
- #: includes/admin/settings/register-settings.php:456
3369
  msgid "Email Template"
3370
  msgstr ""
3371
 
3372
- #: includes/admin/settings/register-settings.php:457
3373
  msgid ""
3374
  "Choose a template. Click \"Save Changes\" then \"Preview Purchase Receipt\" "
3375
  "to see the new template."
3376
  msgstr ""
3377
 
3378
- #: includes/admin/settings/register-settings.php:463
3379
  msgid "Logo"
3380
  msgstr ""
3381
 
3382
- #: includes/admin/settings/register-settings.php:464
3383
  msgid ""
3384
  "Upload or choose a logo to be displayed at the top of the purchase receipt "
3385
  "emails. Displayed on HTML emails only."
3386
  msgstr ""
3387
 
3388
- #: includes/admin/settings/register-settings.php:477
3389
- #: includes/admin/settings/register-settings.php:1234
3390
  msgid "Purchase Receipts"
3391
  msgstr ""
3392
 
3393
- #: includes/admin/settings/register-settings.php:482
3394
  msgid "From Name"
3395
  msgstr ""
3396
 
3397
- #: includes/admin/settings/register-settings.php:483
3398
  msgid ""
3399
  "The name purchase receipts are said to come from. This should probably be "
3400
  "your site or shop name."
3401
  msgstr ""
3402
 
3403
- #: includes/admin/settings/register-settings.php:489
3404
  msgid "From Email"
3405
  msgstr ""
3406
 
3407
- #: includes/admin/settings/register-settings.php:490
3408
  msgid ""
3409
  "Email to send purchase receipts from. This will act as the \"from\" and "
3410
  "\"reply-to\" address."
3411
  msgstr ""
3412
 
3413
- #: includes/admin/settings/register-settings.php:496
3414
  msgid "Purchase Email Subject"
3415
  msgstr ""
3416
 
3417
- #: includes/admin/settings/register-settings.php:497
3418
  msgid "Enter the subject line for the purchase receipt email"
3419
  msgstr ""
3420
 
3421
- #: includes/admin/settings/register-settings.php:499
3422
- #: includes/admin/settings/register-settings.php:506
3423
- #: includes/admin/settings/register-settings.php:510
3424
  #: includes/emails/functions.php:40 includes/emails/functions.php:44
3425
  #: includes/emails/functions.php:81 includes/emails/functions.php:85
3426
  #: includes/emails/template.php:141
3427
  msgid "Purchase Receipt"
3428
  msgstr ""
3429
 
3430
- #: includes/admin/settings/register-settings.php:503
3431
  msgid "Purchase Email Heading"
3432
  msgstr ""
3433
 
3434
- #: includes/admin/settings/register-settings.php:504
3435
  msgid "Enter the heading for the purchase receipt email"
3436
  msgstr ""
3437
 
3438
- #: includes/admin/settings/register-settings.php:511
3439
  msgid ""
3440
  "Enter the text that is sent as purchase receipt email to users after "
3441
  "completion of a successful purchase. HTML is accepted. Available template "
3442
  "tags:"
3443
  msgstr ""
3444
 
3445
- #: includes/admin/settings/register-settings.php:513
3446
  #: includes/emails/template.php:159
3447
  msgid "Dear"
3448
  msgstr ""
3449
 
3450
- #: includes/admin/settings/register-settings.php:513
3451
  #: includes/emails/template.php:160
3452
  msgid ""
3453
  "Thank you for your purchase. Please click on the link(s) below to download "
3454
  "your files."
3455
  msgstr ""
3456
 
3457
- #: includes/admin/settings/register-settings.php:519
3458
  msgid "Sale Notifications"
3459
  msgstr ""
3460
 
3461
- #: includes/admin/settings/register-settings.php:524
3462
  msgid "Sale Notification Subject"
3463
  msgstr ""
3464
 
3465
- #: includes/admin/settings/register-settings.php:525
3466
  msgid "Enter the subject line for the sale notification email"
3467
  msgstr ""
3468
 
3469
- #: includes/admin/settings/register-settings.php:531
3470
  msgid "Sale Notification"
3471
  msgstr ""
3472
 
3473
- #: includes/admin/settings/register-settings.php:532
3474
  msgid ""
3475
  "Enter the text that is sent as sale notification email after completion of "
3476
  "a purchase. HTML is accepted. Available template tags:"
3477
  msgstr ""
3478
 
3479
- #: includes/admin/settings/register-settings.php:538
3480
  msgid "Sale Notification Emails"
3481
  msgstr ""
3482
 
3483
- #: includes/admin/settings/register-settings.php:539
3484
  msgid ""
3485
  "Enter the email address(es) that should receive a notification anytime a "
3486
  "sale is made, one per line"
3487
  msgstr ""
3488
 
3489
- #: includes/admin/settings/register-settings.php:545
3490
  msgid "Disable Admin Notifications"
3491
  msgstr ""
3492
 
3493
- #: includes/admin/settings/register-settings.php:546
3494
  msgid "Check this box if you do not want to receive sales notification emails."
3495
  msgstr ""
3496
 
3497
- #: includes/admin/settings/register-settings.php:558
3498
- #: includes/admin/settings/register-settings.php:1238
3499
  msgid "Style Settings"
3500
  msgstr ""
3501
 
3502
- #: includes/admin/settings/register-settings.php:563
3503
  msgid "Disable Styles"
3504
  msgstr ""
3505
 
3506
- #: includes/admin/settings/register-settings.php:564
3507
  msgid ""
3508
  "Check this to disable all included styling of buttons, checkout fields, and "
3509
  "all other elements."
3510
  msgstr ""
3511
 
3512
- #: includes/admin/settings/register-settings.php:566
3513
  msgid "Disabling Styles"
3514
  msgstr ""
3515
 
3516
- #: includes/admin/settings/register-settings.php:567
3517
  msgid ""
3518
  "If your theme has a complete custom CSS file for Easy Digital Downloads, "
3519
  "you may wish to disable our default styles. This is not recommended unless "
3520
  "your sure your theme has a complete custom CSS."
3521
  msgstr ""
3522
 
3523
- #: includes/admin/settings/register-settings.php:571
3524
  msgid "Buttons"
3525
  msgstr ""
3526
 
3527
- #: includes/admin/settings/register-settings.php:572
3528
  msgid "Options for add to cart and purchase buttons"
3529
  msgstr ""
3530
 
3531
- #: includes/admin/settings/register-settings.php:577
3532
  msgid "Default Button Style"
3533
  msgstr ""
3534
 
3535
- #: includes/admin/settings/register-settings.php:578
3536
  msgid "Choose the style you want to use for the buttons."
3537
  msgstr ""
3538
 
3539
- #: includes/admin/settings/register-settings.php:584
3540
  msgid "Default Button Color"
3541
  msgstr ""
3542
 
3543
- #: includes/admin/settings/register-settings.php:585
3544
  msgid "Choose the color you want to use for the buttons."
3545
  msgstr ""
3546
 
3547
- #: includes/admin/settings/register-settings.php:598
3548
- #: includes/admin/settings/register-settings.php:1241
3549
  msgid "Tax Settings"
3550
  msgstr ""
3551
 
3552
- #: includes/admin/settings/register-settings.php:603
3553
  msgid "Need help?"
3554
  msgstr ""
3555
 
3556
- #: includes/admin/settings/register-settings.php:604
3557
  msgid ""
3558
  "Visit the <a href=\"%s\" target=\"_blank\">Tax setup documentation</a> for "
3559
  "further information. If you need VAT support, there are options listed on "
3560
  "the documentation page."
3561
  msgstr ""
3562
 
3563
- #: includes/admin/settings/register-settings.php:609
3564
  msgid "Enable Taxes"
3565
  msgstr ""
3566
 
3567
- #: includes/admin/settings/register-settings.php:610
3568
  msgid "Check this to enable taxes on purchases."
3569
  msgstr ""
3570
 
3571
- #: includes/admin/settings/register-settings.php:612
3572
  msgid "Enabling Taxes"
3573
  msgstr ""
3574
 
3575
- #: includes/admin/settings/register-settings.php:613
3576
  msgid ""
3577
  "With taxes enabled, Easy Digital Downloads will use the rules below to "
3578
  "charge tax to customers. With taxes enabled, customers are required to "
3579
  "input their address on checkout so that taxes can be properly calculated."
3580
  msgstr ""
3581
 
3582
- #: includes/admin/settings/register-settings.php:617
3583
  msgid "Tax Rates"
3584
  msgstr ""
3585
 
3586
- #: includes/admin/settings/register-settings.php:618
3587
  msgid "Enter tax rates for specific regions."
3588
  msgstr ""
3589
 
3590
- #: includes/admin/settings/register-settings.php:623
3591
- #: includes/admin/settings/register-settings.php:627
3592
  msgid "Fallback Tax Rate"
3593
  msgstr ""
3594
 
3595
- #: includes/admin/settings/register-settings.php:624
3596
  msgid ""
3597
  "Enter a percentage, such as 6.5. Customers not in a specific rate will be "
3598
  "charged this rate."
3599
  msgstr ""
3600
 
3601
- #: includes/admin/settings/register-settings.php:628
3602
  msgid ""
3603
  "If the customer's address fails to meet the above tax rules, you can define "
3604
  "a `default` tax rate to be applied to all other customers."
3605
  msgstr ""
3606
 
3607
- #: includes/admin/settings/register-settings.php:632
3608
  msgid "Prices entered with tax"
3609
  msgstr ""
3610
 
3611
- #: includes/admin/settings/register-settings.php:633
3612
  msgid "This option affects how you enter prices."
3613
  msgstr ""
3614
 
3615
- #: includes/admin/settings/register-settings.php:637
3616
  msgid "Yes, I will enter prices inclusive of tax"
3617
  msgstr ""
3618
 
3619
- #: includes/admin/settings/register-settings.php:638
3620
  msgid "No, I will enter prices exclusive of tax"
3621
  msgstr ""
3622
 
3623
- #: includes/admin/settings/register-settings.php:640
3624
  msgid "Prices Inclusive of Tax"
3625
  msgstr ""
3626
 
3627
- #: includes/admin/settings/register-settings.php:641
3628
  msgid ""
3629
  "When using prices inclusive of tax, you will be entering your prices as the "
3630
  "total amount you want a customer to pay for the download, including tax. "
@@ -3632,210 +3645,220 @@ msgid ""
3632
  "for the defined total price."
3633
  msgstr ""
3634
 
3635
- #: includes/admin/settings/register-settings.php:645
3636
  msgid "Display Tax Rate on Prices"
3637
  msgstr ""
3638
 
3639
- #: includes/admin/settings/register-settings.php:646
3640
  msgid "Some countries require a notice when product prices include tax."
3641
  msgstr ""
3642
 
3643
- #: includes/admin/settings/register-settings.php:651
3644
  msgid "Display during checkout"
3645
  msgstr ""
3646
 
3647
- #: includes/admin/settings/register-settings.php:652
3648
  msgid "Should prices on the checkout page be shown with or without tax?"
3649
  msgstr ""
3650
 
3651
- #: includes/admin/settings/register-settings.php:656
3652
  msgid "Including tax"
3653
  msgstr ""
3654
 
3655
- #: includes/admin/settings/register-settings.php:657
3656
  msgid "Excluding tax"
3657
  msgstr ""
3658
 
3659
- #: includes/admin/settings/register-settings.php:676
3660
- #: includes/admin/settings/register-settings.php:1248
3661
- msgid "Misc Settings"
 
 
 
 
 
3662
  msgstr ""
3663
 
3664
  #: includes/admin/settings/register-settings.php:681
 
 
 
 
 
3665
  msgid "Enable AJAX"
3666
  msgstr ""
3667
 
3668
- #: includes/admin/settings/register-settings.php:682
3669
  msgid "Check this to enable AJAX for the shopping cart."
3670
  msgstr ""
3671
 
3672
- #: includes/admin/settings/register-settings.php:685
3673
  msgid "Enabling AJAX"
3674
  msgstr ""
3675
 
3676
- #: includes/admin/settings/register-settings.php:686
3677
  msgid ""
3678
  "With AJAX enabled, customers can perform cart actions like adding and "
3679
  "removing items from their shopping cart without pages having to be "
3680
  "reloaded. This also creates fewer steps during the checkout process."
3681
  msgstr ""
3682
 
3683
- #: includes/admin/settings/register-settings.php:690
3684
- #: includes/admin/settings/register-settings.php:693
3685
  msgid "Redirect to Checkout"
3686
  msgstr ""
3687
 
3688
- #: includes/admin/settings/register-settings.php:691
3689
  msgid "Immediately redirect to checkout after adding an item to the cart?"
3690
  msgstr ""
3691
 
3692
- #: includes/admin/settings/register-settings.php:694
3693
  msgid ""
3694
  "When enabled, once an item has been added to the cart, the customer will be "
3695
  "redirected directly to your checkout page. This is useful for stores that "
3696
  "sell single items."
3697
  msgstr ""
3698
 
3699
- #: includes/admin/settings/register-settings.php:698
3700
  msgid "Item Quantities"
3701
  msgstr ""
3702
 
3703
- #: includes/admin/settings/register-settings.php:699
3704
  msgid "Allow item quantities to be changed."
3705
  msgstr ""
3706
 
3707
- #: includes/admin/settings/register-settings.php:704
3708
  msgid "Remove Data on Uninstall?"
3709
  msgstr ""
3710
 
3711
- #: includes/admin/settings/register-settings.php:705
3712
  msgid ""
3713
  "Check this box if you would like EDD to completely remove all of its data "
3714
  "when the plugin is deleted."
3715
  msgstr ""
3716
 
3717
- #: includes/admin/settings/register-settings.php:712
3718
- #: includes/admin/settings/register-settings.php:1249
3719
  msgid "Checkout Settings"
3720
  msgstr ""
3721
 
3722
- #: includes/admin/settings/register-settings.php:717
3723
  msgid "Enforce SSL on Checkout"
3724
  msgstr ""
3725
 
3726
- #: includes/admin/settings/register-settings.php:718
3727
  msgid ""
3728
  "Check this to force users to be redirected to the secure checkout page. You "
3729
  "must have an SSL certificate installed to use this option."
3730
  msgstr ""
3731
 
3732
- #: includes/admin/settings/register-settings.php:723
3733
- #: includes/admin/settings/register-settings.php:726
3734
  msgid "Require Login"
3735
  msgstr ""
3736
 
3737
- #: includes/admin/settings/register-settings.php:724
3738
  msgid "Require that users be logged-in to purchase files."
3739
  msgstr ""
3740
 
3741
- #: includes/admin/settings/register-settings.php:727
3742
  msgid ""
3743
  "You can require that customers create and login to user accounts prior to "
3744
  "purchasing from your store by enabling this option. When unchecked, users "
3745
  "can purchase without being logged in by using their name and email address."
3746
  msgstr ""
3747
 
3748
- #: includes/admin/settings/register-settings.php:731
3749
  msgid "Show Register / Login Form?"
3750
  msgstr ""
3751
 
3752
- #: includes/admin/settings/register-settings.php:732
3753
  msgid ""
3754
  "Display the registration and login forms on the checkout page for "
3755
  "non-logged-in users."
3756
  msgstr ""
3757
 
3758
- #: includes/admin/settings/register-settings.php:736
3759
  msgid "Registration and Login Forms"
3760
  msgstr ""
3761
 
3762
- #: includes/admin/settings/register-settings.php:737
3763
  msgid "Registration Form Only"
3764
  msgstr ""
3765
 
3766
- #: includes/admin/settings/register-settings.php:738
3767
  msgid "Login Form Only"
3768
  msgstr ""
3769
 
3770
- #: includes/admin/settings/register-settings.php:744
3771
  msgid "Multiple Discounts"
3772
  msgstr ""
3773
 
3774
- #: includes/admin/settings/register-settings.php:745
3775
  msgid "Allow customers to use multiple discounts on the same purchase?"
3776
  msgstr ""
3777
 
3778
- #: includes/admin/settings/register-settings.php:750
3779
  msgid "Enable Cart Saving"
3780
  msgstr ""
3781
 
3782
- #: includes/admin/settings/register-settings.php:751
3783
  msgid "Check this to enable cart saving on the checkout."
3784
  msgstr ""
3785
 
3786
- #: includes/admin/settings/register-settings.php:753
3787
  msgid "Cart Saving"
3788
  msgstr ""
3789
 
3790
- #: includes/admin/settings/register-settings.php:754
3791
  msgid ""
3792
  "Cart saving allows shoppers to create a temporary link to their current "
3793
  "shopping cart so they can come back to it later, or share it with someone."
3794
  msgstr ""
3795
 
3796
- #: includes/admin/settings/register-settings.php:760
3797
- #: includes/admin/settings/register-settings.php:1250
3798
  msgid "Button Text"
3799
  msgstr ""
3800
 
3801
- #: includes/admin/settings/register-settings.php:765
3802
  msgid "Complete Purchase Text"
3803
  msgstr ""
3804
 
3805
- #: includes/admin/settings/register-settings.php:766
3806
  msgid "The button label for completing a purchase."
3807
  msgstr ""
3808
 
3809
- #: includes/admin/settings/register-settings.php:772
3810
  msgid "Add to Cart Text"
3811
  msgstr ""
3812
 
3813
- #: includes/admin/settings/register-settings.php:773
3814
  msgid "Text shown on the Add to Cart Buttons."
3815
  msgstr ""
3816
 
3817
- #: includes/admin/settings/register-settings.php:779
3818
  msgid "Buy Now Text"
3819
  msgstr ""
3820
 
3821
- #: includes/admin/settings/register-settings.php:780
3822
  msgid "Text shown on the Buy Now Buttons."
3823
  msgstr ""
3824
 
3825
- #: includes/admin/settings/register-settings.php:788
3826
  msgid "File Download Settings"
3827
  msgstr ""
3828
 
3829
- #: includes/admin/settings/register-settings.php:793
3830
- #: includes/admin/settings/register-settings.php:796
3831
  msgid "Download Method"
3832
  msgstr ""
3833
 
3834
- #: includes/admin/settings/register-settings.php:794
3835
  msgid "Select the file download method. Note, not all methods work on all servers."
3836
  msgstr ""
3837
 
3838
- #: includes/admin/settings/register-settings.php:797
3839
  msgid ""
3840
  "Due to its consistency in multiple platforms and better file protection, "
3841
  "'forced' is the default method. Because Easy Digital Downloads uses PHP to "
@@ -3846,35 +3869,35 @@ msgid ""
3846
  "method can help resolve this."
3847
  msgstr ""
3848
 
3849
- #: includes/admin/settings/register-settings.php:799
3850
  msgid "Forced"
3851
  msgstr ""
3852
 
3853
- #: includes/admin/settings/register-settings.php:800
3854
  msgid "Redirect"
3855
  msgstr ""
3856
 
3857
- #: includes/admin/settings/register-settings.php:805
3858
  msgid "Symlink File Downloads?"
3859
  msgstr ""
3860
 
3861
- #: includes/admin/settings/register-settings.php:806
3862
  msgid ""
3863
  "Check this if you are delivering really large files or having problems with "
3864
  "file downloads completing."
3865
  msgstr ""
3866
 
3867
- #: includes/admin/settings/register-settings.php:812
3868
  msgid ""
3869
  "The maximum number of times files can be downloaded for purchases. Can be "
3870
  "overwritten for each %s."
3871
  msgstr ""
3872
 
3873
- #: includes/admin/settings/register-settings.php:815
3874
  msgid "File Download Limits"
3875
  msgstr ""
3876
 
3877
- #: includes/admin/settings/register-settings.php:816
3878
  msgid ""
3879
  "Set the global default for the number of times a customer can download "
3880
  "items they purchase. Using a value of 0 is unlimited. This can be defined "
@@ -3882,18 +3905,18 @@ msgid ""
3882
  "individual purchase."
3883
  msgstr ""
3884
 
3885
- #: includes/admin/settings/register-settings.php:820
3886
- #: includes/admin/settings/register-settings.php:822
3887
  msgid "Download Link Expiration"
3888
  msgstr ""
3889
 
3890
- #: includes/admin/settings/register-settings.php:821
3891
  msgid ""
3892
  "How long should download links be valid for? Default is 24 hours from the "
3893
  "time they are generated. Enter a time in hours."
3894
  msgstr ""
3895
 
3896
- #: includes/admin/settings/register-settings.php:823
3897
  msgid ""
3898
  "When a customer receives a link to their downloads via email, in their "
3899
  "receipt, or in their purchase history, the link will only be valid for the "
@@ -3902,231 +3925,231 @@ msgid ""
3902
  "customer."
3903
  msgstr ""
3904
 
3905
- #: includes/admin/settings/register-settings.php:831
3906
  msgid "Disable Redownload?"
3907
  msgstr ""
3908
 
3909
- #: includes/admin/settings/register-settings.php:832
3910
  msgid ""
3911
  "Check this if you do not want to allow users to redownload items from their "
3912
  "purchase history."
3913
  msgstr ""
3914
 
3915
- #: includes/admin/settings/register-settings.php:839
3916
- #: includes/admin/settings/register-settings.php:1252
3917
  msgid "Accounting Settings"
3918
  msgstr ""
3919
 
3920
- #: includes/admin/settings/register-settings.php:844
3921
  msgid "Enable SKU Entry"
3922
  msgstr ""
3923
 
3924
- #: includes/admin/settings/register-settings.php:845
3925
  msgid ""
3926
  "Check this box to allow entry of product SKUs. SKUs will be shown on "
3927
  "purchase receipt and exported purchase histories."
3928
  msgstr ""
3929
 
3930
- #: includes/admin/settings/register-settings.php:850
3931
  msgid "Sequential Order Numbers"
3932
  msgstr ""
3933
 
3934
- #: includes/admin/settings/register-settings.php:851
3935
  msgid "Check this box to enable sequential order numbers."
3936
  msgstr ""
3937
 
3938
- #: includes/admin/settings/register-settings.php:856
3939
  msgid "Sequential Starting Number"
3940
  msgstr ""
3941
 
3942
- #: includes/admin/settings/register-settings.php:857
3943
  msgid "The number at which the sequence should begin."
3944
  msgstr ""
3945
 
3946
- #: includes/admin/settings/register-settings.php:864
3947
  msgid "Sequential Number Prefix"
3948
  msgstr ""
3949
 
3950
- #: includes/admin/settings/register-settings.php:865
3951
  msgid "A prefix to prepend to all sequential order numbers."
3952
  msgstr ""
3953
 
3954
- #: includes/admin/settings/register-settings.php:870
3955
  msgid "Sequential Number Postfix"
3956
  msgstr ""
3957
 
3958
- #: includes/admin/settings/register-settings.php:871
3959
  msgid "A postfix to append to all sequential order numbers."
3960
  msgstr ""
3961
 
3962
- #: includes/admin/settings/register-settings.php:878
3963
  msgid "Agreement Settings"
3964
  msgstr ""
3965
 
3966
- #: includes/admin/settings/register-settings.php:883
3967
  msgid "Agree to Terms"
3968
  msgstr ""
3969
 
3970
- #: includes/admin/settings/register-settings.php:884
3971
  msgid ""
3972
  "Check this to show an agree to terms on the checkout that users must agree "
3973
  "to before purchasing."
3974
  msgstr ""
3975
 
3976
- #: includes/admin/settings/register-settings.php:889
3977
  msgid "Agree to Terms Label"
3978
  msgstr ""
3979
 
3980
- #: includes/admin/settings/register-settings.php:890
3981
  msgid "Label shown next to the agree to terms check box."
3982
  msgstr ""
3983
 
3984
- #: includes/admin/settings/register-settings.php:896
3985
  msgid "Agreement Text"
3986
  msgstr ""
3987
 
3988
- #: includes/admin/settings/register-settings.php:897
3989
  msgid "If Agree to Terms is checked, enter the agreement terms here."
3990
  msgstr ""
3991
 
3992
- #: includes/admin/settings/register-settings.php:994
3993
  msgid "Settings updated."
3994
  msgstr ""
3995
 
3996
- #: includes/admin/settings/register-settings.php:1179
3997
  msgid "Licenses"
3998
  msgstr ""
3999
 
4000
- #: includes/admin/settings/register-settings.php:1182
4001
  msgid "Misc"
4002
  msgstr ""
4003
 
4004
- #: includes/admin/settings/register-settings.php:1230
4005
  #: includes/gateways/functions.php:25 includes/gateways/paypal-standard.php:33
4006
  msgid "PayPal Standard"
4007
  msgstr ""
4008
 
4009
- #: includes/admin/settings/register-settings.php:1235
4010
  msgid "New Sale Notifications"
4011
  msgstr ""
4012
 
4013
- #: includes/admin/settings/register-settings.php:1244
4014
  msgid "Main"
4015
  msgstr ""
4016
 
4017
- #: includes/admin/settings/register-settings.php:1253
4018
  msgid "Terms of Agreement"
4019
  msgstr ""
4020
 
4021
- #: includes/admin/settings/register-settings.php:1646
4022
  msgid "The callback function used for the %s setting is missing."
4023
  msgstr ""
4024
 
4025
- #: includes/admin/settings/register-settings.php:1781
4026
  msgid "Upload File"
4027
  msgstr ""
4028
 
4029
- #: includes/admin/settings/register-settings.php:1869
4030
  msgid "Country Wide"
4031
  msgstr ""
4032
 
4033
- #: includes/admin/settings/register-settings.php:1870
4034
  msgid "Rate"
4035
  msgstr ""
4036
 
4037
- #: includes/admin/settings/register-settings.php:1887
4038
- #: includes/admin/settings/register-settings.php:1931
4039
  msgid "Choose a country"
4040
  msgstr ""
4041
 
4042
- #: includes/admin/settings/register-settings.php:1902
4043
  msgid "Choose a state"
4044
  msgstr ""
4045
 
4046
- #: includes/admin/settings/register-settings.php:1914
4047
- #: includes/admin/settings/register-settings.php:1941
4048
  msgid "Apply to whole country"
4049
  msgstr ""
4050
 
4051
- #: includes/admin/settings/register-settings.php:1917
4052
- #: includes/admin/settings/register-settings.php:1944
4053
  msgid "Remove Rate"
4054
  msgstr ""
4055
 
4056
- #: includes/admin/settings/register-settings.php:1949
4057
  msgid "Add Tax Rate"
4058
  msgstr ""
4059
 
4060
- #: includes/admin/settings/register-settings.php:2002
4061
  msgid ""
4062
  "Your license key expired on %s. Please <a href=\"%s\" "
4063
  "target=\"_blank\">renew your license key</a>."
4064
  msgstr ""
4065
 
4066
- #: includes/admin/settings/register-settings.php:2015
4067
  msgid ""
4068
  "Your license key has been disabled. Please <a href=\"%s\" "
4069
  "target=\"_blank\">contact support</a> for more information."
4070
  msgstr ""
4071
 
4072
- #: includes/admin/settings/register-settings.php:2027
4073
  msgid ""
4074
  "Invalid license. Please <a href=\"%s\" target=\"_blank\">visit your account "
4075
  "page</a> and verify it."
4076
  msgstr ""
4077
 
4078
- #: includes/admin/settings/register-settings.php:2040
4079
  msgid ""
4080
  "Your %s is not active for this URL. Please <a href=\"%s\" "
4081
  "target=\"_blank\">visit your account page</a> to manage your license key "
4082
  "URLs."
4083
  msgstr ""
4084
 
4085
- #: includes/admin/settings/register-settings.php:2052
4086
  msgid "This appears to be an invalid license key for %s."
4087
  msgstr ""
4088
 
4089
- #: includes/admin/settings/register-settings.php:2061
4090
  msgid ""
4091
  "Your license key has reached its activation limit. <a href=\"%s\">View "
4092
  "possible upgrades</a> now."
4093
  msgstr ""
4094
 
4095
- #: includes/admin/settings/register-settings.php:2070
4096
  msgid ""
4097
  "The key you entered belongs to a bundle, please use the product specific "
4098
  "license key."
4099
  msgstr ""
4100
 
4101
- #: includes/admin/settings/register-settings.php:2078
4102
  msgid "unknown_error"
4103
  msgstr ""
4104
 
4105
- #: includes/admin/settings/register-settings.php:2079
4106
  msgid ""
4107
  "There was an error with this license key: %s. Please <a href=\"%s\">contact "
4108
  "our support team</a>."
4109
  msgstr ""
4110
 
4111
- #: includes/admin/settings/register-settings.php:2099
4112
  msgid "License key never expires."
4113
  msgstr ""
4114
 
4115
- #: includes/admin/settings/register-settings.php:2106
4116
  msgid ""
4117
  "Your license key expires soon! It expires on %s. <a href=\"%s\" "
4118
  "target=\"_blank\">Renew your license key</a>."
4119
  msgstr ""
4120
 
4121
- #: includes/admin/settings/register-settings.php:2116
4122
  msgid "Your license key expires on %s."
4123
  msgstr ""
4124
 
4125
- #: includes/admin/settings/register-settings.php:2134
4126
  msgid "To receive updates, please enter your valid %s license key."
4127
  msgstr ""
4128
 
4129
- #: includes/admin/settings/register-settings.php:2145
4130
  msgid "Deactivate License"
4131
  msgstr ""
4132
 
@@ -4162,7 +4185,7 @@ msgstr ""
4162
  msgid "Link text . . ."
4163
  msgstr ""
4164
 
4165
- #: includes/admin/tools/class-edd-tools-recount-all-stats.php:220
4166
  msgid "Earnings and sales stats successfully recounted."
4167
  msgstr ""
4168
 
@@ -4187,89 +4210,93 @@ msgstr ""
4187
  msgid "Customers, earnings, sales, discounts and logs successfully reset."
4188
  msgstr ""
4189
 
4190
- #: includes/admin/tools.php:70
 
 
 
 
4191
  msgid "System Info"
4192
  msgstr ""
4193
 
4194
- #: includes/admin/tools.php:71
4195
  msgid "Import/Export"
4196
  msgstr ""
4197
 
4198
- #: includes/admin/tools.php:92
4199
  msgid "Banned Emails"
4200
  msgstr ""
4201
 
4202
- #: includes/admin/tools.php:94
4203
  msgid ""
4204
  "Emails placed in the box below will not be allowed to make purchases. To "
4205
  "ban an entire domain, enter the domain starting with \"@\"."
4206
  msgstr ""
4207
 
4208
- #: includes/admin/tools.php:98
4209
  msgid "Enter emails and/or domains (starting with @) to disallow, one per line."
4210
  msgstr ""
4211
 
4212
- #: includes/admin/tools.php:103
4213
  msgid "Save"
4214
  msgstr ""
4215
 
4216
- #: includes/admin/tools.php:132
4217
  msgid "Use these tools to recount / reset store stats."
4218
  msgstr ""
4219
 
4220
- #: includes/admin/tools.php:139 includes/scripts.php:83
4221
  msgid "Please select an option"
4222
  msgstr ""
4223
 
4224
- #: includes/admin/tools.php:140
4225
  msgid "Recount Store Earnings and Sales"
4226
  msgstr ""
4227
 
4228
- #: includes/admin/tools.php:141
4229
  msgid "Recount Earnings and Sales for a %s"
4230
  msgstr ""
4231
 
4232
- #: includes/admin/tools.php:142
4233
  msgid "Recount Earnings and Sales for All %s"
4234
  msgstr ""
4235
 
4236
- #: includes/admin/tools.php:145
4237
  msgid "Reset Store"
4238
  msgstr ""
4239
 
4240
- #: includes/admin/tools.php:164
4241
  msgid "Recalculates the total store earnings and sales."
4242
  msgstr ""
4243
 
4244
- #: includes/admin/tools.php:165
4245
  msgid "Recalculates the earnings and sales stats for a specific %s."
4246
  msgstr ""
4247
 
4248
- #: includes/admin/tools.php:166
4249
  msgid "Recalculates the earnings and sales stats for all %s."
4250
  msgstr ""
4251
 
4252
- #: includes/admin/tools.php:167
4253
  msgid "Recalculates the lifetime value and purchase counts for all customers."
4254
  msgstr ""
4255
 
4256
- #: includes/admin/tools.php:169
4257
  msgid ""
4258
  "<strong>Deletes</strong> all payment records, customers, and related log "
4259
  "entries."
4260
  msgstr ""
4261
 
4262
- #: includes/admin/tools.php:199 includes/admin/tools.php:207
4263
  msgid "Clear Incomplete Upgrade Notice"
4264
  msgstr ""
4265
 
4266
- #: includes/admin/tools.php:201
4267
  msgid ""
4268
  "Sometimes a database upgrade notice may not be cleared after an upgrade is "
4269
  "completed due to conflicts with other extensions or other minor issues."
4270
  msgstr ""
4271
 
4272
- #: includes/admin/tools.php:202
4273
  msgid ""
4274
  "If you're certain these upgrades have been completed, you can clear these "
4275
  "upgrade notices by clicking the button below. If you have any questions "
@@ -4277,26 +4304,42 @@ msgid ""
4277
  "we'll be happy to help."
4278
  msgstr ""
4279
 
4280
- #: includes/admin/tools.php:239
4281
  msgid ""
4282
  "These API keys allow you to use the <a href=\"%s\">EDD REST API</a> to "
4283
  "retrieve store data in JSON or XML for external applications or devices, "
4284
  "such as the <a href=\"%s\">EDD mobile app</a>."
4285
  msgstr ""
4286
 
4287
- #: includes/admin/tools.php:328
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4288
  msgid "Import Payment History"
4289
  msgstr ""
4290
 
4291
- #: includes/admin/tools.php:330
4292
  msgid "Import a CSV file of payment records."
4293
  msgstr ""
4294
 
4295
- #: includes/admin/tools.php:340 includes/admin/tools.php:622
4296
  msgid "Import CSV"
4297
  msgstr ""
4298
 
4299
- #: includes/admin/tools.php:350
4300
  msgid ""
4301
  "Each column loaded from the CSV needs to be mapped to a payment field. "
4302
  "Select the column that should be mapped to each field below. Any columns "
@@ -4304,114 +4347,114 @@ msgid ""
4304
  "guide</a> for assistance with importing payment records."
4305
  msgstr ""
4306
 
4307
- #: includes/admin/tools.php:359
4308
  msgid "Payment Field"
4309
  msgstr ""
4310
 
4311
- #: includes/admin/tools.php:360 includes/admin/tools.php:642
4312
  msgid "CSV Column"
4313
  msgstr ""
4314
 
4315
- #: includes/admin/tools.php:361 includes/admin/tools.php:643
4316
  msgid "Data Preview"
4317
  msgstr ""
4318
 
4319
- #: includes/admin/tools.php:366
4320
  msgid "Currency Code"
4321
  msgstr ""
4322
 
4323
- #: includes/admin/tools.php:369 includes/admin/tools.php:378
4324
- #: includes/admin/tools.php:387 includes/admin/tools.php:396
4325
- #: includes/admin/tools.php:405 includes/admin/tools.php:414
4326
- #: includes/admin/tools.php:423 includes/admin/tools.php:432
4327
- #: includes/admin/tools.php:441 includes/admin/tools.php:450
4328
- #: includes/admin/tools.php:459 includes/admin/tools.php:468
4329
- #: includes/admin/tools.php:477 includes/admin/tools.php:486
4330
- #: includes/admin/tools.php:495 includes/admin/tools.php:504
4331
- #: includes/admin/tools.php:513 includes/admin/tools.php:522
4332
- #: includes/admin/tools.php:531 includes/admin/tools.php:540
4333
- #: includes/admin/tools.php:549 includes/admin/tools.php:558
4334
- #: includes/admin/tools.php:567 includes/admin/tools.php:576
4335
- #: includes/admin/tools.php:585 includes/admin/tools.php:594
4336
- #: includes/admin/tools.php:651 includes/admin/tools.php:660
4337
- #: includes/admin/tools.php:669 includes/admin/tools.php:678
4338
- #: includes/admin/tools.php:687 includes/admin/tools.php:696
4339
- #: includes/admin/tools.php:705 includes/admin/tools.php:714
4340
- #: includes/admin/tools.php:723 includes/admin/tools.php:732
4341
- #: includes/admin/tools.php:741 includes/admin/tools.php:750
4342
- #: includes/admin/tools.php:759 includes/admin/tools.php:768
4343
- #: includes/admin/tools.php:777 includes/admin/tools.php:786
4344
- #: includes/admin/tools.php:795
4345
  msgid "- Ignore this field -"
4346
  msgstr ""
4347
 
4348
- #: includes/admin/tools.php:372 includes/admin/tools.php:381
4349
- #: includes/admin/tools.php:390 includes/admin/tools.php:399
4350
- #: includes/admin/tools.php:408 includes/admin/tools.php:417
4351
- #: includes/admin/tools.php:426 includes/admin/tools.php:435
4352
- #: includes/admin/tools.php:444 includes/admin/tools.php:453
4353
- #: includes/admin/tools.php:462 includes/admin/tools.php:471
4354
- #: includes/admin/tools.php:480 includes/admin/tools.php:489
4355
- #: includes/admin/tools.php:498 includes/admin/tools.php:507
4356
- #: includes/admin/tools.php:516 includes/admin/tools.php:525
4357
- #: includes/admin/tools.php:534 includes/admin/tools.php:543
4358
- #: includes/admin/tools.php:552 includes/admin/tools.php:561
4359
- #: includes/admin/tools.php:570 includes/admin/tools.php:579
4360
- #: includes/admin/tools.php:588 includes/admin/tools.php:597
4361
- #: includes/admin/tools.php:654 includes/admin/tools.php:663
4362
- #: includes/admin/tools.php:672 includes/admin/tools.php:681
4363
- #: includes/admin/tools.php:690 includes/admin/tools.php:699
4364
- #: includes/admin/tools.php:708 includes/admin/tools.php:717
4365
- #: includes/admin/tools.php:726 includes/admin/tools.php:735
4366
- #: includes/admin/tools.php:744 includes/admin/tools.php:753
4367
- #: includes/admin/tools.php:762 includes/admin/tools.php:771
4368
- #: includes/admin/tools.php:780 includes/admin/tools.php:789
4369
- #: includes/admin/tools.php:798
4370
  msgid "- select field to preview data -"
4371
  msgstr ""
4372
 
4373
- #: includes/admin/tools.php:411
4374
  msgid "Discount Code(s)"
4375
  msgstr ""
4376
 
4377
- #: includes/admin/tools.php:438
4378
  msgid "Parent Payment ID"
4379
  msgstr ""
4380
 
4381
- #: includes/admin/tools.php:483
4382
  msgid "Purchased Product(s)"
4383
  msgstr ""
4384
 
4385
- #: includes/admin/tools.php:501 templates/checkout_cart.php:102
4386
  #: templates/shortcode-receipt.php:98
4387
  msgid "Subtotal"
4388
  msgstr ""
4389
 
4390
- #: includes/admin/tools.php:519 templates/checkout_cart.php:129
4391
  msgid "Total"
4392
  msgstr ""
4393
 
4394
- #: includes/admin/tools.php:546
4395
  msgid "Address Line 1"
4396
  msgstr ""
4397
 
4398
- #: includes/admin/tools.php:555
4399
  msgid "Address Line 2"
4400
  msgstr ""
4401
 
4402
- #: includes/admin/tools.php:602 includes/admin/tools.php:803
4403
  msgid "Process Import"
4404
  msgstr ""
4405
 
4406
- #: includes/admin/tools.php:610
4407
  msgid "Import Download Products"
4408
  msgstr ""
4409
 
4410
- #: includes/admin/tools.php:612
4411
  msgid "Import a CSV file of products."
4412
  msgstr ""
4413
 
4414
- #: includes/admin/tools.php:632
4415
  msgid ""
4416
  "Each column loaded from the CSV needs to be mapped to a Download product "
4417
  "field. Select the column that should be mapped to each field below. Any "
@@ -4420,109 +4463,109 @@ msgid ""
4420
  "products."
4421
  msgstr ""
4422
 
4423
- #: includes/admin/tools.php:641
4424
  msgid "Product Field"
4425
  msgstr ""
4426
 
4427
- #: includes/admin/tools.php:648
4428
  msgid "Product Author"
4429
  msgstr ""
4430
 
4431
- #: includes/admin/tools.php:657
4432
  msgid "Product Categories"
4433
  msgstr ""
4434
 
4435
- #: includes/admin/tools.php:666
4436
  msgid "Product Creation Date"
4437
  msgstr ""
4438
 
4439
- #: includes/admin/tools.php:675
4440
  msgid "Product Description"
4441
  msgstr ""
4442
 
4443
- #: includes/admin/tools.php:684
4444
  msgid "Product Excerpt"
4445
  msgstr ""
4446
 
4447
- #: includes/admin/tools.php:693
4448
  msgid "Product Image"
4449
  msgstr ""
4450
 
4451
- #: includes/admin/tools.php:702
4452
  msgid "Product Notes"
4453
  msgstr ""
4454
 
4455
- #: includes/admin/tools.php:711
4456
  msgid "Product Price(s)"
4457
  msgstr ""
4458
 
4459
- #: includes/admin/tools.php:720
4460
  msgid "Product SKU"
4461
  msgstr ""
4462
 
4463
- #: includes/admin/tools.php:729
4464
  msgid "Product Slug"
4465
  msgstr ""
4466
 
4467
- #: includes/admin/tools.php:738
4468
  msgid "Product Status"
4469
  msgstr ""
4470
 
4471
- #: includes/admin/tools.php:747
4472
  msgid "Product Tags"
4473
  msgstr ""
4474
 
4475
- #: includes/admin/tools.php:756
4476
  msgid "Product Title"
4477
  msgstr ""
4478
 
4479
- #: includes/admin/tools.php:765 includes/admin/welcome.php:335
4480
  msgid "Download Files"
4481
  msgstr ""
4482
 
4483
- #: includes/admin/tools.php:783
4484
  msgid "Sale Count"
4485
  msgstr ""
4486
 
4487
- #: includes/admin/tools.php:811
4488
  msgid "Export Settings"
4489
  msgstr ""
4490
 
4491
- #: includes/admin/tools.php:813
4492
  msgid ""
4493
  "Export the Easy Digital Downloads settings for this site as a .json file. "
4494
  "This allows you to easily import the configuration into another site."
4495
  msgstr ""
4496
 
4497
- #: includes/admin/tools.php:814
4498
  msgid ""
4499
  "To export shop data (purchases, customers, etc), visit the <a "
4500
  "href=\"%s\">Reports</a> page."
4501
  msgstr ""
4502
 
4503
- #: includes/admin/tools.php:826
4504
  msgid "Import Settings"
4505
  msgstr ""
4506
 
4507
- #: includes/admin/tools.php:828
4508
  msgid ""
4509
  "Import the Easy Digital Downloads settings from a .json file. This file can "
4510
  "be obtained by exporting the settings on another site using the form above."
4511
  msgstr ""
4512
 
4513
- #: includes/admin/tools.php:836
4514
  msgid "Import"
4515
  msgstr ""
4516
 
4517
- #: includes/admin/tools.php:901
4518
  msgid "Please upload a valid .json file"
4519
  msgstr ""
4520
 
4521
- #: includes/admin/tools.php:907
4522
  msgid "Please upload a file to import"
4523
  msgstr ""
4524
 
4525
- #: includes/admin/tracking.php:264
4526
  msgid ""
4527
  "Allow Easy Digital Downloads to track plugin usage? Opt-in to tracking and "
4528
  "our newsletter and immediately be emailed a 20%% discount to the EDD shop, "
@@ -4530,11 +4573,11 @@ msgid ""
4530
  "extensions</a>. No sensitive data is tracked."
4531
  msgstr ""
4532
 
4533
- #: includes/admin/tracking.php:265
4534
  msgid "Allow"
4535
  msgstr ""
4536
 
4537
- #: includes/admin/tracking.php:266
4538
  msgid "Do not allow"
4539
  msgstr ""
4540
 
@@ -5053,21 +5096,21 @@ msgstr ""
5053
  msgid "All Prices"
5054
  msgstr ""
5055
 
5056
- #: includes/api/class-edd-api-v2.php:143 includes/api/class-edd-api.php:1051
5057
- #: includes/api/class-edd-api.php:1245 includes/api/class-edd-api.php:1355
5058
  msgid "Product %s not found!"
5059
  msgstr ""
5060
 
5061
- #: includes/api/class-edd-api-v2.php:218 includes/api/class-edd-api.php:1156
5062
- #: includes/api/class-edd-api.php:1262
5063
  msgid "The end date must be later than the start date!"
5064
  msgstr ""
5065
 
5066
- #: includes/api/class-edd-api-v2.php:319 includes/api/class-edd-api.php:992
5067
  msgid "Customer %s not found!"
5068
  msgstr ""
5069
 
5070
- #: includes/api/class-edd-api-v2.php:324 includes/api/class-edd-api.php:997
5071
  msgid "No customers found!"
5072
  msgstr ""
5073
 
@@ -5091,80 +5134,80 @@ msgstr ""
5091
  msgid "Invalid query!"
5092
  msgstr ""
5093
 
5094
- #: includes/api/class-edd-api.php:1161 includes/api/class-edd-api.php:1267
5095
  msgid "Invalid or no date range specified!"
5096
  msgstr ""
5097
 
5098
- #: includes/api/class-edd-api.php:1501
5099
  msgid "No discounts found!"
5100
  msgstr ""
5101
 
5102
- #: includes/api/class-edd-api.php:1548
5103
  msgid "Discount %s not found!"
5104
  msgstr ""
5105
 
5106
- #: includes/api/class-edd-api.php:1621
5107
  msgid "No download logs found!"
5108
  msgstr ""
5109
 
5110
- #: includes/api/class-edd-api.php:1876 includes/user-functions.php:969
5111
  msgid "Easy Digital Downloads API Keys"
5112
  msgstr ""
5113
 
5114
- #: includes/api/class-edd-api.php:1885 includes/user-functions.php:978
5115
  msgid "Generate API Key"
5116
  msgstr ""
5117
 
5118
- #: includes/api/class-edd-api.php:1887 includes/user-functions.php:980
5119
  msgid "Public key:"
5120
  msgstr ""
5121
 
5122
- #: includes/api/class-edd-api.php:1888 includes/user-functions.php:981
5123
  msgid "Secret key:"
5124
  msgstr ""
5125
 
5126
- #: includes/api/class-edd-api.php:1889 includes/user-functions.php:982
5127
  msgid "Token:"
5128
  msgstr ""
5129
 
5130
- #: includes/api/class-edd-api.php:1891 includes/user-functions.php:984
5131
  msgid "Revoke API Keys"
5132
  msgstr ""
5133
 
5134
- #: includes/api/class-edd-api.php:1917
5135
  msgid "User ID Required"
5136
  msgstr ""
5137
 
5138
- #: includes/api/class-edd-api.php:1929 includes/api/class-edd-api.php:1931
5139
  msgid "You do not have permission to %s API keys for this user"
5140
  msgstr ""
5141
 
5142
- #: includes/cart/functions.php:455
5143
  msgid "includes %s tax"
5144
  msgstr ""
5145
 
5146
- #: includes/cart/functions.php:457
5147
  msgid "excludes %s tax"
5148
  msgstr ""
5149
 
5150
- #: includes/cart/functions.php:1164 includes/cart/functions.php:1232
5151
  #: templates/shortcode-profile-editor.php:22
5152
  msgid "Success"
5153
  msgstr ""
5154
 
5155
- #: includes/cart/functions.php:1165
5156
  msgid "Cart saved successfully. You can restore your cart using this URL:"
5157
  msgstr ""
5158
 
5159
- #: includes/cart/functions.php:1202 includes/cart/functions.php:1219
5160
  msgid "Cart restoration failed. Invalid token."
5161
  msgstr ""
5162
 
5163
- #: includes/cart/functions.php:1210 includes/cart/functions.php:1222
5164
  msgid "The cart cannot be restored. Invalid token."
5165
  msgstr ""
5166
 
5167
- #: includes/cart/functions.php:1232
5168
  msgid "Cart restored successfully."
5169
  msgstr ""
5170
 
@@ -5543,7 +5586,7 @@ msgstr ""
5543
  msgid "ID: %d"
5544
  msgstr ""
5545
 
5546
- #: includes/class-edd-cli.php:194 includes/class-edd-cli.php:439
5547
  msgid "Status: %s"
5548
  msgstr ""
5549
 
@@ -5595,169 +5638,169 @@ msgstr ""
5595
  msgid "%d customers created in %d seconds"
5596
  msgstr ""
5597
 
5598
- #: includes/class-edd-cli.php:311 includes/class-edd-html-elements.php:215
5599
  msgid "No customers found"
5600
  msgstr ""
5601
 
5602
- #: includes/class-edd-cli.php:317
5603
  msgid "Customer User ID: %s"
5604
  msgstr ""
5605
 
5606
- #: includes/class-edd-cli.php:318 includes/user-functions.php:509
5607
  #: includes/user-functions.php:518
5608
  msgid "Username: %s"
5609
  msgstr ""
5610
 
5611
- #: includes/class-edd-cli.php:319
5612
  msgid "Display Name: %s"
5613
  msgstr ""
5614
 
5615
- #: includes/class-edd-cli.php:322
5616
  msgid "First Name: %s"
5617
  msgstr ""
5618
 
5619
- #: includes/class-edd-cli.php:326
5620
  msgid "Last Name: %s"
5621
  msgstr ""
5622
 
5623
- #: includes/class-edd-cli.php:329 includes/class-edd-cli.php:366
5624
  msgid "Email: %s"
5625
  msgstr ""
5626
 
5627
- #: includes/class-edd-cli.php:332
5628
  msgid "Purchases: %s"
5629
  msgstr ""
5630
 
5631
- #: includes/class-edd-cli.php:333
5632
  msgid "Total Spent: %s"
5633
  msgstr ""
5634
 
5635
- #: includes/class-edd-cli.php:334
5636
  msgid "Total Downloads: %s"
5637
  msgstr ""
5638
 
5639
- #: includes/class-edd-cli.php:359
5640
  msgid "No sales found"
5641
  msgstr ""
5642
 
5643
- #: includes/class-edd-cli.php:365
5644
  msgid "Purchase Key: %s"
5645
  msgstr ""
5646
 
5647
- #: includes/class-edd-cli.php:367
5648
  msgid "Date: %s"
5649
  msgstr ""
5650
 
5651
- #: includes/class-edd-cli.php:368
5652
  msgid "Subtotal: %s"
5653
  msgstr ""
5654
 
5655
- #: includes/class-edd-cli.php:369
5656
  msgid "Tax: %s"
5657
  msgstr ""
5658
 
5659
- #: includes/class-edd-cli.php:372
5660
  msgid "Fees:"
5661
  msgstr ""
5662
 
5663
- #: includes/class-edd-cli.php:375
5664
  msgid " Fee: %s - %s"
5665
  msgstr ""
5666
 
5667
- #: includes/class-edd-cli.php:379
5668
  msgid "Total: %s"
5669
  msgstr ""
5670
 
5671
- #: includes/class-edd-cli.php:381
5672
  msgid "Gateway: %s"
5673
  msgstr ""
5674
 
5675
- #: includes/class-edd-cli.php:384
5676
  msgid "Products:"
5677
  msgstr ""
5678
 
5679
- #: includes/class-edd-cli.php:388
5680
  msgid " Product: %s - %s"
5681
  msgstr ""
5682
 
5683
- #: includes/class-edd-cli.php:419 includes/class-edd-html-elements.php:333
5684
  #: includes/shortcodes.php:270
5685
  msgid "No discounts found"
5686
  msgstr ""
5687
 
5688
- #: includes/class-edd-cli.php:425
5689
  msgid "Name: %s"
5690
  msgstr ""
5691
 
5692
- #: includes/class-edd-cli.php:426
5693
  msgid "Code: %s"
5694
  msgstr ""
5695
 
5696
- #: includes/class-edd-cli.php:434
5697
  msgid "Amount: %s"
5698
  msgstr ""
5699
 
5700
- #: includes/class-edd-cli.php:435
5701
  msgid "Uses: %s"
5702
  msgstr ""
5703
 
5704
- #: includes/class-edd-cli.php:436
5705
  msgid "Max Uses: %s"
5706
  msgstr ""
5707
 
5708
- #: includes/class-edd-cli.php:436
5709
  msgid "Unlimited"
5710
  msgstr ""
5711
 
5712
- #: includes/class-edd-cli.php:437
5713
  msgid "Start Date: %s"
5714
  msgstr ""
5715
 
5716
- #: includes/class-edd-cli.php:437
5717
  msgid "No Start Date"
5718
  msgstr ""
5719
 
5720
- #: includes/class-edd-cli.php:438
5721
  msgid "Expiration Date: %s"
5722
  msgstr ""
5723
 
5724
- #: includes/class-edd-cli.php:438
5725
  msgid "No Expiration"
5726
  msgstr ""
5727
 
5728
- #: includes/class-edd-cli.php:444
5729
  msgid "Product Requirements:"
5730
  msgstr ""
5731
 
5732
- #: includes/class-edd-cli.php:447
5733
  msgid " Product: %s"
5734
  msgstr ""
5735
 
5736
- #: includes/class-edd-cli.php:453
5737
  msgid "Global Discount: %s"
5738
  msgstr ""
5739
 
5740
- #: includes/class-edd-cli.php:454
5741
  msgid "Single Use: %s"
5742
  msgstr ""
5743
 
5744
- #: includes/class-edd-cli.php:482
5745
  msgid "No action specified, did you mean"
5746
  msgstr ""
5747
 
5748
- #: includes/class-edd-cli.php:484
5749
  msgid "Invalid action specified, did you mean"
5750
  msgstr ""
5751
 
5752
- #: includes/class-edd-cli.php:533
5753
  msgid "Invalid status '%s', defaulting to 'complete'"
5754
  msgstr ""
5755
 
5756
- #: includes/class-edd-cli.php:569
5757
  msgid "Specified ID is not a product"
5758
  msgstr ""
5759
 
5760
- #: includes/class-edd-cli.php:652
5761
  msgid "Created %s payments"
5762
  msgstr ""
5763
 
@@ -5797,24 +5840,24 @@ msgstr ""
5797
  msgid "Enter username"
5798
  msgstr ""
5799
 
5800
- #: includes/class-edd-license-handler.php:163
5801
  msgid "%1$s"
5802
  msgstr ""
5803
 
5804
- #: includes/class-edd-license-handler.php:196
5805
  msgid ""
5806
  "Enter your extension license keys here to receive updates for purchased "
5807
  "extensions. If your license key has expired, please <a href=\"%s\" "
5808
  "target=\"_blank\">renew your license</a>."
5809
  msgstr ""
5810
 
5811
- #: includes/class-edd-license-handler.php:421
5812
  msgid ""
5813
  "You have invalid or expired license keys for Easy Digital Downloads. Please "
5814
  "go to the <a href=\"%s\">Licenses page</a> to correct this issue."
5815
  msgstr ""
5816
 
5817
- #: includes/class-edd-license-handler.php:460
5818
  msgid "Enter valid license key for automatic updates."
5819
  msgstr ""
5820
 
@@ -5916,7 +5959,7 @@ msgstr ""
5916
  msgid "Shop Vendor"
5917
  msgstr ""
5918
 
5919
- #: includes/class-edd-stats.php:438
5920
  msgid "Improper date provided."
5921
  msgstr ""
5922
 
@@ -6486,12 +6529,12 @@ msgstr ""
6486
 
6487
  #: includes/gateways/amazon-payments.php:1017
6488
  #: includes/gateways/amazon-payments.php:1071
6489
- #: includes/gateways/paypal-standard.php:408
6490
- #: includes/gateways/paypal-standard.php:413
6491
- #: includes/gateways/paypal-standard.php:476
6492
- #: includes/gateways/paypal-standard.php:485
6493
- #: includes/gateways/paypal-standard.php:544
6494
- #: includes/gateways/paypal-standard.php:551
6495
  msgid "IPN Error"
6496
  msgstr ""
6497
 
@@ -6637,44 +6680,44 @@ msgstr ""
6637
  msgid "Payment creation failed before sending buyer to PayPal. Payment data: %s"
6638
  msgstr ""
6639
 
6640
- #: includes/gateways/paypal-standard.php:408
6641
- #: includes/gateways/paypal-standard.php:413
6642
  msgid "Invalid IPN verification response. IPN data: %s"
6643
  msgstr ""
6644
 
6645
- #: includes/gateways/paypal-standard.php:476
6646
  msgid "Invalid business email in IPN response. IPN data: %s"
6647
  msgstr ""
6648
 
6649
- #: includes/gateways/paypal-standard.php:478
6650
  msgid "Payment failed due to invalid PayPal business email."
6651
  msgstr ""
6652
 
6653
- #: includes/gateways/paypal-standard.php:485
6654
  msgid "Invalid currency in IPN response. IPN data: %s"
6655
  msgstr ""
6656
 
6657
- #: includes/gateways/paypal-standard.php:487
6658
  msgid "Payment failed due to invalid currency in PayPal IPN."
6659
  msgstr ""
6660
 
6661
- #: includes/gateways/paypal-standard.php:544
6662
  msgid "Invalid payment amount in IPN response. IPN data: %s"
6663
  msgstr ""
6664
 
6665
- #: includes/gateways/paypal-standard.php:546
6666
  msgid "Payment failed due to invalid amount in PayPal IPN."
6667
  msgstr ""
6668
 
6669
- #: includes/gateways/paypal-standard.php:551
6670
  msgid "Invalid purchase key in IPN response. IPN data: %s"
6671
  msgstr ""
6672
 
6673
- #: includes/gateways/paypal-standard.php:553
6674
  msgid "Payment failed due to invalid purchase key in PayPal IPN."
6675
  msgstr ""
6676
 
6677
- #: includes/gateways/paypal-standard.php:559
6678
  #: tests/helpers/class-helper-payment.php:131
6679
  #: tests/helpers/class-helper-payment.php:234
6680
  #: tests/helpers/class-helper-payment.php:342
@@ -6684,79 +6727,79 @@ msgstr ""
6684
  msgid "PayPal Transaction ID: %s"
6685
  msgstr ""
6686
 
6687
- #: includes/gateways/paypal-standard.php:573
6688
  msgid "Payment made via eCheck and will clear automatically in 5-8 days"
6689
  msgstr ""
6690
 
6691
- #: includes/gateways/paypal-standard.php:579
6692
  msgid ""
6693
  "Payment requires a confirmed customer address and must be accepted manually "
6694
  "through PayPal"
6695
  msgstr ""
6696
 
6697
- #: includes/gateways/paypal-standard.php:585
6698
  msgid ""
6699
  "Payment must be accepted manually through PayPal due to international "
6700
  "account regulations"
6701
  msgstr ""
6702
 
6703
- #: includes/gateways/paypal-standard.php:591
6704
  msgid ""
6705
  "Payment received in non-shop currency and must be accepted manually through "
6706
  "PayPal"
6707
  msgstr ""
6708
 
6709
- #: includes/gateways/paypal-standard.php:598
6710
  msgid ""
6711
  "Payment is being reviewed by PayPal staff as high-risk or in possible "
6712
  "violation of government regulations"
6713
  msgstr ""
6714
 
6715
- #: includes/gateways/paypal-standard.php:604
6716
  msgid "Payment was sent to non-confirmed or non-registered email address."
6717
  msgstr ""
6718
 
6719
- #: includes/gateways/paypal-standard.php:610
6720
  msgid "PayPal account must be upgraded before this payment can be accepted"
6721
  msgstr ""
6722
 
6723
- #: includes/gateways/paypal-standard.php:616
6724
  msgid ""
6725
  "PayPal account is not verified. Verify account in order to accept this "
6726
  "payment"
6727
  msgstr ""
6728
 
6729
- #: includes/gateways/paypal-standard.php:622
6730
  msgid ""
6731
  "Payment is pending for unknown reasons. Contact PayPal support for "
6732
  "assistance"
6733
  msgstr ""
6734
 
6735
- #: includes/gateways/paypal-standard.php:663
6736
  msgid "Partial PayPal refund processed: %s"
6737
  msgstr ""
6738
 
6739
- #: includes/gateways/paypal-standard.php:668
6740
  msgid "PayPal Payment #%s Refunded for reason: %s"
6741
  msgstr ""
6742
 
6743
- #: includes/gateways/paypal-standard.php:669
6744
  msgid "PayPal Refund Transaction ID: %s"
6745
  msgstr ""
6746
 
6747
- #: includes/gateways/paypal-standard.php:818
6748
  msgid "Refund Payment in PayPal"
6749
  msgstr ""
6750
 
6751
- #: includes/gateways/paypal-standard.php:967
6752
  msgid "PayPal refund failed for unknown reason."
6753
  msgstr ""
6754
 
6755
- #: includes/gateways/paypal-standard.php:977
6756
  msgid "PayPal refund transaction ID: %s"
6757
  msgstr ""
6758
 
6759
- #: includes/gateways/paypal-standard.php:981
6760
  msgid "PayPal refund failed: %s"
6761
  msgstr ""
6762
 
@@ -6955,7 +6998,7 @@ msgstr ""
6955
  msgid "Complete"
6956
  msgstr ""
6957
 
6958
- #: includes/payments/functions.php:1591
6959
  msgid "EDD Bot"
6960
  msgstr ""
6961
 
@@ -7029,219 +7072,219 @@ msgstr ""
7029
  msgid "%2$s list"
7030
  msgstr ""
7031
 
7032
- #: includes/post-types.php:76
7033
  msgid "Add New Payment"
7034
  msgstr ""
7035
 
7036
- #: includes/post-types.php:78
7037
  msgid "New Payment"
7038
  msgstr ""
7039
 
7040
- #: includes/post-types.php:79
7041
  msgid "All Payments"
7042
  msgstr ""
7043
 
7044
- #: includes/post-types.php:80
7045
  msgid "View Payment"
7046
  msgstr ""
7047
 
7048
- #: includes/post-types.php:82
7049
  msgid "No Payments found"
7050
  msgstr ""
7051
 
7052
- #: includes/post-types.php:83
7053
  msgid "No Payments found in Trash"
7054
  msgstr ""
7055
 
7056
- #: includes/post-types.php:85
7057
  msgid "Payment History"
7058
  msgstr ""
7059
 
7060
- #: includes/post-types.php:108
7061
  msgid "New Discount"
7062
  msgstr ""
7063
 
7064
- #: includes/post-types.php:109
7065
  msgid "All Discounts"
7066
  msgstr ""
7067
 
7068
- #: includes/post-types.php:110
7069
  msgid "View Discount"
7070
  msgstr ""
7071
 
7072
- #: includes/post-types.php:111
7073
  msgid "Search Discounts"
7074
  msgstr ""
7075
 
7076
- #: includes/post-types.php:112
7077
  msgid "No Discounts found"
7078
  msgstr ""
7079
 
7080
- #: includes/post-types.php:113
7081
  msgid "No Discounts found in Trash"
7082
  msgstr ""
7083
 
7084
- #: includes/post-types.php:115
7085
  msgid "Discounts"
7086
  msgstr ""
7087
 
7088
- #: includes/post-types.php:141
7089
  msgid "Download"
7090
  msgstr ""
7091
 
7092
- #: includes/post-types.php:142
7093
  msgid "Downloads"
7094
  msgstr ""
7095
 
7096
- #: includes/post-types.php:182 includes/post-types.php:190
7097
  msgid "Enter %s name here"
7098
  msgstr ""
7099
 
7100
- #: includes/post-types.php:211
7101
  msgid "Search %s Categories"
7102
  msgstr ""
7103
 
7104
- #: includes/post-types.php:212
7105
  msgid "All %s Categories"
7106
  msgstr ""
7107
 
7108
- #: includes/post-types.php:213
7109
  msgid "Parent %s Category"
7110
  msgstr ""
7111
 
7112
- #: includes/post-types.php:214
7113
  msgid "Parent %s Category:"
7114
  msgstr ""
7115
 
7116
- #: includes/post-types.php:215
7117
  msgid "Edit %s Category"
7118
  msgstr ""
7119
 
7120
- #: includes/post-types.php:216
7121
  msgid "Update %s Category"
7122
  msgstr ""
7123
 
7124
- #: includes/post-types.php:217
7125
  msgid "Add New %s Category"
7126
  msgstr ""
7127
 
7128
- #: includes/post-types.php:218
7129
  msgid "New %s Category Name"
7130
  msgstr ""
7131
 
7132
- #: includes/post-types.php:238
7133
  msgid "Search %s Tags"
7134
  msgstr ""
7135
 
7136
- #: includes/post-types.php:239
7137
  msgid "All %s Tags"
7138
  msgstr ""
7139
 
7140
- #: includes/post-types.php:240
7141
  msgid "Parent %s Tag"
7142
  msgstr ""
7143
 
7144
- #: includes/post-types.php:241
7145
  msgid "Parent %s Tag:"
7146
  msgstr ""
7147
 
7148
- #: includes/post-types.php:242
7149
  msgid "Edit %s Tag"
7150
  msgstr ""
7151
 
7152
- #: includes/post-types.php:243
7153
  msgid "Update %s Tag"
7154
  msgstr ""
7155
 
7156
- #: includes/post-types.php:244
7157
  msgid "Add New %s Tag"
7158
  msgstr ""
7159
 
7160
- #: includes/post-types.php:245
7161
  msgid "New %s Tag Name"
7162
  msgstr ""
7163
 
7164
- #: includes/post-types.php:247
7165
  msgid "Choose from most used %s tags"
7166
  msgstr ""
7167
 
7168
- #: includes/post-types.php:311
7169
  msgid "Refunded <span class=\"count\">(%s)</span>"
7170
  msgid_plural "Refunded <span class=\"count\">(%s)</span>"
7171
  msgstr[0] ""
7172
  msgstr[1] ""
7173
 
7174
- #: includes/post-types.php:319
7175
  msgid "Failed <span class=\"count\">(%s)</span>"
7176
  msgid_plural "Failed <span class=\"count\">(%s)</span>"
7177
  msgstr[0] ""
7178
  msgstr[1] ""
7179
 
7180
- #: includes/post-types.php:327
7181
  msgid "Revoked <span class=\"count\">(%s)</span>"
7182
  msgid_plural "Revoked <span class=\"count\">(%s)</span>"
7183
  msgstr[0] ""
7184
  msgstr[1] ""
7185
 
7186
- #: includes/post-types.php:335
7187
  msgid "Abandoned <span class=\"count\">(%s)</span>"
7188
  msgid_plural "Abandoned <span class=\"count\">(%s)</span>"
7189
  msgstr[0] ""
7190
  msgstr[1] ""
7191
 
7192
- #: includes/post-types.php:345
7193
  msgid "Active <span class=\"count\">(%s)</span>"
7194
  msgid_plural "Active <span class=\"count\">(%s)</span>"
7195
  msgstr[0] ""
7196
  msgstr[1] ""
7197
 
7198
- #: includes/post-types.php:353
7199
  msgid "Inactive <span class=\"count\">(%s)</span>"
7200
  msgid_plural "Inactive <span class=\"count\">(%s)</span>"
7201
  msgstr[0] ""
7202
  msgstr[1] ""
7203
 
7204
- #: includes/post-types.php:375 includes/post-types.php:376
7205
  msgid "%2$s updated. %1$sView %2$s%3$s."
7206
  msgstr ""
7207
 
7208
- #: includes/post-types.php:377
7209
  msgid "%2$s published. %1$sView %2$s%3$s."
7210
  msgstr ""
7211
 
7212
- #: includes/post-types.php:378
7213
  msgid "%2$s saved. %1$sView %2$s%3$s."
7214
  msgstr ""
7215
 
7216
- #: includes/post-types.php:379
7217
  msgid "%2$s submitted. %1$sView %2$s%3$s."
7218
  msgstr ""
7219
 
7220
- #: includes/post-types.php:399
7221
  msgid "%1$s %2$s updated."
7222
  msgid_plural "%1$s %3$s updated."
7223
  msgstr[0] ""
7224
  msgstr[1] ""
7225
 
7226
- #: includes/post-types.php:400
7227
  msgid "%1$s %2$s not updated, somebody is editing it."
7228
  msgid_plural "%1$s %3$s not updated, somebody is editing them."
7229
  msgstr[0] ""
7230
  msgstr[1] ""
7231
 
7232
- #: includes/post-types.php:401
7233
  msgid "%1$s %2$s permanently deleted."
7234
  msgid_plural "%1$s %3$s permanently deleted."
7235
  msgstr[0] ""
7236
  msgstr[1] ""
7237
 
7238
- #: includes/post-types.php:402
7239
  msgid "%1$s %2$s moved to the Trash."
7240
  msgid_plural "%1$s %3$s moved to the Trash."
7241
  msgstr[0] ""
7242
  msgstr[1] ""
7243
 
7244
- #: includes/post-types.php:403
7245
  msgid "%1$s %2$s restored from the Trash."
7246
  msgid_plural "%1$s %3$s restored from the Trash."
7247
  msgstr[0] ""
@@ -7491,27 +7534,27 @@ msgstr ""
7491
  msgid "Purchase All Items"
7492
  msgstr ""
7493
 
7494
- #: includes/shortcodes.php:684
7495
  msgid "Sorry, trouble retrieving payment receipt."
7496
  msgstr ""
7497
 
7498
- #: includes/shortcodes.php:719
7499
  msgid "You must be logged in to view this payment receipt."
7500
  msgstr ""
7501
 
7502
- #: includes/shortcodes.php:854
7503
  msgid "The passwords you entered do not match. Please try again."
7504
  msgstr ""
7505
 
7506
- #: includes/shortcodes.php:864
7507
  msgid "The email you entered is invalid. Please enter a valid email."
7508
  msgstr ""
7509
 
7510
- #: includes/shortcodes.php:869
7511
  msgid "The email you entered belongs to another user. Please use another."
7512
  msgstr ""
7513
 
7514
- #: includes/shortcodes.php:944
7515
  msgid "Error removing email address from profile. Please try again later."
7516
  msgstr ""
7517
 
@@ -7651,6 +7694,14 @@ msgstr ""
7651
  msgid "Invalid verification token provided."
7652
  msgstr ""
7653
 
 
 
 
 
 
 
 
 
7654
  #: includes/widgets.php:38
7655
  msgid "Downloads Cart"
7656
  msgstr ""
@@ -7964,7 +8015,7 @@ msgctxt "download post type name"
7964
  msgid "%2$s"
7965
  msgstr ""
7966
 
7967
- #: includes/shortcodes.php:638
7968
  msgctxt "download post type name"
7969
  msgid "No %s found"
7970
  msgstr ""
@@ -7979,72 +8030,72 @@ msgctxt "download post type menu name"
7979
  msgid "%2$s"
7980
  msgstr ""
7981
 
7982
- #: includes/post-types.php:73
7983
  msgctxt "post type general name"
7984
  msgid "Payments"
7985
  msgstr ""
7986
 
7987
- #: includes/post-types.php:103
7988
  msgctxt "post type general name"
7989
  msgid "Discounts"
7990
  msgstr ""
7991
 
7992
- #: includes/post-types.php:74
7993
  msgctxt "post type singular name"
7994
  msgid "Payment"
7995
  msgstr ""
7996
 
7997
- #: includes/post-types.php:104
7998
  msgctxt "post type singular name"
7999
  msgid "Discount"
8000
  msgstr ""
8001
 
8002
- #: includes/post-types.php:209
8003
  msgctxt "taxonomy general name"
8004
  msgid "%s Categories"
8005
  msgstr ""
8006
 
8007
- #: includes/post-types.php:236
8008
  msgctxt "taxonomy general name"
8009
  msgid "%s Tags"
8010
  msgstr ""
8011
 
8012
- #: includes/post-types.php:210
8013
  msgctxt "taxonomy singular name"
8014
  msgid "%s Category"
8015
  msgstr ""
8016
 
8017
- #: includes/post-types.php:237
8018
  msgctxt "taxonomy singular name"
8019
  msgid "%s Tag"
8020
  msgstr ""
8021
 
8022
- #: includes/post-types.php:306
8023
  msgctxt "Refunded payment status"
8024
  msgid "Refunded"
8025
  msgstr ""
8026
 
8027
- #: includes/post-types.php:314
8028
  msgctxt "Failed payment status"
8029
  msgid "Failed"
8030
  msgstr ""
8031
 
8032
- #: includes/post-types.php:322
8033
  msgctxt "Revoked payment status"
8034
  msgid "Revoked"
8035
  msgstr ""
8036
 
8037
- #: includes/post-types.php:330
8038
  msgctxt "Abandoned payment status"
8039
  msgid "Abandoned"
8040
  msgstr ""
8041
 
8042
- #: includes/post-types.php:340
8043
  msgctxt "Active discount code status"
8044
  msgid "Active"
8045
  msgstr ""
8046
 
8047
- #: includes/post-types.php:348
8048
  msgctxt "Inactive discount code status"
8049
  msgid "Inactive"
8050
  msgstr ""
1
+ # Copyright (C) 2016 Easy Digital Downloads
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.6.11\n"
6
  "Report-Msgid-Bugs-To: https://easydigitaldownloads.com/\n"
7
+ "POT-Creation-Date: 2016-11-08 13:27:35+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
24
  "X-Poedit-Bookmarks: \n"
25
  "X-Textdomain-Support: yes\n"
26
 
27
+ #: easy-digital-downloads.php:173 easy-digital-downloads.php:185
28
  msgid "Cheatin&#8217; huh?"
29
  msgstr ""
30
 
38
  "or %5$supdate now%6$s."
39
  msgstr ""
40
 
41
+ #: includes/EDD_SL_Plugin_Updater.php:359
42
  msgid "You do not have permission to install plugin updates"
43
  msgstr ""
44
 
45
+ #: includes/EDD_SL_Plugin_Updater.php:359
46
  #: includes/admin/customers/customer-actions.php:301
47
  #: includes/admin/customers/customer-actions.php:345
48
  #: includes/admin/customers/customer-actions.php:603
74
  #: includes/admin/reporting/pdf-reports.php:29
75
  #: includes/admin/reporting/pdf-reports.php:33
76
  #: includes/admin/reporting/reports.php:97
77
+ #: includes/admin/tools/class-edd-tools-recount-all-stats.php:206
78
  #: includes/admin/tools/class-edd-tools-recount-customer-stats.php:192
79
  #: includes/admin/tools/class-edd-tools-recount-download-stats.php:224
80
  #: includes/admin/tools/class-edd-tools-recount-single-customer-stats.php:149
81
  #: includes/admin/tools/class-edd-tools-recount-store-earnings.php:154
82
  #: includes/admin/tools/class-edd-tools-reset-stats.php:180
83
+ #: includes/admin/tools.php:1023 includes/admin/tools.php:1029
84
  #: includes/admin/upgrades/upgrade-functions.php:210
85
  #: includes/admin/upgrades/upgrade-functions.php:526
86
  #: includes/admin/upgrades/upgrade-functions.php:608
89
  #: includes/admin/upgrades/upgrade-functions.php:890
90
  #: includes/admin/upgrades/upgrade-functions.php:1018
91
  #: includes/admin/upgrades/upgrade-functions.php:1103
92
+ #: includes/api/class-edd-api.php:1923 includes/api/class-edd-api.php:1928
93
+ #: includes/api/class-edd-api.php:1940 includes/api/class-edd-api.php:1942
94
+ #: includes/cart/functions.php:1205 includes/cart/functions.php:1222
95
+ #: includes/class-edd-license-handler.php:308
96
  #: includes/deprecated-functions.php:517 includes/deprecated-functions.php:532
97
  #: includes/deprecated-functions.php:542 includes/download-functions.php:1229
98
  #: includes/emails/actions.php:49 includes/emails/template.php:245
174
 
175
  #: includes/admin/admin-pages.php:43 includes/admin/plugins.php:58
176
  #: includes/admin/settings/contextual-help.php:87
177
+ #: includes/admin/settings/register-settings.php:1201
178
  msgid "Extensions"
179
  msgstr ""
180
 
389
  #: includes/admin/discounts/class-discount-codes-table.php:289
390
  #: includes/admin/payments/class-payments-table.php:323
391
  #: includes/admin/payments/class-payments-table.php:395
392
+ #: includes/payments/functions.php:1613
393
  msgid "Delete"
394
  msgstr ""
395
 
496
  #: includes/admin/import/import-functions.php:113
497
  #: includes/admin/reporting/export/export-actions.php:23
498
  #: includes/admin/reporting/pdf-reports.php:33
499
+ #: includes/api/class-edd-api.php:1923
500
+ #: includes/class-edd-license-handler.php:308
501
  msgid "Nonce verification failed"
502
  msgstr ""
503
 
591
  #: includes/admin/customers/customers.php:219
592
  #: includes/admin/reporting/class-export-payments.php:68
593
  #: includes/admin/reporting/export/class-batch-export-payments.php:48
594
+ #: includes/admin/tools.php:686 includes/checkout/template.php:355
595
  #: templates/shortcode-profile-editor.php:132
596
  msgid "City"
597
  msgstr ""
598
 
599
  #: includes/admin/customers/customers.php:246
600
+ #: includes/admin/settings/register-settings.php:1931
601
+ #: includes/admin/tools.php:695 includes/checkout/template.php:417
602
  #: templates/shortcode-profile-editor.php:145
603
  msgid "State / Province"
604
  msgstr ""
671
  #: includes/admin/reporting/class-export-payments.php:63
672
  #: includes/admin/reporting/export/class-batch-export-customers.php:44
673
  #: includes/admin/reporting/export/class-batch-export-payments.php:42
674
+ #: includes/admin/tools.php:497 templates/shortcode-register.php:23
675
  msgid "Email"
676
  msgstr ""
677
 
688
 
689
  #: includes/admin/customers/customers.php:378
690
  #: includes/admin/payments/view-order-details.php:375
691
+ #: includes/admin/settings/register-settings.php:1934 includes/scripts.php:222
692
  #: templates/checkout_cart.php:57 templates/checkout_cart.php:75
693
  #: templates/shortcode-profile-editor.php:114
694
  msgid "Remove"
747
  #: includes/admin/reporting/class-sales-logs-list-table.php:136
748
  #: includes/admin/reporting/export/class-batch-export-file-downloads.php:42
749
  #: includes/admin/reporting/export/class-batch-export-payments.php:61
750
+ #: includes/admin/tools.php:587 templates/history-purchases.php:19
751
  #: templates/shortcode-receipt.php:59
752
  msgid "Date"
753
  msgstr ""
759
  #: includes/admin/reporting/class-export-payments.php:82
760
  #: includes/admin/reporting/export/class-batch-export-downloads.php:49
761
  #: includes/admin/reporting/export/class-batch-export-payments.php:66
762
+ #: includes/admin/tools.php:614
763
  msgid "Status"
764
  msgstr ""
765
 
801
  msgid "Delete all associated payments and records?"
802
  msgstr ""
803
 
804
+ #: includes/admin/customers/customers.php:615 includes/admin/tools.php:148
805
  msgid "Recount Customer Stats"
806
  msgstr ""
807
 
811
  "customer."
812
  msgstr ""
813
 
814
+ #: includes/admin/customers/customers.php:623 includes/admin/tools.php:135
815
  msgid "Recount Stats"
816
  msgstr ""
817
 
838
  #: includes/admin/reporting/class-download-reports-table.php:112
839
  #: includes/admin/reporting/class-export-earnings.php:64
840
  #: includes/admin/reporting/export/class-batch-export-downloads.php:59
841
+ #: includes/admin/reporting/graphing.php:309
842
+ #: includes/admin/reporting/graphing.php:609
843
  #: includes/admin/reporting/pdf-reports.php:206
844
  #: includes/admin/reporting/reports.php:54
845
  msgid "Earnings"
853
  msgstr[1] ""
854
 
855
  #: includes/admin/dashboard-widgets.php:80
856
+ #: includes/admin/reporting/graphing.php:650 includes/class-edd-stats.php:89
857
  msgid "Last Month"
858
  msgstr ""
859
 
860
  #: includes/admin/dashboard-widgets.php:105
861
+ #: includes/admin/reporting/graphing.php:645 includes/class-edd-stats.php:84
862
  msgid "Today"
863
  msgstr ""
864
 
867
  #: includes/admin/reporting/class-download-reports-table.php:111
868
  #: includes/admin/reporting/class-export-earnings.php:63
869
  #: includes/admin/reporting/export/class-batch-export-downloads.php:58
870
+ #: includes/admin/reporting/graphing.php:310
871
+ #: includes/admin/reporting/graphing.php:610
872
  #: includes/admin/reporting/logs.php:145
873
  #: includes/admin/reporting/pdf-reports.php:223
874
  msgid "Sales"
880
 
881
  #: includes/admin/dashboard-widgets.php:138
882
  #: includes/admin/reporting/class-categories-reports-table.php:85
883
+ #: includes/admin/tools.php:914
884
  msgid "Total Earnings"
885
  msgstr ""
886
 
898
  msgid "View All"
899
  msgstr ""
900
 
901
+ #: includes/admin/discounts/add-discount.php:15 includes/post-types.php:107
902
  msgid "Add New Discount"
903
  msgstr ""
904
 
1157
 
1158
  #: includes/admin/discounts/contextual-help.php:38
1159
  #: includes/admin/settings/contextual-help.php:42
1160
+ #: includes/admin/settings/register-settings.php:1194
1161
  #: includes/admin/tools.php:68
1162
  msgid "General"
1163
  msgstr ""
1282
  msgstr ""
1283
 
1284
  #: includes/admin/discounts/discount-codes.php:33 includes/post-types.php:30
1285
+ #: includes/post-types.php:76 includes/post-types.php:106
1286
  msgid "Add New"
1287
  msgstr ""
1288
 
1296
  msgid "Something went wrong."
1297
  msgstr ""
1298
 
1299
+ #: includes/admin/discounts/edit-discount.php:29 includes/post-types.php:108
1300
  msgid "Edit Discount"
1301
  msgstr ""
1302
 
1598
  msgstr ""
1599
 
1600
  #: includes/admin/downloads/metabox.php:847
1601
+ #: includes/admin/settings/register-settings.php:773
1602
  #: includes/admin/thickbox.php:58 includes/checkout/template.php:847
1603
  #: includes/scripts.php:65 includes/shortcodes.php:49
1604
  #: includes/template-functions.php:67
1640
  msgstr ""
1641
 
1642
  #: includes/admin/downloads/metabox.php:921
1643
+ #: includes/admin/settings/register-settings.php:780
1644
  #: includes/admin/thickbox.php:96
1645
  msgid "Add to Cart"
1646
  msgstr ""
1647
 
1648
  #: includes/admin/downloads/metabox.php:922
1649
+ #: includes/admin/settings/register-settings.php:787 includes/shortcodes.php:47
1650
  #: includes/template-functions.php:67
1651
  msgid "Buy Now"
1652
  msgstr ""
1876
  msgid "You also have the option to bulk delete payments should you wish."
1877
  msgstr ""
1878
 
1879
+ #: includes/admin/payments/contextual-help.php:51 includes/post-types.php:82
1880
  msgid "Search Payments"
1881
  msgstr ""
1882
 
1956
  msgid "A unique key used to identify the payment."
1957
  msgstr ""
1958
 
1959
+ #: includes/admin/payments/payments-history.php:63
1960
+ msgid "Easy Digital Downloads iOS App"
1961
+ msgstr ""
1962
+
1963
  #: includes/admin/payments/payments-history.php:64
1964
  msgid "Get the EDD Sales / Earnings tracker for iOS"
1965
  msgstr ""
1966
 
1967
+ #: includes/admin/payments/payments-history.php:93 includes/post-types.php:78
1968
  msgid "Edit Payment"
1969
  msgstr ""
1970
 
2038
  msgstr ""
2039
 
2040
  #: includes/admin/payments/view-order-details.php:115
2041
+ #: includes/admin/settings/register-settings.php:744
2042
  msgid "None"
2043
  msgstr ""
2044
 
2050
  #: includes/admin/payments/view-order-details.php:135
2051
  #: includes/admin/reporting/class-export-payments.php:75
2052
  #: includes/admin/reporting/export/class-batch-export-payments.php:56
2053
+ #: includes/admin/tools.php:632 templates/checkout_cart.php:120
2054
  #: templates/shortcode-receipt.php:90
2055
  msgid "Tax"
2056
  msgstr ""
2206
  msgstr ""
2207
 
2208
  #: includes/admin/payments/view-order-details.php:536
2209
+ #: includes/admin/settings/register-settings.php:310
2210
  msgid "Select a country"
2211
  msgstr ""
2212
 
2213
  #: includes/admin/payments/view-order-details.php:554
2214
+ #: includes/admin/settings/register-settings.php:318
2215
  msgid "Select a state"
2216
  msgstr ""
2217
 
2228
  msgstr ""
2229
 
2230
  #: includes/admin/plugins.php:27
2231
+ #: includes/admin/settings/register-settings.php:1249
2232
  msgid "General Settings"
2233
  msgstr ""
2234
 
2318
  #: includes/admin/reporting/class-export-customers.php:66
2319
  #: includes/admin/reporting/class-export-payments.php:64
2320
  #: includes/admin/reporting/export/class-batch-export-payments.php:44
2321
+ #: includes/admin/tools.php:506 includes/checkout/template.php:191
2322
  #: templates/shortcode-profile-editor.php:33
2323
  msgid "First Name"
2324
  msgstr ""
2326
  #: includes/admin/reporting/class-export-customers.php:67
2327
  #: includes/admin/reporting/class-export-payments.php:65
2328
  #: includes/admin/reporting/export/class-batch-export-payments.php:45
2329
+ #: includes/admin/tools.php:515 includes/checkout/template.php:201
2330
  #: templates/shortcode-profile-editor.php:36
2331
  msgid "Last Name"
2332
  msgstr ""
2352
  #: includes/admin/reporting/class-file-downloads-logs-list-table.php:149
2353
  #: includes/admin/reporting/export/class-batch-export-file-downloads.php:44
2354
  #: includes/admin/reporting/export/class-batch-export-payments.php:64
2355
+ #: includes/admin/tools.php:542
2356
  msgid "IP Address"
2357
  msgstr ""
2358
 
2369
 
2370
  #: includes/admin/reporting/class-export-payments.php:62
2371
  #: includes/admin/reporting/export/class-batch-export-payments.php:41
2372
+ #: includes/admin/tools.php:578
2373
  msgid "Payment Number"
2374
  msgstr ""
2375
 
2390
 
2391
  #: includes/admin/reporting/class-export-payments.php:70
2392
  #: includes/admin/reporting/export/class-batch-export-payments.php:50
2393
+ #: includes/admin/settings/register-settings.php:1930
2394
+ #: includes/admin/tools.php:713 templates/shortcode-profile-editor.php:138
2395
  msgid "Country"
2396
  msgstr ""
2397
 
2398
  #: includes/admin/reporting/class-export-payments.php:71
2399
  #: includes/admin/reporting/export/class-batch-export-payments.php:51
2400
+ #: includes/admin/tools.php:704 includes/checkout/template.php:365
2401
  #: templates/shortcode-profile-editor.php:135
2402
  msgid "Zip / Postal Code"
2403
  msgstr ""
2414
 
2415
  #: includes/admin/reporting/class-export-payments.php:77
2416
  #: includes/admin/reporting/export/class-batch-export-payments.php:58
2417
+ #: includes/admin/tools.php:569 templates/shortcode-receipt.php:53
2418
  msgid "Payment Method"
2419
  msgstr ""
2420
 
2421
  #: includes/admin/reporting/class-export-payments.php:78
2422
  #: includes/admin/reporting/export/class-batch-export-payments.php:59
2423
+ #: includes/admin/tools.php:650
2424
  msgid "Transaction ID"
2425
  msgstr ""
2426
 
2427
  #: includes/admin/reporting/class-export-payments.php:79
2428
  #: includes/admin/reporting/export/class-batch-export-payments.php:60
2429
+ #: includes/admin/tools.php:596
2430
  msgid "Purchase Key"
2431
  msgstr ""
2432
 
2434
  #: includes/admin/reporting/class-file-downloads-logs-list-table.php:146
2435
  #: includes/admin/reporting/class-sales-logs-list-table.php:132
2436
  #: includes/admin/reporting/export/class-batch-export-payments.php:62
2437
+ #: includes/admin/tools.php:659
2438
  msgid "User"
2439
  msgstr ""
2440
 
2445
 
2446
  #: includes/admin/reporting/class-export.php:172
2447
  #: includes/admin/reporting/export/class-batch-export.php:131
2448
+ #: includes/admin/tools/class-edd-tools-recount-all-stats.php:206
2449
  #: includes/admin/tools/class-edd-tools-recount-customer-stats.php:192
2450
  #: includes/admin/tools/class-edd-tools-recount-download-stats.php:224
2451
  #: includes/admin/tools/class-edd-tools-recount-store-earnings.php:154
2501
  msgstr ""
2502
 
2503
  #: includes/admin/reporting/contextual-help.php:48
2504
+ #: includes/admin/reporting/reports.php:31 includes/admin/tools.php:941
2505
  msgid "Export"
2506
  msgstr ""
2507
 
2582
  msgstr ""
2583
 
2584
  #: includes/admin/reporting/export/class-batch-export-downloads.php:50
2585
+ #: includes/post-types.php:220
2586
  msgid "Categories"
2587
  msgstr ""
2588
 
2589
  #: includes/admin/reporting/export/class-batch-export-downloads.php:51
2590
+ #: includes/admin/reporting/pdf-reports.php:72 includes/post-types.php:247
2591
  msgid "Tags"
2592
  msgstr ""
2593
 
2597
  msgstr ""
2598
 
2599
  #: includes/admin/reporting/export/class-batch-export-downloads.php:54
2600
+ #: includes/admin/settings/register-settings.php:816
2601
+ #: includes/admin/tools.php:896
2602
  msgid "File Download Limit"
2603
  msgstr ""
2604
 
2614
  msgstr ""
2615
 
2616
  #: includes/admin/reporting/export/class-batch-export-payments.php:43
2617
+ #: includes/admin/tools.php:524
2618
  msgid "Customer ID"
2619
  msgstr ""
2620
 
2623
  msgstr ""
2624
 
2625
  #: includes/admin/reporting/export/class-batch-export-payments.php:63
2626
+ #: includes/admin/settings/register-settings.php:345
2627
  msgid "Currency"
2628
  msgstr ""
2629
 
2630
  #: includes/admin/reporting/export/class-batch-export-payments.php:65
2631
+ #: includes/admin/tools.php:551
2632
  msgid "Mode (Live|Test)"
2633
  msgstr ""
2634
 
2644
  msgid "Batch Processing Complete"
2645
  msgstr ""
2646
 
2647
+ #: includes/admin/reporting/graphing.php:319
2648
  msgid "Earnings Over Time"
2649
  msgstr ""
2650
 
2651
+ #: includes/admin/reporting/graphing.php:337
2652
+ #: includes/admin/reporting/graphing.php:626
2653
  msgid "Total earnings for period shown: "
2654
  msgstr ""
2655
 
2656
+ #: includes/admin/reporting/graphing.php:345
2657
+ #: includes/admin/reporting/graphing.php:627
2658
  msgid "Total sales for period shown: "
2659
  msgstr ""
2660
 
2661
+ #: includes/admin/reporting/graphing.php:351
2662
  msgid "Estimated monthly earnings: "
2663
  msgstr ""
2664
 
2665
+ #: includes/admin/reporting/graphing.php:359
2666
  msgid "Estimated monthly sales: "
2667
  msgstr ""
2668
 
2669
+ #: includes/admin/reporting/graphing.php:366
2670
  msgid "Excludes sales tax."
2671
  msgstr ""
2672
 
2673
+ #: includes/admin/reporting/graphing.php:616
2674
  msgid "Earnings Over Time for %s"
2675
  msgstr ""
2676
 
2677
+ #: includes/admin/reporting/graphing.php:628
2678
  msgid "Average monthly earnings: %s"
2679
  msgstr ""
2680
 
2681
+ #: includes/admin/reporting/graphing.php:629
2682
  msgid "Average monthly sales: %s"
2683
  msgstr ""
2684
 
2685
+ #: includes/admin/reporting/graphing.php:646 includes/class-edd-stats.php:85
2686
  msgid "Yesterday"
2687
  msgstr ""
2688
 
2689
+ #: includes/admin/reporting/graphing.php:647 includes/class-edd-stats.php:86
2690
  msgid "This Week"
2691
  msgstr ""
2692
 
2693
+ #: includes/admin/reporting/graphing.php:648 includes/class-edd-stats.php:87
2694
  msgid "Last Week"
2695
  msgstr ""
2696
 
2697
+ #: includes/admin/reporting/graphing.php:649 includes/class-edd-stats.php:88
2698
  msgid "This Month"
2699
  msgstr ""
2700
 
2701
+ #: includes/admin/reporting/graphing.php:651 includes/class-edd-stats.php:90
2702
  msgid "This Quarter"
2703
  msgstr ""
2704
 
2705
+ #: includes/admin/reporting/graphing.php:652 includes/class-edd-stats.php:91
2706
  msgid "Last Quarter"
2707
  msgstr ""
2708
 
2709
+ #: includes/admin/reporting/graphing.php:653 includes/class-edd-stats.php:92
2710
  msgid "This Year"
2711
  msgstr ""
2712
 
2713
+ #: includes/admin/reporting/graphing.php:654 includes/class-edd-stats.php:93
2714
  msgid "Last Year"
2715
  msgstr ""
2716
 
2717
+ #: includes/admin/reporting/graphing.php:655
2718
  msgid "Custom"
2719
  msgstr ""
2720
 
2721
+ #: includes/admin/reporting/graphing.php:687
2722
  msgid "From"
2723
  msgstr ""
2724
 
2725
+ #: includes/admin/reporting/graphing.php:703
2726
  msgid "To"
2727
  msgstr ""
2728
 
2729
+ #: includes/admin/reporting/graphing.php:723
2730
  msgid "Exclude Taxes"
2731
  msgstr ""
2732
 
2733
+ #: includes/admin/reporting/graphing.php:728
2734
  msgid "Filter"
2735
  msgstr ""
2736
 
2737
  #: includes/admin/reporting/logs.php:144
2738
+ #: includes/admin/settings/register-settings.php:1276
2739
  msgid "File Downloads"
2740
  msgstr ""
2741
 
2854
 
2855
  #: includes/admin/reporting/reports.php:58
2856
  #: includes/admin/settings/contextual-help.php:71
2857
+ #: includes/admin/settings/register-settings.php:1198
2858
  msgid "Taxes"
2859
  msgstr ""
2860
 
2898
  "year."
2899
  msgstr ""
2900
 
2901
+ #: includes/admin/reporting/reports.php:324 includes/admin/tools.php:164
2902
  msgid "Submit"
2903
  msgstr ""
2904
 
2932
  #: includes/admin/reporting/reports.php:397
2933
  #: includes/admin/reporting/reports.php:413
2934
  #: includes/admin/reporting/reports.php:425
2935
+ #: includes/admin/reporting/reports.php:440
2936
  msgid "Generate CSV"
2937
  msgstr ""
2938
 
2945
  msgstr ""
2946
 
2947
  #: includes/admin/reporting/reports.php:383
2948
+ #: includes/admin/reporting/reports.php:436
2949
  msgid "Choose start date"
2950
  msgstr ""
2951
 
2952
  #: includes/admin/reporting/reports.php:384
2953
+ #: includes/admin/reporting/reports.php:437
2954
  msgid "Choose end date"
2955
  msgstr ""
2956
 
2979
  msgstr ""
2980
 
2981
  #: includes/admin/reporting/reports.php:433
2982
+ msgid ""
2983
+ "Download a CSV of file downloads. To download a CSV for all file downloads, "
2984
+ "leave \"Choose a Download\" as it is."
2985
  msgstr ""
2986
 
2987
  #: includes/admin/settings/contextual-help.php:43
2992
  msgstr ""
2993
 
2994
  #: includes/admin/settings/contextual-help.php:48
2995
+ #: includes/admin/settings/register-settings.php:419
2996
+ #: includes/admin/settings/register-settings.php:1195
2997
  msgid "Payment Gateways"
2998
  msgstr ""
2999
 
3022
  msgstr ""
3023
 
3024
  #: includes/admin/settings/contextual-help.php:57
3025
+ #: includes/admin/settings/register-settings.php:1196
3026
  msgid "Emails"
3027
  msgstr ""
3028
 
3042
  msgstr ""
3043
 
3044
  #: includes/admin/settings/contextual-help.php:65
3045
+ #: includes/admin/settings/register-settings.php:1197
3046
  msgid "Styles"
3047
  msgstr ""
3048
 
3138
  msgid "A description of all the options are provided beside their input boxes."
3139
  msgstr ""
3140
 
3141
+ #: includes/admin/settings/register-settings.php:242
3142
+ #: includes/admin/settings/register-settings.php:245
3143
  msgid "Page Settings"
3144
  msgstr ""
3145
 
3146
+ #: includes/admin/settings/register-settings.php:246
3147
  msgid ""
3148
  "Easy Digital Downloads uses the pages below for handling the display of "
3149
  "checkout, purchase confirmation, purchase history, and purchase failures. "
3152
  "in the page content area."
3153
  msgstr ""
3154
 
3155
+ #: includes/admin/settings/register-settings.php:250
3156
  msgid "Checkout Page"
3157
  msgstr ""
3158
 
3159
+ #: includes/admin/settings/register-settings.php:251
3160
  msgid ""
3161
  "This is the checkout page where buyers will complete their purchases. The "
3162
  "[download_checkout] shortcode must be on this page."
3163
  msgstr ""
3164
 
3165
+ #: includes/admin/settings/register-settings.php:255
3166
+ #: includes/admin/settings/register-settings.php:264
3167
+ #: includes/admin/settings/register-settings.php:273
3168
+ #: includes/admin/settings/register-settings.php:282
3169
+ #: includes/admin/settings/register-settings.php:293
3170
  msgid "Select a page"
3171
  msgstr ""
3172
 
3173
+ #: includes/admin/settings/register-settings.php:259
3174
  msgid "Success Page"
3175
  msgstr ""
3176
 
3177
+ #: includes/admin/settings/register-settings.php:260
3178
  msgid ""
3179
  "This is the page buyers are sent to after completing their purchases. The "
3180
  "[edd_receipt] shortcode should be on this page."
3181
  msgstr ""
3182
 
3183
+ #: includes/admin/settings/register-settings.php:268
3184
  msgid "Failed Transaction Page"
3185
  msgstr ""
3186
 
3187
+ #: includes/admin/settings/register-settings.php:269
3188
  msgid ""
3189
  "This is the page buyers are sent to if their transaction is cancelled or "
3190
  "fails."
3191
  msgstr ""
3192
 
3193
+ #: includes/admin/settings/register-settings.php:277
3194
  msgid "Purchase History Page"
3195
  msgstr ""
3196
 
3197
+ #: includes/admin/settings/register-settings.php:278
3198
  msgid ""
3199
  "This page shows a complete purchase history for the current user, including "
3200
  "download links. The [purchase_history] shortcode should be on this page."
3201
  msgstr ""
3202
 
3203
+ #: includes/admin/settings/register-settings.php:286
3204
  msgid "Login Redirect Page"
3205
  msgstr ""
3206
 
3207
+ #: includes/admin/settings/register-settings.php:288
3208
+ msgid ""
3209
+ "This is the page where buyers will be redirected by default once they log "
3210
+ "in. The [edd_login redirect=\"%s\"] shortcode with the redirect attribute "
3211
+ "can override this setting."
3212
  msgstr ""
3213
 
3214
  #: includes/admin/settings/register-settings.php:297
3215
+ msgid "Store Location"
3216
+ msgstr ""
3217
+
3218
+ #: includes/admin/settings/register-settings.php:300
3219
  msgid "Store Location Settings"
3220
  msgstr ""
3221
 
3222
+ #: includes/admin/settings/register-settings.php:301
3223
  msgid ""
3224
  "Easy Digital Downloads will use the following Country and State to pre-fill "
3225
  "fields at checkout. This will also pre-calculate any taxes defined if the "
3226
  "location below has taxes enabled."
3227
  msgstr ""
3228
 
3229
+ #: includes/admin/settings/register-settings.php:305
3230
  msgid "Base Country"
3231
  msgstr ""
3232
 
3233
+ #: includes/admin/settings/register-settings.php:306
3234
  msgid "Where does your store operate from?"
3235
  msgstr ""
3236
 
3237
+ #: includes/admin/settings/register-settings.php:314
3238
  msgid "Base State / Province"
3239
  msgstr ""
3240
 
3241
+ #: includes/admin/settings/register-settings.php:315
3242
  msgid "What state / province does your store operate from?"
3243
  msgstr ""
3244
 
3245
+ #: includes/admin/settings/register-settings.php:322
3246
  msgid "Tracking Settings"
3247
  msgstr ""
3248
 
3249
+ #: includes/admin/settings/register-settings.php:328
3250
  msgid "Allow Usage Tracking?"
3251
  msgstr ""
3252
 
3253
+ #: includes/admin/settings/register-settings.php:330
3254
  msgid ""
3255
  "Allow Easy Digital Downloads to anonymously track how this plugin is used "
3256
  "and help us make the plugin better. Opt-in to tracking and our newsletter "
3259
  "sensitive data is tracked."
3260
  msgstr ""
3261
 
3262
+ #: includes/admin/settings/register-settings.php:339
3263
+ #: includes/admin/settings/register-settings.php:1250
3264
  msgid "Currency Settings"
3265
  msgstr ""
3266
 
3267
+ #: includes/admin/settings/register-settings.php:346
3268
  msgid ""
3269
  "Choose your currency. Note that some payment gateways have currency "
3270
  "restrictions."
3271
  msgstr ""
3272
 
3273
+ #: includes/admin/settings/register-settings.php:353
3274
  msgid "Currency Position"
3275
  msgstr ""
3276
 
3277
+ #: includes/admin/settings/register-settings.php:354
3278
  msgid "Choose the location of the currency sign."
3279
  msgstr ""
3280
 
3281
+ #: includes/admin/settings/register-settings.php:357
3282
  msgid "Before - $10"
3283
  msgstr ""
3284
 
3285
+ #: includes/admin/settings/register-settings.php:358
3286
  msgid "After - 10$"
3287
  msgstr ""
3288
 
3289
+ #: includes/admin/settings/register-settings.php:363
3290
  msgid "Thousands Separator"
3291
  msgstr ""
3292
 
3293
+ #: includes/admin/settings/register-settings.php:364
3294
  msgid "The symbol (usually , or .) to separate thousands"
3295
  msgstr ""
3296
 
3297
+ #: includes/admin/settings/register-settings.php:371
3298
  msgid "Decimal Separator"
3299
  msgstr ""
3300
 
3301
+ #: includes/admin/settings/register-settings.php:372
3302
  msgid "The symbol (usually , or .) to separate decimal points"
3303
  msgstr ""
3304
 
 
3305
  #: includes/admin/settings/register-settings.php:381
3306
+ #: includes/admin/settings/register-settings.php:384
3307
+ #: includes/admin/settings/register-settings.php:1251
3308
  msgid "API Settings"
3309
  msgstr ""
3310
 
3311
+ #: includes/admin/settings/register-settings.php:385
3312
  msgid ""
3313
  "The Easy Digital Downloads REST API provides access to store data through "
3314
  "our API endpoints. Enable this setting if you would like all user accounts "
3315
  "to be able to generate their own API keys."
3316
  msgstr ""
3317
 
3318
+ #: includes/admin/settings/register-settings.php:389
3319
  msgid "Allow User Keys"
3320
  msgstr ""
3321
 
3322
+ #: includes/admin/settings/register-settings.php:390
3323
  msgid ""
3324
  "Check this box to allow all users to generate API keys. Users with the "
3325
  "'manage_shop_settings' capability are always allowed to generate keys."
3326
  msgstr ""
3327
 
3328
+ #: includes/admin/settings/register-settings.php:395
3329
  msgid ""
3330
  "Visit the <a href=\"%s\" target=\"_blank\">REST API documentation</a> for "
3331
  "further information."
3332
  msgstr ""
3333
 
3334
+ #: includes/admin/settings/register-settings.php:407
3335
+ #: includes/admin/settings/register-settings.php:1254
3336
  msgid "Gateway Settings"
3337
  msgstr ""
3338
 
3339
+ #: includes/admin/settings/register-settings.php:413
3340
  msgid "Test Mode"
3341
  msgstr ""
3342
 
3343
+ #: includes/admin/settings/register-settings.php:414
3344
  msgid ""
3345
  "While in test mode no live transactions are processed. To fully use test "
3346
  "mode, you must have a sandbox (test) account for the payment gateway you "
3347
  "are testing."
3348
  msgstr ""
3349
 
3350
+ #: includes/admin/settings/register-settings.php:420
3351
  msgid "Choose the payment gateways you want to enable."
3352
  msgstr ""
3353
 
3354
+ #: includes/admin/settings/register-settings.php:426
3355
  msgid "Default Gateway"
3356
  msgstr ""
3357
 
3358
+ #: includes/admin/settings/register-settings.php:427
3359
  msgid "This gateway will be loaded automatically with the checkout page."
3360
  msgstr ""
3361
 
3362
+ #: includes/admin/settings/register-settings.php:433
3363
  msgid "Accepted Payment Method Icons"
3364
  msgstr ""
3365
 
3366
+ #: includes/admin/settings/register-settings.php:434
3367
  msgid "Display icons for the selected payment methods"
3368
  msgstr ""
3369
 
3370
+ #: includes/admin/settings/register-settings.php:434
3371
  msgid ""
3372
  "You will also need to configure your gateway settings if you are accepting "
3373
  "credit cards"
3374
  msgstr ""
3375
 
3376
+ #: includes/admin/settings/register-settings.php:454
3377
+ #: includes/admin/settings/register-settings.php:1258
3378
  msgid "Email Settings"
3379
  msgstr ""
3380
 
3381
+ #: includes/admin/settings/register-settings.php:459
3382
  msgid "Email Template"
3383
  msgstr ""
3384
 
3385
+ #: includes/admin/settings/register-settings.php:460
3386
  msgid ""
3387
  "Choose a template. Click \"Save Changes\" then \"Preview Purchase Receipt\" "
3388
  "to see the new template."
3389
  msgstr ""
3390
 
3391
+ #: includes/admin/settings/register-settings.php:466
3392
  msgid "Logo"
3393
  msgstr ""
3394
 
3395
+ #: includes/admin/settings/register-settings.php:467
3396
  msgid ""
3397
  "Upload or choose a logo to be displayed at the top of the purchase receipt "
3398
  "emails. Displayed on HTML emails only."
3399
  msgstr ""
3400
 
3401
+ #: includes/admin/settings/register-settings.php:480
3402
+ #: includes/admin/settings/register-settings.php:1259
3403
  msgid "Purchase Receipts"
3404
  msgstr ""
3405
 
3406
+ #: includes/admin/settings/register-settings.php:485
3407
  msgid "From Name"
3408
  msgstr ""
3409
 
3410
+ #: includes/admin/settings/register-settings.php:486
3411
  msgid ""
3412
  "The name purchase receipts are said to come from. This should probably be "
3413
  "your site or shop name."
3414
  msgstr ""
3415
 
3416
+ #: includes/admin/settings/register-settings.php:492
3417
  msgid "From Email"
3418
  msgstr ""
3419
 
3420
+ #: includes/admin/settings/register-settings.php:493
3421
  msgid ""
3422
  "Email to send purchase receipts from. This will act as the \"from\" and "
3423
  "\"reply-to\" address."
3424
  msgstr ""
3425
 
3426
+ #: includes/admin/settings/register-settings.php:499
3427
  msgid "Purchase Email Subject"
3428
  msgstr ""
3429
 
3430
+ #: includes/admin/settings/register-settings.php:500
3431
  msgid "Enter the subject line for the purchase receipt email"
3432
  msgstr ""
3433
 
3434
+ #: includes/admin/settings/register-settings.php:502
3435
+ #: includes/admin/settings/register-settings.php:509
3436
+ #: includes/admin/settings/register-settings.php:513
3437
  #: includes/emails/functions.php:40 includes/emails/functions.php:44
3438
  #: includes/emails/functions.php:81 includes/emails/functions.php:85
3439
  #: includes/emails/template.php:141
3440
  msgid "Purchase Receipt"
3441
  msgstr ""
3442
 
3443
+ #: includes/admin/settings/register-settings.php:506
3444
  msgid "Purchase Email Heading"
3445
  msgstr ""
3446
 
3447
+ #: includes/admin/settings/register-settings.php:507
3448
  msgid "Enter the heading for the purchase receipt email"
3449
  msgstr ""
3450
 
3451
+ #: includes/admin/settings/register-settings.php:514
3452
  msgid ""
3453
  "Enter the text that is sent as purchase receipt email to users after "
3454
  "completion of a successful purchase. HTML is accepted. Available template "
3455
  "tags:"
3456
  msgstr ""
3457
 
3458
+ #: includes/admin/settings/register-settings.php:516
3459
  #: includes/emails/template.php:159
3460
  msgid "Dear"
3461
  msgstr ""
3462
 
3463
+ #: includes/admin/settings/register-settings.php:516
3464
  #: includes/emails/template.php:160
3465
  msgid ""
3466
  "Thank you for your purchase. Please click on the link(s) below to download "
3467
  "your files."
3468
  msgstr ""
3469
 
3470
+ #: includes/admin/settings/register-settings.php:522
3471
  msgid "Sale Notifications"
3472
  msgstr ""
3473
 
3474
+ #: includes/admin/settings/register-settings.php:527
3475
  msgid "Sale Notification Subject"
3476
  msgstr ""
3477
 
3478
+ #: includes/admin/settings/register-settings.php:528
3479
  msgid "Enter the subject line for the sale notification email"
3480
  msgstr ""
3481
 
3482
+ #: includes/admin/settings/register-settings.php:534
3483
  msgid "Sale Notification"
3484
  msgstr ""
3485
 
3486
+ #: includes/admin/settings/register-settings.php:535
3487
  msgid ""
3488
  "Enter the text that is sent as sale notification email after completion of "
3489
  "a purchase. HTML is accepted. Available template tags:"
3490
  msgstr ""
3491
 
3492
+ #: includes/admin/settings/register-settings.php:541
3493
  msgid "Sale Notification Emails"
3494
  msgstr ""
3495
 
3496
+ #: includes/admin/settings/register-settings.php:542
3497
  msgid ""
3498
  "Enter the email address(es) that should receive a notification anytime a "
3499
  "sale is made, one per line"
3500
  msgstr ""
3501
 
3502
+ #: includes/admin/settings/register-settings.php:548
3503
  msgid "Disable Admin Notifications"
3504
  msgstr ""
3505
 
3506
+ #: includes/admin/settings/register-settings.php:549
3507
  msgid "Check this box if you do not want to receive sales notification emails."
3508
  msgstr ""
3509
 
3510
+ #: includes/admin/settings/register-settings.php:561
3511
+ #: includes/admin/settings/register-settings.php:1263
3512
  msgid "Style Settings"
3513
  msgstr ""
3514
 
3515
+ #: includes/admin/settings/register-settings.php:566
3516
  msgid "Disable Styles"
3517
  msgstr ""
3518
 
3519
+ #: includes/admin/settings/register-settings.php:567
3520
  msgid ""
3521
  "Check this to disable all included styling of buttons, checkout fields, and "
3522
  "all other elements."
3523
  msgstr ""
3524
 
3525
+ #: includes/admin/settings/register-settings.php:569
3526
  msgid "Disabling Styles"
3527
  msgstr ""
3528
 
3529
+ #: includes/admin/settings/register-settings.php:570
3530
  msgid ""
3531
  "If your theme has a complete custom CSS file for Easy Digital Downloads, "
3532
  "you may wish to disable our default styles. This is not recommended unless "
3533
  "your sure your theme has a complete custom CSS."
3534
  msgstr ""
3535
 
3536
+ #: includes/admin/settings/register-settings.php:574
3537
  msgid "Buttons"
3538
  msgstr ""
3539
 
3540
+ #: includes/admin/settings/register-settings.php:575
3541
  msgid "Options for add to cart and purchase buttons"
3542
  msgstr ""
3543
 
3544
+ #: includes/admin/settings/register-settings.php:580
3545
  msgid "Default Button Style"
3546
  msgstr ""
3547
 
3548
+ #: includes/admin/settings/register-settings.php:581
3549
  msgid "Choose the style you want to use for the buttons."
3550
  msgstr ""
3551
 
3552
+ #: includes/admin/settings/register-settings.php:587
3553
  msgid "Default Button Color"
3554
  msgstr ""
3555
 
3556
+ #: includes/admin/settings/register-settings.php:588
3557
  msgid "Choose the color you want to use for the buttons."
3558
  msgstr ""
3559
 
3560
+ #: includes/admin/settings/register-settings.php:601
3561
+ #: includes/admin/settings/register-settings.php:1266
3562
  msgid "Tax Settings"
3563
  msgstr ""
3564
 
3565
+ #: includes/admin/settings/register-settings.php:606
3566
  msgid "Need help?"
3567
  msgstr ""
3568
 
3569
+ #: includes/admin/settings/register-settings.php:607
3570
  msgid ""
3571
  "Visit the <a href=\"%s\" target=\"_blank\">Tax setup documentation</a> for "
3572
  "further information. If you need VAT support, there are options listed on "
3573
  "the documentation page."
3574
  msgstr ""
3575
 
3576
+ #: includes/admin/settings/register-settings.php:612
3577
  msgid "Enable Taxes"
3578
  msgstr ""
3579
 
3580
+ #: includes/admin/settings/register-settings.php:613
3581
  msgid "Check this to enable taxes on purchases."
3582
  msgstr ""
3583
 
3584
+ #: includes/admin/settings/register-settings.php:615
3585
  msgid "Enabling Taxes"
3586
  msgstr ""
3587
 
3588
+ #: includes/admin/settings/register-settings.php:616
3589
  msgid ""
3590
  "With taxes enabled, Easy Digital Downloads will use the rules below to "
3591
  "charge tax to customers. With taxes enabled, customers are required to "
3592
  "input their address on checkout so that taxes can be properly calculated."
3593
  msgstr ""
3594
 
3595
+ #: includes/admin/settings/register-settings.php:620
3596
  msgid "Tax Rates"
3597
  msgstr ""
3598
 
3599
+ #: includes/admin/settings/register-settings.php:621
3600
  msgid "Enter tax rates for specific regions."
3601
  msgstr ""
3602
 
3603
+ #: includes/admin/settings/register-settings.php:626
3604
+ #: includes/admin/settings/register-settings.php:630
3605
  msgid "Fallback Tax Rate"
3606
  msgstr ""
3607
 
3608
+ #: includes/admin/settings/register-settings.php:627
3609
  msgid ""
3610
  "Enter a percentage, such as 6.5. Customers not in a specific rate will be "
3611
  "charged this rate."
3612
  msgstr ""
3613
 
3614
+ #: includes/admin/settings/register-settings.php:631
3615
  msgid ""
3616
  "If the customer's address fails to meet the above tax rules, you can define "
3617
  "a `default` tax rate to be applied to all other customers."
3618
  msgstr ""
3619
 
3620
+ #: includes/admin/settings/register-settings.php:635
3621
  msgid "Prices entered with tax"
3622
  msgstr ""
3623
 
3624
+ #: includes/admin/settings/register-settings.php:636
3625
  msgid "This option affects how you enter prices."
3626
  msgstr ""
3627
 
3628
+ #: includes/admin/settings/register-settings.php:640
3629
  msgid "Yes, I will enter prices inclusive of tax"
3630
  msgstr ""
3631
 
3632
+ #: includes/admin/settings/register-settings.php:641
3633
  msgid "No, I will enter prices exclusive of tax"
3634
  msgstr ""
3635
 
3636
+ #: includes/admin/settings/register-settings.php:643
3637
  msgid "Prices Inclusive of Tax"
3638
  msgstr ""
3639
 
3640
+ #: includes/admin/settings/register-settings.php:644
3641
  msgid ""
3642
  "When using prices inclusive of tax, you will be entering your prices as the "
3643
  "total amount you want a customer to pay for the download, including tax. "
3645
  "for the defined total price."
3646
  msgstr ""
3647
 
3648
+ #: includes/admin/settings/register-settings.php:648
3649
  msgid "Display Tax Rate on Prices"
3650
  msgstr ""
3651
 
3652
+ #: includes/admin/settings/register-settings.php:649
3653
  msgid "Some countries require a notice when product prices include tax."
3654
  msgstr ""
3655
 
3656
+ #: includes/admin/settings/register-settings.php:654
3657
  msgid "Display during checkout"
3658
  msgstr ""
3659
 
3660
+ #: includes/admin/settings/register-settings.php:655
3661
  msgid "Should prices on the checkout page be shown with or without tax?"
3662
  msgstr ""
3663
 
3664
+ #: includes/admin/settings/register-settings.php:659
3665
  msgid "Including tax"
3666
  msgstr ""
3667
 
3668
+ #: includes/admin/settings/register-settings.php:660
3669
  msgid "Excluding tax"
3670
  msgstr ""
3671
 
3672
+ #: includes/admin/settings/register-settings.php:662
3673
+ msgid "Taxes Displayed for Products on Checkout"
3674
+ msgstr ""
3675
+
3676
+ #: includes/admin/settings/register-settings.php:663
3677
+ msgid ""
3678
+ "This option will determine whether the product price displays with or "
3679
+ "without tax on checkout."
3680
  msgstr ""
3681
 
3682
  #: includes/admin/settings/register-settings.php:681
3683
+ #: includes/admin/settings/register-settings.php:1273
3684
+ msgid "Misc Settings"
3685
+ msgstr ""
3686
+
3687
+ #: includes/admin/settings/register-settings.php:686
3688
  msgid "Enable AJAX"
3689
  msgstr ""
3690
 
3691
+ #: includes/admin/settings/register-settings.php:687
3692
  msgid "Check this to enable AJAX for the shopping cart."
3693
  msgstr ""
3694
 
3695
+ #: includes/admin/settings/register-settings.php:690
3696
  msgid "Enabling AJAX"
3697
  msgstr ""
3698
 
3699
+ #: includes/admin/settings/register-settings.php:691
3700
  msgid ""
3701
  "With AJAX enabled, customers can perform cart actions like adding and "
3702
  "removing items from their shopping cart without pages having to be "
3703
  "reloaded. This also creates fewer steps during the checkout process."
3704
  msgstr ""
3705
 
3706
+ #: includes/admin/settings/register-settings.php:695
3707
+ #: includes/admin/settings/register-settings.php:698
3708
  msgid "Redirect to Checkout"
3709
  msgstr ""
3710
 
3711
+ #: includes/admin/settings/register-settings.php:696
3712
  msgid "Immediately redirect to checkout after adding an item to the cart?"
3713
  msgstr ""
3714
 
3715
+ #: includes/admin/settings/register-settings.php:699
3716
  msgid ""
3717
  "When enabled, once an item has been added to the cart, the customer will be "
3718
  "redirected directly to your checkout page. This is useful for stores that "
3719
  "sell single items."
3720
  msgstr ""
3721
 
3722
+ #: includes/admin/settings/register-settings.php:703
3723
  msgid "Item Quantities"
3724
  msgstr ""
3725
 
3726
+ #: includes/admin/settings/register-settings.php:704
3727
  msgid "Allow item quantities to be changed."
3728
  msgstr ""
3729
 
3730
+ #: includes/admin/settings/register-settings.php:709
3731
  msgid "Remove Data on Uninstall?"
3732
  msgstr ""
3733
 
3734
+ #: includes/admin/settings/register-settings.php:710
3735
  msgid ""
3736
  "Check this box if you would like EDD to completely remove all of its data "
3737
  "when the plugin is deleted."
3738
  msgstr ""
3739
 
3740
+ #: includes/admin/settings/register-settings.php:717
3741
+ #: includes/admin/settings/register-settings.php:1274
3742
  msgid "Checkout Settings"
3743
  msgstr ""
3744
 
3745
+ #: includes/admin/settings/register-settings.php:722
3746
  msgid "Enforce SSL on Checkout"
3747
  msgstr ""
3748
 
3749
+ #: includes/admin/settings/register-settings.php:723
3750
  msgid ""
3751
  "Check this to force users to be redirected to the secure checkout page. You "
3752
  "must have an SSL certificate installed to use this option."
3753
  msgstr ""
3754
 
3755
+ #: includes/admin/settings/register-settings.php:728
3756
+ #: includes/admin/settings/register-settings.php:731
3757
  msgid "Require Login"
3758
  msgstr ""
3759
 
3760
+ #: includes/admin/settings/register-settings.php:729
3761
  msgid "Require that users be logged-in to purchase files."
3762
  msgstr ""
3763
 
3764
+ #: includes/admin/settings/register-settings.php:732
3765
  msgid ""
3766
  "You can require that customers create and login to user accounts prior to "
3767
  "purchasing from your store by enabling this option. When unchecked, users "
3768
  "can purchase without being logged in by using their name and email address."
3769
  msgstr ""
3770
 
3771
+ #: includes/admin/settings/register-settings.php:736
3772
  msgid "Show Register / Login Form?"
3773
  msgstr ""
3774
 
3775
+ #: includes/admin/settings/register-settings.php:737
3776
  msgid ""
3777
  "Display the registration and login forms on the checkout page for "
3778
  "non-logged-in users."
3779
  msgstr ""
3780
 
3781
+ #: includes/admin/settings/register-settings.php:741
3782
  msgid "Registration and Login Forms"
3783
  msgstr ""
3784
 
3785
+ #: includes/admin/settings/register-settings.php:742
3786
  msgid "Registration Form Only"
3787
  msgstr ""
3788
 
3789
+ #: includes/admin/settings/register-settings.php:743
3790
  msgid "Login Form Only"
3791
  msgstr ""
3792
 
3793
+ #: includes/admin/settings/register-settings.php:749
3794
  msgid "Multiple Discounts"
3795
  msgstr ""
3796
 
3797
+ #: includes/admin/settings/register-settings.php:750
3798
  msgid "Allow customers to use multiple discounts on the same purchase?"
3799
  msgstr ""
3800
 
3801
+ #: includes/admin/settings/register-settings.php:755
3802
  msgid "Enable Cart Saving"
3803
  msgstr ""
3804
 
3805
+ #: includes/admin/settings/register-settings.php:756
3806
  msgid "Check this to enable cart saving on the checkout."
3807
  msgstr ""
3808
 
3809
+ #: includes/admin/settings/register-settings.php:758
3810
  msgid "Cart Saving"
3811
  msgstr ""
3812
 
3813
+ #: includes/admin/settings/register-settings.php:759
3814
  msgid ""
3815
  "Cart saving allows shoppers to create a temporary link to their current "
3816
  "shopping cart so they can come back to it later, or share it with someone."
3817
  msgstr ""
3818
 
3819
+ #: includes/admin/settings/register-settings.php:765
3820
+ #: includes/admin/settings/register-settings.php:1275
3821
  msgid "Button Text"
3822
  msgstr ""
3823
 
3824
+ #: includes/admin/settings/register-settings.php:770
3825
  msgid "Complete Purchase Text"
3826
  msgstr ""
3827
 
3828
+ #: includes/admin/settings/register-settings.php:771
3829
  msgid "The button label for completing a purchase."
3830
  msgstr ""
3831
 
3832
+ #: includes/admin/settings/register-settings.php:777
3833
  msgid "Add to Cart Text"
3834
  msgstr ""
3835
 
3836
+ #: includes/admin/settings/register-settings.php:778
3837
  msgid "Text shown on the Add to Cart Buttons."
3838
  msgstr ""
3839
 
3840
+ #: includes/admin/settings/register-settings.php:784
3841
  msgid "Buy Now Text"
3842
  msgstr ""
3843
 
3844
+ #: includes/admin/settings/register-settings.php:785
3845
  msgid "Text shown on the Buy Now Buttons."
3846
  msgstr ""
3847
 
3848
+ #: includes/admin/settings/register-settings.php:793
3849
  msgid "File Download Settings"
3850
  msgstr ""
3851
 
3852
+ #: includes/admin/settings/register-settings.php:798
3853
+ #: includes/admin/settings/register-settings.php:801
3854
  msgid "Download Method"
3855
  msgstr ""
3856
 
3857
+ #: includes/admin/settings/register-settings.php:799
3858
  msgid "Select the file download method. Note, not all methods work on all servers."
3859
  msgstr ""
3860
 
3861
+ #: includes/admin/settings/register-settings.php:802
3862
  msgid ""
3863
  "Due to its consistency in multiple platforms and better file protection, "
3864
  "'forced' is the default method. Because Easy Digital Downloads uses PHP to "
3869
  "method can help resolve this."
3870
  msgstr ""
3871
 
3872
+ #: includes/admin/settings/register-settings.php:804
3873
  msgid "Forced"
3874
  msgstr ""
3875
 
3876
+ #: includes/admin/settings/register-settings.php:805
3877
  msgid "Redirect"
3878
  msgstr ""
3879
 
3880
+ #: includes/admin/settings/register-settings.php:810
3881
  msgid "Symlink File Downloads?"
3882
  msgstr ""
3883
 
3884
+ #: includes/admin/settings/register-settings.php:811
3885
  msgid ""
3886
  "Check this if you are delivering really large files or having problems with "
3887
  "file downloads completing."
3888
  msgstr ""
3889
 
3890
+ #: includes/admin/settings/register-settings.php:817
3891
  msgid ""
3892
  "The maximum number of times files can be downloaded for purchases. Can be "
3893
  "overwritten for each %s."
3894
  msgstr ""
3895
 
3896
+ #: includes/admin/settings/register-settings.php:820
3897
  msgid "File Download Limits"
3898
  msgstr ""
3899
 
3900
+ #: includes/admin/settings/register-settings.php:821
3901
  msgid ""
3902
  "Set the global default for the number of times a customer can download "
3903
  "items they purchase. Using a value of 0 is unlimited. This can be defined "
3905
  "individual purchase."
3906
  msgstr ""
3907
 
3908
+ #: includes/admin/settings/register-settings.php:825
3909
+ #: includes/admin/settings/register-settings.php:827
3910
  msgid "Download Link Expiration"
3911
  msgstr ""
3912
 
3913
+ #: includes/admin/settings/register-settings.php:826
3914
  msgid ""
3915
  "How long should download links be valid for? Default is 24 hours from the "
3916
  "time they are generated. Enter a time in hours."
3917
  msgstr ""
3918
 
3919
+ #: includes/admin/settings/register-settings.php:828
3920
  msgid ""
3921
  "When a customer receives a link to their downloads via email, in their "
3922
  "receipt, or in their purchase history, the link will only be valid for the "
3925
  "customer."
3926
  msgstr ""
3927
 
3928
+ #: includes/admin/settings/register-settings.php:836
3929
  msgid "Disable Redownload?"
3930
  msgstr ""
3931
 
3932
+ #: includes/admin/settings/register-settings.php:837
3933
  msgid ""
3934
  "Check this if you do not want to allow users to redownload items from their "
3935
  "purchase history."
3936
  msgstr ""
3937
 
3938
+ #: includes/admin/settings/register-settings.php:844
3939
+ #: includes/admin/settings/register-settings.php:1277
3940
  msgid "Accounting Settings"
3941
  msgstr ""
3942
 
3943
+ #: includes/admin/settings/register-settings.php:849
3944
  msgid "Enable SKU Entry"
3945
  msgstr ""
3946
 
3947
+ #: includes/admin/settings/register-settings.php:850
3948
  msgid ""
3949
  "Check this box to allow entry of product SKUs. SKUs will be shown on "
3950
  "purchase receipt and exported purchase histories."
3951
  msgstr ""
3952
 
3953
+ #: includes/admin/settings/register-settings.php:855
3954
  msgid "Sequential Order Numbers"
3955
  msgstr ""
3956
 
3957
+ #: includes/admin/settings/register-settings.php:856
3958
  msgid "Check this box to enable sequential order numbers."
3959
  msgstr ""
3960
 
3961
+ #: includes/admin/settings/register-settings.php:861
3962
  msgid "Sequential Starting Number"
3963
  msgstr ""
3964
 
3965
+ #: includes/admin/settings/register-settings.php:862
3966
  msgid "The number at which the sequence should begin."
3967
  msgstr ""
3968
 
3969
+ #: includes/admin/settings/register-settings.php:869
3970
  msgid "Sequential Number Prefix"
3971
  msgstr ""
3972
 
3973
+ #: includes/admin/settings/register-settings.php:870
3974
  msgid "A prefix to prepend to all sequential order numbers."
3975
  msgstr ""
3976
 
3977
+ #: includes/admin/settings/register-settings.php:875
3978
  msgid "Sequential Number Postfix"
3979
  msgstr ""
3980
 
3981
+ #: includes/admin/settings/register-settings.php:876
3982
  msgid "A postfix to append to all sequential order numbers."
3983
  msgstr ""
3984
 
3985
+ #: includes/admin/settings/register-settings.php:883
3986
  msgid "Agreement Settings"
3987
  msgstr ""
3988
 
3989
+ #: includes/admin/settings/register-settings.php:888
3990
  msgid "Agree to Terms"
3991
  msgstr ""
3992
 
3993
+ #: includes/admin/settings/register-settings.php:889
3994
  msgid ""
3995
  "Check this to show an agree to terms on the checkout that users must agree "
3996
  "to before purchasing."
3997
  msgstr ""
3998
 
3999
+ #: includes/admin/settings/register-settings.php:894
4000
  msgid "Agree to Terms Label"
4001
  msgstr ""
4002
 
4003
+ #: includes/admin/settings/register-settings.php:895
4004
  msgid "Label shown next to the agree to terms check box."
4005
  msgstr ""
4006
 
4007
+ #: includes/admin/settings/register-settings.php:901
4008
  msgid "Agreement Text"
4009
  msgstr ""
4010
 
4011
+ #: includes/admin/settings/register-settings.php:902
4012
  msgid "If Agree to Terms is checked, enter the agreement terms here."
4013
  msgstr ""
4014
 
4015
+ #: includes/admin/settings/register-settings.php:999
4016
  msgid "Settings updated."
4017
  msgstr ""
4018
 
4019
+ #: includes/admin/settings/register-settings.php:1204
4020
  msgid "Licenses"
4021
  msgstr ""
4022
 
4023
+ #: includes/admin/settings/register-settings.php:1207
4024
  msgid "Misc"
4025
  msgstr ""
4026
 
4027
+ #: includes/admin/settings/register-settings.php:1255
4028
  #: includes/gateways/functions.php:25 includes/gateways/paypal-standard.php:33
4029
  msgid "PayPal Standard"
4030
  msgstr ""
4031
 
4032
+ #: includes/admin/settings/register-settings.php:1260
4033
  msgid "New Sale Notifications"
4034
  msgstr ""
4035
 
4036
+ #: includes/admin/settings/register-settings.php:1269
4037
  msgid "Main"
4038
  msgstr ""
4039
 
4040
+ #: includes/admin/settings/register-settings.php:1278
4041
  msgid "Terms of Agreement"
4042
  msgstr ""
4043
 
4044
+ #: includes/admin/settings/register-settings.php:1691
4045
  msgid "The callback function used for the %s setting is missing."
4046
  msgstr ""
4047
 
4048
+ #: includes/admin/settings/register-settings.php:1831
4049
  msgid "Upload File"
4050
  msgstr ""
4051
 
4052
+ #: includes/admin/settings/register-settings.php:1932
4053
  msgid "Country Wide"
4054
  msgstr ""
4055
 
4056
+ #: includes/admin/settings/register-settings.php:1933
4057
  msgid "Rate"
4058
  msgstr ""
4059
 
4060
+ #: includes/admin/settings/register-settings.php:1950
4061
+ #: includes/admin/settings/register-settings.php:1995
4062
  msgid "Choose a country"
4063
  msgstr ""
4064
 
4065
+ #: includes/admin/settings/register-settings.php:1965
4066
  msgid "Choose a state"
4067
  msgstr ""
4068
 
4069
+ #: includes/admin/settings/register-settings.php:1977
4070
+ #: includes/admin/settings/register-settings.php:2005
4071
  msgid "Apply to whole country"
4072
  msgstr ""
4073
 
4074
+ #: includes/admin/settings/register-settings.php:1980
4075
+ #: includes/admin/settings/register-settings.php:2008
4076
  msgid "Remove Rate"
4077
  msgstr ""
4078
 
4079
+ #: includes/admin/settings/register-settings.php:2013
4080
  msgid "Add Tax Rate"
4081
  msgstr ""
4082
 
4083
+ #: includes/admin/settings/register-settings.php:2066
4084
  msgid ""
4085
  "Your license key expired on %s. Please <a href=\"%s\" "
4086
  "target=\"_blank\">renew your license key</a>."
4087
  msgstr ""
4088
 
4089
+ #: includes/admin/settings/register-settings.php:2079
4090
  msgid ""
4091
  "Your license key has been disabled. Please <a href=\"%s\" "
4092
  "target=\"_blank\">contact support</a> for more information."
4093
  msgstr ""
4094
 
4095
+ #: includes/admin/settings/register-settings.php:2091
4096
  msgid ""
4097
  "Invalid license. Please <a href=\"%s\" target=\"_blank\">visit your account "
4098
  "page</a> and verify it."
4099
  msgstr ""
4100
 
4101
+ #: includes/admin/settings/register-settings.php:2104
4102
  msgid ""
4103
  "Your %s is not active for this URL. Please <a href=\"%s\" "
4104
  "target=\"_blank\">visit your account page</a> to manage your license key "
4105
  "URLs."
4106
  msgstr ""
4107
 
4108
+ #: includes/admin/settings/register-settings.php:2116
4109
  msgid "This appears to be an invalid license key for %s."
4110
  msgstr ""
4111
 
4112
+ #: includes/admin/settings/register-settings.php:2125
4113
  msgid ""
4114
  "Your license key has reached its activation limit. <a href=\"%s\">View "
4115
  "possible upgrades</a> now."
4116
  msgstr ""
4117
 
4118
+ #: includes/admin/settings/register-settings.php:2134
4119
  msgid ""
4120
  "The key you entered belongs to a bundle, please use the product specific "
4121
  "license key."
4122
  msgstr ""
4123
 
4124
+ #: includes/admin/settings/register-settings.php:2142
4125
  msgid "unknown_error"
4126
  msgstr ""
4127
 
4128
+ #: includes/admin/settings/register-settings.php:2143
4129
  msgid ""
4130
  "There was an error with this license key: %s. Please <a href=\"%s\">contact "
4131
  "our support team</a>."
4132
  msgstr ""
4133
 
4134
+ #: includes/admin/settings/register-settings.php:2163
4135
  msgid "License key never expires."
4136
  msgstr ""
4137
 
4138
+ #: includes/admin/settings/register-settings.php:2170
4139
  msgid ""
4140
  "Your license key expires soon! It expires on %s. <a href=\"%s\" "
4141
  "target=\"_blank\">Renew your license key</a>."
4142
  msgstr ""
4143
 
4144
+ #: includes/admin/settings/register-settings.php:2180
4145
  msgid "Your license key expires on %s."
4146
  msgstr ""
4147
 
4148
+ #: includes/admin/settings/register-settings.php:2198
4149
  msgid "To receive updates, please enter your valid %s license key."
4150
  msgstr ""
4151
 
4152
+ #: includes/admin/settings/register-settings.php:2211
4153
  msgid "Deactivate License"
4154
  msgstr ""
4155
 
4185
  msgid "Link text . . ."
4186
  msgstr ""
4187
 
4188
+ #: includes/admin/tools/class-edd-tools-recount-all-stats.php:221
4189
  msgid "Earnings and sales stats successfully recounted."
4190
  msgstr ""
4191
 
4210
  msgid "Customers, earnings, sales, discounts and logs successfully reset."
4211
  msgstr ""
4212
 
4213
+ #: includes/admin/tools.php:72
4214
+ msgid "Beta Versions"
4215
+ msgstr ""
4216
+
4217
+ #: includes/admin/tools.php:75
4218
  msgid "System Info"
4219
  msgstr ""
4220
 
4221
+ #: includes/admin/tools.php:76
4222
  msgid "Import/Export"
4223
  msgstr ""
4224
 
4225
+ #: includes/admin/tools.php:97
4226
  msgid "Banned Emails"
4227
  msgstr ""
4228
 
4229
+ #: includes/admin/tools.php:99
4230
  msgid ""
4231
  "Emails placed in the box below will not be allowed to make purchases. To "
4232
  "ban an entire domain, enter the domain starting with \"@\"."
4233
  msgstr ""
4234
 
4235
+ #: includes/admin/tools.php:103
4236
  msgid "Enter emails and/or domains (starting with @) to disallow, one per line."
4237
  msgstr ""
4238
 
4239
+ #: includes/admin/tools.php:108 includes/admin/tools.php:293
4240
  msgid "Save"
4241
  msgstr ""
4242
 
4243
+ #: includes/admin/tools.php:137
4244
  msgid "Use these tools to recount / reset store stats."
4245
  msgstr ""
4246
 
4247
+ #: includes/admin/tools.php:144 includes/scripts.php:83
4248
  msgid "Please select an option"
4249
  msgstr ""
4250
 
4251
+ #: includes/admin/tools.php:145
4252
  msgid "Recount Store Earnings and Sales"
4253
  msgstr ""
4254
 
4255
+ #: includes/admin/tools.php:146
4256
  msgid "Recount Earnings and Sales for a %s"
4257
  msgstr ""
4258
 
4259
+ #: includes/admin/tools.php:147
4260
  msgid "Recount Earnings and Sales for All %s"
4261
  msgstr ""
4262
 
4263
+ #: includes/admin/tools.php:150
4264
  msgid "Reset Store"
4265
  msgstr ""
4266
 
4267
+ #: includes/admin/tools.php:169
4268
  msgid "Recalculates the total store earnings and sales."
4269
  msgstr ""
4270
 
4271
+ #: includes/admin/tools.php:170
4272
  msgid "Recalculates the earnings and sales stats for a specific %s."
4273
  msgstr ""
4274
 
4275
+ #: includes/admin/tools.php:171
4276
  msgid "Recalculates the earnings and sales stats for all %s."
4277
  msgstr ""
4278
 
4279
+ #: includes/admin/tools.php:172
4280
  msgid "Recalculates the lifetime value and purchase counts for all customers."
4281
  msgstr ""
4282
 
4283
+ #: includes/admin/tools.php:174
4284
  msgid ""
4285
  "<strong>Deletes</strong> all payment records, customers, and related log "
4286
  "entries."
4287
  msgstr ""
4288
 
4289
+ #: includes/admin/tools.php:204 includes/admin/tools.php:212
4290
  msgid "Clear Incomplete Upgrade Notice"
4291
  msgstr ""
4292
 
4293
+ #: includes/admin/tools.php:206
4294
  msgid ""
4295
  "Sometimes a database upgrade notice may not be cleared after an upgrade is "
4296
  "completed due to conflicts with other extensions or other minor issues."
4297
  msgstr ""
4298
 
4299
+ #: includes/admin/tools.php:207
4300
  msgid ""
4301
  "If you're certain these upgrades have been completed, you can clear these "
4302
  "upgrade notices by clicking the button below. If you have any questions "
4304
  "we'll be happy to help."
4305
  msgstr ""
4306
 
4307
+ #: includes/admin/tools.php:244
4308
  msgid ""
4309
  "These API keys allow you to use the <a href=\"%s\">EDD REST API</a> to "
4310
  "retrieve store data in JSON or XML for external applications or devices, "
4311
  "such as the <a href=\"%s\">EDD mobile app</a>."
4312
  msgstr ""
4313
 
4314
+ #: includes/admin/tools.php:273
4315
+ msgid "Enable Beta Versions"
4316
+ msgstr ""
4317
+
4318
+ #: includes/admin/tools.php:275
4319
+ msgid ""
4320
+ "Checking any of the below checkboxes will opt you in to receive pre-release "
4321
+ "update notifications. You can opt-out at any time. Pre-release updates do "
4322
+ "not install automatically, you will still have the opportunity to ignore "
4323
+ "update notifications."
4324
+ msgstr ""
4325
+
4326
+ #: includes/admin/tools.php:285
4327
+ msgid "Get updates for pre-release versions of %s"
4328
+ msgstr ""
4329
+
4330
+ #: includes/admin/tools.php:450
4331
  msgid "Import Payment History"
4332
  msgstr ""
4333
 
4334
+ #: includes/admin/tools.php:452
4335
  msgid "Import a CSV file of payment records."
4336
  msgstr ""
4337
 
4338
+ #: includes/admin/tools.php:462 includes/admin/tools.php:744
4339
  msgid "Import CSV"
4340
  msgstr ""
4341
 
4342
+ #: includes/admin/tools.php:472
4343
  msgid ""
4344
  "Each column loaded from the CSV needs to be mapped to a payment field. "
4345
  "Select the column that should be mapped to each field below. Any columns "
4347
  "guide</a> for assistance with importing payment records."
4348
  msgstr ""
4349
 
4350
+ #: includes/admin/tools.php:481
4351
  msgid "Payment Field"
4352
  msgstr ""
4353
 
4354
+ #: includes/admin/tools.php:482 includes/admin/tools.php:764
4355
  msgid "CSV Column"
4356
  msgstr ""
4357
 
4358
+ #: includes/admin/tools.php:483 includes/admin/tools.php:765
4359
  msgid "Data Preview"
4360
  msgstr ""
4361
 
4362
+ #: includes/admin/tools.php:488
4363
  msgid "Currency Code"
4364
  msgstr ""
4365
 
4366
+ #: includes/admin/tools.php:491 includes/admin/tools.php:500
4367
+ #: includes/admin/tools.php:509 includes/admin/tools.php:518
4368
+ #: includes/admin/tools.php:527 includes/admin/tools.php:536
4369
+ #: includes/admin/tools.php:545 includes/admin/tools.php:554
4370
+ #: includes/admin/tools.php:563 includes/admin/tools.php:572
4371
+ #: includes/admin/tools.php:581 includes/admin/tools.php:590
4372
+ #: includes/admin/tools.php:599 includes/admin/tools.php:608
4373
+ #: includes/admin/tools.php:617 includes/admin/tools.php:626
4374
+ #: includes/admin/tools.php:635 includes/admin/tools.php:644
4375
+ #: includes/admin/tools.php:653 includes/admin/tools.php:662
4376
+ #: includes/admin/tools.php:671 includes/admin/tools.php:680
4377
+ #: includes/admin/tools.php:689 includes/admin/tools.php:698
4378
+ #: includes/admin/tools.php:707 includes/admin/tools.php:716
4379
+ #: includes/admin/tools.php:773 includes/admin/tools.php:782
4380
+ #: includes/admin/tools.php:791 includes/admin/tools.php:800
4381
+ #: includes/admin/tools.php:809 includes/admin/tools.php:818
4382
+ #: includes/admin/tools.php:827 includes/admin/tools.php:836
4383
+ #: includes/admin/tools.php:845 includes/admin/tools.php:854
4384
+ #: includes/admin/tools.php:863 includes/admin/tools.php:872
4385
+ #: includes/admin/tools.php:881 includes/admin/tools.php:890
4386
+ #: includes/admin/tools.php:899 includes/admin/tools.php:908
4387
+ #: includes/admin/tools.php:917
4388
  msgid "- Ignore this field -"
4389
  msgstr ""
4390
 
4391
+ #: includes/admin/tools.php:494 includes/admin/tools.php:503
4392
+ #: includes/admin/tools.php:512 includes/admin/tools.php:521
4393
+ #: includes/admin/tools.php:530 includes/admin/tools.php:539
4394
+ #: includes/admin/tools.php:548 includes/admin/tools.php:557
4395
+ #: includes/admin/tools.php:566 includes/admin/tools.php:575
4396
+ #: includes/admin/tools.php:584 includes/admin/tools.php:593
4397
+ #: includes/admin/tools.php:602 includes/admin/tools.php:611
4398
+ #: includes/admin/tools.php:620 includes/admin/tools.php:629
4399
+ #: includes/admin/tools.php:638 includes/admin/tools.php:647
4400
+ #: includes/admin/tools.php:656 includes/admin/tools.php:665
4401
+ #: includes/admin/tools.php:674 includes/admin/tools.php:683
4402
+ #: includes/admin/tools.php:692 includes/admin/tools.php:701
4403
+ #: includes/admin/tools.php:710 includes/admin/tools.php:719
4404
+ #: includes/admin/tools.php:776 includes/admin/tools.php:785
4405
+ #: includes/admin/tools.php:794 includes/admin/tools.php:803
4406
+ #: includes/admin/tools.php:812 includes/admin/tools.php:821
4407
+ #: includes/admin/tools.php:830 includes/admin/tools.php:839
4408
+ #: includes/admin/tools.php:848 includes/admin/tools.php:857
4409
+ #: includes/admin/tools.php:866 includes/admin/tools.php:875
4410
+ #: includes/admin/tools.php:884 includes/admin/tools.php:893
4411
+ #: includes/admin/tools.php:902 includes/admin/tools.php:911
4412
+ #: includes/admin/tools.php:920
4413
  msgid "- select field to preview data -"
4414
  msgstr ""
4415
 
4416
+ #: includes/admin/tools.php:533
4417
  msgid "Discount Code(s)"
4418
  msgstr ""
4419
 
4420
+ #: includes/admin/tools.php:560
4421
  msgid "Parent Payment ID"
4422
  msgstr ""
4423
 
4424
+ #: includes/admin/tools.php:605
4425
  msgid "Purchased Product(s)"
4426
  msgstr ""
4427
 
4428
+ #: includes/admin/tools.php:623 templates/checkout_cart.php:102
4429
  #: templates/shortcode-receipt.php:98
4430
  msgid "Subtotal"
4431
  msgstr ""
4432
 
4433
+ #: includes/admin/tools.php:641 templates/checkout_cart.php:129
4434
  msgid "Total"
4435
  msgstr ""
4436
 
4437
+ #: includes/admin/tools.php:668
4438
  msgid "Address Line 1"
4439
  msgstr ""
4440
 
4441
+ #: includes/admin/tools.php:677
4442
  msgid "Address Line 2"
4443
  msgstr ""
4444
 
4445
+ #: includes/admin/tools.php:724 includes/admin/tools.php:925
4446
  msgid "Process Import"
4447
  msgstr ""
4448
 
4449
+ #: includes/admin/tools.php:732
4450
  msgid "Import Download Products"
4451
  msgstr ""
4452
 
4453
+ #: includes/admin/tools.php:734
4454
  msgid "Import a CSV file of products."
4455
  msgstr ""
4456
 
4457
+ #: includes/admin/tools.php:754
4458
  msgid ""
4459
  "Each column loaded from the CSV needs to be mapped to a Download product "
4460
  "field. Select the column that should be mapped to each field below. Any "
4463
  "products."
4464
  msgstr ""
4465
 
4466
+ #: includes/admin/tools.php:763
4467
  msgid "Product Field"
4468
  msgstr ""
4469
 
4470
+ #: includes/admin/tools.php:770
4471
  msgid "Product Author"
4472
  msgstr ""
4473
 
4474
+ #: includes/admin/tools.php:779
4475
  msgid "Product Categories"
4476
  msgstr ""
4477
 
4478
+ #: includes/admin/tools.php:788
4479
  msgid "Product Creation Date"
4480
  msgstr ""
4481
 
4482
+ #: includes/admin/tools.php:797
4483
  msgid "Product Description"
4484
  msgstr ""
4485
 
4486
+ #: includes/admin/tools.php:806
4487
  msgid "Product Excerpt"
4488
  msgstr ""
4489
 
4490
+ #: includes/admin/tools.php:815
4491
  msgid "Product Image"
4492
  msgstr ""
4493
 
4494
+ #: includes/admin/tools.php:824
4495
  msgid "Product Notes"
4496
  msgstr ""
4497
 
4498
+ #: includes/admin/tools.php:833
4499
  msgid "Product Price(s)"
4500
  msgstr ""
4501
 
4502
+ #: includes/admin/tools.php:842
4503
  msgid "Product SKU"
4504
  msgstr ""
4505
 
4506
+ #: includes/admin/tools.php:851
4507
  msgid "Product Slug"
4508
  msgstr ""
4509
 
4510
+ #: includes/admin/tools.php:860
4511
  msgid "Product Status"
4512
  msgstr ""
4513
 
4514
+ #: includes/admin/tools.php:869
4515
  msgid "Product Tags"
4516
  msgstr ""
4517
 
4518
+ #: includes/admin/tools.php:878
4519
  msgid "Product Title"
4520
  msgstr ""
4521
 
4522
+ #: includes/admin/tools.php:887 includes/admin/welcome.php:335
4523
  msgid "Download Files"
4524
  msgstr ""
4525
 
4526
+ #: includes/admin/tools.php:905
4527
  msgid "Sale Count"
4528
  msgstr ""
4529
 
4530
+ #: includes/admin/tools.php:933
4531
  msgid "Export Settings"
4532
  msgstr ""
4533
 
4534
+ #: includes/admin/tools.php:935
4535
  msgid ""
4536
  "Export the Easy Digital Downloads settings for this site as a .json file. "
4537
  "This allows you to easily import the configuration into another site."
4538
  msgstr ""
4539
 
4540
+ #: includes/admin/tools.php:936
4541
  msgid ""
4542
  "To export shop data (purchases, customers, etc), visit the <a "
4543
  "href=\"%s\">Reports</a> page."
4544
  msgstr ""
4545
 
4546
+ #: includes/admin/tools.php:948
4547
  msgid "Import Settings"
4548
  msgstr ""
4549
 
4550
+ #: includes/admin/tools.php:950
4551
  msgid ""
4552
  "Import the Easy Digital Downloads settings from a .json file. This file can "
4553
  "be obtained by exporting the settings on another site using the form above."
4554
  msgstr ""
4555
 
4556
+ #: includes/admin/tools.php:958
4557
  msgid "Import"
4558
  msgstr ""
4559
 
4560
+ #: includes/admin/tools.php:1023
4561
  msgid "Please upload a valid .json file"
4562
  msgstr ""
4563
 
4564
+ #: includes/admin/tools.php:1029
4565
  msgid "Please upload a file to import"
4566
  msgstr ""
4567
 
4568
+ #: includes/admin/tracking.php:270
4569
  msgid ""
4570
  "Allow Easy Digital Downloads to track plugin usage? Opt-in to tracking and "
4571
  "our newsletter and immediately be emailed a 20%% discount to the EDD shop, "
4573
  "extensions</a>. No sensitive data is tracked."
4574
  msgstr ""
4575
 
4576
+ #: includes/admin/tracking.php:271
4577
  msgid "Allow"
4578
  msgstr ""
4579
 
4580
+ #: includes/admin/tracking.php:272
4581
  msgid "Do not allow"
4582
  msgstr ""
4583
 
5096
  msgid "All Prices"
5097
  msgstr ""
5098
 
5099
+ #: includes/api/class-edd-api-v2.php:143 includes/api/class-edd-api.php:1062
5100
+ #: includes/api/class-edd-api.php:1256 includes/api/class-edd-api.php:1366
5101
  msgid "Product %s not found!"
5102
  msgstr ""
5103
 
5104
+ #: includes/api/class-edd-api-v2.php:218 includes/api/class-edd-api.php:1167
5105
+ #: includes/api/class-edd-api.php:1273
5106
  msgid "The end date must be later than the start date!"
5107
  msgstr ""
5108
 
5109
+ #: includes/api/class-edd-api-v2.php:319 includes/api/class-edd-api.php:1003
5110
  msgid "Customer %s not found!"
5111
  msgstr ""
5112
 
5113
+ #: includes/api/class-edd-api-v2.php:324 includes/api/class-edd-api.php:1008
5114
  msgid "No customers found!"
5115
  msgstr ""
5116
 
5134
  msgid "Invalid query!"
5135
  msgstr ""
5136
 
5137
+ #: includes/api/class-edd-api.php:1172 includes/api/class-edd-api.php:1278
5138
  msgid "Invalid or no date range specified!"
5139
  msgstr ""
5140
 
5141
+ #: includes/api/class-edd-api.php:1512
5142
  msgid "No discounts found!"
5143
  msgstr ""
5144
 
5145
+ #: includes/api/class-edd-api.php:1559
5146
  msgid "Discount %s not found!"
5147
  msgstr ""
5148
 
5149
+ #: includes/api/class-edd-api.php:1632
5150
  msgid "No download logs found!"
5151
  msgstr ""
5152
 
5153
+ #: includes/api/class-edd-api.php:1887 includes/user-functions.php:977
5154
  msgid "Easy Digital Downloads API Keys"
5155
  msgstr ""
5156
 
5157
+ #: includes/api/class-edd-api.php:1896 includes/user-functions.php:982
5158
  msgid "Generate API Key"
5159
  msgstr ""
5160
 
5161
+ #: includes/api/class-edd-api.php:1898 includes/user-functions.php:984
5162
  msgid "Public key:"
5163
  msgstr ""
5164
 
5165
+ #: includes/api/class-edd-api.php:1899 includes/user-functions.php:985
5166
  msgid "Secret key:"
5167
  msgstr ""
5168
 
5169
+ #: includes/api/class-edd-api.php:1900 includes/user-functions.php:986
5170
  msgid "Token:"
5171
  msgstr ""
5172
 
5173
+ #: includes/api/class-edd-api.php:1902 includes/user-functions.php:988
5174
  msgid "Revoke API Keys"
5175
  msgstr ""
5176
 
5177
+ #: includes/api/class-edd-api.php:1928
5178
  msgid "User ID Required"
5179
  msgstr ""
5180
 
5181
+ #: includes/api/class-edd-api.php:1940 includes/api/class-edd-api.php:1942
5182
  msgid "You do not have permission to %s API keys for this user"
5183
  msgstr ""
5184
 
5185
+ #: includes/cart/functions.php:458
5186
  msgid "includes %s tax"
5187
  msgstr ""
5188
 
5189
+ #: includes/cart/functions.php:460
5190
  msgid "excludes %s tax"
5191
  msgstr ""
5192
 
5193
+ #: includes/cart/functions.php:1167 includes/cart/functions.php:1235
5194
  #: templates/shortcode-profile-editor.php:22
5195
  msgid "Success"
5196
  msgstr ""
5197
 
5198
+ #: includes/cart/functions.php:1168
5199
  msgid "Cart saved successfully. You can restore your cart using this URL:"
5200
  msgstr ""
5201
 
5202
+ #: includes/cart/functions.php:1205 includes/cart/functions.php:1222
5203
  msgid "Cart restoration failed. Invalid token."
5204
  msgstr ""
5205
 
5206
+ #: includes/cart/functions.php:1213 includes/cart/functions.php:1225
5207
  msgid "The cart cannot be restored. Invalid token."
5208
  msgstr ""
5209
 
5210
+ #: includes/cart/functions.php:1235
5211
  msgid "Cart restored successfully."
5212
  msgstr ""
5213
 
5586
  msgid "ID: %d"
5587
  msgstr ""
5588
 
5589
+ #: includes/class-edd-cli.php:194 includes/class-edd-cli.php:456
5590
  msgid "Status: %s"
5591
  msgstr ""
5592
 
5638
  msgid "%d customers created in %d seconds"
5639
  msgstr ""
5640
 
5641
+ #: includes/class-edd-cli.php:328 includes/class-edd-html-elements.php:215
5642
  msgid "No customers found"
5643
  msgstr ""
5644
 
5645
+ #: includes/class-edd-cli.php:334
5646
  msgid "Customer User ID: %s"
5647
  msgstr ""
5648
 
5649
+ #: includes/class-edd-cli.php:335 includes/user-functions.php:509
5650
  #: includes/user-functions.php:518
5651
  msgid "Username: %s"
5652
  msgstr ""
5653
 
5654
+ #: includes/class-edd-cli.php:336
5655
  msgid "Display Name: %s"
5656
  msgstr ""
5657
 
5658
+ #: includes/class-edd-cli.php:339
5659
  msgid "First Name: %s"
5660
  msgstr ""
5661
 
5662
+ #: includes/class-edd-cli.php:343
5663
  msgid "Last Name: %s"
5664
  msgstr ""
5665
 
5666
+ #: includes/class-edd-cli.php:346 includes/class-edd-cli.php:383
5667
  msgid "Email: %s"
5668
  msgstr ""
5669
 
5670
+ #: includes/class-edd-cli.php:349
5671
  msgid "Purchases: %s"
5672
  msgstr ""
5673
 
5674
+ #: includes/class-edd-cli.php:350
5675
  msgid "Total Spent: %s"
5676
  msgstr ""
5677
 
5678
+ #: includes/class-edd-cli.php:351
5679
  msgid "Total Downloads: %s"
5680
  msgstr ""
5681
 
5682
+ #: includes/class-edd-cli.php:376
5683
  msgid "No sales found"
5684
  msgstr ""
5685
 
5686
+ #: includes/class-edd-cli.php:382
5687
  msgid "Purchase Key: %s"
5688
  msgstr ""
5689
 
5690
+ #: includes/class-edd-cli.php:384
5691
  msgid "Date: %s"
5692
  msgstr ""
5693
 
5694
+ #: includes/class-edd-cli.php:385
5695
  msgid "Subtotal: %s"
5696
  msgstr ""
5697
 
5698
+ #: includes/class-edd-cli.php:386
5699
  msgid "Tax: %s"
5700
  msgstr ""
5701
 
5702
+ #: includes/class-edd-cli.php:389
5703
  msgid "Fees:"
5704
  msgstr ""
5705
 
5706
+ #: includes/class-edd-cli.php:392
5707
  msgid " Fee: %s - %s"
5708
  msgstr ""
5709
 
5710
+ #: includes/class-edd-cli.php:396
5711
  msgid "Total: %s"
5712
  msgstr ""
5713
 
5714
+ #: includes/class-edd-cli.php:398
5715
  msgid "Gateway: %s"
5716
  msgstr ""
5717
 
5718
+ #: includes/class-edd-cli.php:401
5719
  msgid "Products:"
5720
  msgstr ""
5721
 
5722
+ #: includes/class-edd-cli.php:405
5723
  msgid " Product: %s - %s"
5724
  msgstr ""
5725
 
5726
+ #: includes/class-edd-cli.php:436 includes/class-edd-html-elements.php:333
5727
  #: includes/shortcodes.php:270
5728
  msgid "No discounts found"
5729
  msgstr ""
5730
 
5731
+ #: includes/class-edd-cli.php:442
5732
  msgid "Name: %s"
5733
  msgstr ""
5734
 
5735
+ #: includes/class-edd-cli.php:443
5736
  msgid "Code: %s"
5737
  msgstr ""
5738
 
5739
+ #: includes/class-edd-cli.php:451
5740
  msgid "Amount: %s"
5741
  msgstr ""
5742
 
5743
+ #: includes/class-edd-cli.php:452
5744
  msgid "Uses: %s"
5745
  msgstr ""
5746
 
5747
+ #: includes/class-edd-cli.php:453
5748
  msgid "Max Uses: %s"
5749
  msgstr ""
5750
 
5751
+ #: includes/class-edd-cli.php:453
5752
  msgid "Unlimited"
5753
  msgstr ""
5754
 
5755
+ #: includes/class-edd-cli.php:454
5756
  msgid "Start Date: %s"
5757
  msgstr ""
5758
 
5759
+ #: includes/class-edd-cli.php:454
5760
  msgid "No Start Date"
5761
  msgstr ""
5762
 
5763
+ #: includes/class-edd-cli.php:455
5764
  msgid "Expiration Date: %s"
5765
  msgstr ""
5766
 
5767
+ #: includes/class-edd-cli.php:455
5768
  msgid "No Expiration"
5769
  msgstr ""
5770
 
5771
+ #: includes/class-edd-cli.php:461
5772
  msgid "Product Requirements:"
5773
  msgstr ""
5774
 
5775
+ #: includes/class-edd-cli.php:464
5776
  msgid " Product: %s"
5777
  msgstr ""
5778
 
5779
+ #: includes/class-edd-cli.php:470
5780
  msgid "Global Discount: %s"
5781
  msgstr ""
5782
 
5783
+ #: includes/class-edd-cli.php:471
5784
  msgid "Single Use: %s"
5785
  msgstr ""
5786
 
5787
+ #: includes/class-edd-cli.php:499
5788
  msgid "No action specified, did you mean"
5789
  msgstr ""
5790
 
5791
+ #: includes/class-edd-cli.php:501
5792
  msgid "Invalid action specified, did you mean"
5793
  msgstr ""
5794
 
5795
+ #: includes/class-edd-cli.php:550
5796
  msgid "Invalid status '%s', defaulting to 'complete'"
5797
  msgstr ""
5798
 
5799
+ #: includes/class-edd-cli.php:586
5800
  msgid "Specified ID is not a product"
5801
  msgstr ""
5802
 
5803
+ #: includes/class-edd-cli.php:669
5804
  msgid "Created %s payments"
5805
  msgstr ""
5806
 
5840
  msgid "Enter username"
5841
  msgstr ""
5842
 
5843
+ #: includes/class-edd-license-handler.php:167
5844
  msgid "%1$s"
5845
  msgstr ""
5846
 
5847
+ #: includes/class-edd-license-handler.php:200
5848
  msgid ""
5849
  "Enter your extension license keys here to receive updates for purchased "
5850
  "extensions. If your license key has expired, please <a href=\"%s\" "
5851
  "target=\"_blank\">renew your license</a>."
5852
  msgstr ""
5853
 
5854
+ #: includes/class-edd-license-handler.php:425
5855
  msgid ""
5856
  "You have invalid or expired license keys for Easy Digital Downloads. Please "
5857
  "go to the <a href=\"%s\">Licenses page</a> to correct this issue."
5858
  msgstr ""
5859
 
5860
+ #: includes/class-edd-license-handler.php:464
5861
  msgid "Enter valid license key for automatic updates."
5862
  msgstr ""
5863
 
5959
  msgid "Shop Vendor"
5960
  msgstr ""
5961
 
5962
+ #: includes/class-edd-stats.php:439
5963
  msgid "Improper date provided."
5964
  msgstr ""
5965
 
6529
 
6530
  #: includes/gateways/amazon-payments.php:1017
6531
  #: includes/gateways/amazon-payments.php:1071
6532
+ #: includes/gateways/paypal-standard.php:406
6533
+ #: includes/gateways/paypal-standard.php:412
6534
+ #: includes/gateways/paypal-standard.php:486
6535
+ #: includes/gateways/paypal-standard.php:495
6536
+ #: includes/gateways/paypal-standard.php:554
6537
+ #: includes/gateways/paypal-standard.php:561
6538
  msgid "IPN Error"
6539
  msgstr ""
6540
 
6680
  msgid "Payment creation failed before sending buyer to PayPal. Payment data: %s"
6681
  msgstr ""
6682
 
6683
+ #: includes/gateways/paypal-standard.php:406
6684
+ #: includes/gateways/paypal-standard.php:412
6685
  msgid "Invalid IPN verification response. IPN data: %s"
6686
  msgstr ""
6687
 
6688
+ #: includes/gateways/paypal-standard.php:486
6689
  msgid "Invalid business email in IPN response. IPN data: %s"
6690
  msgstr ""
6691
 
6692
+ #: includes/gateways/paypal-standard.php:488
6693
  msgid "Payment failed due to invalid PayPal business email."
6694
  msgstr ""
6695
 
6696
+ #: includes/gateways/paypal-standard.php:495
6697
  msgid "Invalid currency in IPN response. IPN data: %s"
6698
  msgstr ""
6699
 
6700
+ #: includes/gateways/paypal-standard.php:497
6701
  msgid "Payment failed due to invalid currency in PayPal IPN."
6702
  msgstr ""
6703
 
6704
+ #: includes/gateways/paypal-standard.php:554
6705
  msgid "Invalid payment amount in IPN response. IPN data: %s"
6706
  msgstr ""
6707
 
6708
+ #: includes/gateways/paypal-standard.php:556
6709
  msgid "Payment failed due to invalid amount in PayPal IPN."
6710
  msgstr ""
6711
 
6712
+ #: includes/gateways/paypal-standard.php:561
6713
  msgid "Invalid purchase key in IPN response. IPN data: %s"
6714
  msgstr ""
6715
 
6716
+ #: includes/gateways/paypal-standard.php:563
6717
  msgid "Payment failed due to invalid purchase key in PayPal IPN."
6718
  msgstr ""
6719
 
6720
+ #: includes/gateways/paypal-standard.php:569
6721
  #: tests/helpers/class-helper-payment.php:131
6722
  #: tests/helpers/class-helper-payment.php:234
6723
  #: tests/helpers/class-helper-payment.php:342
6727
  msgid "PayPal Transaction ID: %s"
6728
  msgstr ""
6729
 
6730
+ #: includes/gateways/paypal-standard.php:583
6731
  msgid "Payment made via eCheck and will clear automatically in 5-8 days"
6732
  msgstr ""
6733
 
6734
+ #: includes/gateways/paypal-standard.php:589
6735
  msgid ""
6736
  "Payment requires a confirmed customer address and must be accepted manually "
6737
  "through PayPal"
6738
  msgstr ""
6739
 
6740
+ #: includes/gateways/paypal-standard.php:595
6741
  msgid ""
6742
  "Payment must be accepted manually through PayPal due to international "
6743
  "account regulations"
6744
  msgstr ""
6745
 
6746
+ #: includes/gateways/paypal-standard.php:601
6747
  msgid ""
6748
  "Payment received in non-shop currency and must be accepted manually through "
6749
  "PayPal"
6750
  msgstr ""
6751
 
6752
+ #: includes/gateways/paypal-standard.php:608
6753
  msgid ""
6754
  "Payment is being reviewed by PayPal staff as high-risk or in possible "
6755
  "violation of government regulations"
6756
  msgstr ""
6757
 
6758
+ #: includes/gateways/paypal-standard.php:614
6759
  msgid "Payment was sent to non-confirmed or non-registered email address."
6760
  msgstr ""
6761
 
6762
+ #: includes/gateways/paypal-standard.php:620
6763
  msgid "PayPal account must be upgraded before this payment can be accepted"
6764
  msgstr ""
6765
 
6766
+ #: includes/gateways/paypal-standard.php:626
6767
  msgid ""
6768
  "PayPal account is not verified. Verify account in order to accept this "
6769
  "payment"
6770
  msgstr ""
6771
 
6772
+ #: includes/gateways/paypal-standard.php:632
6773
  msgid ""
6774
  "Payment is pending for unknown reasons. Contact PayPal support for "
6775
  "assistance"
6776
  msgstr ""
6777
 
6778
+ #: includes/gateways/paypal-standard.php:673
6779
  msgid "Partial PayPal refund processed: %s"
6780
  msgstr ""
6781
 
6782
+ #: includes/gateways/paypal-standard.php:678
6783
  msgid "PayPal Payment #%s Refunded for reason: %s"
6784
  msgstr ""
6785
 
6786
+ #: includes/gateways/paypal-standard.php:679
6787
  msgid "PayPal Refund Transaction ID: %s"
6788
  msgstr ""
6789
 
6790
+ #: includes/gateways/paypal-standard.php:828
6791
  msgid "Refund Payment in PayPal"
6792
  msgstr ""
6793
 
6794
+ #: includes/gateways/paypal-standard.php:977
6795
  msgid "PayPal refund failed for unknown reason."
6796
  msgstr ""
6797
 
6798
+ #: includes/gateways/paypal-standard.php:987
6799
  msgid "PayPal refund transaction ID: %s"
6800
  msgstr ""
6801
 
6802
+ #: includes/gateways/paypal-standard.php:991
6803
  msgid "PayPal refund failed: %s"
6804
  msgstr ""
6805
 
6998
  msgid "Complete"
6999
  msgstr ""
7000
 
7001
+ #: includes/payments/functions.php:1598
7002
  msgid "EDD Bot"
7003
  msgstr ""
7004
 
7072
  msgid "%2$s list"
7073
  msgstr ""
7074
 
7075
+ #: includes/post-types.php:77
7076
  msgid "Add New Payment"
7077
  msgstr ""
7078
 
7079
+ #: includes/post-types.php:79
7080
  msgid "New Payment"
7081
  msgstr ""
7082
 
7083
+ #: includes/post-types.php:80
7084
  msgid "All Payments"
7085
  msgstr ""
7086
 
7087
+ #: includes/post-types.php:81
7088
  msgid "View Payment"
7089
  msgstr ""
7090
 
7091
+ #: includes/post-types.php:83
7092
  msgid "No Payments found"
7093
  msgstr ""
7094
 
7095
+ #: includes/post-types.php:84
7096
  msgid "No Payments found in Trash"
7097
  msgstr ""
7098
 
7099
+ #: includes/post-types.php:86
7100
  msgid "Payment History"
7101
  msgstr ""
7102
 
7103
+ #: includes/post-types.php:109
7104
  msgid "New Discount"
7105
  msgstr ""
7106
 
7107
+ #: includes/post-types.php:110
7108
  msgid "All Discounts"
7109
  msgstr ""
7110
 
7111
+ #: includes/post-types.php:111
7112
  msgid "View Discount"
7113
  msgstr ""
7114
 
7115
+ #: includes/post-types.php:112
7116
  msgid "Search Discounts"
7117
  msgstr ""
7118
 
7119
+ #: includes/post-types.php:113
7120
  msgid "No Discounts found"
7121
  msgstr ""
7122
 
7123
+ #: includes/post-types.php:114
7124
  msgid "No Discounts found in Trash"
7125
  msgstr ""
7126
 
7127
+ #: includes/post-types.php:116
7128
  msgid "Discounts"
7129
  msgstr ""
7130
 
7131
+ #: includes/post-types.php:142
7132
  msgid "Download"
7133
  msgstr ""
7134
 
7135
+ #: includes/post-types.php:143
7136
  msgid "Downloads"
7137
  msgstr ""
7138
 
7139
+ #: includes/post-types.php:183 includes/post-types.php:191
7140
  msgid "Enter %s name here"
7141
  msgstr ""
7142
 
7143
+ #: includes/post-types.php:212
7144
  msgid "Search %s Categories"
7145
  msgstr ""
7146
 
7147
+ #: includes/post-types.php:213
7148
  msgid "All %s Categories"
7149
  msgstr ""
7150
 
7151
+ #: includes/post-types.php:214
7152
  msgid "Parent %s Category"
7153
  msgstr ""
7154
 
7155
+ #: includes/post-types.php:215
7156
  msgid "Parent %s Category:"
7157
  msgstr ""
7158
 
7159
+ #: includes/post-types.php:216
7160
  msgid "Edit %s Category"
7161
  msgstr ""
7162
 
7163
+ #: includes/post-types.php:217
7164
  msgid "Update %s Category"
7165
  msgstr ""
7166
 
7167
+ #: includes/post-types.php:218
7168
  msgid "Add New %s Category"
7169
  msgstr ""
7170
 
7171
+ #: includes/post-types.php:219
7172
  msgid "New %s Category Name"
7173
  msgstr ""
7174
 
7175
+ #: includes/post-types.php:239
7176
  msgid "Search %s Tags"
7177
  msgstr ""
7178
 
7179
+ #: includes/post-types.php:240
7180
  msgid "All %s Tags"
7181
  msgstr ""
7182
 
7183
+ #: includes/post-types.php:241
7184
  msgid "Parent %s Tag"
7185
  msgstr ""
7186
 
7187
+ #: includes/post-types.php:242
7188
  msgid "Parent %s Tag:"
7189
  msgstr ""
7190
 
7191
+ #: includes/post-types.php:243
7192
  msgid "Edit %s Tag"
7193
  msgstr ""
7194
 
7195
+ #: includes/post-types.php:244
7196
  msgid "Update %s Tag"
7197
  msgstr ""
7198
 
7199
+ #: includes/post-types.php:245
7200
  msgid "Add New %s Tag"
7201
  msgstr ""
7202
 
7203
+ #: includes/post-types.php:246
7204
  msgid "New %s Tag Name"
7205
  msgstr ""
7206
 
7207
+ #: includes/post-types.php:248
7208
  msgid "Choose from most used %s tags"
7209
  msgstr ""
7210
 
7211
+ #: includes/post-types.php:312
7212
  msgid "Refunded <span class=\"count\">(%s)</span>"
7213
  msgid_plural "Refunded <span class=\"count\">(%s)</span>"
7214
  msgstr[0] ""
7215
  msgstr[1] ""
7216
 
7217
+ #: includes/post-types.php:320
7218
  msgid "Failed <span class=\"count\">(%s)</span>"
7219
  msgid_plural "Failed <span class=\"count\">(%s)</span>"
7220
  msgstr[0] ""
7221
  msgstr[1] ""
7222
 
7223
+ #: includes/post-types.php:328
7224
  msgid "Revoked <span class=\"count\">(%s)</span>"
7225
  msgid_plural "Revoked <span class=\"count\">(%s)</span>"
7226
  msgstr[0] ""
7227
  msgstr[1] ""
7228
 
7229
+ #: includes/post-types.php:336
7230
  msgid "Abandoned <span class=\"count\">(%s)</span>"
7231
  msgid_plural "Abandoned <span class=\"count\">(%s)</span>"
7232
  msgstr[0] ""
7233
  msgstr[1] ""
7234
 
7235
+ #: includes/post-types.php:346
7236
  msgid "Active <span class=\"count\">(%s)</span>"
7237
  msgid_plural "Active <span class=\"count\">(%s)</span>"
7238
  msgstr[0] ""
7239
  msgstr[1] ""
7240
 
7241
+ #: includes/post-types.php:354
7242
  msgid "Inactive <span class=\"count\">(%s)</span>"
7243
  msgid_plural "Inactive <span class=\"count\">(%s)</span>"
7244
  msgstr[0] ""
7245
  msgstr[1] ""
7246
 
7247
+ #: includes/post-types.php:376 includes/post-types.php:377
7248
  msgid "%2$s updated. %1$sView %2$s%3$s."
7249
  msgstr ""
7250
 
7251
+ #: includes/post-types.php:378
7252
  msgid "%2$s published. %1$sView %2$s%3$s."
7253
  msgstr ""
7254
 
7255
+ #: includes/post-types.php:379
7256
  msgid "%2$s saved. %1$sView %2$s%3$s."
7257
  msgstr ""
7258
 
7259
+ #: includes/post-types.php:380
7260
  msgid "%2$s submitted. %1$sView %2$s%3$s."
7261
  msgstr ""
7262
 
7263
+ #: includes/post-types.php:400
7264
  msgid "%1$s %2$s updated."
7265
  msgid_plural "%1$s %3$s updated."
7266
  msgstr[0] ""
7267
  msgstr[1] ""
7268
 
7269
+ #: includes/post-types.php:401
7270
  msgid "%1$s %2$s not updated, somebody is editing it."
7271
  msgid_plural "%1$s %3$s not updated, somebody is editing them."
7272
  msgstr[0] ""
7273
  msgstr[1] ""
7274
 
7275
+ #: includes/post-types.php:402
7276
  msgid "%1$s %2$s permanently deleted."
7277
  msgid_plural "%1$s %3$s permanently deleted."
7278
  msgstr[0] ""
7279
  msgstr[1] ""
7280
 
7281
+ #: includes/post-types.php:403
7282
  msgid "%1$s %2$s moved to the Trash."
7283
  msgid_plural "%1$s %3$s moved to the Trash."
7284
  msgstr[0] ""
7285
  msgstr[1] ""
7286
 
7287
+ #: includes/post-types.php:404
7288
  msgid "%1$s %2$s restored from the Trash."
7289
  msgid_plural "%1$s %3$s restored from the Trash."
7290
  msgstr[0] ""
7534
  msgid "Purchase All Items"
7535
  msgstr ""
7536
 
7537
+ #: includes/shortcodes.php:709
7538
  msgid "Sorry, trouble retrieving payment receipt."
7539
  msgstr ""
7540
 
7541
+ #: includes/shortcodes.php:744
7542
  msgid "You must be logged in to view this payment receipt."
7543
  msgstr ""
7544
 
7545
+ #: includes/shortcodes.php:879
7546
  msgid "The passwords you entered do not match. Please try again."
7547
  msgstr ""
7548
 
7549
+ #: includes/shortcodes.php:889
7550
  msgid "The email you entered is invalid. Please enter a valid email."
7551
  msgstr ""
7552
 
7553
+ #: includes/shortcodes.php:894
7554
  msgid "The email you entered belongs to another user. Please use another."
7555
  msgstr ""
7556
 
7557
+ #: includes/shortcodes.php:969
7558
  msgid "Error removing email address from profile. Please try again later."
7559
  msgstr ""
7560
 
7694
  msgid "Invalid verification token provided."
7695
  msgstr ""
7696
 
7697
+ #: includes/user-functions.php:1000
7698
+ msgid "Easy Digital Downloads <a href=\"%s\">iOS App</a>"
7699
+ msgstr ""
7700
+
7701
+ #: includes/user-functions.php:1007
7702
+ msgid "Add to iOS App"
7703
+ msgstr ""
7704
+
7705
  #: includes/widgets.php:38
7706
  msgid "Downloads Cart"
7707
  msgstr ""
8015
  msgid "%2$s"
8016
  msgstr ""
8017
 
8018
+ #: includes/shortcodes.php:663
8019
  msgctxt "download post type name"
8020
  msgid "No %s found"
8021
  msgstr ""
8030
  msgid "%2$s"
8031
  msgstr ""
8032
 
8033
+ #: includes/post-types.php:74
8034
  msgctxt "post type general name"
8035
  msgid "Payments"
8036
  msgstr ""
8037
 
8038
+ #: includes/post-types.php:104
8039
  msgctxt "post type general name"
8040
  msgid "Discounts"
8041
  msgstr ""
8042
 
8043
+ #: includes/post-types.php:75
8044
  msgctxt "post type singular name"
8045
  msgid "Payment"
8046
  msgstr ""
8047
 
8048
+ #: includes/post-types.php:105
8049
  msgctxt "post type singular name"
8050
  msgid "Discount"
8051
  msgstr ""
8052
 
8053
+ #: includes/post-types.php:210
8054
  msgctxt "taxonomy general name"
8055
  msgid "%s Categories"
8056
  msgstr ""
8057
 
8058
+ #: includes/post-types.php:237
8059
  msgctxt "taxonomy general name"
8060
  msgid "%s Tags"
8061
  msgstr ""
8062
 
8063
+ #: includes/post-types.php:211
8064
  msgctxt "taxonomy singular name"
8065
  msgid "%s Category"
8066
  msgstr ""
8067
 
8068
+ #: includes/post-types.php:238
8069
  msgctxt "taxonomy singular name"
8070
  msgid "%s Tag"
8071
  msgstr ""
8072
 
8073
+ #: includes/post-types.php:307
8074
  msgctxt "Refunded payment status"
8075
  msgid "Refunded"
8076
  msgstr ""
8077
 
8078
+ #: includes/post-types.php:315
8079
  msgctxt "Failed payment status"
8080
  msgid "Failed"
8081
  msgstr ""
8082
 
8083
+ #: includes/post-types.php:323
8084
  msgctxt "Revoked payment status"
8085
  msgid "Revoked"
8086
  msgstr ""
8087
 
8088
+ #: includes/post-types.php:331
8089
  msgctxt "Abandoned payment status"
8090
  msgid "Abandoned"
8091
  msgstr ""
8092
 
8093
+ #: includes/post-types.php:341
8094
  msgctxt "Active discount code status"
8095
  msgid "Active"
8096
  msgstr ""
8097
 
8098
+ #: includes/post-types.php:349
8099
  msgctxt "Inactive discount code status"
8100
  msgid "Inactive"
8101
  msgstr ""
readme.txt CHANGED
@@ -1,12 +1,12 @@
1
  === Easy Digital Downloads ===
2
- Author URI: https://pippinsplugins.com
3
  Plugin URI: https://easydigitaldownloads.com
4
  Contributors: easydigitaldownloads, mordauk, sunnyratilal, chriscct7, section214, sumobi, sdavis2702, cklosows, mindctrl, sksmatt, SpencerFinnell, johnstonphilip
5
  Donate link: https://easydigitaldownloads.com/donate/
6
  Tags: download, downloads, e-store, eshop, digital downloads, e-commerce, wp-ecommerce, wp ecommerce
7
  Requires at least: 4.0
8
  Tested up to: 4.7
9
- Stable Tag: 2.6.10
10
 
11
  License: GNU Version 2 or Any Later Version
12
 
@@ -187,6 +187,43 @@ Yes, through the addition of one or more of the add-on payment gateways, you can
187
 
188
  == Changelog ==
189
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
190
  = 2.6.10, October 21, 2016 =
191
  * Fix: JavaScript error when removing a product from a payment that does not contain a fee.
192
 
1
  === Easy Digital Downloads ===
2
+ Author URI: https://easydigitaldownloads.com
3
  Plugin URI: https://easydigitaldownloads.com
4
  Contributors: easydigitaldownloads, mordauk, sunnyratilal, chriscct7, section214, sumobi, sdavis2702, cklosows, mindctrl, sksmatt, SpencerFinnell, johnstonphilip
5
  Donate link: https://easydigitaldownloads.com/donate/
6
  Tags: download, downloads, e-store, eshop, digital downloads, e-commerce, wp-ecommerce, wp ecommerce
7
  Requires at least: 4.0
8
  Tested up to: 4.7
9
+ Stable Tag: 2.6.11
10
 
11
  License: GNU Version 2 or Any Later Version
12
 
187
 
188
  == Changelog ==
189
 
190
+ = 2.6.11, November 8, 2016 =
191
+ * New: WP CLI: Customers command now allows searching by user_id.
192
+ * New: Add framework for the new Software Licensing beta support.
193
+ * New: EDD Settings API now supports adding classes to registered settings.
194
+ * New: Improve PayPal Standard IPN lookup logic.
195
+ * New: Support iOS app one-click configuration.
196
+ * New: Add hook after cart quantities are updated.
197
+ * New: Add tooltip to "Display during checkout" tax option.
198
+ * New: Allow exporting the file download history of a specific product.
199
+ * New: Add action after discount is added to the cart.
200
+ * New: Add action hook called "edd_payment_saved" for when EDD_Payment::save() is run.
201
+ * New: Add "author" paramater support to [downloads] shortcode with support for username or ID.
202
+ * Tweak: Correct branding of necessary assets.
203
+ * Tweak: Block self-pings in tracking check-ins.
204
+ * Tweak: Update author and author URI to Easy Digital Downloads.
205
+ * Tweak: Update the Insert Download media button icon to use Dashicons.
206
+ * Tweak: Allow download admin icon to be more easily customized.
207
+ * Tweak: Exported CSVs show "Complete" status as "publish".
208
+ * Fix: Corrected translation for login shortcode redirect description.
209
+ * Fix: Improved the caching of stats transients for better performance.
210
+ * Fix: API Keys were not able to be copied from user profile.
211
+ * Fix: Corrected link to the iOS application.
212
+ * Fix: Use new iPhone icon.
213
+ * Fix: EDD_Payment::setup_tax did not always contain proper data.
214
+ * Fix: Styles on Recount/Reset tool were lost.
215
+ * Fix: CSV import tool were not importing Download Files in some circumstances.
216
+ * Fix: Tooltip styles had a conflict with Gravity Forms.
217
+ * Fix: Recount earning/sales tool for all downloads was failing to properly recount.
218
+ * Fix: Multiple instances of cart widget was causing conflicts when adding or removing items.
219
+ * Fix: API Key list table was unreadable on mobile.
220
+ * Fix: Custom icons via edd_accepted_payment_icons were unwrapped.
221
+ * Fix: Fees for specific download and price IDs did not check if the item or price ID is in the cart.
222
+ * Fix: EDD API was always returning version 1 by default.
223
+ * Fix: Changed uses of jQuery .toggle() to use .show() and .hide() to fix bad checkbox states.
224
+ * Fix: Corrected translation for 'State / Province'.
225
+ * Fix: Corrected a variable type issue in the HTML_Elements::select defaults.
226
+
227
  = 2.6.10, October 21, 2016 =
228
  * Fix: JavaScript error when removing a product from a payment that does not contain a fee.
229
 
templates/shortcode-profile-editor.php CHANGED
@@ -142,7 +142,7 @@ if ( is_user_logged_in() ):
142
  <?php endforeach; ?>
143
  </select>
144
  <br/>
145
- <label for="edd_address_state"><?php _e( 'State / Province', 'edd' ); ?></label>
146
  <?php
147
  if( ! empty( $states ) ) : ?>
148
  <select name="edd_address_state" id="edd_address_state" class="select edd-select">
142
  <?php endforeach; ?>
143
  </select>
144
  <br/>
145
+ <label for="edd_address_state"><?php _e( 'State / Province', 'easy-digital-downloads' ); ?></label>
146
  <?php
147
  if( ! empty( $states ) ) : ?>
148
  <select name="edd_address_state" id="edd_address_state" class="select edd-select">