Magento Enable Check Money Order Option for Admin Only
Typically on a live site in Magento, you don’t want to give the customer the option of paying via check or money order. So normally you are going to have this option disabled for your stores. The problem is, when this payment method is disabled, you will no longer be able to use it when creating custom orders via the Magento admin either. Let’s say you want to create a record of a customer order in the Magento system where the customer has already paid for the item, but for whatever reason it wasn’t recorder into the system. You won’t be able to do this because when you try and create the order via Magento admin the system will want you to enter a credit card number (and charge that credit card)! Wouldn’t it be great if you could enable the ‘check/money order’ payment method for admin created orders only?
How to do that
Copy and paste the file from app\code\core\Mage\Payment\Model\Method\Checkmo.php to to app\code\local\Mage\Payment\Model\Method\Checkmo.php (it’s best practice to never edit core files directly). Under the protected $_code = ‘checkmo;’ line of code, add the following 2 lines:
protected $_canUseCheckout = false;
protected $_canUseForMultishipping = false;