Your WooCommerce checkout is likely bleeding orders right now. Most store owners blame traffic quality or product prices when conversion drops, but the real culprit sits inside WooCommerce > Settings > Accounts & Privacy and WooCommerce > Settings > Shipping. Three specific toggles and two shipping configurations account for most abandoned carts, and you can test each change in under five minutes. This guide walks through the exact settings that kill conversions, why they break the purchase flow, and what to change today.
The setup
WooCommerce > Settings > Accounts & Privacy and WooCommerce > Settings > Shipping. These two tabs control guest checkout, account creation, and shipping fee visibility. They do not control payment gateways or tax settings, which live in separate tabs.
The forced account creation trap
WooCommerce ships with guest checkout enabled by default. Many store owners disable it, thinking mandatory accounts will build a customer database faster. The opposite happens. Between 19% and 26% of shoppers abandon their carts when forced to create an account before completing a purchase.
Navigate to WooCommerce > Settings > Accounts & Privacy. Look for the checkbox labeled Allow customers to place orders without an account. If unchecked, every visitor hits a registration wall at checkout. They see username and password fields before the payment step, and most bounce rather than commit to another account.

Check that box. Immediately below it, you will see Allow customers to create an account during checkout. Check this one too. It adds an optional account creation checkbox on the checkout page, letting customers decide. The password field appears only when they tick the box. This approach captures willing subscribers without blocking quick purchases.
One layer down sits When creating an account, automatically generate an account username from the customer's email address and When creating an account, send the new user a link to set their password. Check both. They eliminate the username and password fields entirely from checkout, replacing them with a single email input. The customer completes payment first, then receives a password-setup email. Zero friction at the moment of sale.
Shipping cost surprises
Unexpected shipping fees kill between 39% and 48% of carts, according to multiple cart abandonment studies. The problem is not the fee itself but when the customer discovers it. If a shopper sees a $29 product, adds it to cart, then finds $15 shipping at checkout, they feel tricked. They abandon.
WooCommerce > Settings > Shipping controls your zones and methods. Each shipping zone can have flat rate, free shipping, or local pickup. The issue is visibility. Most themes show only the product price on category and single-product pages. Shipping appears for the first time on the cart or checkout page.
You fix this three ways. First, set a clear free shipping threshold in WooCommerce > Settings > Shipping > Shipping Zones > Your Zone > Add Shipping Method > Free Shipping. Set the minimum order amount to something achievable, like $50 or $75. Then display that threshold everywhere. Add a banner to your header, a notice on the cart page, and a line on product pages. Many themes include a custom HTML widget or an announcement bar where you type "Free shipping on orders over $50."
Second, use flat-rate shipping when possible. Variable rates based on weight or distance confuse customers. A single $5 or $10 rate for all orders is predictable. Customers calculate the total in their heads before reaching checkout.
Third, if you must use variable rates, display an estimated shipping calculator on the cart page. WooCommerce includes this by default in the cart table. Make sure your theme has not hidden it. The calculator lets customers enter their postal code and see the exact cost before clicking Proceed to Checkout.
Checkout field overload
The default WooCommerce checkout asks for billing address, shipping address, phone number, company name, and order notes. Every extra field costs conversions. Each one is another reason to quit.
Go to WooCommerce > Settings > Advanced > Checkout. You will not find granular field controls here. WooCommerce hardcodes most checkout fields. To remove optional fields, you need a custom snippet or a plugin like Checkout Field Editor.
The two fields you can safely hide without code are company and order notes. The company field appears in the billing section. The order notes textarea sits below shipping. Both are optional by default, but their presence adds visual clutter. Most stores selling to consumers do not need them.
To remove them with code, add this to your theme's functions.php or a site-specific plugin:
add_filter( 'woocommerce_checkout_fields', 'remove_checkout_fields' );
function remove_checkout_fields( $fields ) {
unset( $fields['billing']['billing_company'] );
unset( $fields['order']['order_comments'] );
return $fields;
}
The phone field is trickier. Payment gateways and shipping carriers sometimes require it. Test your order flow after removing it. If orders go through without errors, you can safely keep it hidden. If not, leave it visible.
Address autocomplete is the opposite problem. It speeds up checkout by letting customers type three letters and select their full address from a dropdown. Enable Google Address Autocomplete or a similar plugin. Every second saved at checkout translates to more completed orders.
What breaks
Guest checkout is enabled but customers still see account fields
You checked Allow customers to place orders without an account, but the checkout page still shows username and password boxes. The cause is the second checkbox, Allow customers to create an account during checkout, which is unchecked. WooCommerce interprets this as "accounts are required; guest checkout is disabled." Check both boxes together. The account creation fields then become optional or hidden.
Free shipping threshold does not display anywhere
You set free shipping at $50 in WooCommerce > Settings > Shipping, but customers do not see the threshold on the cart or product pages. WooCommerce does not broadcast this automatically. You must add it manually. Use a plugin like Conditional Shipping and Payments or write a custom message in your theme's header. Many themes include a promotional banner widget where you type the message directly. Without visibility, customers do not know they are $8 away from free shipping and abandon instead of adding another item.
Shipping calculator is missing from the cart page
The cart page shows product totals but no way to estimate shipping. Your theme has hidden the shipping calculator. Go to Appearance > Customize > WooCommerce > Cart, or check your theme's WooCommerce settings. Some themes disable the calculator by default to simplify the cart. Re-enable it. If your theme does not expose the option, add this to functions.php:
add_filter( 'woocommerce_cart_ready_to_calc_shipping', '__return_true' );
This forces the calculator to appear. Customers can now enter their postal code and see the exact shipping cost before checkout.
FAQs
Should I require account creation after the first purchase?
No. Even repeat customers prefer guest checkout when they are in a hurry or using a shared device. If you want to encourage accounts, offer a benefit like order tracking, loyalty points, or exclusive discounts. Do not force it. The opt-in checkbox at checkout captures willing users without blocking sales.
Can I hide the billing address if it matches the shipping address?
Yes, and you should. Most customers ship to themselves. The "Ship to a different address?" checkbox is checked by default, but you can reverse it so billing and shipping are the same unless the customer clicks to separate them. Use a plugin or add a custom filter. This cuts the form length in half for most orders.
What happens if I remove the phone field and Stripe needs it?
Stripe does not require a phone number for card payments, but some fraud-prevention plugins or shipping integrations do. Test an order after removing the field. If the payment gateway throws an error, restore the field. If the order processes normally, leave it hidden. Always test with a real transaction in test mode before going live.
Does a single-page checkout convert better than multi-step?
It depends on your average order value. Single-page checkouts work best for low-cost, impulse purchases where customers want speed. Multi-step checkouts convert better for high-value or complex orders because they break the process into digestible pieces. Test both using a plugin like CartFlows or Checkout for WooCommerce. Track your cart abandonment rate in each version.
How do I show shipping costs on the product page?
WooCommerce does not include this by default because shipping depends on the customer's location. Use a plugin like WooCommerce Advanced Shipping or Table Rate Shipping to calculate rates dynamically based on the customer's saved address or a prompt. Another option is to display a flat-rate estimate like "Shipping from $5" below the Add to Cart button. This sets expectations without locking in a specific amount.
Verdict: Enable guest checkout and optional account creation together to remove the registration wall. Set a visible free shipping threshold and display it on every page. Remove or hide company and order notes fields unless your business needs them. Test each change individually and measure cart abandonment before and after.