> ## 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.

# Listing Packages

> Listing packages are the plans you sell so someone can publish listings on your site. MyListing adds three WooCommerce product types for this: Listing Package, Listing Subscription, and Promotion Package

## **What Are Listing Packages?**

A listing package is a WooCommerce product that becomes a plan. The plan decides how many listings someone can publish, how long those listings stay live, and which extras they include. Think of it this way:

* A **listing** is one entry on your site (one restaurant, one event, or one job).
* A **listing package** is the plan attached to that entry.
* A **user package** is the copy of that plan stored on the customer's account after checkout. MyListing uses the user package to count listings and apply the plan's rules. Paid listings use WooCommerce for checkout, orders, and (when you sell subscriptions) recurring billing. You still build the listing itself in MyListing.

## **The Three Package Types**

| **Product type** | **What the customer buys** | **When they use it** |
| :- | :- | :- |
| **Listing Package** | A one-time plan | During Add Listing, or when claiming a listing |
| **Listing Subscription** | A recurring plan (requires [WooCommerce Subscriptions](https://automattic.pxf.io/y2KbEN)) | During Add Listing, or when claiming a listing |
| **Promotion Package** | A timed boost for one published listing | From **My Listings**, after the listing is already live |

Listing Package and Listing Subscription products are the plans in the Choose a package step. Promotion Package products never appear there. They are a separate purchase that raises a published listing in search for a set number of days.

<Note>
  MyListing Pro's [Listing Packages](/listing-packages) module can cap how many plans sell, attach a priority level to each plan, pin selected plans to the front of the results, and style featured plan badges.
</Note>

## **Where Do You Manage Listing Packages?**

Setup spans four places.

### **Turn Paid Listings On**

Go to **WP Admin > Listings > Settings**. **Enable Paid Listings** connects WooCommerce listing products to the Add Listing feature. This option is on by default. When it is on, an account is always required to submit paid listings. On the same screen, review:

| **Setting** | **What it does** |
| :- | :- |
| **Require an account to submit listings** | Limits submissions to logged-in users. Paid listings require an account even when the feature is off. |
| **Require admin approval of all new listing submissions** | New listings will remain pending until they receive your approval. Default: on. |
| **Allow switching listing package** | Controls whether owners can change plans from My Listings and whether the switch needs approval. Default: **Users can switch without admin approval**. |
| **Listing Duration** | Days a listing stays active when the package does not set a duration. Default: 30. Leave blank for no expiration. The field placeholder reads Unlimited. |
| | |

**Allow switching listing packages;** there are three choices:

* **Users can switch without admin approval**
* **Users can switch, but a new listing with a new plan requires admin approval**. The original listing is unpublished while you review it.
* **Users cannot switch listing plans**

### **Create the Products**

Go to **WP Admin > Products > Add New**. Set the **Product data** to **Listing Package**, **Listing Subscription**, or **Promotion Package**. **Listing Subscription** is available only when WooCommerce Subscriptions is active. These product types are virtual, so checkout does not ask for a shipping address. Listing Package and Listing Subscription products are sold one at a time.

### **Choose Which Plans a Listing Type Can Use**

Go to **WP Admin > Listing Types**, edit a type, and open **General > Packages**.

### **Review What Each Customer Owns**

| **Screen** | **What you see** |
| :- | :- |
| **WP Admin > Users > Paid Listing Packages** | User packages created from listing package and listing subscription orders |
| **WP Admin > Users > Promotion Packages** | Active and expired promotion packages. The trash view is labeled **Expired**. |

## **Listing Package Settings**

Edit a **Listing Package** product. The package panel includes:

| **Setting** | **What it does** |
| :- | :- |
| **Listing limit** | How many listings can the customer post with this plan? Placeholder: Unlimited. |
| **Add listing limit by listing type** | Optional cap for one listing type. Those caps count toward the **listing limit**. The editor stops you when the type caps would pass the main limit. |
| **Listing duration** | Days each listing stays active. The placeholder is the site **listing duration**, which is 30 days by default. |
| **Feature Listings?** | Listings from this plan are featured: styled differently and sticky in search. The description reads: Feature this listing—it will be styled differently and sticky. |
| **Mark as verified?** | A verified badge appears next to the listing title. |
| **Use for Claim?** | The plan can be offered when someone claims a listing. |
| **Don't use for add listing?** | Hides the plan from Add Listing so you can keep it for claims. |
| **Disable repeat purchase?** | Each customer can buy this product once. Useful for a free plan. |
| **Is claimable?** | Someone else can still claim listings created with this plan. |
| | |
| | |

The product name is the plan name on the pricing card. The product short description sits under the price.

A price of 0 skips checkout, so a free plan can publish without payment. That skip does not run when the **Disable repeat purchase?** option is checked. is checked. In that case the customer still goes through checkout, and after they have bought it, the card says, "**This item can only be purchased once."**

## **Listing Subscriptions**

A **Listing Subscription** uses the same package settings as a listing package, plus WooCommerce subscription billing (price, billing period, trial, and sign-up fee). For a directory you plan to run long-term, subscription plans are the stronger default. Owners can move between plans, and listings can stay online for as long as the subscription is paid. A one-time Listing Package has to be renewed by hand when it expires.

### **Subscription Type**

**Subscription Type** controls what renews. Choose it before you publish the product.

| **Option** | **What happens** |
| :- | :- |
| **Link the subscription to posted listings (renew posted listings every subscription term)** | The listing stays active while the subscription renews. When the subscription ends or is cancelled, the listing expires. If the customer reactivates, the listing can publish again. A free trial works the same way: at the end of the trial the listing expires until the subscription is paid. The expiry box on the listing reads: Listing will expire when the subscription ends. |
| **Link the subscription to the package (renew listing limit every subscription term)** | Each renewal resets the package's listing count to zero. Example: a limit of 10 on a monthly plan lets the customer post 10 listings every month. Listing duration is separate. When the subscription ends, listings already posted stay up until that duration ends, and the customer cannot post more until they subscribe again. |

### **Upgrades and Downgrades**

Owners can move between Listing Subscription products when WooCommerce allows subscription switching. Go to **WP Admin > WooCommerce > Settings > Subscriptions**. Enable switching **Between Grouped Subscriptions** when your plans live in a grouped product. That is the usual setup for monthly and annual tiers, or for Basic, Featured, and Premium as a set. When switching is allowed, a published listing shows **Upgrade** on **My Listings**. The action title reads **Upgrade or Downgrade**. The customer completes the switch in WooCommerce. MyListing then applies the new plan. If switching is off, owners use **Switch Plan** instead, which sends them back through package selection for that listing.

## **Promotion Packages**

A promotion is a timed boost you sell after a listing is published. It does not replace the listing plan. Create a product and set **Product data** to **Promotion Package**.

| **Setting** | **What it does** |
| :- | :- |
| **Promotion duration (in days)** | How long the boost lasts. Placeholder: 14. The product must have a duration greater than 0, or it will not appear in the promote dialog. |
| **Promotion priority** | The ranking number applied to the listing. Placeholder: 2. Featured listings use 1. A higher number ranks first. |
| MyListing checks for expired promotions twice a day. When a promotion ends, the listing returns to the priority it had before the boost. | |
| You can sell more than one promotion product (for example, priority 2, 3, and 4) when you want several boost levels. One product at 14 days and priority 2 is enough to start. | |
| See [Listing Priority](/listing-priority-101) for how Normal, Featured, Promoted, and Custom ranking work in Explore and listing feeds. | |

## **Assign Plans to a Listing Type**

Paid listings can be on for the whole site and off for one listing type. Go to **WP Admin > Listing Types**, edit the type, and open **General > Packages**.

| **Control** | **What it does** |
| :- | :- |
| **Enable paid listing packages** | Turns the package step on for this type. The description reads: Set what packages the user can choose from when submitting a listing of this type. |
| **List of packages** | Every published **Listing Package** and **Listing Subscription**. Click one to add it. Promotion packages are not in this list. |
| **Create New Product** | Opens **Products > Add New** in a new tab. |
| **Label** | Plan name on the card for this type. Leave blank to use the product name. |
| **Description** | Feature list for this type. Put each feature on its own line. Leave blank to use the product description. |
| **Featured?** | Highlights that card. The description reads: Featured packages will be highlighted. |
| Drag plans to set the order on the card row. | |
| | **Featured?** on this screen only highlights the pricing card. **Feature Listings?** on the product is what marks the listing itself as featured in search. |

## **What Listing Owners See**

### **The Choose a Package Step**

Owners see **Choose a package** when **Enable Paid Listings** is on, **Enable paid listing packages** is on for that type, and the URL has not already skipped the step. Each card shows the plan name, price, short description, and feature list.

| **Button** | **When it appears** |
| :- | :- |
| **Buy Package** | The customer does not already own this plan |
| **You already own this package** | They have a user package for this product, with listings still available |
| **Use Available Package** | They apply an owned package and skip a new purchase |
| **Or buy new** | They own one and can still buy another |
| **( Current plan )** | Shown on the plan already assigned, during a switch |
| | |
| | |
| | |

The Add Listing widget controls the row: **Show 3 packages per row** or **Show 4 packages per row**.

A pricing page can send people in with a plan already chosen. Add the **MyListing > Package Selection** widget in Elementor. For each item, set **Choose package**, optional **Featured?**, and where the button should go (**Submit to Page** or **Submit to URL**). Those buttons open Add Listing with that product selected.

A front-facing pricing page is worth building. It is where people compare limits and features before they start the form.

### **My Listings Actions**

On **My Account > My Listings**, owners may see:

| **Action** | **What it does** |
| :- | :- |
| **Switch Plan** | Opens package selection for a published listing |
| **Upgrade** | Opens WooCommerce subscription switching when that is enabled |
| **Relist** | Brings an expired listing back, with or without a new plan |
| **Promote** | Opens **Promote Listing** for a published listing |
| **Promoted** | Replaces **Promote** while a promotion is active |
| | |

**Promote** lists promotion products they can buy and **Owned packages** they have not used yet. If none exist, the dialog reads: There aren't any promotion packages available at the moment.

### **Promotions in My Account**

**My Account > Promotions** lists active boosts, the order, and the expiry line **Expires in:**. Owners can **Cancel Package**. Example URL: `https://yoursite.com/my-account/promotions` If the account has no promotions, the page reads: You don't have any promoted listings yet.

## **Different Fields for Different Plans**

A cheaper plan can collect fewer details than a premium plan. Edit the listing type, open **Fields**, and expand a field (Title is excluded). Turn on **Enable package visibility**. The rule reads **Show this field if**, then **Listing Package**, **is equal to**, and the plan (or **No Package**). The same **Enable package visibility** control exists on the **Raw** and **Google Ad** content blocks: **Show this block if**. On **Single Page > Similar Listings**, **Enable package visibility?** limits that section to plans whose WooCommerce product IDs you list under **Display Similar Listings for Package IDs**. Listings with no package are included when you add `no-package`.

## **How a Purchase Becomes a User Package**

1. The owner picks a plan, fills in the listing, and previews it.
2. A paid plan goes to WooCommerce checkout. A free Listing Package with a price of 0 can skip checkout.
3. When the order is paid, MyListing creates a user package and assigns it to the listing.
4. The listing is published or left pending, based on **Require admin approval of all new listing submissions**.

If **Listing limit** is greater than 1, the owner can use that same package again until the count reaches the limit. On the package step, the user selects **Use Available Package**.

Go to **WP Admin > Users > Paid Listing Packages** to view these records. Open one to edit **Package Details** and **Payment Details**.

| **Field** | **What it stores** |
| :- | :- |
| **Listing Limit** | How many listings this user package allows. Placeholder: Unlimited. |
| **Listing Count** | How many listings have already been posted with it. |
| **Listing Duration** | Days those listings stay active. Placeholder: Default. |
| **Feature Listing** | Marks listings from this package as featured. |
| **Mark verified** | Marks those listings as verified. |
| **Use for Claims** | The owner can use this package to claim other listings. |
| **Is claimable?** | Listings on this package can still be claimed. |
| **User**, **Product**, **Order** | Who owns it, which product it came from, and which order or subscription paid for it. |

The screen notes: Editing these values won't affect existing listings, only new listings added with this package.

**Statuses:**

| **Status** | **Meaning** |
| :- | :- |
| **Active** | The package can still be used |
| **Full** | **Listing Count** has reached **Listing Limit** |
| **Inactive** | The package is not available |
| **Order Cancelled** | The WooCommerce order was cancelled |

To give someone a plan without sending them through the public form, create a completed order for that customer that contains the product, then confirm the user package under **Users > Paid Listing Packages**. On the listing, click **Switch Package**, choose **Select Package**, and click **Apply**.

For a Listing Subscription, also create an active subscription tied to that order before you add the user package. Set **Subscription Status** to **Active**, set the parent order, and add the same subscription product.

## **Claims and Packages**

Claims are a separate flow from Add Listing. Someone takes over a listing that already exists.

* **Use for Claim?** puts the product on the claim package step.
* **Don't use for add listing?** keeps that product off the public Add Listing form.
* **Is claimable?** lets listings created with the plan still be claimed later. Listings that have no package assigned can be claimed when claims are enabled. Assigning a paid package, with **Is claimable?** on, lets you hand a stronger plan to a listing you added yourself and still let the real owner claim it. Enable claims under **WP Admin > Listings > Settings > Claim Listings**, and point **Claim Listing Page** at a page that contains `[claim_listing]`.

## **How the Pieces Fit Together**

A practical example for a local business directory:

1. **Listings > Settings**: **Enable Paid Listings** on, accounts required, approval on, **Listing Duration** 30.
2. **Products**: a free **Listing Package** (price 0, limit 1, **Disable repeat purchase?** on) and a monthly **Listing Subscription** (limit 1, **Feature Listings?** on, **Mark as verified?** on, **Subscription Type** linked to posted listings).
3. **WooCommerce > Settings > Subscriptions**: switching enabled **Between Grouped Subscriptions**, with the paid tiers in one grouped product.
4. **Listing Types > Business > General > Packages**: both plans added. The subscription card has **Featured?** on, and its **Description** lists one perk per line.
5. **Fields**: logo, gallery, and website use **Enable package visibility** so they show only for the subscription.
6. **Products**: a **Promotion Package**, 14 days, priority 2.
7. Owner path: pick Business, choose the subscription, submit details, pay, wait for approval. Later they click **Promote** on **My Listings** for a two-week boost.

## **Common Package Setups**

| **Site idea** | **Typical setup** |
| :- | :- |
| Free community directory | **Enable paid listing packages** off for that type. No checkout step. |
| Simple paid directory | One or two **Listing Package** products. Free plan limited to one purchase. |
| Recurring directory | **Listing Subscription** products, switching between grouped subscriptions, listings renewed with the subscription. |
| Featured placement included in the plan | **Feature Listings?** on the paid product. |
| Extra boost sold later | A separate **Promotion Package**. |
| Claim-only plan | **Use for Claim?** on, **Don't use for add listing?** on. |
| Different forms per plan | **Enable package visibility** on premium fields. |
| | |

There is no single required setup. One-time packages are enough for a small site. Subscriptions are the better fit when you want renewals and self-serve upgrades.

## **Helpful Tips**

* **Turn packages on per listing type.** Site-wide **Enable Paid Listings** is not enough. Each type needs **Enable paid listing packages**, plus the products you want on that type.
* **Set Subscription Type on purpose.** The two options renew different things: the live listing or the number of listings the customer can post.
* **Keep Featured and Promoted separate in your pricing copy.** **Feature Listings?** lasts as long as the plan applies. A **Promotion Package** lasts for the number of days on the product.
* **Highlight the card you want people to choose.** **Featured?** on the listing type package is the pricing-card badge. It does not change search ranking.
* **Write features as separate lines.** On the listing type package, each line in **Description** becomes a bullet. Leave it blank to fall back to the product description.
* **Cap the free plan.** Set **Listing limit** to 1 and turn on **Disable repeat purchase?** so the free product cannot be bought again.
* **Hide claim plans from Add Listing.** **Don't use for add listing?** keeps claim products off the public package step.
* **Test with a second user.** Buy a plan, submit a listing, and confirm the row under **Users > Paid Listing Packages**. Then use **Use Available Package** for a second listing if the limit allows it.

## **Quick Reference**

| **I want to...** | **Go to...** |
| :- | :- |
| Turn paid listings on or off | **Listings > Settings** → **Enable Paid Listings** |
| Create a one-time plan | **Products > Add New** → **Listing Package** |
| Create a recurring plan | **Products > Add New** → **Listing Subscription** |
| Choose listing renewal vs. limit renewal | Edit the subscription → **Subscription Type** |
| Let owners upgrade or downgrade | **WooCommerce > Settings > Subscriptions** → switching **Between Grouped Subscriptions** |
| Create a timed boost | **Products > Add New** → **Promotion Package** |
| Choose plans for one listing type | **Listing Types** → **General > Packages** |
| Rename a plan or highlight its card | **Listing Types** → **General > Packages** → **Label**, **Description**, **Featured?** |
| Show a field only on one plan | **Listing Types** → **Fields** → **Enable package visibility** |
| See what a customer owns | **Users > Paid Listing Packages** |
| Give a customer a plan yourself | Completed order, then **Users > Paid Listing Packages**, then **Switch Package** on the listing |
| See active and expired boosts | **Users > Promotion Packages** |
| Promote a listing for a customer | **Users > Promotion Packages** → **Promote a Listing** |
| Let owners buy a boost | **My Account > My Listings** → **Promote** |
| Change whether owners can switch plans | **Listings > Settings** → **Allow switching listing package** |
| Build a public pricing page | Elementor → **MyListing > Package Selection** |

## **Where to Go Next**

* [Add Listing Flow](/add-listing-flow-101): the **Choose a package** step, pricing-page links, and what happens after checkout.
* [WooCommerce](/woocommerce-101): store settings, payments, and how listing products fit the shop.
* [Listing Priority](/listing-priority-101): Featured plans, promotion priority numbers, and Explore sorting.
* [Listing Types](/listing-types-101): fields, single-page blocks, and the **Packages** tab.
* [Listing Packages](/listing-packages): MyListing Pro purchase limits, plan priority, pinned plans, and featured badges.
* [Pricing Table Switcher](/pricing-table-switcher): monthly and annual prices on the same pricing tables.
* [MyListing Club mega guide](https://mylisting.club/build-online-business-using-mylisting-theme/): Listing Packages, Paid Listing Packages, and subscription switching in a full site build.

## **Common Questions**

* **Do I need WooCommerce?** Yes, if any listing type sells a plan or a promotion. Leave **Enable paid listing packages** off on every type when the directory is free.
* **Why is there no package step?** **Enable Paid Listings** is off under **Listings > Settings**, or **Enable paid listing packages** is off for that type under **Listing Types > General > Packages**.
* **Why does my plan not show on Add Listing?** The product must be a **Listing Package** or **Listing Subscription**, it must be added on that type's **Packages** tab, and **Don't use for add listing?** must be off. Promotion products never appear on this step.
* **What is the difference between a Listing Package and a Listing Subscription?** A Listing Package is a one-time purchase. A Listing Subscription bills on a schedule and needs WooCommerce Subscriptions. Use **Subscription Type** to decide whether each renewal keeps listings online or refills the listing limit.
* **What is the difference between Feature Listings? and a Promotion Package?** **Feature Listings?** marks listings from that plan as featured for as long as the plan applies. A **Promotion Package** is a separate product the owner buys later, for a set number of days, at the priority you set (placeholder 2).
* **What is the difference between Featured? and Feature Listings??** **Featured?** on the listing type highlights the pricing card. **Feature Listings?** on the product changes the listing's rank in search.
* **Why did a free plan still go to checkout?** A price of 0 skips checkout only when **Disable repeat purchase?** is off. With that box checked, the customer checks out once, then sees **This item can only be purchased once.**
* **Can one plan allow different counts per listing type?** Yes. Set **Listing limit**, then use **Add listing limit by listing type**. The per-type numbers cannot add up to more than **Listing limit**.
* **Can I show a gallery only on the premium plan?** Yes. On that field, enable **Enable package visibility** and set **Show this field if** the **Listing Package** **is equal to** the premium product.
* **How do owners change plans?** From **My Listings**, **Switch Plan** opens package selection. **Upgrade** appears on a published subscription listing when WooCommerce subscription switching is enabled. **Allow switching listing package** can block switching or require your approval.
* **Can I assign a plan without the customer checking out?** Yes. Create a completed order (and an active subscription, for a Listing Subscription), confirm the user package under **Users > Paid Listing Packages**, then use **Switch Package** on the listing.
* **What happens when a promotion expires?** The listing returns to its previous priority. The package moves to the **Expired** view under **Users > Promotion Packages**. Filenam


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.