forked from awesomemotive/easy-digital-downloads
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreadme.txt
executable file
·3718 lines (3172 loc) · 215 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
=== Easy Digital Downloads - Simple Ecommerce for Selling Digital Files ===
Author URI: https://easydigitaldownloads.com
Plugin URI: https://easydigitaldownloads.com
Contributors: easydigitaldownloads, mordauk, sunnyratilal, chriscct7, section214, sumobi, sdavis2702, cklosows, mindctrl, sksmatt, SpencerFinnell, johnstonphilip, brashrebel, drewapicture, johnjamesjacoby, nosegraze
Donate link: https://easydigitaldownloads.com/donate/
Tags: ecommerce, sell, checkout, payments, stripe
Requires at least: 4.4
Tested up to: 5.4
Requires PHP: 5.3
Stable Tag: 2.9.23
License: GNU Version 2 or Any Later Version
Sell your digital products the simple way. Easily build an online store complete with a cart system, checkout forms, reports, coupons, and more!
== Description ==
Easy Digital Downloads is a complete eCommerce solution for selling digital products on WordPress. Learn more at [Easy Digital Downloads.com](https://easydigitaldownloads.com/?utm_source=home&utm_medium=description_tab&utm_content=home&utm_campaign=readme).
= Sell effortlessly =
Whether it is [software](https://easydigitaldownloads.com/blog/selling-software/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description), [documents](https://easydigitaldownloads.com/blog/selling-documents/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description), [photos](https://easydigitaldownloads.com/blog/selling-photographs/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description), [ebooks](https://easydigitaldownloads.com/blog/selling-ebooks/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description), [songs](https://easydigitaldownloads.com/blog/selling-audio-and-music/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description), [graphics](https://easydigitaldownloads.com/blog/selling-graphics-and-digital-artwork/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description), [videos](https://easydigitaldownloads.com/blog/selling-videos/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description), or any other type of media file, Easy Digital Downloads provides a complete system for effortlessly selling your digital products.
> Easy Digital Downloads is an invaluable tool that I use throughout my business and for my clients. I love its simplicity yet powerful features and library of useful extensions. EDD stands out as one of the only affordable options for scaling a business centered around providing digital ecommerce sites to its clients.
> Mark Hunter - Mark of Approval
= All the eCommerce features you need =
Do you prefer an eCommerce solution which is simple and intuitive or one which is rich in features? Too often that tradeoff is one online sellers need to make. Fortunately, Easy Digital Downloads manages to be easy enough for eCommerce beginners to configure without sacrificing any important functionality.
> EDD gives me a solid platform out of the box, with the flexibility of being able to customize anything I want or need to. The best of both worlds!
> Brian Hogg – SellingPlugins.com
Here are some of the features supported out-of-the-box:
- **Frontend shopping cart** - Customers can browse your product catalogue, add items to their cart, and checkout when they are ready. Or they can bypass the cart using Buy Now buttons.
- **Flexible and clean checkout form** - Buyers can complete their purchase with ease, directly on your site's checkout page.
- **Complete customer management** - View and manage detailed records of all customers and their purchase history.
- **Detailed eCommerce reports** - Keep track of your earnings, refunds, sales, and more.
- **Protect product files** - Prevent unauthorized visitors from accessing your product files without paying.
- **Discount codes** - Boost sales by offering potential customers coupon or discount codes which can be applied at checkout.
- **Works with any theme** - Let your chosen WordPress theme handle the design. Easy Digital Downloads will fit right in.
- [And much more](https://easydigitaldownloads.com/edd-features/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=much-more&utm_term=description)!
= Localized for your language =
Easy Digital Downloads has been translated into more than two dozen languages and new translation are being added all the time, letting you have a natural, native experience, regardless of where you live. If your language is not available, we welcome translation contributions! See our [FAQ](http://docs.easydigitaldownloads.com/article/1082-what-spoken-languages-does-easy-digital-downloads-support?utm_source=docs&utm_medium=description_tab&utm_content=languages&utm_campaign=readme).
= Support for many payment gateways, including Stripe and PayPal =
The internet has made it possible for anyone to sell their products to a world-wide audience. No matter where you live, Easy Digital Downloads can be your eCommerce solution. We offer integrations for the most common merchant processors and, through 3rd party extensions, support for many, many more as well.
Payment gateways supported in the core, free plugin:
* PayPal Standard
* Amazon Payments
Payment gateways supported through free or premium extension:
* Stripe
* PayPal Pro
* PayPal Express
* PayPal Payments Advanced
* PayPal Adaptive Payments
* Braintree
* Authorize.net
* 2Checkout
* SOFORT Banking
* BitPay
* Coinbase
> What can I say? Stripe is my go-to payment processor and without this add-on I don't know what I would do. Connect EDD to your Stripe account in seconds and you're done! Having a simple toggle in to test mode is also a valuable development tool. This is another one of my go-to EDD extensions.
> Matt Whiteley - Whiteley Designs
See our [payment gateways category](https://easydigitaldownloads.com/downloads/category/gateways/?utm_source=extensions&utm_medium=description_tab&utm_content=gateways&utm_campaign=readme) in the extensions catalogue for a complete list of supported merchant processors. There are also a large number of additional payment gateways developed and supported by [3rd party developers](https://easydigitaldownloads.com/3rd-party-extensions/#gateways).
= Take your store further with extensions =
With add-on plugins from our [extensions catalogue](https://easydigitaldownloads.com/downloads/?utm_source=extensions&utm_medium=description_tab&utm_content=extensions&utm_campaign=readme) you can super-charge your digital store. Some of our extension highlights include:
* [Software Licensing](https://easydigitaldownloads.com/downloads/software-licensing/?utm_source=extension&utm_medium=description_tab&utm_content=software-licensing&utm_campaign=readme) provides a complete solution for selling software license keys and distributing software updates to customers
* [Recurring Payments](https://easydigitaldownloads.com/downloads/recurring-payments/?utm_source=extension&utm_medium=description_tab&utm_content=recurring-payments&utm_campaign=readme) allows store owners to sell recurring subscriptions for digital products using payment gateways like Stripe and PayPal
* [Frontend Submissions](https://easydigitaldownloads.com/downloads/frontend-submissions/?utm_source=extension&utm_medium=description_tab&utm_content=frontend-submissions&utm_campaign=readme) transforms your store into a full-featured multi-vendor marketplace
* [Commissions](https://easydigitaldownloads.com/downloads/commissions/?utm_source=extension&utm_medium=description_tab&utm_content=commissions&utm_campaign=readme) enables store owners to easily track earnings for product vendors
* [Free Downloads](https://easydigitaldownloads.com/downloads/free-downloads/?utm_source=extension&utm_medium=description_tab&utm_content=free-downloads&utm_campaign=readme) allows free products to be purchased more easily by bypassing the standard checkout form
* [Zapier](https://easydigitaldownloads.com/downloads/zapier/?utm_source=extension&utm_medium=description_tab&utm_content=zapier&utm_campaign=readme) automates your store by connecting Easy Digital Downloads with more than 700 other web services and products
* [Reviews](https://easydigitaldownloads.com/downloads/product-reviews/?utm_source=extension&utm_medium=description_tab&utm_content=reviews&utm_campaign=readme) allows customers to leave reviews and feedback on the products they have purchased
* [Recommended Products](https://easydigitaldownloads.com/downloads/recommended-products/?utm_source=extension&utm_medium=description_tab&utm_content=recommended-products&utm_campaign=readme) increases revenue by showing customers recommendations on additional products to purchase based on real sales data
* [Content Restriction](https://easydigitaldownloads.com/downloads/content-restriction/?utm_source=extension&utm_medium=description_tab&utm_content=content-restriction&utm_campaign=readme) allows site owners to restrict access to page content to paying customers
* [Mailchimp](https://easydigitaldownloads.com/downloads/mailchimp/?utm_source=extension&utm_medium=description_tab&utm_content=mailchimp&utm_campaign=readme) connects your store to your Mailchimp account so you can easily subscribe customers to email lists based on which products they purchase
* [AWeber](https://easydigitaldownloads.com/downloads/aweber/?utm_source=extension&utm_medium=description_tab&utm_content=aweber&utm_campaign=readme) connects your store to your AWeber account so you can easily subscribe customers to email lists based on what they purchase
* [Amazon S3](https://easydigitaldownloads.com/downloads/amazon-s3/?utm_source=extension&utm_medium=description_tab&utm_content=amazon-s3&utm_campaign=readme) lets you securely host files on Amazon S3 for more reliable and secure file delivery
* [Dropbox File Store](https://easydigitaldownloads.com/downloads/dropbox-file-store//?utm_source=extension&utm_medium=description_tab&utm_content=dropbox-file-store/&utm_campaign=readme) lets you securely host files in your Dropbox account for more reliable and secure file delivery
These are just a few of the extensions we offer to help you optimize your store and sell more files. See our complete [extensions catalogue](https://easydigitaldownloads.com/downloads/?utm_source=extensions&utm_medium=description_tab&utm_content=extensions&utm_campaign=readme) for more. There are also hundreds of extensions created by Easy Digital Downloads community members, which can be found on our [3rd Party Extensions page](https://easydigitaldownloads.com/3rd-party-extensions/?utm_source=3rd-party-extensions&utm_medium=description_tab&utm_content=3rd-party-extensions&utm_campaign=readme).
= Built with developers in mind =
Extensible, adaptable, and open source -- Easy Digital Downloads is created with developers in mind. Consult our detailed [developer documentation](http://docs.easydigitaldownloads.com/collection/174-developer-docs?utm_source=wporg&utm_medium=readme&utm_content=documentation&utm_campaign=dev-docs) to learn how you can extend and customize your Easy Digital Downloads powered eCommerce store.
The Easy Digital Downloads API makes it possible for developers to make customizations such as:
- Modifying the checkout form
- Overriding default plugin behavior
- Generating custom ecommerce reports
- Extending native features
- Creating new product page templates
- Integrating with other plugins and web applications
...and much much more!
> As a developer, Easy Digital Downloads is very pleasant to work with since you can absolutely extend anything available within EDD.
> Yudhistira Mauris - WP House
= Meet the team =
Easy Digital Downloads is built by [Sandhills Development](https://sandhillsdev.com/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=sandhills&utm_term=description). We make [popular WordPress plugins](https://sandhillsdev.com/projects/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=popular&utm_term=description) used by hundreds of thousands of people just like you. [Get to know us here](https://sandhillsdev.com/about/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=about&utm_term=description)!
> EDD has been a long standing, rock-solid e-commerce solution for WordPress. The team lives and breathes WordPress, understands the platform, and is embedded in the community.
> Joe Casabona - Creator Courses
= From our blog =
Check out some of our popular posts for actionable advice for running your business and selling digital files on the web.
- [The 12 Most Popular Digital Products You Can Sell Online](https://easydigitaldownloads.com/blog/the-12-most-popular-digital-products-you-can-sell-online/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_term=description)
- [The Reality of Refunds for Digital Products](https://easydigitaldownloads.com/blog/the-reality-of-refunds-for-digital-products/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=refunds&utm_term=description)
- [How to Successfully Launch Your Digital Product](https://easydigitaldownloads.com/blog/how-to-successfully-launch-your-digital-product/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=launch&utm_term=description)
- [Protecting Your Digital Products](https://easydigitaldownloads.com/blog/protecting-your-digital-products/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=protecting&utm_term=description)
- [The Top Ten Benefits of Selling Digital Products](https://easydigitaldownloads.com/blog/top-10-benefits-selling-digital-products/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=benefits&utm_term=description)
**[Subscribe to our newsletter](https://easydigitaldownloads.com/subscribe/?utm_medium=readme&utm_source=wporg&utm_campaign=lite-plugin&utm_content=subscribe&utm_term=description)** to get posts like these in your inbox as soon as they’re published.
= Contribute to Easy Digital Downloads =
Development for this plugin happens in a public GitHub repository to better facilitate contributions from an active community of users, developers and designers. If you have a suggestion, bug report, patch, or pull request, please feel free to [contribute here](https://github.com/easydigitaldownloads/easy-digital-downloads) or to our [code snippet library](https://github.com/easydigitaldownloads/library).
= Looking for something else? =
If Easy Digital Downloads doesn’t quite fit your needs, take a look at some of our other projects.
- [WP Simple Pay](https://wpsimplepay.com/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=something-else&utm_term=description) – Sell digital products with WordPress
- [AffiliateWP](https://affiliatewp.com/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=something-else&utm_term=description) – A full-featured affiliate marketing solution
- [Sugar Calendar](https://sugarcalendar.com?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=something-else&utm_term=description) – WordPress event management made simple
- [Restrict Content Pro](https://restrictcontentpro.com/?utm_medium=readme&utm_source=wporg&utm_campaign=edd-plugin&utm_content=something-else&utm_term=description) – A lightweight Stripe payments plugin
== Installation ==
1. Activate the plugin
2. Go to Downloads > Settings and configure the options
3. Create Downloadable products from the Downloads page
4. Insert purchase buttons for any download via the "Insert Download" button next the Upload Media buttons
5. For detailed setup instructions, vist the official [Documentation](http://docs.easydigitaldownloads.com/?utm_source=docs&utm_medium=installation_tab&utm_content=documentation&utm_campaign=readme) page.
== Frequently Asked Questions ==
= Where can I find complete documentation? =
Full searchable docs for Easy Digital Downloads and all our extensions can be found at [http://docs.easydigitaldownloads.com/](http://docs.easydigitaldownloads.com/?utm_source=docs&utm_medium=faq_tab&utm_content=documentation&utm_campaign=readme)
= Where can I ask for help with my digital eCommerce store? =
You can submit a support ticket or pre-sale question from our [support page](https://easydigitaldownloads.com/support/?utm_source=docs&utm_medium=faq_tab&utm_content=support&utm_campaign=readme) at anytime.
= Which file types can I sell? =
Any file type can be sold using Easy Digital Downloads. You can sell .PDF, .DOC, .MP3, .MOV, .EPUB, .PSD, .MP4, .JPG, or any other extension which exists. On the product creation form, there is a file upload field which will accept any file type. Whatever file is uploaded to that field is the file customers will receive instantly when they complete a purchase.
= Is an SSL certificate required to sell digital products? =
Easy Digital Downloads can function without an SSL certificate just fine, making it easy to set up in a testing or development environment. We still strongly recommend you have an SSL certificate for your live store, both for security and for the peace of mind of your customers. [Documentation here](http://docs.easydigitaldownloads.com/article/994-how-to-set-up-ssl?utm_source=docs&utm_medium=faq_tab&utm_content=documentation&utm_campaign=readme)
= What themes work with Easy Digital Downloads? =
Any properly written theme will work with Easy Digital Downloads.
That said, we have a nice collection of free themes that come with support for Easy Digital Downloads, requiring much less design work on the part of the store owner.
[See the free themes here.](https://easydigitaldownloads.com/themes/?utm_source=docs&utm_medium=faq_tab&utm_term=free_themes&utm_content=faqs&utm_campaign=readme)
= Is there a sample import file I can use to setup a demo store? =
Yes! Simply go to Tools > Import and install the WordPress Importer, then navigate to wp-content/plugins/easy-digital-downloads/assets/ and select the sample-products-import.xml file. This will create several sample products and plugin pages for you.
= Can I import all the products from my existing store into EDD? =
Yes! We do have a [basic import solution](http://docs.easydigitaldownloads.com/article/216-can-i-import-and-export-products?utm_source=docs&utm_medium=faq_tab&utm_term=import_addon&utm_content=faqs&utm_campaign=readme) that imports a CSV file, so if you can get your data into the appropriate format then we can import it.
= My payments are being marked as "pending" =
There are several reasons this happens. Please follow the suggestions [here](http://docs.easydigitaldownloads.com/article/190-payments-not-marked-as-complete?utm_source=docs&utm_medium=faq_tab&utm_content=faqs&utm_campaign=readme).
= Getting a 404 error? =
To get rid of the 404 error when viewing a download, you need to resave your permalink structure. Go to Settings > Permalinks and click "Save Changes".
= How do I show the user’s purchase history? =
Place the [purchase_history] shortcode on any page.
If you want to just show a list of the files the user has purchased, use the [download_history] shortcode instead.
= How do I display my digital products? =
There are several different ways to visually display your product catalogue, each [documented here](http://docs.easydigitaldownloads.com/category/870-product-display?utm_source=edd_readme&utm_medium=faq_tab&utm_content=faqs&utm_campaign=readme).
= Can I set up an affiliate program? =
Yes! EDD integrates directly with several affiliate platforms that provide complete affiliate systems you can use to award commissions to your affiliate marketers. This means when affiliates refer customers to you, and those customers buy your products, those affiliates earn a commission from you.
[Check out AffiliateWP](https://affiliatewp.com?utm_source=edd_readme&utm_medium=faq_tab&utm_content=home&utm_campaign=readme)
= Can I give my customers downloadable PDF Invoices? =
Yes, EDD has an extension that allows for downloadable invoices to be generated for each payment.
[PDF Invoices](https://easydigitaldownloads.com/downloads/pdf-invoices/?utm_source=pdf-invoices&utm_medium=faq_tab&utm_content=pdf-invoices&utm_campaign=readme)
= Are recurring payments supported? =
Yes, through the use of our commercial addon called [Recurring Payments](https://easydigitaldownloads.com/downloads/recurring-payments/?utm_source=docs&utm_medium=faq_tab&utm_term=recurring_addon&utm_content=faqs&utm_campaign=readme). [Full documentation here](http://docs.easydigitaldownloads.com/article/1142-recurring-payments---overview?utm_source=docs&utm_medium=faq_tab&utm_term=recurring_addon&utm_content=faqs&utm_campaign=readme). The Recurring Payments extension allows you to create subscriptions so that customers continue paying you over time. This is great for selling memberships, courses, all access passes, software licenses, and other products which require an ongoing payment.
= Can customers purchase products without using PayPal? =
Yes. Easy Digital Downloads also includes default support for Amazon Payments and support for numerous other payment methods through add-on payment gateways. Here are some of the payment gateways [currently available](https://easydigitaldownloads.com/downloads/category/extensions/gateways/?utm_source=docs&utm_medium=faq_tab&utm_term=gateways&utm_content=faqs&utm_campaign=readme):
* [Stripe](https://easydigitaldownloads.com/downloads/stripe-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=stripe-payment-gateway&utm_campaign=readme)
* [PayPal Pro/Express](https://easydigitaldownloads.com/downloads/paypal-pro-express/?utm_source=gateway&utm_medium=faq_tab&utm_content=paypal-pro-express&utm_campaign=readme)
* [PayPal Adaptive Payments](https://easydigitaldownloads.com/downloads/paypal-adaptive-payments/?utm_source=gateway&utm_medium=faq_tab&utm_content=paypal-adaptive-payments&utm_campaign=readme)
* [Authorize.net](https://easydigitaldownloads.com/downloads/authorize-net-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=authorize-net-gateway&utm_campaign=readme)
* [2Checkout](https://easydigitaldownloads.com/downloads/2checkout-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=2checkout-gateway&utm_campaign=readme)
* [Check](https://easydigitaldownloads.com/downloads/check-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=check-payment-gateway&utm_campaign=readme)
* [Braintree](https://easydigitaldownloads.com/downloads/braintree-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=braintree-gateway&utm_campaign=readme)
* [PayPal Payments Advanced](https://easydigitaldownloads.com/downloads/paypal-payments-advanced/?utm_source=gateway&utm_medium=faq_tab&utm_content=paypal-payments-advanced&utm_campaign=readme)
* [ClickBank](https://easydigitaldownloads.com/downloads/edd-clickbank-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=clickbank&utm_campaign=readme)
* [Wallet](https://easydigitaldownloads.com/downloads/wallet/?utm_source=gateway&utm_medium=faq_tab&utm_content=wallet&utm_campaign=readme)
* [SOFORT Banking](https://easydigitaldownloads.com/downloads/sofort-banking-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=sofort-banking-gateway&utm_campaign=readme)
For most stores, we recommend using the Stripe Payment Gateway.
== Screenshots ==
1. Download products overview
2. Download configuration
3. Download configuration details
4. Payment History
5. Payment details
6. Discount codes
7. Earnings and sales reports
8. Add to cart / purchase button
9. Checkout screen
== Changelog ==
= 2.9.23, April 20, 2020 =
* Fix: There was a performance issue that caused file download logs to be queried when they did not need to be.
* Fix: When using PHP 7.3+, a notice could be thrown related to a non-well formed numeric value.
* Fix: Removed the legacy (and unused) wp_is_writable shim.
* Fix: When loading a custom template or post type related to downloads, a PHP notice about getting the post_type of a non-object could be thrown.
* Dev: Added pre/post filters into the get_customer_by method.
= 2.9.22, March 12, 2020 =
* Fix: Corrected an issue that caused custom translation files from being ignored when official translations are loaded.
* Fix: The default return condition when determining if a purchase has reached its download limit was erroneously removed.
* Fix: When determining the discount amount for a cart item, it was possible to enter into a situation that caused a division by zero warning.
= 2.9.21, March 2, 2020 =
* Fix: Corrected a reporting issue with earnings when using negative fees, such as Discounts Pro.
* Fix: Only count the number of downloads for a purchase when download counts are not unlimited.
* Fix: Fixed a typo in the settings text.
* Dev: Added a supported PHP Version to the plugin headers.
* New: Added information about the Jilt integration into the email settings.
= 2.9.20, November 14, 2019 =
* Fix: CSV download import issues with file to price assignments and AmazonS3 files.
* Fix: The edd_after_payment_actions action fired via cron was missing attributes.
* Fix: The SendWP connection link was visited if enter/return was pressed to update settings.
* New: Promotional elements added to EDD admin screens.
= 2.9.19, October 28, 2019 =
* Fix: Limit register_meta calls to be for the download post type only, in preparation for WordPress 5.3 compatibility.
= 2.9.18, October 21, 2019 =
* Fix: Updated calls to register_meta for WordPress 5.3 compatibility.
* Fix: Refactored edd_get_payment_status to work when Payment statuses are translated.
* Fix: Improved the compatibility of file downloads with hosting configurations that involve symlinks for uploads.
* Dev: Added the 'edd_show_nginx_redirect_notice' filter to allow programmatically hiding the nginx file protection admin notice.
* Dev: Added polyfills for is_countable and is_iterable into EDD core.
= 2.9.17, October 2, 2019 =
* Security Fix: Prevent an authentication bypass to the EDD REST API when no API keys exist.
= 2.9.16, June 11, 2019 =
* Security Fix: Prevent a stored XSS (Cross Site Scripting) attempt on the IP addresses for logs.
= 2.9.15, May 31, 2019 =
* Fix: Prevent a fatal error during checkout when no gateways are returned as active.
* New: Added support for SendWP to help with email deliverability.
= 2.9.14, May 8, 2019 =
* Fix: Corrected an issue in local file location detection for Windows servers.
= 2.9.13, May 7, 2019 =
* Fix: An error was being logged when using API V2 to get products by category.
* Fix: Corrected an issue with multisite on versions of WordPress greater than 5.0.
* Fix: Multiple improvements with the EDD_License handler.
* Fix: Made it possible to add products to product-less payments.
* Fix: Fixed the link to filter file download logs by customer.
* Fix: Improved strength of file download link hashes.
* Fix: Improved local file location detection.
= 2.9.12, March 26, 2019 =
* Fix: Limit PayPal PDT verification to purchase sessions.
* Fix: Discount start times were not accounting for GMT offsets.
* Fix: Improved reliability of the State field when selecting different countries.
* Fix: GDPR Data Exporter now skips any requests for customer data when no customer is found for a user.
* Fix: WordPress 5.x : apiFetch call was resulting in invalid JSON response.
* Fix: Corrected a conditional check typo when determining if settings page is EDD related.
= 2.9.11, January 6, 2019 =
* Fix: PayPal PDT amount validation fails for some accounts due to missing payment_gross field.
* Tweak: PayPal email address now registered to EDD_Customer during IPN processing if the email is not already registered.
= 2.9.10, January 4, 2019 =
* Security Fix: Avoid a possible PayPal Standard price manipulation when using PDT (Payment Data Transfer)
= 2.9.9, December 3, 2018 =
* Fix: State/province cannot be updated on order details screen when country is changed.
* Fix: "Show Privacy Policy" text link is positioned incorrectly.
* Fix: "Agree to Terms?" text shows twice on checkout with some configurations.
* Fix: Nonce verification failure when state/province field is not visible.
* Fix: Fees / Discounts can be duplicated when payment recovery link is clicked.
* Fix: Incorrect DocBlock for edd_currency_filter.
* Fix: Slashes not removed when saving profile name field.
* Fix: Item amount set to 0.00 improperly during CSV import if the "Products (Raw)" column is used but does not include a {}.
* Fix: Privacy policy text not shown if terms of use checkbox is disabled.
* Fix: Log messages not saved to debug log file if they contain non UTF-8 characters.
= 2.9.8, October 1, 2018 =
* Fix: Updated Amazon Payments onboarding URL.
* Fix: Insert Download media button would not output expected plain text styles.
* Fix: Adding a discount code on a cart with free products caused a division by zero error.
* Fix: Removed unnecessary clearfix rule from CSS.
* New: Repositioned and refactored the pagination in the [downloads] shortcode to allow better customization.
* Dev: All available contextual arguments were added to the edd_requested_file filter.
= 2.9.7, September 10, 2018 =
* Fix: The edd_cart_amount data attributes were not updated when quantities were changed at checkout.
* Fix: Updated the zip/postal code validation for Mongolia.
* Fix: Updating a download meta to 0 using the EDD_Download class would not save correctly.
* Fix: Corrected an issue with mobile file downloads sometimes getting corrupted.
* Fix: Incorrect label "for" attributes were being used on the checkout login form.
* Fix: Prevent the vertical scrollbar in Firefox when hovering over tooltips.
* Fix: Corrected some issues with EDD Sessions and WP Admin.
* Fix: Test Purchase Email Subject ampersands were getting improperly HTML encoded.
* New: Updated the EDD_SL_Plugin_Updater to support icons and have a health check.
* New: Added the date generated to system info.
* New: EDD API now supports "order" and "orderby" parameters for the products endpoint.
= 2.9.6, July 16, 2018 =
* Fix: "Error: You must login to complete your purchase" shown incorrectly on checkout.
* Fix: WordPress database error in File Download Log updater.
= 2.9.5, July 12, 2018 =
* Fix: Changing the country field in the admin would not display the State fields.
* Fix: File Download Log Migration from version 2.9.2 would fail on some sites.
= 2.9.4, July 9, 2018 =
* Fix: Added nonce checks to multiple AJAX calls. If you have customized any of the following beyond CSS, please review this blog post:
* https://easydigitaldownloads.com/development/2018/07/05/important-update-to-ajax-requests-in-easy-digital-downloads-2-9-4
* templates/widget-cart-item.php
* templates/shortcode-profile-editor.php
* templates/checkout_cart.php
* The following functions includes/checkout/template.php:
* edd_default_cc_address_fields()
* edd_get_register_fields()
* edd_get_login_fields()
* edd_payment_mode_select()
* edd_checkout_hidden_fields()
* Fix: Important - Don't allow guest purchases for an email address that has an existing user.
* Fix: Unexpected behavior in 'redirect to checkout' when multiple checkout pages were used.
* Fix: Saving an order in the admin when prices were inclusive of tax could cause incorrect item price amounts to be saved.
* Fix: PHP 7.2 Compatibility - Some PHP notices were being thrown while activating Easy Digital Downloads.
* Fix: The EDD_Cart class now forces the cart contents to always be an array.
* Fix: The process of adding past purchases to a new user now verifies the user has an email address.
* Fix: The file download log export did not contain the name of the user who downloaded the file.
* Fix: Attempting to add a new customer to an order gave unexpected results when using the email address of an existing customer.
* Fix: Tax rate 'Apply to whole country' label could not be clicked when no tax rates have ever existed.
* Fix: The Shop Accountant role was not able to manage the tax exclusion at a product level.
* Fix: In some cases, PayPal IPN and PDT would cause double payment processing.
* Tweak: Easy Digital Downloads sessions can now be started when in the wp-admin path.
* New: When taxes are being recalculated at checkout, an AJAX indicator is now shown below the purchase button.
* Dev: Filters were added to the AJAX responses for adding and removing items from the cart.
= 2.9.3, May 25, 2018 =
* Fix: Corrected multiple inconsistencies in the Privacy Policy Checkbox at checkout.
* Fix: Corrected an issue causing "You must agree to the privacy policy" from showing when it wasn't required.
* Dev: Complete Checkout button is no longer required to be a `submit` input.
= 2.9.2, May 24, 2018 =
* GDPR: Support for WordPress Core Privacy Exporter and Eraser.
* GDPR: Added Privacy Policy template for WordPress Core Privacy Policy editor.
* GDPR: Added new "Privacy" tab to the Easy Digital Downloads Settings.
* Fix: The "button" CSS class was being applied twice to the "Apply Discount" button.
* Fix: The toggle link to view the Privacy Policy was not working when the Terms of Agreement were not visible.
* Fix: Email addresses that contained a + would not be removed via [edd_profile_editor].
* Fix: Searching payments by discount code was not working.
* New: Added action hook above shortcode download list.
* New: Improve File download Log accuracy and remove PII from log meta.
* New: Allow for target attribute of links in Terms of Service & Privacy Policy labels.
= 2.9.1, April 20, 2018 =
* Fix: Some text field settings were getting emptied when saving a subsection setting.
* Fix: Stats API Endpoint requests were failing when pseudo-date ranges were used other than yesterday and today.
* Fix: API key fields were appearing on bbPress forum Edit Profile screen.
* Fix: There was a typo in Italian provinces. Genova should have been Genoa.
* Fix: Corrected an issue with showing payment method icons when using EDD in a non-standard installation.
* Fix: Corrected a CSS conflict in the customer card view for the additional emails section.
* Fix: The edd_checkout_cart_columns function now properly counts the number of columns in the cart display.
* Fix: In some cases, the customer list table could throw PHP warnings when calculating the pagination.
* Fix: Improve the RTL-Compatibility of some translation strings.
* Fix: Improved PHP 7.2 compatibility with the settings display.
* Fix: Incorrect or missing textdomains were corrected or added.
* Fix: There was an unnecessary update of _edd_payment_user_id when constructing EDD_Payment objects.
* Fix: Corrected the setting title for completing free purchase button.
* New: Added a confirmation alert when clicking "Disconnect User" on customer card.
* New: Add support for a new Privacy Policy checkbox.
* New: Added a class parameter to [downloads] shortcode arguments.
* New: The debug log view now shows the path to the currently used EDD Debug log file.
* New: Fields are now auto-mapped during the CSV import.
* Tweak: Switched all `is_a` checks to use `instanceof` for performance.
* Dev: Many improvements to the @return and @access tags in DocBlocks.
* Dev: Updates to our Grunt configuration.
= 2.9, March 15, 2018 =
* New: A message is now displayed on the [edd_register] shortcode when the user is already logged in.
* New: Support was added for resume and ranged download links.
* New: The customer name, email, and price ID was added to sales log export.
* New: Added ability to sort by sales/earnings in the [downloads] shortcode.
* New: Any page containing the [download_checkout] shortcode returns true for edd_is_checkout().
* New: Upgraded to the latest version of the Chosen library.
* New: Added United Kingdom Counties to pre-populated "states" list.
* New: EDD_Payment::add_note now escapes the HTML provided.
* New: Added the variable price ID to the download log entries.
* New: Added a helper to retrieve and filter discount status labels.
* Fix: Prevent a possible PHP Warning when no tax rate is entered, when taxes are enabled.
* Fix: PayPal Standard: Totals with discounts could calculate differently between EDD and PayPal, preventing completion of the purchase.
* Fix: Links would break when using SendGrid's link tracking feature.
* Fix: Download widget would cause PHP warnings when no tags were attached to a product.
* Fix: Improved support for payment method icons when not using a standard WP Install directory format.
* Fix: Prevent a possible corrupted download file by verifying no output buffers exists.
* Fix: Opt-in telemetry data was sending the incorrect Locale.
* Fix: Prevent a possible PHP Notice when editing a discount code.
* Fix: Checkboxes on Advanced Settings of variable prices would not always save on the first try.
* Fix: Hardcoded 'Checkout' text was not using the 'Add to Cart text' variable.
* Fix: Prices were possibly incorrect when using the Quick Edit feature.
* Tweak: The edd_get_download method now returns an `EDD_Download` object instead of a `WP_Post`.
* Tweak: Corrected some URLs to the EDD site that were using an old URL.
* Tweak: The customer UI now shows the country and state name, instead of their codes.
* Tweak: Removed the hyphen and "Go Back" button from discount screens.
* Tweak: The cart contents method returned boolean false instead of an empty array when the cart was empty.
* Tweak: Reduced the blocking calls in the opt-in telemetry requests to help with performance.
* Dev: Added filters for new user notification email.
* Dev: Added filter and email heading to New Sale Notifications.
* Dev: Added hooks before and after downloads shortcode grid.
= 2.8.18, February 6, 2018 =
* Fix: Earnings report was incomplete and did not allow adding additional statuses.
* Fix: Incorrect HTML attribute on the upload modal.
* Fix: WordPress file editor was not working when Easy Digital Downloads was not active.
* Fix: Forced file data to be sanitized as an array.
* New: Added new filter to allow disabling X-Accel-Redirect when downloading files.
* New: Enabled gateways are now included in the opt-in telemetry data.
= 2.8.17, January 1, 2018 =
* Fix: Reverted Schema microdata change from SPAN to DIV tag as it broke some layouts
* Tweak: IP addresses on payment View Order Details screens now links to ipinfo
= 2.8.16, December 21, 2017 =
* Fix: Hardened EDD actions for use with WP Cron.
* Fix: Changed span elements to div elements for the schema markup.
* Dev: Added the ability to randomly generate customer data when creating payments with WP-CLI.
= 2.8.15, December 13, 2017 =
* Fix: Getting files of variable priced bundles products did not always respect variable price ID.
* Tweak: Added found payments to the hooks before and after the purchase history shortcode.
= 2.8.14, November 28, 2017 =
* Fix: Sales exports did not always include all payments from the last day of the range selected.
* Fix: Negative item fees can apply to same item multiple times if it's the same product.
* Fix: Campaign strings on Integrations were not consistent.
* Fix: Warning when converting dates to timestamps in EDD_Stats::convert_date()
= 2.8.13, November 20, 2017 =
* Fix: Cart details incorrectly reported item quantity as 0 in some cases.
* Fix: Prevent an edge case around adding past purchases to new users.
* Fix: Searching by custom order number only worked if a suffix or prefix is included.
* Fix: Corrected some translation issues.
* New: Allow filtering of the PayPal IPN data.
* New: Add support for Payment Data Transport (PDT) in PayPal Standard.
* Tweak: Removed MercadoPago from list of extensions in readme.
* Tweak: Added a colon that was missing on taxes & subtotal of the purchase confirmation.
* Tweak: Add debug logging to PayPal IPN capturing.
= 2.8.12, November 10, 2017 =
* Fix: Reverted some of the performance improvements due to edge case errors.
* Fix: Corrected a misspelled function edd_render_dowwn_tax_options.
* Fix: Invalid translation line while processing purchase.
* Fix: Improved the verbiage of the discount code amount description.
= 2.8.11, November 9, 2017 =
* Fix: Incorrect discount errors could be shown at checkout.
* Fix: Improved the performance of the EDD_Customer class.
* Fix: Improved the new Debug Log View usability.
* Fix: Corrected an issue with edd_user_pending_verification() when logged in as an admin.
* Fix: Custom date ranges for detailed product earnings break on multi-month views.
* Fix: Discount validation errors could occur when recovering pending payment.
* Fix: The product notes div was being rendered when no product notes added to download.
* New: Added a filter for edd_get_errors().
* New: Added link to ipinfo.io for the IP address on a file download log.
* Tweak: Removed an unused display_price argument in edd_get_purchase_link().
* Tweak: Update library for array2xml.php.
* Tweak: Added filters to allow modfiying the payment list table gateway filter selector.
= 2.8.10, October 20, 2017 =
* Fix: Incorrect URL for `Add New` button.
* Fix: Incorrectly called function on EDD_Payment::get_discounted_amount.
= 2.8.9, October 19, 2017 =
* Fix: Errors when trying to download some local files on Windows servers.
* Fix: "Recount" Progress Bar was invisible.
* Tweak: Added $price_id to the edd_purchase_receipt_after_files action.
* Tweak: Improve visibility of Apps & Integrations.
* Tweak: Corrected some spelling errors.
= 2.8.8, October 5, 2017 =
* Fix: A fatal error was triggered during the payment export.
* New: Added more parameters to the edd_requested_file_name filter.
= 2.8.7, October 2, 2017 =
* IMPORTANT: Product dropdown was losing selections when using variable pricing. Please verify any variable priced bundles you may have configured.
* Fix: File download errors could occur if the stream type was no longer registered.
* Fix: The 'No checkout page configured' error is now limited to once display per page.
* Fix: Calls to EDD_Customer->update_meta could throw a notice if called to early in the WordPress load process.
* Fix: The edd_get_users_purchased_products function did not respect the status argument passed in.
* Fix: The base state/province displayed empty when no pre-populated state or province data was available.
* Fix: Performance improvements to edd_get_discounts.
* Fix: Newly registered user's ID was not set on pre-existing payments.
* Fix: During purchase, the customer name was set to email if last name was empty.
* Fix: Corrected many non-numeric value and data handling issues in PHP 7.1.
* Fix: Corrected an issue with Chosen placeholders.
* New: Added the EDD_Logging class, to allow for easier debugging by developers.
* New: The country name has been added to the payment export.
* New: Added a discounts_total property to the EDD_Payment class.
* New: Hyphens are now allowed in discount codes.
* New: The Customer ID is now included in the sales report.
* Tweak: Added better responsiveness in WordPress admin.
* Tweak: Fixed a typo in the docs for the payments create CLI command.
* Tweak: Wrapped discount fields in <span> tags.
* Tweak: Fixed CSS targeting on edd_repeatable_thumbnail_size_field selector.
= 2.8.6, September 11, 2017 =
* Fix: Amazon Payments could cause Javascript error on checkout.
* Fix: edd_delete_option() helper function failed to fully remove option.
* Fix: It was possible to create a discount using edd_store_discount() without specifying a discount code.
* Fix: User Address information could be stored with boolean 'false' instead of an empty string.
* New: Made URLs included in payment notes clickable links.
* New: Added filter edd_load_scripts_in_footer to allow programmatic modifications of where frontend scripts are loaded.
= 2.8.5, September 7, 2017 =
* Fix: The Product Dropdown helper function included products in the trash.
* Fix: Deleted products could not be removed from payments.
* Fix: Incorrect cookie name was being used for the 'rememberme' option.
* Fix: Incorrect pagination was being used when viewing sales logs.
* Fix: Possible issue parsing headers when accessing via WP Rest API.
* Fix: Improved security of EDD_Session.
* New: Added a filter to the "Agree to Terms" markup.
* New: Added support for Angola (country, municipalities, and currency).
* New: Increased the width of the discount amount field when adding or editing discounts.
* New: Added ability to filter sales by email address in WP-CLI.
* Tweak: Updated form styling for login and register forms.
* Tweak: Removed clearing divs from the [downloads] shortcode.
* Tweak: Added inline docs for edd_payment_meta filter.
* Tweak: Ensure EDD_Cart:get_discounts() return type is consistent.
= 2.8.4, August 16, 2017 =
* Fix: Minor improvements to edd_get_customer_address() function.
* Fix: Negative product fees were not properly affecting subtotal used for tax calculations.
* Fix: Editing item price on a payment caused incorrect calculations when item price contained thousands separators.
* Fix: Download History shortcode was incorrectly using get_the_title instead of the supplied name.
* Fix: Resuming payment for guest payments while logged out could incorrectly prompt the user to login.
* Tweak: Download Details widget edit form used generic 'Show Title' instead of 'Show Download Title'.
* Tweak: Product Notes metabox field wasn't full width.
= 2.8.3, August 9, 2017 =
* Fix: Update HTML5 pattern on card field to account for whitespace.
* Fix: Don't enqueue jQuery.payment by default, allow gateways to enqueue when supported.
= 2.8.2, August 8, 2017 =
* New: Spaces are now auto-formatted into credit card number fields.
* Tweak: Decoupled API Authentication with $wp_query.
* Tweak: Quantities no longer show on the cart widget when they are disabled.
* Tweak: Renamed 'Item Quantities' setting to 'Cart Item Quantities' to remove confusion of its purpose.
* Tweak: Improvements to the consistency of settings descriptions.
* Tweak: Added search_columns argument to the EDD_Customer_Query class.
* Fix: Discounts with multiple exclusions could be applied to excluded products.
* Fix: Customer query pagination did not work correctly.
* Fix: Removed custom widths on the primary column of list table.
* Fix: 'Processing' status in Payments list table shows empty brackets when no processing payments.
* Fix: Billing fields were unnecessarily validated when cart total was $0.
* Fix: WPLANG is deprecated, use get_locale() instead.
* Fix: Prevent duplicate queries when edd_get_purchase_id_by_key() is called more than once for the same payment key.
* Fix: Prevent plain text purchase links from looking like buttons still.
= 2.8.1, July 27, 2017 =
* New: Include "processing" as payment status in the list table.
* Fix: Revert adjusting purchase amount when quantity changes.
* Fix: Variable pricing bundle purchases gave access to incorrect product files.
* Tweak: Update to 1.6.14 of the Plugin Updater.
= 2.8, July 25, 2017 =
* New: Design of repeatable rows, including variable prices and download files, has been redesigned to better accommodate more options and smaller screen sizes
* New: Variable price IDs now supported in payment import and export
* New: add_meta() and delete_meta() methods added to EDD_Payment
* New: Position of errors on checkout can now be changed through edd_global_checkout_script_vars filter
* New: edd_after_payment_actions action now fired through WP Cron after payment is completed
* New: EDD_Customer_Query class introduced
* New: Added support for PayPal Image URL setting
* New: Added support for filtering Payment History by used payment gateway
* New: Added shortcode-download.php template file
* Tweak: Use document.body in scripts where possible, for performance
* Tweak: Minimum WordPress version now set to 4.4
* Tweak: edd-ajax.js and edd-ajax.min.js now loaded in wp_footer
* Tweak: Improved performance of EDD_Customer by avoiding duplicate query to get notes
* Tweak: Banned Emails option now supports blocking addresses with just a TLD
* Tweak: Added new actions to template files to allow content to be more easily added to log in and registration forms
* Tweak: Chosen dropdown field of EDD_HTML_Elements now supports "multiple" parameter
* Tweak: Added a link to gateways extension category on gateway settings page to make gateways more easily discoverable
* Tweak: Updated the EDD add-on updater class to version 1.6.13
* Tweak: Added new edd_log_file_download_download_files filter and edd_log_file_download_file_id filter to get_logs() method of the file download list table
* Tweak: Empty categories now shown on Earnings by Category report
* Tweak: EDD_Customer object added to completed payment actions
* Tweak: Current customer instance added to all hooks and filters in EDD_Customer
* Tweak: Download link expiration time now shown on System Info
* Tweak: Added edd_checkout_billing_details_address filter to customer billing details on checkout
* Tweak: Purchase button amounts now automatically update as quantity input is changed
* Tweak: Customer records now updated with information entered on checkout
* Tweak: Improved translation flexibility of Complete Purchase button text
* Tweak: Added new edd_price_option_output filter to function that displays variable prices
* Tweak: Notes and price IDs now escaped on purchase receipt display
* Tweak: Improved description of login redirect page setting
* Tweak: Avoid hard-coding "striped" class on list tables
* Tweak: A link to Product Reviews extension has been added to product edit screen when Reviews plugin is not installed
* Tweak: Account for multiple reverse proxy IPs in $_SERVER['HTTP_X_FORWARDED_FOR']
* Tweak: Update phpunit dependency to latest of 3.7 branch
* Fix: Price ID not properly set when generating payment records with WP CLI
* Fix: Credit card name field validated as true when card number was entered
* Fix: Detect and correct invalid email addresses in From Address settings for purchase receipts and email notifications
* Fix: Sales export includes incorrect items
* Fix: Invalid SQL query due to extraneous curly brace
* Fix: Fatal error due to undefined function edd_extension_has_beta_support()
* Fix: Some admin screens not properly responsive for small screens
* Fix: misc-functions.php file loaded twice
* Fix: Corrupt file downloads due to non-binary setting passed to fopen()
* Fix: _canonical_import_id not deleted after payment import
* Fix: All products could be deleted on a payment
* Fix: 100% discount codes do not remove tax from tax-inclusive items
* Fix: Item tax not shown on payment screen when price contains commas
* Fix: Tax rates not included in settings import/export
* Fix: get_payments() method of EDD_Payments_Query affects global $post
* Fix: Customer record not properly linked to existing user record
* Fix: State / province field of customer address not saved properly
* Fix: Download links still shown on purchase confirmation when Disable Redownload is enabled
* Fix: select() method of EDD_HTML_Elements always uses "Downloads" as search placeholder
* Fix: Product Dropdown not always showing the selected item when large number of downloads exist
= 2.7.11, June 21, 2017 =
* Fix: Amazon Payments had errors being displayed at incorrect times.
* Fix: Start date not set properly in reports all pre-set ranges.
* Tweak: Fix URL for the "Rate Us" link.
= 2.7.10, June 12, 2017 =
* Fix: Plugin Compatibility: Improve file download reliability when Really Simple SSL Mixed Content Filter is active.
= 2.7.9, May 11, 2017 =
* Fix: Chosen search had incorrect select element targeting.
* Fix: EDD_Payment was using invalid modified_date instead of date.
* Fix: Recovering a guest payment prompted user to login to complete the purchase.
* New: Add edd_get_report_dates_default_range filter to report date range.
= 2.7.8, May 2, 2017 =
* Fix: Products sometimes duplicated in CSV product export
* Fix: Fatal error with PHP 7+ when get_meta() returns a string instead of array
* Fix: Incorrect earnings stats for "Today"
* Fix: Use once per customer option on discount codes does not respect case sensitivity
* Fix: Date filters on payment history not working properly
* Fix: Tax rates of less than 1 calculates an incorrect total
* Fix: edd_unset_cart_discount() is case sensitive when it should not be
* Fix: PHP 7 compatibility flags due to safe_mode checks
* Fix: Download files not imported properly when file URL/path begins with a forward slash
* Fix: Pending verification message shown multiple times if the page contains multiple shortcodes
* Tweak: Improved error message for "Email already used" error
* Tweak: Default reports view is now "Last 30 days"
* Tweak: EDD_Graph class now supports an "addition_options" parameter
* Tweak: Added new hooks to the profile editor template
= 2.7.7, April 3, 2017 =
* Fix: User ID not properly assigned during some payment imports
* Fix: Discount codes sometimes changed to inactive improperly
* Fix: Incorrect variable name in add-on updater
* Fix: edd_has_user_purchased() can return false incorrectly
* Fix: File price assignment fails when set to the first price on old products
* Fix: Last Month report showing incorrect numbers
* Fix: Incorrect class name on customer details page
* Tweak: Improved error message shown when viewing a receipt after purchase session has expired
* Tweak: Added new filter and action to edd_has_user_purchased()
* Tweak: Renamed Czech Republic to Czechia
* Tweak: Log in form on checkout now accepts log-in by email
* Tweak: Added new edd_download_inner_class filter
= 2.7.6, March 24, 2017 =
* New: Added new hooks to customer details page
* New: Email tags are now processed in the Purchase Email heading
* Fix: User dropdown field does not always show selected user
* Fix: Payment field for Amazon Payments gateway not properly shown after authenticating with Amazon
* Fix: edd-page class improperly added to all site pages when Test Mode is enabled
* Fix: Incorrectly named CSS selector
* Fix: Checkout does not work when AJAX is disabled
* Fix: Profile editor HTML markup is inconsistent with other forms
* Fix: Query parameters not properly setup when calling multiple instances of EDD_Payments_Query
* Fix: Invalid argument supplied foreach() notice on some bundle products
* Fix: Incorrect capitalization on First Name field of checkout
* Fix: Incorrect field name passed to get_user_by() in payment import
* Fix: Custom "Complete Purchase Text" not used if payment submission results in error
* Fix: Incorrect date set for "end_date" in EDD_Stats class
* Fix: Price option not properly added when using custom add to cart links for variable priced product and not price ID is supplied
* Fix: Fees that are taxed get counted twice in tax total
= 2.7.5, March 6, 2017 =
* Tweak: Added a new filter that allows for the message shown in the email receipt when there are no download files to be controlled
* Tweak: Renamed "User" to "Customer" on sales and file downloads logs view and updated the columns to always show the customer name
* Fix: No error messages shown on [edd_register] shortcode
* Fix: Product Requirements check for discount codes fail if database value contains an empty string
* Fix: Empty metadata values get stored when creating discount codes
* Fix: Recovered payments do not store the correct purchase date
* Fix: "Click here to request a new verification URL" link does not contain a real URL
* Fix: Browser cache not flushed when EDD CSS is updated
* Fix: Spaces in URLs for files and featured images can result in import problems
* Fix: Positive fees should not be added to PayPal Standard when assigned a Download ID
* Fix: Extra dash output in email receipt and purchase history when no price option is present
* Fix: It is possible for the ID returned from EDD_DB::insert() to be returned incorrectly
* Fix: Invalid customer error shown in file downloads log endpoint of the REST API
* Fix: Removing items from an order can result in the wrong item being removed after save
* Fix: Credit Card and billing address fields shown on checkout even when no payment gateways are enabled
* Fix: Personal Info section of checkout missing the aria-describedby attribute
* Fix: Payment mode fieldset does not have a legend tag
* Fix: Duplicate DIV tag on checkout
= 2.7.4, February 22, 2017 =
* Fix: "Loading" text shown on add to cart buttons for sites without screen ready text CSS.
= 2.7.3, February 20, 2017 =
* Fix: Email addresses with a + sign cannot have their receipt resent
* Fix: Some PDF files downloaded as JPGs
* Fix: Incorrect default payment gateway error message when saving sub-sections of Payment Gateway settings
* Fix: edd-submit class accidentally removed from some buttons on the front end
* Fix: Variable price selection not possible when adding new product to existing payment record
= 2.7.2, February 15, 2017 =
* Fix: It was possible for the batch exporter base class to not be loaded before it was trying to be used.
* Fix: Payments completed with the 'resume payment' feature prevented file download links from working.
* New: EDD_Payments_Query now keeps a record of the initial arguments used, to allow better extensibility.
= 2.7.1, February 14, 2017 =
* Fix: Checkout was showing wrong total price when certain fees were applied to the cart.
* Fix: Plugin row meta linked to non-existent "Getting Started" page.
* Fix: There was a typo in the link to our site when showing an error message for a license key.
* Fix: Incorrect function name in new EDD_Discount class was being checked.
= 2.7, February 13, 2017 =
* New: Introduced EDD_Cart class for managing the shopping cart contents.
* New: Redesigned and improved functionality of the purchased downloads when viewing a payment.
* New: The applied tax rate is now saved in the payment meta.
* New: Created a tool that generates CSV earnings report.
* New: Added the ability for users to complete abandoned/pending purchases.
* New: Reduced number queries run during reports, improving performance.
* New: Selected image size is now inserted into File URL field in Download Files box.
* New: Added a link to the discount edit screen when viewing a payment.
* New: Added an option to the cart widget that allows it to be hidden when empty.
* New: Added support for all_blank on text inputs.
* New: Messages registered with edd_set_error are now output via a hook.
* New: Introduced the EDD_Discount class.
* New: Created tool to export all Logs.
* New: Improved WP CLI payment creation to support a date range.
* New: Quantity fields can now be disabled on individual download products.
* New: Added parent theme name to System Info when a child theme is detected.
* New: Added lost password URL to log in form on checkout.
* New: Introduce edd_get_payment which uses WordPress object cache to improve performance of getting payments.
* New: EDD_Payment and edd_get_payment now accept a payment transaction ID.
* New: Introduced a more EDD-specific downloads shortcode [edd_downloads].
* New: Moved edd-ajax.min script to footer to allow async loading of jQuery.
* New: Added a 'Refresh Reports' button to the graph view.
* New: Variable priced bundles can now fully support a variable priced item being bundled.
* New: Switched to using new IPN endpoints for PayPal Standard.
* New: Zip / postal code now included in tax calculation function.
* Tweak: Replaced all instances of get_post_meta() for payments with edd_get_payment_meta().
* Tweak: Deprecated edd_get_earnings_by_date & edd_get_sales_by_date.
* Tweak: Default gateway can no longer be set to a disabled gateway.
* Tweak: Adjusted error message returned when a discount code is not yet active.
* Tweak: Updated Profile Editor markup to match current EDD markup format.
* Tweak: Removed loading of the icon-font in the front end.
* Tweak: Improved the metabox for managing the customer when editing a payment.
* Tweak: Settings, Reports, Tools admin page now have headings.
* Tweak: The gateway selector is now shown when a user has an error during checkout.
* Tweak: Improved the layout and responsiveness of the customer details screen.
* Tweak: Buy Now options and buttons are now disabled if multiple gateways are enabled.
* Tweak: Improved the markup for the shortcode-login.php template file.
* Tweak: Added a per-download hook to the edd_receipt shortcode.
* Tweak: Unit tests no longer hit the network. They are so much faster now.
* Tweak: Removed use of global variable $edd_options.
* Tweak: Placeholders can now be defined for text fields when using the EDD Settings API.
* Tweak: Removed PDF earnings report in favor of the CSV Report.
* Tweak: Made the 'ignore tax' setting on reports less confusing.
* Tweak: Fixed some links in the readme.txt file.
* Tweak: Removed option to disable AJAX.
* Tweak: Adjusted "post type attribute" metabox label for downloads.
* Tweak: Fixed unit tests to work with the new WordPress core 4.7 unit tests.
* Fix: EDD_License did not properly support `item_id`.
* Fix: Earnings by Category estimates were not correct.
* Fix: Item card views (customers, licenses, subscriptions, etc) size improperly.
* Fix: Stopped redirect to PayPal on Buy Now buttons if PayPal gateway is disabled.
* Fix: The wrong class name was on the Checkout state input.
* Fix: Amazon Gateway settings are now checked before loading the scripts for Amazon Payments.
* Fix: The edd_download_redirect_to_checkout filter wasn't respecting the desired outcome in some configurations.
* Fix: The payment notes were included in normal comment count.
* Fix: Disabling API request logging was not working.
* Fix: Undefined index notices could be triggered during the login process on checkout.
* Fix: South Korea Zip/Postal Codes changed, so we updated our validation RegEx.
* Fix: Undefined index notice was shown on the dashboard widget.
* Fix: Attachment ID was not overwritten by external URL on download files.
* Fix: The history-downloads.php template was not properly showing variable price names.
* Fix: When adding fee to cart, we now preserve the decimal precision.
* Fix: Recounting store stats now resets the report transients.
* Fix: Improved the fault tolerance and error handling of creating discount codes.
* Fix: EDD_Download::setup_download() now identify $download as a WP_Post object type.
* Fix: Product import now defaults to the main admin user if the author does not exist.
* Fix: Multi-option purchase mode and variable prices work better with buy now buttons.
* Fix: Added "required" attribute to the email input field.
* Fix: Moved edd_undo_purchase_on_refund to deprecated-functions.php.
* Fix: Fixed the spelling of "Pound Sterling".
= 2.6.17, December 28, 2016 =
* Fix: Checkboxes in Downloads > Tools > Beta Versions do not retain checked state
* Fix: Extension update notifications do not show up
= 2.6.16, December 21, 2016 =
* Fix: 404 errors when downloading some files
= 2.6.15, December 19, 2016 =
* Fix: Conflict with some object caching configurations and the extension update checks that resulted in poor performance.
= 2.6.14, December 15, 2016 =
* New: Added hooks before and after cart on checkout screen
* New: Added support for user-specific locales
* Tweak: Improved performance of edd_get_payment_by(), making account pages faster
* Fix: Quantity not set on cart items when adding multiple price options to the cart at once
* Fix: Download links in email receipts over escaped, resulting in failed downloads
* Fix: December point plotted improperly on earnings / sales graphs
* Fix: Files still downloaded even if the file doesn't exist, resulting in a corrupted download file
* Fix: Non-formatted amount not set in data attribute of cart when discount codes applied
* Fix: Deleting an item from payment record does not delete the associated sale log
* Fix: This Week and Last Week reports not showing sale stats
* Fix: Calling edd_is_discount_valid() results in cart errors being set
* Fix: Earnings value doubled for Today report
* Fix: Price and currency not properly separated in schema microdata
* Fix: Tax exempt products still show tax rate on purchase buttons
* Fix: check_update() method is called twice in EDD_SL_Plugin_Updater class
= 2.6.13, November 21, 2016 =
* Fix: Custom payment meta items were not being saved correctly.
= 2.6.12, November 17, 2016 =
* New: Added new hooks to the profile editor form.
* Fix: edd_has_active_discounts could return false when there were active discounts.
* Fix: Supplying an invalid date range on reports could produce an incorrect graph.
* Fix: EDD_Payment::update_meta could produce a PHP warning when used.
* Fix: Variable Pricing options were inconsistently being shown and hidden when toggled.
* Fix: Today/Yesterday Reports miscalculated hours to include the first hour of the next day.
* Fix: When single day ranges were used on Payments list table, order status counts were not loading.
* Fix: EDD HTML Select input had many cases where mixed variable types could trigger errors and warnings.
* Fix: edd_get_users_purchases had outdated PHPDocs.
* Fix: Determining the 'main' subsection of settings could fire hooks twice and had poor performance.
* Fix: When changing report years, the report data could have been incorrect.
* Fix: Payment counts were incorrect on the Payments list table when custom dates were used.
* Fix: Certain hosting configurations caused the usage tracking notice to be improperly escaped.
* Fix: Admin scripts were not requiring `jquery-form`.
* Fix: Download limit setting isn't checked for existence before accessing it when saving a Download.
* Fix: Timezone wasn't respected when setting up daily cron.
* Fix: Upgrade routines could calculate incorrect number of total steps.
* Fix: The notice about being in test mode was not linked to the correct settings page.
* Fix: `edd_get_users_purchased_products` would fail if the first product ID supplied was not a download.
* Fix: Checkout could require a state even if the country had no states associated with it.
* Fix: Creating a discount would not save the product requirements and exclusions on first save.
* Fix: PHP Warning was being caused by the new beta setting in the extension updater.
* Fix: The EDD_SL_Plugin_Updater::check_update method could possibly be called twice.
* Fix: Sanitized unescaped URLs with esc_url
= 2.6.11, November 8, 2016 =
* New: WP CLI: Customers command now allows searching by user_id.
* New: Add framework for the new Software Licensing beta support.
* New: EDD Settings API now supports adding classes to registered settings.
* New: Improve PayPal Standard IPN lookup logic.
* New: Support iOS app one-click configuration.
* New: Add hook after cart quantities are updated.
* New: Add tooltip to "Display during checkout" tax option.
* New: Allow exporting the file download history of a specific product.
* New: Add action after discount is added to the cart.
* New: Add action hook called "edd_payment_saved" for when EDD_Payment::save() is run.
* New: Add "author" parameter support to [downloads] shortcode with support for username or ID.
* Tweak: Correct branding of necessary assets.
* Tweak: Block self-pings in tracking check-ins.
* Tweak: Update author and author URI to Easy Digital Downloads.
* Tweak: Update the Insert Download media button icon to use Dashicons.
* Tweak: Allow download admin icon to be more easily customized.
* Tweak: Exported CSVs show "Complete" status as "publish".
* Fix: Corrected translation for login shortcode redirect description.
* Fix: Improved the caching of stats transients for better performance.
* Fix: API Keys were not able to be copied from user profile.
* Fix: Corrected link to the iOS application.
* Fix: Use new iPhone icon.
* Fix: EDD_Payment::setup_tax did not always contain proper data.
* Fix: Styles on Recount/Reset tool were lost.
* Fix: CSV import tool were not importing Download Files in some circumstances.
* Fix: Tooltip styles had a conflict with Gravity Forms.
* Fix: Recount earning/sales tool for all downloads was failing to properly recount.
* Fix: Multiple instances of cart widget was causing conflicts when adding or removing items.
* Fix: API Key list table was unreadable on mobile.
* Fix: Custom icons via edd_accepted_payment_icons were unwrapped.
* Fix: Fees for specific download and price IDs did not check if the item or price ID is in the cart.
* Fix: EDD API was always returning version 1 by default.
* Fix: Changed uses of jQuery .toggle() to use .show() and .hide() to fix bad checkbox states.
* Fix: Corrected translation for 'State / Province'.
* Fix: Corrected a variable type issue in the HTML_Elements::select defaults.
= 2.6.10, October 21, 2016 =
* Fix: JavaScript error when removing a product from a payment that does not contain a fee.
= 2.6.9, October 20, 2016 =
* Fix: Negative fees associated with cart item do not affect cart item earnings.
* Fix: Z-index of tooltips needs to be increased.
* Fix: Products endpoint returns empty response on v2 of the API.
* Fix: Email property set twice in edd_insert_payment().
* Fix: "Email already in use" error if capitalization does not match.
* Fix: Chosen dropdowns cause a horizontal scroll bug in RTL.
* Fix: record_fees() clears fees in the session before purchases are completed.
* Fix: New user email strips login link on plain text email.
* Fix: Country and state chosen fields on view order details broken.
* Fix: Billing address fields are not saving in the payment details page when edited.
* Fix: Not all settings and data removed when uninstall is run.
* Fix: Don't output a label if one isn't set for text and select HTML elements.
* Fix: Date in payment_meta should match the payment date when modified.
* Fix: The edd_get_random_download() should return an item.
* Fix: Potential PHP warning when using EDD_Payment->save().
* Fix: Payment date is not included in the payment history export.
* New: API sales endpoints now include both user_id and customer_id.
* New: Add user_dropdown to HTML elements that support chosen.
* New: Add support for product variations in the HTML elements product_dropdown.
* Tweak: Change "Disable Guest Checkout" to "Require Login".
* Tweak: Typo "assocaited" in error messages when adding emails to a customer.
* Tweak: Resend Receipt button allows selecting which associated customer email address to send receipt to.
= 2.6.8, September 26, 2016 =
* Fix: Category earnings report does not recover when the site has no download categories.
* Fix: PHP notice caused by localized script loader.
* Fix: CSV Product exporter/importer does not honor file conditions for variable pricing.
* Fix: CSV importer improperly started variable pricing IDs as 0 instead of 1.
* Fix: Repeatable rows not properly adding data-key attribute for variable price select boxes.
* Fix: Undefined index warning when adding download details widget within the customizer.
* Fix: edd_update_payment_status() creates new blank payment record if given an invalid payment ID.