forked from awesomemotive/easy-digital-downloads
-
Notifications
You must be signed in to change notification settings - Fork 0
/
readme.txt
executable file
·3446 lines (2949 loc) · 195 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 ===
Author URI: https://easydigitaldownloads.com
Plugin URI: https://easydigitaldownloads.com
Contributors: easydigitaldownloads, mordauk, sunnyratilal, chriscct7, section214, sumobi, sdavis2702, cklosows, mindctrl, sksmatt, SpencerFinnell, johnstonphilip, brashrebel
Donate link: https://easydigitaldownloads.com/donate/
Tags: download, downloads, e-store, eshop, digital downloads, e-commerce, wp-ecommerce, wp ecommerce, ecommerce, ebook
Requires at least: 4.4
Tested up to: 4.9.4
Stable Tag: 2.8.18
License: GNU Version 2 or Any Later Version
The easiest way to sell digital products with WordPress.
== 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, documents, photos, ebooks, songs, graphics, or any other type of media file, Easy Digital Downloads provides a complete system for effortlessly selling your digital products.
= 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).
= Payment gateways for everyone =
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 work for you. 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
* Payza
See our [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 gateways. There are also a large number of additional gateways developed and supported by [3rd party developers](https://easydigitaldownloads.com/3rd-party-extensions/#gateways).
= Go 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
* [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
* [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 process
* [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 what 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 super-charge your digital store. 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. Contribute on [GitHub](https://github.com/easydigitaldownloads/easy-digital-downloads).
== 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 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? =
You can submit a support ticket or pre-sale question from our [support page](http://docs.easydigitaldownloads.com/support?utm_source=docs&utm_medium=faq_tab&utm_content=support&utm_campaign=readme) at anytime.
= Is an SSL certificate required? =
Easy Digital Downloads can function without one 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 production web site, 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 products? =
There are several different ways, each well [documented](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.
[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)
= 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 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)
* [BitPay](https://easydigitaldownloads.com/downloads/bitpay-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=bitpay-payment-gateway&utm_campaign=readme)
* [Coinbase](https://easydigitaldownloads.com/downloads/coinbase-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=coinbase-payment-gateway&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)
* [PayU India](https://easydigitaldownloads.com/downloads/payu-india-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=payu-india-payment-gateway&utm_campaign=readme)
* [Payza](https://easydigitaldownloads.com/downloads/payza-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=payza-payment-gateway&utm_campaign=readme)
* [PayPlug](https://easydigitaldownloads.com/downloads/payplug-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=payplug-gateway&utm_campaign=readme)
* [GoCardless](https://easydigitaldownloads.com/downloads/gocardless-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=gocardless-payment-gateway&utm_campaign=readme)
* [Zombaio](https://easydigitaldownloads.com/downloads/zombaio-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=zombaio-payment-gateway&utm_campaign=readme)
* [Realex](https://easydigitaldownloads.com/downloads/realex-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=realex-gateway&utm_campaign=readme)
* [CyberSource](https://easydigitaldownloads.com/downloads/cybersource-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=cybersource-gateway&utm_campaign=readme)
* [Paylane](https://easydigitaldownloads.com/downloads/paylane-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=paylane-payment-gateway&utm_campaign=readme)
* [ePay](https://easydigitaldownloads.com/downloads/epay-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=epay-payment-gateway&utm_campaign=readme)
* [Netbanx](https://easydigitaldownloads.com/downloads/netbanx-payment-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=netbanx-payment-gateway&utm_campaign=readme)
* [Realex](https://easydigitaldownloads.com/downloads/realex-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=realex-gateway&utm_campaign=readme)
* [PayTrace](https://easydigitaldownloads.com/downloads/paytrace/?utm_source=gateway&utm_medium=faq_tab&utm_content=paytrace&utm_campaign=readme)
* [iPay88](https://easydigitaldownloads.com/downloads/ipay88-gateway/?utm_source=gateway&utm_medium=faq_tab&utm_content=ipay88-gateway&utm_campaign=readme)
== 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.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.
* Fix: REST API Products endpoint doesn't take into account search parameter API.
* Tweak: Correct typo in country list for Philippines.
* Tweak: Upload file text is misaligned within the input field.
= 2.6.7, September 14, 2016 =
* Fix: Improved CSV file type detection to avoid 'invalid CSV' error.
* Fix: The edd_payment_meta filter was not respecting values modified during the filter when saving a payment.
* Fix: Redirect to Checkout setting was not keeping custom query string variables when direct cart URLs.
* Fix: Cart Widget did not properly refresh the page when purchase links were present on the page.
* Fix: Categories/Tags not created and assigned during product import.
* Fix: Remove discount cron which could cause discount codes incorrectly changing to inactive without warning.
* Fix: Can't Uncheck All Checkboxes in Multi-Check.
* Fix: Verify discount is in array before unsetting the discount.
* Fix: edd_stats_{key} transients causing performance issues.
* Fix: Undefined Indexes when assigning new user ID to customer details.
* Fix: Purchase Email Subject ampersands getting improperly HTML encoded.
* Fix: Local files not being properly found when on a Windows server.
* Fix: Properly catch default case for license activation callback.
* Fix: Sequential payment number not assigned when creating payments with EDD_Payment.
* Fix: Tax calculation should only run on values greater than 0.
* Fix: Fix variable name in customer recount tool for post status array.
* Fix: Discount functions not always having user_info array key.
* Tweak: Rename Download List Table Taxonomy Headers.
* Tweak: Fix horizontal alignment of items in the dashboard widget.
* Tweak: Update codex link in readme.txt.
* Tweak: Update EDD_SL_Plugin_Updater.php to latest version.
* Tweak: Correct references of 'short code' to 'shortcode'.
* Tweak: Filter "edd_get_cart_discounts_html" does not pass relevant arguments for developers.
* Tweak: Update payments export to use EDD_Payment.
* Tweak: Return null for all empty data returned from the API instead of an empty array.
* Tweak: Update readme.txt with new donate link.
* Tweak: Allow custom Arguments for Settings API Callbacks.
* New: Accepted payment method icons have been updated to PNGs with transparent backgrounds.
* New: Update MasterCard Logo.
* New: Add filters to API endpoints.
* New: Added actions to the adding and removing of fees.
* New: Buy Now button option on Add/Edit Download now always shows, but is disabled when requirements are not.
* New: Customer address can now be edited for customers who do not previously have an address on file.
* New: Add edd_get_php_arg_separator_output on System Info.
* New: Linking a Customer to a WordPress user now allows login or email address as a valid input.
= 2.6.6, August 1, 2016 =
* Fix: Discount codes being marked as inactive
* Fix: Incorrect state/province used in tax calculations in certain scenarios
* Fix: Incorrect placeholder for Select Customer drop down
* Fix: Incorrect redirect URL for [edd_login] shortcode
* Fix: Spelling errors in internal documentation
* New: Added $items parameter to edd_post_add_to_cart action
= 2.6.5, July 25, 2016 =
* Fix: Incorrect parameters passed to edd_is_checkout()
* Fix: Some records skipped during CSV import
* Fix: update_option() cannot be used to update EDD settings
* Fix: Incorrect date format used in CSV payment import
* Fix: Product-specific sales / earnings graphs show no earnings
* Fix: Spelling errors in PHPDocs
* Fix: Resend Receipt box visible even when payment is not Complete
* Fix: File URLs split on / during product import
* Fix: Setting display:none on variable price options breaks add to cart processing
* Fix: Prices can be set as negative
* Fix: edd_get_variable_prices() returns prices even when variable prices are disabled
* Tweak: Added filters to payment gateway labels on checkout screen
* Tweak: Modified how metadata is registered in anticipation of WordPress 4.6
* Tweak: Changed role required for deleting payment records to delete_shop_payments
* New: Added Remember Me option to log in form
* New: Added /info/ endpoint to REST API
= 2.6.4, July 6, 2016 =
* Fix: Negative fees getting included twice with PayPal Standard
* Fix: Non-standard status in the product import caused silent failure.
* Fix: Rely on Customer's User ID when EDD_Payment::setup_user_id has incorrect data.
* Fix: Date strings are not properly parsed in product import.
* Fix: PHP notice is triggered when using purchase_link shortcode with an invalid SKU attribute.
* Fix: PHP warning when activating on Multisite due to roles not being correcly instantiated.
* Fix: It is possible for edd_get_ip() to return a CSV of IP addresses.
* Fix: Products deleted after being added to the cart creates invalid cart data.
= 2.6.3, June 30, 2016 =
* Fix: Product name needs to be trimmed during payment import to prevent duplicate products being created
* Fix: Discount codes getting erroneously marked as Inactive
* Fix: Importing settings causes a fatal error
* Fix: Address Line 2 erroneously marked as required in some cases
* Tweak: Improved inline documentation for edd_get_download_file_url()
* Tweak: Add-on updater updated to 1.6.4
= 2.6.2, June 28, 2016 =
* Fix: Existing guest customers cannot register a user account on checkout using the email address associated with their existing customer profile.
* Fix: DocBloc for edd_delete_option function is incorrect.
= 2.6.1, June 24, 2016 =
* Fix: PayPal Standard transaction ID links don't link to PayPal Sandbox when payment was made in test mode.
* Fix: Opt-in tracking not sending after initial activation.
* Tweak: Welcome page not showing on upgrade.
* Tweak: Only show welcome page on major versions.
* New: If enabled, send checkin data when Easy Digital Downloads is upgraded.
* New: Add a filter for edd_price_options() that allows adding classes to the output.
= 2.6, June 23, 2016 =
* New: Added filters to process the earnings as they are updated.
* New: Profile Editor state field shows as dropdown when possible.
* New: Public API query mode to allow extension developers the ability to create API endpoints that do not require API keys.
* New: Add/Improve inline help throughout the plugin with UI Tooltip.
* New: Purchased Products column in payment export improved for better parsing.
* New: Filters added to EDD_Customer increase and decrease methods.
* New: Introduce Version 2 (v2) of the REST API.
* New: (API v2) Products endpoint supports category and tag filtering.
* New: (API v2) Customers endpoint supports filtering customers by creation date.
* New: (API v2) Support searching products.
* New: (API v2) Improve discount code reporting.
* New: Add price(s) to oEmbed output for downloads.
* New: Remove comment/trackback counts from oEmbed output for downloads.
* New: Add new edd-table class to all tables outputted by Easy Digital Downloads.
* New: Improve discount code status updates by setting inactive when usage reaches max.
* New: Add daily cron to mark expired and discount codes at max usage as expired or inactive.
* New: Add get_payments() method to the EDD_Customer class.
* New: Make download ID more visible on the downloads list table.
* New: Add filters to the add_fee() and get_fees() methods of EDD_Fees class.
* New: Add price_id support for the Fees API.
* New: PayPal Standard payments are now able to be refunded within the WordPress admin.
* New: Deprecate edd_get_success_page_url().
* New: Add default redirect option to [edd_login] and [edd_register] shortcodes.
* New: Introduce customer meta table.
* New: Add JavaScript trigger to edd_load_gateway() for 3rd party hooks.
* New: Support post__in as an argument in [downloads] shortcode.
* New: Final declaration removed from EDD_Payment class.
* New: Allow edd_get_payment_status to also accept a payment ID.
* New: Support additional email addresses for customers.
* New: Add actions into the increase/decrease sales/earnings methods of the EDD_Download class.
* New: Added CSV Import functionality.
* Tweak: Use internal methods when getting sales counts and files in EDD_Download class.
* Tweak: Add campaign tracking to links in the contextual help menus.
* Tweak: Improve edd-admin.css coding standards.
* Tweak: Update translation .mo files and add development tool for downloading translations from Language Packs.
* Tweak: Improve EDD Licenses tab in settings.
* Tweak: Improve edd_object_to_array method.
* Tweak: Improve mobile breakpoints for customer details view.
* Tweak: Remove pagination when [download] shortcode uses 'random' for the sort.
* Tweak: Use existing function to build {receipt_link} email tag.
* Tweak: PayPal Standard Buy Now was updated to use EDD_Payment.
* Fix: New User Email alerts have incorrect header.
* Fix: Transient being bypassed in EDD_Payment_Stats::get_earnings().
* Fix: Remove unused variable and duplicate post_where filters in EDD_Payment_Stats.
* Fix: Correct spelling error in edd_get_paypal_redirect().
* Fix: Improved cache key generation in EDD_Payment_Stats::get_earnings().
* Fix: Remove deprecated constructor method in System Info browser class.
* Fix: Negative cart fees should not have tax charged on them.
* Fix: Roles are being initialized on every admin request.
* Fix: Negative item fees did not alter the taxation on the item.
* Fix: System info shows Must-Use plugins when none are present.
* Fix: Cart position (key) is not passed to the hooks in the cart.
* Fix: Product dropdown search never shows the current download in results.
* Fix: Trim response from country state lookup.
* Fix: Update subscribe link in Welcome screen.
* Fix: edd_get_users_purchased_products() can sometimes try an array_mege on a non-array value.
* Fix: PayPal IPN Verification forced to HTTPS.
* Fix: Incorrect earnings across a custom date range report.
* Fix: Flat rate discounts can apply an amount larger than the cart total.
* Fix: Improve performance of transient deletion when uninstalling Easy Digital Downloads.
* Fix: Sales logs show incorrect item amounts with variable pricing sales.
* Fix: (a11y) Customer details page icons are not focused.
* Fix: (a11y) Removed title attributes.
* Fix: (a11y) Focus is lost when removing price option.
* Fix: (a11y) Make Add New Price a button when working with variable pricing.
* Fix: (a11y) Repeatable field link to remove row should be a button.
* Fix: Creating a payment sometimes doesn't save the correct user_id or customer_id.
* Fix: Remove old WordPress version compatibility checks for WordPress versions less than 4.0.
* Fix: Preview emails use default gateway.
* Fix: EDD_API hooks for API key generation fire when extending the base class.
* Fix: Remove incorrect messaging on profile editor related to password changes.
* Fix: HTML validation fails if schema.org itemtype is missing.
* Fix: Clicking 'Complete Purchase' button multiple times can result in Empty Cart error.
* Fix: Replace calls to global settings variable with edd_get_option().
* Fix: Duplicate get_post_meta calls in EDD_Download class.
* Fix: Amazon Payments address field not showing with AJAX disabled.
* Fix: Reporting is incorrect when changing predefined dates where year_end changes.
* Fix: Allow no gateway to be enabled when purchase is free.
* Fix: Item fees not taken into account when using EDD_Payment_Stats::get_earnings() for a specific download.
* Fix: Subtotal and Total data attributes using incorrect amounts.
* Fix: Taxonomies with numeric slugs are assumed to be the term_id in [downloads] shortcode.
* Fix: Multiple instances of variable pricing output for a single product causes label target issue.
* Fix: Correct schema.org structured data for items with variable pricing.
* Fix: Correct HTML validation for the legend tag on forms by removing span wrappers.
* Fix: Schema.org markup missing priceCurrency attribute.
* Fix: Use tel input type and patterns to force numeric keyboard on checkout for card number and CVC inputs.
* Fix: Settings sanitization for subsections unsets tax rates when a subsection is registered under taxes.
= 2.5.17, June 3, 2016 =
* Fix: Discount codes are not always sent when opt-in tracking is enabled
* Fix: Correct a capitilzation error in EDD_Customer class usage during edd_insert_payment
* Fix: Correct error in the System Info browser detection
= 2.5.16, May 18, 2016 =
* Fix: Checkboxes cannot be unchecked in the settings screens of some extensions if only one extension is activated
= 2.5.15, May 11, 2016 =
* Fix: Removed unused variables and typos in unit tests
* Fix: Non-standardized display of file names for items in bundles on receipts
* Fix: Downloads not always removed from payment records when removed from the View Order Details screen
* Tweak: Introduced new edd_checkout_user_error_checks action during purchase processing
* Tweak: Placeholders on product dropdowns improved to help indicate searchability
= 2.5.14, May 5, 2016 =
* Fix: New user emails do not have the proper heading
* Fix: Opt-in tracking not always sending when allowed
* Tweak: Added Locale to opt-in tracking
= 2.5.13, April 21, 2016 =
* Fix: User info data not properly populated from customer record when missing in payment meta
* Fix: filesize() run on external files during download process
* Tweak: Changed log in form label to include email address
* Tweak: Added PHP version, EDD version, install date, and WordPress version to opt-in tracking payload
= 2.5.12, April 14, 2016 =
* Fix: Removed incorrect title attribute from Send Test Email button
* Fix: Made add to cart AJAX action Accessible
* Tweak: Added Delete Payment option to View Order Details screen
* Tweak: Moved Resend Receipt button to separate box on View Order Details screen
= 2.5.11, April 7, 2016 =
* Fix: Non-complete payments permitting file downloads
* Fix: Double POST requests for plugin update checks
* Fix: Missing validation for discount code ID in edd_decrease_discount_usage()
* Fix: Default view of Sales / Earnings graphs for individual products not working
* Fix: Download Details widget will not save "Current" display option
* Fix: Sessions should never start on RSS feeds
* Fix: Missing screen reader text for Default Price Option radio buttons
* Fix: Incorrect heading size for some admin screens
* Fix: Payment History Search results now stay after performing actions on shown payments
* Tweak: Added new filters to recount stats tool for customers to allow support for other payment statuses
* Tweak: Added new filters to allow URIs to be added to the session blacklist to prevent sessions from starting on those URIs
* Tweak: Added filter to permit disabling wpautop() in emails
* Tweak: Set "filter_items_list", "items_list_navigation", and "items_list" labels for Download post type
* Tweak: Added new "edd_payment_advanced_filters_row" filter
= 2.5.10, March 24, 2016 =
* Fix: Fatal PHP error when adding multiple price IDs to the card when same item is already in cart
* Fix: New user registration notification email does not support HTML
* Fix: {receipt_link} HTML stripped from plain text emails
* Fix: fees_total property not set up in EDD_Payment object
* Fix: Payment History not properly setting end date filter
* Fix: filesize() being run on external files during file download
* Fix: Symlinked file downloads result in 0 byte files
* Fix: 100% discount codes with taxes enabled fail to allow purchase
* Fix: Extraneous hyphen after product name for products without price options
* Fix: Payments cannot be searched by user ID
* Fix: Undefined index "download_method"
* Fix: Ajax Download search excludes bundles improperly
* Fix: Custom date range over multiple years does not work well in earnings reports
* Fix: HTTP/HTTPS protocol stored on file URLs in database, resulting in failed downloads if site protocol changes
* Fix: Extensions settings tab displays empty Main section in some cases
* Fix: "No checkout page has been configured" notice cannot be dismissed properly
* Fix: EDD transients not deleted during uninstall
* Fix: Sales logs not deleted when payment is changed from Complete to Pending
* Fix: Inconsistent formatting in Dashboard stats widget
* Fix: About and Welcome pages not compatible with Admin Menu Editor plugin
* Fix: State / Province field not populating saved country / state / province when shown as text field
* Fix: discount_dropdown() method of EDD_HTML_Elements does not support non-item label
* Fix: widgets.php page dies if site has large number of products
* Fix: Form to create new API key not shown
* Tweak: Re-adding support for retrieving card item price without tax
= 2.5.9, February 18, 2016 =