> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mylisting.club/llms.txt
> Use this file to discover all available pages before exploring further.

# WooCommerce

> Practical storefront and admin improvements for MyListing websites.

## Smart Coupon Links

Let shoppers open a special link and have their WooCommerce discount added to the cart automatically.

Running a sale by email, social post, or ad usually means sending people to your site and hoping they remember to enter a code at checkout. Many do not.

**Smart Coupon Links** is part of **MyListing Pro**, in the **WooCommerce** module. Turn it on, and any link with your discount code in the URL will apply it for the shopper. They land on your site, browse, add items, and the discount stays with them.

You can build these links by hand or use [Link Management](/link-management) **→** Link Generator **→ Coupon** to create them for you.

## Prioritize Checkout Country

Checkout country dropdowns can be long. If most of your customers are in one country, making them scroll and select it every time adds friction.

Enable **Prioritize Checkout Country,** pick a country from the dropdown, and save. That country moves to the top of billing and shipping country lists. Guests without a saved address see it already selected. Returning customers with a saved country on their account are not changed.

## Display "Free" Instead of "\$0" for Free Products

For WooCommerce products that have no cost, this setting replaces \$0 with the word "Free." This accommodates situations where "Free" reads better than \$0.

## Autocomplete Order Status

Automatically move paid WooCommerce orders to **Completed**, without manual status updates in the admin.

On many MyListing sites, customers buy listing packages or subscriptions that do not require shipping or manual fulfillment. WooCommerce still places those orders in **Processing** after payment. **Autocomplete Order Status** closes that gap: paid orders skip the extra admin step and land in **Completed** as soon as payment is confirmed. On many MyListing sites, customers buy listing packages or subscriptions that do not require shipping or manual fulfillment. WooCommerce still places those orders in **Processing** after payment. Autocomplete Order Status closes that gap: paid orders skip the extra admin step and land in **Completed** as soon as payment is confirmed.

**Highlights**

* **Complete on payment**: Orders are marked as **Completed** when WooCommerce fires the payment-complete event and the order is paid.
* **Background backfill**: A recurring job (every 5 minutes) finds paid orders that are still in Processing, On Hold, Pending, or Cancelled and completes them (10 orders per run).
* **Subscription-friendly**: Applies to all paid orders, including subscription parent and renewal orders.
* **Opt-in**: Disabled by default; enable only when you want automatic completion.

**Frequently Asked Questions (Autocomplete Order Status)**

<AccordionGroup>
  <Accordion title="Does this feature replace a separate auto-complete plugin?">
    Yes
  </Accordion>

  <Accordion title="Will unpaid orders be marked Completed?">
    No, only orders WooCommerce considers **paid** are updated.
  </Accordion>

  <Accordion title="What happens to orders already in Processing when I enable the setting?">
    New payments complete immediately. Existing paid orders in eligible statuses are picked up by the background job (within a few minutes, 10 orders per run until the queue is cleared).
  </Accordion>

  <Accordion title="Does it work with WooCommerce Subscriptions?">
    Yes, paid subscription-related orders are included.
  </Accordion>

  <Accordion title="Is the setting on by default?">
    No. **Autocomplete Order Status** is unchecked until you turn it on.
  </Accordion>

  <Accordion title="When should we use this feature, and when should we not use it?">
    **Good fit:**

    * You sell **virtual products** with no shipping requirements.
    * You use **WooCommerce Subscriptions** and want renewals and package orders completed without manual admin work.
    * You  use a separate auto-complete plugin and want to remove it.

    **Think twice if:**

    * You sell **physical products** that must be packed and shipped before completion.
    * Your workflow relies on keeping orders in **Processing** for fulfillment, invoicing, or third-party integrations.
    * You use **Cash on Delivery**, **BACS**, or other gateways that leave orders unpaid until you confirm payment manually, as those orders will not auto-complete until WooCommerce marks them as paid.
  </Accordion>
</AccordionGroup>

## **Billing Email Column**

