RFC: Editing/Removing Checkout core fields #42996
Replies: 12 comments 19 replies
-
I've seen some sites that remove the email field because they don't need it, and in some of those cases their customers don't have email addresses. This can be because of the older age of the customers, or their medical condition, or nature of the site itself, etc. In other cases WC is used internal to the company (non-public site) for various purposes (ordering things for various departments or locations, etc) so they might remove various fields, add new fields, and so on. I think the flexibility should be as it is now with the shortcode, where you can add or remove or rearrange any fields that the site operators want to using custom code or a plugin built for that purpose. Regarding shipping methods I use, all of them require a country, state/province (if available), and post code to get rates from a shipper's API. Regarding payment, a complete billing address is most often required for most card processing due to "address validation" (AVS) performed by various card issuers. |
Beta Was this translation helpful? Give feedback.
-
I'm an extension developer and I need to remove address fields from the billing/shipping blocks. This plugin allows WC store owners to convert their stores into a quote only store. It modifies the Place Order button at Checkout to 'Request Quote' button & does not take any payment at Checkout. Later on, the store owner can send a quote email to the customer with a payment link thereby making the order a part of the normal WC Order cycle. Some store owners prefer to allow the users to place a quote request with only basic information such as first name, last name, email address and phone number. For this use case, I need to hide the address fields, state/province, country etc. I can do this easily using hooks in the Checkout page created using shortcodes. I'd like to achieve the same with blocks as well. |
Beta Was this translation helpful? Give feedback.
-
This sounds really good! As a payment and shipping method plugin developer mainly in the Nordics, a lot of our integrations are iframes and web components that want to replace parts of (or the entire) checkout. For example, Klarna Checkout, Payson Checkout and Nets Easy. The main struggle we have had with making support for the Checkout blocks is that there is no good way for us to use the existing blocks and replace the existing fields with the iframe or web component from the payment provider. And the best solution we have come up with so far is that we have to hide or remove the input fields in the frontend with JavaScript/CSS. The proposal here would make that much more stable, and consistent, and would not require us to take what themes or other plugins might do as well with the same elements. For our use cases with payment plugins, we would need to be able to remove both shipping and billing fields, potentially all of them. Ideally, we would want to keep any custom fields that are added using other plugins, since they might not be supported by the payment provider themselves. For the shipping plugins, almost all of them require an input of country and postcode at a minimum. But some might also need extra address data such as city and address lines for things like home delivery, or to be able to locate a pickup point agent. However, some of our shipping plugins also have a widget that would have their own input fields that could replace the existing fields in the WooCommerce block. One question though, if these fields are removed by us, but we still want to maintain good support with other 3rd party plugins, would the payment method/shipping method plugin be able to integrate well directly in the frontend? Or would we need to make updates to the cart using the store API directly? |
Beta Was this translation helpful? Give feedback.
-
I have a small plugin that eliminates the address fields if the cart total is $0. |
Beta Was this translation helpful? Give feedback.
-
One of our plugins, available at this link, assists customers in retrieving their current address from the map and automatically populating the address field. Essentially, it functions as a reverse geocoding plugin. We categorize the following fields as more pertinent to contact details rather than the address:
On the checkout page, we conceal the following fields and fetch the data from the Google API, mapping it to the corresponding fields:
This process applies to both billing and shipping addresses. For a quick demonstration, you can check out our premium demo here. |
Beta Was this translation helpful? Give feedback.
-
It doesn't hurt to see what big brands do. For example, this is from Nike.com USA: Notice Nike USA doesn't show billing address (maybe on the final step it does). I build website for Taiwan sellers (sell to Taiwan buyers). Billing address is a foreign concept here, I wish to have an option to remove all components associated with billing address, which I can't at this time. Also, I wish to remove State/County field because it's not applicable to Taiwan. Typo in docPayment Method Integration for the Checkout Block: It's been a while but nobody corrected this typo. The biggest Taiwan payment processor (ecpay.com.tw) told me they can't integrate checkout block at this time. I wonder if "not able to integrate" is a global issue or an edge case of mine? Thanks. |
Beta Was this translation helpful? Give feedback.
-
Quite a specialized corner case, but here you go:
Atm the system more or less works, but there is a bit of mismatch - in the end it would probably be better if we could drop all existing "shipping address" fields and replace them with the custom fields. We still would have a problem for users trying to place an order with multiple subs for multiple boats though, as shipping/custom fields are all per-order, whereas in theory we'd need them to be per-product-sold |
Beta Was this translation helpful? Give feedback.
-
I'm a developer and this is a real life scenario from a client site: Modification: All billing core fields except name & email are removed. No shipping address required. |
Beta Was this translation helpful? Give feedback.
-
I routinely remove the telephone field from all sites that sell only digital goods. I have never needed to contact customers by telephone (rather than email), and when I used to collect it privacy-conscious customers asked why I needed it. And under European data protection legislation, it's now illegal to process or store personal data without a legitimate reason anyway - arguably stores that never honestly intend to telephone their customers thus cannot legally gather this field. |
Beta Was this translation helpful? Give feedback.
-
A: I have a plugin that can generate receipts instead of invoices after a sale. This way i only need to collect the e-mail address and name from the customer. |
Beta Was this translation helpful? Give feedback.
-
I think it is necessary to be able to include fields or let other plugins do it as it was done before. |
Beta Was this translation helpful? Give feedback.
-
I have tried removing billing fields but found I couldn't do so unless I switched to legacy checkout page. I accept only crypto in my store as we are a Web3 education platform. This means I don't need billing data at all except email. Could we include the ability to remove billing details when certain payment gateways are selected? I am using Coinbase Commerce to accept payments and want to make my checkout flow as frictionless as possible. We only sell digital products for now which get sent to the user's wallet. |
Beta Was this translation helpful? Give feedback.
-
As we're gearing up our effort to add the ability to introduce additional fields in Checkout [discussion, tracker issue], we also want to understand your needs for removing or editing fields in Checkout.
In this case, we're looking for feedback from 3 groups of people:
When we say core fields, we mean the following set of fields:
Fields labels, position, requirement, and visibility is controlled on a default set, and overridden on a country by country basis. For example, this is the menu for US vs Japan vs United Kingdom:
When we say edit, it means either changing label, position or requirement. When we say remove, it means taking this field out of the flow completely, it will not be shown to the shopper.
Questions
We would like to understand the following:
Beta Was this translation helpful? Give feedback.
All reactions