Our support team often gets asked a variation of this question: How do I process an order on behalf of a customer?
- I took an order for a customer over the phone, can I run a transaction for it in WooCommerce?
- I just accepted an order for a product with a custom price, and I’d like to charge the customer manually. Can I do it?
- I’m going to be charging for expedited shipping, so I need to process an add-on order for a customer. How do I process payment for a new fee?
All of these scenarios are solvable, assuming you have a saved payment method for the customer!
First, if you don’t have a saved payment method (which you might not for a phone order, for example), I recommend going through the checkout process in a new browser (or incognito window), just like the customer would — this is the best way to get the order into WooCommerce and processed in a secure way on behalf of your customer.
So, now let’s move on and assume that you do have a saved payment method for the customer. Chances are you’re using one of our payment gateways that lets customers use a saved card, so I’ll use Authorize.Net CIM in this example.
The best way to process a “manual payment” with WooCommerce is to create a pending order, then use the free User Switching plugin to switch to the customer account, and pay for the order as the customer.
The benefit to this approach is that, when pretending to be the customer, the order will already have all customer data populated. This is vital in cases where tax should be assessed, since WooCommerce will apply taxes for the order, and you can be sure that everything was assessed and tracked properly.
This method also keeps a record in WooCommerce so the customer can access their order and payment record as needed.
Process manual WooCommerce payments
To begin, we’ll need to create a pending order assigned to our customer. When you create this order, be sure to:
- Add the customer
- Add the product(s) to be purchased, or create a fee if you don’t have a product to use for the order. Fees are very handy for custom orders; you can also add shipping lines for additional shipping fees.
- Leave the status as “Pending payment”
- Save / create the order
You may also find it helpful to add a note why you created this order for record keeping, but you’re now ready to switch to the customer’s account to pay for the order! Double-check that everything looks right:
Pro-tip: You can even rename your fee so it’s more descriptive for your accounting and your customer’s records.
To switch to the customer you assigned in the previous step, remember you’ll need the User Switching plugin is installed and active on your site.
Payment for WooCommerce orders as a customer
To switch to the customer you just selected for the order, go to your “Users” list in WordPress, and find the customer. You’ll see a “Switch to” action that you can use to select the customer’s account. (You’ll be able to switch back later.)
Once you click this, you’ll be using the customer account instead of your own, and can go to My Account > Orders, where you’ll be able to click the “Pay” link for the order.
Since you’re using the customer’s account, when you visit the pay page, you’ll see any saved payment methods they have available. Choose a saved method to complete payment for the order. The order will be updated in WooCommerce, while also keeping your records clean.
When you’re done, you can switch back to your account by clicking the “Switch back” link from User Switching — this will be available in the core “Meta” widget, if you’ve added it to your site, or at the very bottom of each page if not.
All done! Now the order has been paid for without any action required by your customer, and this method ensures you have accurate order and tax records for your shop.