Adds a **Billing Email** column to various WooCommerce admin tables so you can conveniently see customer emails without needing to open each order.

There are additional quality-of-life improvements, such as being able to sort orders and subscriptions by email address and the ability to click an email address to start drafting an email.

**Settings**

| **Setting**                                        | **What it does**                                                  |
| :------------------------------------------------- | :---------------------------------------------------------------- |
| Enable Billing Email Column in Orders Table        | Shows billing email on **WooCommerce → Orders**                   |
| Enable Billing Email Column in Subscriptions Table | Same column on the Subscriptions list (WooCommerce Subscriptions) |
| Make Billing Email Column Sortable                 | Sort A–Z / Z–A by billing email                                   |
| Show Email as Clickable Mailto Link                | Renders emails as `mailto:` links                                 |

## Checkout Field Manager

### Hide Fields

Hide select fields from your checkout page. This is useful when you want a shorter, simpler checkout to improve the user experience or to simply hide fields that aren't relevant to your store.

### Custom Labels

Easily rename any checkout field without writing custom code.

Turn "Phone" into "Mobile Number." Change "Town / City" to "City." Use wording that your members are already familiar with. Small label changes can reduce confusion and help people finish checkout with more confidence.

### Custom Required/Optional Status

Set a field to **Required** when you always need an answer. Set it to **Optional** when customers can skip it. Leave it on WooCommerce defaults when you want normal store behavior, including country-based rules for address fields.

When you mark a field as optional, the required asterisk is removed so the form matches what you expect.

**Frequently Asked Questions (Checkout Field Manager)**

<AccordionGroup>
  <Accordion title="Can I hide custom fields added by other plugins?">
    No, Checkout Field Manager only controls classic WooCommerce checkout fields.
  </Accordion>

  <Accordion title="Will this feature work with Elementor checkout widgets or WooCommerce Blocks?">
    No, it's built for classic shortcode checkout only, but do [submit a feature request](https://pro.mylisting.club/community/space/mylisting-pro-feature-requests/home) in the MyListing Pro Community if need more options.
  </Accordion>
</AccordionGroup>

## Custom URL Redirects

### Redirect by Purchased Product

Send buyers exactly where you want them after checkout. Set a redirect URL on any WooCommerce product: a page on your site, an external funnel, or a specific section on a page.

**Highlights**

* Set a different destination per product
* Set a redirect priority per product
* Pick a WordPress page or paste any URL
* [Add Listing Flow](/add-listing-flow) takes precedence if enabled

**Frequently Asked Questions (Redirect by Purchased Product)**

<AccordionGroup>
  <Accordion title="How do we configure this?">
    1. Edit a WooCommerce product
    2. On the **General** tab, find **Custom Redirect URL**
    3. Choose a page from the dropdown **or** enter a full URL below it
    4. Optionally set a redirect priority
    5. Save the product
  </Accordion>

  <Accordion title="Could you explain the redirect priority setting?">
    Redirect priority is only relevant when one order includes multiple products that each have a redirect URL. **The highest number wins.**
  </Accordion>
</AccordionGroup>

### **Redirect After Login**

Keep the user journey flowing instead of dumping everyone into their account page (My Account). Point customers in the direction you want them to go, the moment they sign in.

Off by default. Choose a page or enter a custom URL.

### **Redirect After Login by Role**

One global login redirect does not fit every audience. Send users where you want them to go, based on their user role (customer, subscriber, shop manager, etc.).

Off by default. Enable and set up redirects as desired. Choose a page or enter a custom URL.

If a user has multiple roles, the first matching role in the list wins.

**Frequently Asked Questions (Redirect After Login by Role)**

<AccordionGroup>
  <Accordion title="If a user has multiple roles, which role wins?">
    For most sites the answer is simple: each customer has one role (for example, “Customer”), so they always get that role’s redirect.

    If someone has **two or more roles** and you’ve set a redirect for more than one of them, then **only one redirect runs**.

    The role that "wins" is determined by the order in which WordPress stores the roles for a specific user account. **In practice, this means the following:**

    1. The role they had when the account was created **takes precedence**.
    2. Any extra roles added later (via a plugin or custom code) are accounted for in the order they were added.
  </Accordion>
