typecast $used_by to array in case its not set. Closes #5350
Check has_file when sending order emails for downloadables

Fixes #5296
Allow saving no downloads, if unset

#5296
Let get_file get the first file if no ID is defined

#5296
Recount true when recounting terms Fixes #5320
[2.2] Hide COD for virtual orders (no shipping) Closes #5369
Ignore variation stock if disabled globally Closes #5370
updated the WC_Payment_Gateway class to set a maximum transaction amount, closes #5237
updated the method to get the order id from "pay for order" page
removed not defined $wp variable in favor to get_query_var() function
added method to check if order needs shipping in "pay for order" page
improved the get_order_total() method
added the possibility to translate the edit-address endpoint slugs, closes #4820
Bind price and decimal input events to body in woocommerce_admin js

The event was bound to the element directly, causing problems when the elements was added after dom ready (through ajax). Now the decimal format check will always take place.
Allow negative amount in price field validation

The price field validation method in the admin js did not allow negative numbers, which are valid as eg. negative fees.
Cleanup indentation in woocommerce_admin.js

File mixed tabs and spaces. Converted all spaces to tabs.
Updated minified woocommerce_admin JS
Merge pull request #5377 from mgmartel/decimal-validation-negative

Fix decimal validation JS in order admin
Abstract product constructor

Check for numeric $product, and expand the checking to see if its
passed a post object. Fixes #5341
Merge pull request #5373 from claudiosmweb/5237-feature-max-transaction-amount

Feature maximum transaction amount for payment gateways