</AccordionGroup>

### **Redirect After Registration**

Registration should feel like the start of a journey, not a dead end. Send new users straight to add a listing, complete their profile, view pricing, etc., instead of a generic account page.

Off by default. Choose a page or enter a custom URL.

### **Redirect After Checkout**

Set one fallback thank-you destination for orders that do not have a product-specific redirect. This is useful when most purchases should go to the same confirmation or next-steps page.

Off by default. Choose a page or custom URL. Per-product redirects still take priority when **Redirect by Purchased Product** is enabled. Add Listing Flow checkout redirects are not affected.

### **Redirect After Logout**

Control where users go when they sign out. Send them to your Explore page, a marketing page, etc., instead of leaving them on the account screen.

Off by default. Choose a page or enter a custom URL. This applies to logging out using the customer logout link in My Account.

## Combine Billing Address and Payment Methods Endpoints

WooCommerce splits account management across three separate pages: Account Details, Payment Methods, and Addresses. This adds friction, as users must click around the dashboard just to update a password, check a saved card, or fix a billing address.

MyListing Pro brings it all together on a single page (/my-account/edit-account). The My Account menu stays cleaner. Profile, payment, and address tasks live in one place. Setup is one checkbox in the WooCommerce module. This option is off by default, so existing sites keep their current layout until you choose to switch.

## Open Terms and Conditions In New Browser Tab

At checkout, WooCommerce links to your Terms and Conditions and Privacy Policy pages.

By default, clicking the Privacy Policy link opens in a new browser tab. **Conversely, clicking on the Terms and Conditions link opens a long text box within the checkout page, creating a poor user experience.**

MyListing Pro allows you to open your Terms and Conditions in a new browser tab to match the Privacy Policy behavior for consistency and to improve the user experience.

The setting is off by default. Enable it only when you want this behavior on your site.

## Hide Coupon Feature From Checkout

Adding the coupon feature to the checkout page adds extra clutter that many sites don't want.

**MyListing Pro allows you to hide the coupon field on the checkout page.** Customers can still apply coupons on the cart page.

## Hide Checkout Fields If No Payment Required

Free products and 100% discounts often leave customers staring at a full checkout form for an order that costs nothing.

**MyListing Pro lets you show a short billing section instead, with only the fields you pick.** Shipping, guest account signup, and paid orders behave as WooCommerce normally handles them.

Consider using this feature when you sell \$0 Listing Packages or other free products or coupons that bring the cart total to zero. This feature is disabled by default.

## Disable WooCommerce Related Products

Related products can distract shoppers on **Single Product** pages where you want a cleaner layout.

**MyListing Pro removes the related products grid below the product summary on every single WooCommerce product page with a single click.** This setting is off by default, so existing stores will continue to use the standard WooCommerce behavior until you enable it.

## Hide MyListing Header Cart Icon When Empty

The MyListing header cart icon is useful once a visitor has something in their cart. On many directory and marketplace sites, most visitors browse without buying right away, so an empty cart icon can add visual clutter without helping anyone.

**MyLising Pro fixes this**. When the cart has zero items, the header cart icon is hidden. As soon as a product, listing package, promotion, etc. is added to the cart, the icon appears.

The setting is **off by default**, so your site keeps the standard MyListing behavior until you enable it.

## **Frequently Asked Questions (WooCommerce Module)**

<AccordionGroup>
  <Accordion title="How do we configure this?">
    Once the module is enabled, activate the desired settings in just a few clicks.
  </Accordion>

  <Accordion title="Can we see this on a live MyListing website?">
    This is a back-end solution, so there’s nothing to see on the front end.

    Refer to the [MyListing Pro YouTube playlist](https://www.youtube.com/playlist?list=PLggJJkpjrMUbtAzIDmgHpVnyP6DUxuILT) to learn more about this module.
  </Accordion>
</AccordionGroup>
