This extension combines your WPAdverts with WooCommerce, so WooCommerce can accept payments for Ads posting. If you are already familiar with WooCommerce you are good to go, just enable this integration, create Adverts Listing products and start accepting payments. Easy.

Plugin Version: 2.0.0
 
WordPress plugin WP Adverts WooCommerce Integration

Plugin Features

The plugin provides a seamless integration between WP Adverts and WooCommerce, offering a payment add-on tailored for advertising purposes. By combining the functionalities of WP Adverts and WooCommerce, users can easily manage and process payments related to their advertising efforts within the WordPress platform. This integration streamlines the payment process and enhances the overall user experience for handling advertising transactions on WP Adverts.

By leveraging the capabilities of WooCommerce, WP Adverts WooCommerce Integration empowers users to create a robust advertising system within their WordPress website. This integration allows for the smooth handling of payment transactions, enabling advertisers to efficiently manage their advertising campaigns through the familiar WooCommerce interface. With this functionality, businesses and website owners can effectively monetize their platforms by offering advertising space and collecting payments seamlessly.

With the seamless integration offered by the plugin, website owners can easily set up and manage their advertising inventory. The plugin enhances the overall functionality of WP Adverts by providing a dedicated solution for processing payments related to advertising services. This integration not only simplifies the payment process but also ensures a secure and reliable system for handling financial transactions within the advertising environment.

Furthermore, the WordPress plugin contributes to enhancing the overall monetization strategy of websites by enabling easy management of ad placements and payments. The integration of WP Adverts with WooCommerce adds a layer of flexibility and scalability to the advertising system, allowing users to customize and optimize their monetization strategies effectively. This integration opens up new revenue streams for website owners and advertisers, ultimately contributing to the growth and success of their online ventures.

In conclusion, the seamless integration between WP Adverts and WooCommerce through this plugin offers a comprehensive solution for managing advertising payments within the WordPress environment. By combining the strengths of both platforms, users can benefit from a robust and user-friendly system for handling advertising transactions. This integration not only simplifies the payment process but also enhances the overall efficiency and effectiveness of advertising campaigns on WP Adverts, making it a valuable addition for website owners looking to monetize their platforms effortlessly.

Specifications:

Release date: 12-07-2019
Last updated: 15-05-2025
Type: Paid
License: GPL 
Subject: e-Commerce Specific for WPAdverts
Compatibility: W5.x W6.x
Includes: Plugin
Language packs: English
Developer: WP Adverts

Rating:
4.4347826086957 1 1 1 1 1 (207 Votes)

Download by subscription!

You need to log in on the site and purchase a club subscription!

Share with your friends!

 

How to Set Up WP Adverts WooCommerce Integration for Paid Listings

WP Adverts WooCommerce Integration is not just about adding payments to a classifieds site. Its real job is more nuanced: it connects WPAdverts listing publication workflows with WooCommerce products, cart and order handling, account pages, and payment flows. This guide focuses on practical implementation: how to prepare the site, which products to create, how to configure listing packages, how to verify publication after payment, and where to look when a listing gets stuck in the wrong status.

This guide is written for a classifieds site owner, webmaster, or developer who already understands the basic role of WPAdverts and WooCommerce but wants to build a reliable monetization setup. We are not going to restate the product's top-level description. Instead, we will break down the workflow step by step: the user chooses a listing type, WPAdverts maps that choice to a WooCommerce product, the order moves through the cart, and once payment is complete the listing receives the correct status while the user sees their remaining package balance or renewal option.

WP Adverts WooCommerce Integration guide cover showing the listing to product to order to publication chain
This diagram shows the core idea behind the integration: a listing becomes a paid WooCommerce product, and the final status is passed back to WPAdverts.

We also pay close attention to limitations. The extension has clear strengths, but it is not the right fit for every project. If you need a simple free classifieds board, WooCommerce may be an unnecessary extra layer. But if the site already uses WooCommerce, payment gateways, order tracking, email notifications, and customer accounts, this integration helps you avoid building a separate payment system inside the classifieds workflow.

How Listings, Products, and WooCommerce Orders Work Together

The concept behind the extension is straightforward: a paid listing becomes a special WooCommerce product type. The administrator creates one or more products under Products, selects Single Listing (WPAdverts) for a new listing or Renew Listing (WPAdverts) for a renewal, sets the display duration, and enables featured placement if needed. After that, the user sees the pricing option in the listing submission form or in their listing management panel.

This setup is convenient because WooCommerce handles everything payment-related: the cart, checkout, order statuses, payment gateways, store emails, the account page, and admin-side order review. WPAdverts remains the listing system: it stores listing entries, manages publication duration, marks unpaid listings, and links listings to orders or listing packages.

The main practical rule: do not try to configure listing payments only inside the WPAdverts form. In this extension, pricing plans live as WooCommerce products. If the product is unpublished, hidden, assigned the wrong type, or missing the required duration, the user will not see the expected listing option in the form.

What happens when a new listing is submitted

The user opens the page with the listing submission block or the legacy shortcode [adverts_add]. If you have published products of the type Single Listing (WPAdverts), the form displays listing options in a pricing group. From there, several paths are possible:

  1. The user chooses a free plan if one has been created with a zero price. The listing then follows the standard WPAdverts publication or moderation flow.
  2. The user chooses a paid plan. After the preview step, the extension adds the matching product to the WooCommerce cart and sends the user to payment.
  3. The user uses a previously purchased listing package. In that case, instead of a price they see the number of available postings left, and the new listing uses one remaining slot from that package.

When the WooCommerce order reaches the Completed status, the linked listing is published or moved into whatever state your moderation rules require. If moderation is enabled for paid listings, payment alone does not necessarily make the listing immediately visible: it may still wait for admin approval. That is not a bug if the policy is enabled intentionally.

How this differs from the built-in WPAdverts payment module

WPAdverts includes a built-in Payments module, but the official documentation warns that it should be disabled when using WooCommerce Integration. The reason is clear: both systems are responsible for listing payments and can conflict over status handling, payment history, and publication. If you leave both layers active, troubleshooting becomes much harder because it is no longer clear which system is supposed to move the listing from pending payment to published.

Quick check before setup: in Classifieds - Options, keep WooCommerce Integration enabled and disable the built-in Payments module if your goal is to accept listing payments through WooCommerce.

The extension is especially useful when the site already relies on WooCommerce as its payment hub. For example, a club website can sell regular products and also accept payments for member listings. A real estate agency site can manage paid listing packages through the familiar My Account page. A niche job board can offer different pricing tiers for different field and image limits if it also uses Custom Fields.

Who This Extension Fits, and When It Is Overkill

WP Adverts WooCommerce Integration is worth considering when listings are part of a paid workflow. That does not necessarily mean a large marketplace. It is enough to have a situation where you need to charge for publishing, renewing, featuring, or packaging listings while using WooCommerce payment methods that are already set up.

Strong use cases for implementation

The integration works well on projects where the user gets a clearly defined paid outcome: the listing becomes visible, gets renewed, receives featured placement, or can be published as part of a prepaid package. In those projects, it is important not only to collect payment, but also to make it clear to the user what exactly they are paying for and where they manage that outcome later.

  • A paid classifieds board where each listing has a publication term and may go through moderation.
  • A niche service directory where a basic listing is free, but an expanded or featured listing is paid.
  • A site with repeat posting where sellers would rather buy a package for several listings and see how many placements they have left.
  • A WooCommerce-based project where payment gateways, emails, taxes, and order handling are already configured, so there is no desire to build separate payment logic for listings.
  • A platform with user roles where publication is available to registered sellers and payment records should remain inside WooCommerce.

When another path makes more sense

The extension may be excessive if the site does not charge for listings. For a simple local board, an internal company exchange, or a free community site, the basic submission form and moderation are enough. WooCommerce will add a cart, orders, a checkout page, store emails, and extra settings that you will then need to maintain.

The integration also does not replace a full multi-vendor marketplace with seller commissions, disputes, payouts, and complex buyer-seller workflows. It monetizes listing publication through WooCommerce. If your business model requires selling actual products through the listings, tracking commissions, and handling orders between users, you should evaluate broader marketplace solutions. That is a different class of problem.

How to tell whether WooCommerce-based payments are the right fit
Situation Is WP Adverts WooCommerce Integration appropriate? What to verify first
You need to charge for publishing a listing. Yes, that is the extension's core use case. Whether WooCommerce is installed, checkout works, and the moderation policy is clear.
You need to sell a package with several listing credits. Yes, if the product is configured with more than one placement. Users need to be tied to an account so the package can be applied correctly.
You need a simple free classifieds site. Probably not. Basic WPAdverts, moderation, and form protection are usually enough.
You need a marketplace where products are sold through listings. Not as a standalone solution. Review marketplace-specific features, commissions, payouts, and seller roles.

The most common early mistake is treating the extension like a "payment button" for the listing form. In practice, it is a bridge between two systems. You need to configure both sides: WooCommerce handles the products and the order, while WPAdverts displays pricing plans, packages, and listing status.

What to Check Before Installation and Initial Activation

Before installing the extension, make sure the site is ready for a payment-based workflow. A paid listing touches more areas than a standard submission: account pages, registration, cart behavior, emails, order statuses, caching, moderation, and access permissions. The earlier you verify those dependencies, the fewer false errors you will see during test orders.

Required components

The site should have WordPress, WPAdverts, and WooCommerce active. The extension itself requires the WooCommerce Integration package from the WPAdverts bundle where it is included. There is no need to describe this to the end user as a separate purchase inside the setup guide: for documentation purposes, it is enough to understand that the extension must be installed and activated like a standard WordPress ZIP plugin.

  • WPAdverts should be able to create and display listings correctly without WooCommerce. First verify normal submission, the listing archive, and the management page.
  • WooCommerce should have working cart, checkout, and My Account pages. If checkout does not work for a standard test product, the listing integration will also produce misleading symptoms.
  • The payment gateway should move a paid order into the correct status. For listing publication, it is critical that the order reaches Completed if that is the status the extension uses for automatic publication.
  • WPAdverts pages should include the current Classifieds / Publish and Classifieds / Manage blocks, or the legacy shortcodes [adverts_add] and [adverts_manage] if the site still uses the older approach.

Registration and user accounts

Listing packages work more reliably when the user is logged in. The official documentation notes that packages are available to signed-in users, and if someone tries to post a listing while logged out, the site may register them automatically. This needs to be considered together with WooCommerce checkout settings, because WooCommerce can also create an account during checkout.

Before going live, test registration on a staging copy of the site: open the listing form in a private window, create a listing using a paid plan, continue to checkout, and check whether the site asks the user to create a second account at the next step. If registration is duplicated, simplify the policy first: either require login before posting a listing, or configure account creation in one place instead of two.

Cache and pages that should not be aggressively cached

The integration relies on dynamic pages. Selected pricing plans, package balances, cart status, payment errors, and the account area all change from user to user. If a caching plugin saves the HTML of those pages as a static copy, a user may see someone else's package balance, an outdated button, or the wrong listing status. For that reason, pages used for posting listings, managing listings, the cart, checkout, and My Account should usually be excluded from full-page caching.

That does not mean a classifieds site cannot be optimized. You can cache the public listing archive, optimize images, use object caching, and serve static files through a CDN. But the areas where a user chooses a plan, pays for an order, and views their own packages need to remain dynamic.

Practical check: after enabling cache, sign in as two different test users and make sure each one sees only their own listings and their own packages in the submission form and account area.

Installing the Extension and Verifying It in the Admin Area

The installation process is the same as for a standard WordPress plugin: upload the ZIP file through Plugins - Add New - Upload Plugin, then activate the extension. There is no need to implement separate authentication or an external service connection inside the project. The key point is to confirm that, after activation, a WooCommerce Payments settings module appears within the WPAdverts area.

A safe activation order

  1. Create a backup of the site or perform the setup on a staging copy.
  2. Update WPAdverts and WooCommerce to supported versions instead of bundling every commercial extension update into one opaque step.
  3. Upload the extension ZIP through the standard WordPress plugins page and click Activate.
  4. Open Classifieds - Options and find the WooCommerce Payments section.
  5. Disable the built-in Payments module if it is active and you are moving to WooCommerce-based payments.
  6. Verify that WooCommerce still shows its normal store pages and does not report critical status issues.

The first sign that activation worked is the ability to create a WooCommerce product with the type Single Listing (WPAdverts) or Renew Listing (WPAdverts). If those product types are missing, it is too early to start changing the listing form: first resolve extension activation, WooCommerce compatibility, and conflicts with other payment modules.

WPAdverts WooCommerce Payments setup map after installing the extension
This visual map connects the WooCommerce Payments module, listing-type products, and the pages where the user will see the outcome.

What not to do right away

Do not start with ten different pricing plans. For the first check, one simple product is enough: "Standard Listing," type Single Listing (WPAdverts), a normal price, and a clear publication duration. Until that minimum workflow is working, packages, renewals, multiple field schemes, and polished pricing tables only increase the number of possible failure points.

Do not change plugin templates or edit extension files. If the form styling is not ideal, first make sure the status logic works correctly. Visual details are easier to adjust later with child theme CSS or theme settings. A broken payment workflow is more serious than imperfect spacing around the pricing selector.

Creating Products for New Listings, Renewals, and Packages

WooCommerce products in this integration are not standard physical products. They represent the user's right to publish or renew a listing. That is why the administrator should think of each product as a pricing plan: what kind of listing it creates, how long it lasts, whether it is featured, how many listings are included in the package, and where the user will see that option.

Product for a new listing

To create a product for a new listing, go to Products - Add New and choose the type Single Listing (WPAdverts). Once that type is selected, WPAdverts knows it can display the product in the submission form. From there, you set the listing parameters: display duration, price, product visibility, and any additional options available in your version of the extension.

The product name should make sense to the user. "Premium Listing" or "VIP Ad" may be fine if your audience is used to those terms, but on a Russian-language site it is better to use plain wording like "Featured Listing for 30 Days," "Standard Placement," or "5-Listing Package." WooCommerce system labels can remain in English if needed, but user-facing product names should be localized properly.

Minimum product checklist

  1. The product is published, not saved as a draft.
  2. The product type is specifically Single Listing (WPAdverts), not a standard simple product.
  3. The price is set intentionally: paid for a checkout workflow or zero for a free plan.
  4. The listing duration is filled in so the administrator can verify the listing expiration date.
  5. The product visibility does not hide it from the pricing selection logic if you want it to appear in the submission form.

Product for listing renewal

Renewals use the Renew Listing (WPAdverts) product type. The purpose is different: the user already has a listing and opens the management panel, usually through the Classifieds / Manage block or [adverts_manage]. If at least one product of that type is published, the listing management area may show a Renew Ad action.

With renewals, it is especially important to verify how the expiration date works. The official documentation clarifies the behavior of a free renewal: when the price is zero, the expiration date is set to the current day plus the duration defined in the product, so the user cannot keep stacking the date forward indefinitely. That means a free renewal should not automatically be assumed to "add N more days to the old date" without testing. Always check the actual date after a test renewal.

Listing packages

A package is created through the product field that defines the number of placements. If that value is greater than one, the product works as a bundle of posting credits: the user pays for the package once, then applies the remaining credits when creating listings. In newer versions of the extension, users can see their remaining posting balance in active packages, and administrators can search packages by user in the management panel.

Packages require careful account handling. If a user buys a package as a guest, the system may struggle to connect future listings to the right owner. For that reason, sites that use packages are better off requiring login or registration before purchase and before publication. That reduces support requests like "I bought a package, but the form does not recognize it."

How to name packages without confusion

The name should answer three questions: how many listings are included, how long each listing runs, and whether featured placement is included. For example, "5 standard listings for 30 days" is clearer than "Business Pack." If the package applies only to a specific category, that should also be reflected in the name or pricing description, especially if you are combining it with Custom Fields and different form schemes.

WooCommerce product map for a standard listing renewal and WPAdverts package
These three pricing models look similar in WooCommerce, but they trigger different actions in WPAdverts: publication, renewal, or package usage.

How to Design Pricing So Users Understand the Value

Technically, the extension makes it easy to create several products quickly, but the commercial outcome depends on how the pricing is structured. The user is not buying a "WooCommerce product type." They are buying a clear action: publish a listing, renew an existing one, stand out in the archive, or get posting credits for future listings. If the pricing grid is written in internal terms, even a technically correct integration will feel confusing.

Start with three questions, not with the number of plans. What does the user get immediately after payment? How long does it last? Where will they see confirmation of that outcome? The answers should be visible in the product name, plan description, submission form, and account area. That way support does not have to explain why a "package" differs from a "renewal" or why a "featured listing" is not a separate category.

One base plan as your control point

Create the easiest plan to test first: one standard listing for a clear duration, with no featured status and no extra form variations. That becomes the control point for the entire integration. If that plan appears correctly in the form, sends the user to checkout, and publishes the listing after the order is completed, then the bridge between WPAdverts and WooCommerce is working. All other plans will only add extra conditions on top of that.

Do not make the base plan too weak just to push users toward the premium option. If a free or low-cost listing does not allow users to describe what they are selling properly, the directory will fill up with poor-quality content. It is better to differentiate plans by meaningful value: duration, featuring, image limits, number of publications, an expanded form, or a separate category.

A premium plan should change something visible

A premium plan makes sense when the user can see the difference after publication. For example, the listing becomes featured, allows more images, unlocks additional fields, or stays active longer. If the difference exists only in the admin area, the buyer will not feel the value. In WPAdverts, two of the clearest value points are featured listings and an expanded form through Custom Fields.

Before launching a premium plan, create a test pair of listings: one standard and one paid. Open the public archive, the relevant category page, and the individual listing page. The difference should be noticeable, but it should not break the overall design. If the featured listing is too loud, users may start reading the archive like an ad board. If it barely looks different, it will be hard to justify the price.

Sell a package as a workflow tool, not just a discount

Listing packages are often framed only as "cheaper per listing." For repeat sellers, something else matters more: they are buying a reserve of posting credits, can see how many are left, and can publish the next listings faster. That is why the package description should explain the usage flow: buy the package, sign in to the account, open the submission form, choose the available package, and verify the balance in My Packages.

If the site serves organizations, agencies, or frequent sellers, the package can also include support rules: who has access to the account, whether the package can be transferred to another email, what happens after an accidental publication, and how deleted listings are handled. It is better to state those rules next to the pricing than to settle the same dispute manually after every purchase.

When you need a separate pricing table page

The standard pricing list inside the submission form is enough for a small site. But if you have several plans, packages, and different forms, the user may need a separate page that explains the options. The official Pricing Per Feature documentation shows an approach that uses an external pricing table and passes the selected product through the preselected_pricing parameter. That is useful when the user should compare options first and only then fill out the form.

There is one rule with this approach: the pricing table should not replace the form itself. The button in the table sends the user to the selected plan, but WPAdverts still needs to load the correct form and correctly link the listing to the product. After implementation, test every pricing table button. If one button contains the wrong product ID, the user will see the wrong plan or the wrong form scheme.

A practical pricing model for listings
Plan What the user gets How to verify it
Basic placement One listing for a defined period with no extra benefits. Create a test listing, complete the order, and verify publication.
Featured placement The listing receives a visible distinction or higher placement in the archive if configured that way. Compare a standard and a featured listing in the same category.
Package Several listing credits the user applies later from their account. Buy the package, publish a listing, and compare the remaining balance in My Packages.
Expanded form A different set of fields, restrictions, or uploads through Custom Fields. Select the plan before the form and make sure the correct form scheme loads.

After configuring the pricing, keep an internal admin reference. It should include product IDs, the purpose of each pricing plan, the linked form schemes, moderation rules, and the expected post-payment status. This kind of note seems unnecessary when you only have two plans. Once you have five, or introduce seasonal offers, it becomes very easy to confuse a new-listing product with a renewal product.

Detailed WooCommerce Payments Settings Inside WPAdverts

Once the first product is created, move on to the extension settings. The documentation describes the path as Classifieds - Options - WooCommerce Payments. The number of settings is small, but they determine what the user sees first, whether extra sections appear in WooCommerce account pages, and whether a listing goes to moderation after payment.

Default Pricing and Default Renewal Pricing

Default Pricing selects the plan that will be preselected in the submission form. This is useful when you have an obvious base option and want to reduce user mistakes. For example, if most users choose a standard listing, make that the default and leave the premium option as a deliberate choice.

Default Renewal Pricing plays a similar role for renewals inside the listing management panel. If you have only one renewal option, a default selection simplifies the process. If you offer several renewals, such as a short free one and a longer paid one, avoid making the more expensive option feel too pushy. Give the plans clear names and make sure the user sees the cost before going to checkout.

Hold For Moderation

The moderation setting is one of the most important. It lets you decide separately which listings should go to review: free, paid, or package-based. In practice, this helps separate trust in payment from trust in content. Payment confirms that the user completed checkout, but it does not guarantee that the listing text follows site rules.

For a project exposed to spam or prohibited content, it is reasonable to moderate paid and package-based listings at least in the first phase. For a project where listings come from trusted partners, you may choose to publish paid listings faster while still keeping selective manual review through editorial rules. Do not make the decision based only on the desire to "reduce clicks". Moderation affects both directory quality and admin workload.

How to test moderation

  1. Create a test listing using a paid plan.
  2. Pay for the order with a test method or manually move the order to the required status on a staging copy.
  3. Open Classifieds in the admin panel and check the listing status.
  4. Open the public listing page in a private window and confirm that its visibility matches the selected policy.

If the listing is paid but still hidden, check the moderation setting before assuming it is a payment error. This is one of those cases where the behavior may be correct but unexpected for the administrator.

My Ads and My Packages sections in WooCommerce My Account

The Manage setting adds a My Ads link to the WooCommerce account menu. Inside that section, the user gets listing management functionality similar to [adverts_manage]. The Packages setting adds a My Packages section that displays purchased packages and their usage details.

What matters here is not only enabling the checkboxes, but also planning the names and URLs. The My Ads Panel Title, My Ads Panel Slug, My Packages Panel Title, and My Packages Panel Slug fields let you define readable labels and URL parts. On a Russian-language site, the interface labels can stay in Russian, but the slug is usually better kept short and Latin-based, such as my-ads and my-packages. That lowers the risk of conflicts with the theme, cache, and routing rules.

WooCommerce uses endpoint logic inside My Account. That means the sections appear as URL segments within a single account page. If the menu items do not open after activation, check WordPress permalinks and save the permalink settings again without changing the structure. That is often enough to make WordPress rebuild its routing rules.

Settings you should not change without a reason

Do not enable every moderation mode at once if you have a small trusted platform and the administrator is not ready to review every listing manually. Do not change account slug values after launch unless you also handle redirects and warn users. Do not make package products publicly visible in the store if buyers should select them only from the listing form. And do not run incompatible WPAdverts payment modules alongside WooCommerce Integration.

Short takeaway: after setup, you should have one clear path: the listing product appears in the form, a paid choice leads to checkout, a completed order changes the listing state, and the account area shows listing and package management.

The User Journey: From Listing Form to Active Publication

To configure the extension without blind spots, it helps to walk through the process from the user's perspective. In WPAdverts, the submission form may be the Classifieds / Publish block or the legacy shortcode [adverts_add]. The documentation notes that legacy shortcodes are considered outdated in newer versions, but many sites still use them. So in a practical guide, it is important to understand both options without mixing them on the same page unnecessarily.

Choosing a plan in the submission form

When the products are created correctly, the user sees a list of pricing plans in the submission form. The official example shows single listings and packages grouped together: if the user already has an active package, the form may display the number of remaining postings instead of a price. That is one of the strongest parts of the extension, because the user does not have to guess why a repeat submission is not requesting payment.

If you offer several plans, add a short explanation above the form on the page itself. There is no need to overload it with marketing language. It is enough to explain how the standard listing differs from the featured one, how long the publication lasts, and where purchased packages can be viewed. That reduces abandoned checkout sessions and support requests.

Moving to the cart and checkout

After the user selects a paid plan and confirms the listing, the extension adds the product to the WooCommerce cart. At that point, the user leaves the pure WPAdverts flow and enters the standard WooCommerce commerce flow. That means the outcome is affected by checkout settings, the payment gateway, WooCommerce emails, taxes, coupons, and the theme's behavior on store pages.

For listings, it is often better to use products that do not require shipping. If the payment gateway leaves the order in Processing while the listing is only published when the order reaches Completed, the user may pay for the listing and still not see it become active. In that case, you need to inspect not only WPAdverts, but also the product settings, the payment gateway, and WooCommerce order statuses.

How status flows back into WPAdverts

After payment, the main question is how the order status affects the listing. The official extension page explains that when the order moves to Completed, the listing becomes active. If the order is not completed, the listing may appear as Pending Payment. If the order was never created or was deleted by the administrator, the listing may move into the Abandoned state, where the user can no longer finish payment through the normal flow.

These states are useful not only for the user, but also for the administrator. They show where the chain broke: the user never reached payment, the payment gateway did not update the status, the order was deleted manually, the listing went into moderation, or the package was used under the wrong account. The better you understand these statuses, the faster you can solve the issue without unnecessary database intervention.

Visual flow of listing payment through WooCommerce checkout with status returned to WPAdverts
This flow shows exactly where responsibility changes: WPAdverts collects the listing, WooCommerce processes the order, and then the status returns to the publication workflow.

Listing Packages and the WooCommerce Account Area

Packages are one of the most useful features of the extension for repeat sellers. Instead of paying separately for each listing, the user buys the right to publish several listings. For the site, that simplifies sales, and for the user, it reduces repeated checkout steps. But packages require stricter account setup, because the remaining balance is tied to the user.

How a package appears for the user

The administrator creates a product of the type Single Listing (WPAdverts) and sets the number of placements to more than one. The user purchases that product through WooCommerce, then returns to the submission form. If they are signed in, the extension can display the active package and the remaining number of available postings. When the user creates a new listing, one slot is deducted from the package.

In the admin panel, packages are located under Classifieds - Packages. There you can view the owner, linked product, order, purchase date, limit, and usage count. In newer versions of the extension, administrators can also search packages more easily by username or email, which matters on sites with many repeat sellers.

A package as a separate store product

The official documentation allows packages to be purchased separately in the WooCommerce store. That is useful if you want to build a "Pricing" page with standard WooCommerce products and explain the terms before the user opens the listing form. After the purchase, the user goes to the submission page and uses the package they already bought.

There is one caveat: this works less well for guest users. If a package is purchased without a reliable account link, the user may not see it in the submission form. That is why, when selling packages separately, it is better to require login before purchase or configure checkout so that account creation happens unambiguously. On the pricing page itself, say clearly that the package is used from the account area after login.

Remaining credits and user trust

When the user can see how many placements are left, uncertainty goes down. They understand why they can publish a listing now without paying again, and when it is time to renew the package. This is useful for the administrator too: if a user claims their package has "disappeared," you can open Classifieds - Packages, find the record by email, review Used and Limit, and then compare the linked listings.

Do not promise users that deleting a listing will always restore a slot to the package unless you have verified that behavior in your version and setup. The extension's behavior around package counters and listing deletion has changed over time. On a live site, it is better to define the rule in advance: what counts as a used placement, what happens when a listing is deleted, and how support handles disputed cases.

Result check: buy a test package, create a listing from that package, then open My Packages and the admin package list. The remaining balance should change the same way for both the user and the administrator.

Renewals, Featured Listings, and Feature-Based Pricing

Monetizing a classifieds site rarely stops at one paid listing type. More often, the site owner needs additional options: renew an old listing, increase visibility through featured placement, allow more images in a higher-tier plan, or vary forms by category. WP Adverts WooCommerce Integration supports some of that logic directly, and some of it becomes more powerful when combined with other WPAdverts extensions.

Renewing an existing listing

Renewals do not start from the new listing page, but from the management area for already published entries. The user opens their listings, expands the extra actions, and chooses Renew Ad if the site has a published product of the type Renew Listing (WPAdverts). After choosing a paid renewal, the user goes through WooCommerce checkout, and when the order is complete the listing is renewed or sent for moderation, depending on how the site is configured.

For the administrator, it is important to test an expired listing and an active listing separately. Renewal behavior may differ depending on the current listing state and the moderation rules. If the user does not see the renewal button, check whether a Renew Listing (WPAdverts) product exists, whether it is published, visible, priced, and whether the listing management panel is available.

Featured listing

When creating a listing product, you can enable the featured ad listing option if it is available in that product type's settings. A featured listing may appear above others or receive a visual distinction, depending on the WPAdverts and theme settings. This is an easy paid upgrade for users to understand because the outcome is visible in the listings archive.

Do not make featured styling too aggressive. If every paid listing becomes visually dominant, the archive can lose its usability. It is better to create one standard plan and one featured plan, then test the public archive in different categories. Users should see the difference, but standard listings should not look broken or second-rate.

Different forms for different plans

The most interesting combination appears with Custom Fields. The official Pricing Per Feature documentation describes a setup where different WooCommerce products are assigned different form schemes. For example, the base plan may allow a short description and a limited number of images, while the premium plan includes more fields and more uploads. That is more honest to the user than simply saying "pay more for the same thing." They get a clear expansion in capability.

The practical workflow looks like this: create form schemes under Classifieds - Options - Custom Fields, then choose the appropriate scheme inside the WPAdverts WooCommerce product, and enable plan selection before the form is shown in WooCommerce Payments settings. After that, the user chooses a plan first and only then sees the form that matches that plan.

When this setup is especially useful

  • On a job board, where a basic listing includes a short description and the paid option adds fields for salary, work format, and contact details.
  • In a real estate directory, where a paid plan can allow more photos and expanded property details.
  • In auto listings, where different plans provide different levels of field detail and highlighting in the archive.
  • In a B2B directory, where a standard participant publishes one listing and an agency buys a package with expanded information.

Do not create different forms if you cannot explain the difference to the user. If the plans differ only in name while the form is effectively the same, you are adding friction and reducing trust. Different form schemes should provide a visible benefit: more images, more required data, separate categories, an expanded contact block, or another outcome the user can clearly verify.

Practical Example: A Paid Package for a Classifieds Site

Let us walk through a concrete working setup. Suppose the site publishes equipment-for-sale listings. Private sellers can post one free listing, while frequent sellers buy a package of several standard listings and a separate plan for a featured listing. The goal is to make it possible for a user to buy a package, publish listings from the remaining balance, and manage everything through their WooCommerce account.

Goal

You want three outcomes: the paid package appears in the submission form, the user sees the remaining posting balance after purchase, and the administrator can connect the listing to the order or the package. This use case helps verify almost all of the extension's core mechanisms without overloading the setup with complex pricing.

Preparation

WPAdverts and WooCommerce should already be working on a staging copy of the site. Create the listing submission page with the Classifieds / Publish block or with [adverts_add] if the site still uses shortcodes. Create the listing management page through Classifieds / Manage or [adverts_manage]. Make sure a normal free listing can be created, opened on the site, and appears under Classifieds.

Setup steps

  1. Create the WooCommerce product "5-Listing Package" and choose the type Single Listing (WPAdverts).
  2. Set the price, the duration of one listing, and a placement quantity greater than one.
  3. Publish the product and make sure it is not hidden from the pricing selection logic.
  4. Under Classifieds - Options - WooCommerce Payments, choose the package as the Default Pricing value if you want it to be the main option.
  5. Enable Packages for My Account and give the section a clear title, for example "My Packages."
  6. If needed, enable Manage so the user can manage listings from the WooCommerce account area.
  7. Open the submission form as a test user, select the package plan, and proceed to checkout.
  8. Complete a test payment and return to the submission form to verify the number of available listings left.

Verifying the outcome

After payment, the user should see the active package. When they create a listing from that package, the remaining posting balance should decrease. In the admin panel under Classifieds - Packages, there should be a record showing the user, linked product, order, limit, and usage. In the listing list, the administrator should also be able to see how the publication was paid for if the extension displays the relevant icons and links.

Do not test only the successful path. Stop one test at checkout, delete one test order on the staging site, and see how the listing state changes. That helps you understand the difference between Pending Payment, Abandoned, moderation pending, and a published listing before real users encounter it.

One common pitfall

If the package is purchased by one user but the listing is submitted from another account or while logged out, the form may not show the remaining posting balance. That is not a form design problem. It is a package-to-user mapping problem. On a public site that uses packages, the clearest rule is: login first, then buy the package, then publish the listing. If you allow guest checkout, make sure you test exactly how the site creates and links the user account.

Example of checking a listing package in WooCommerce My Account and the WPAdverts Packages panel
This example shows the two places you should compare after buying a package: the user's account area and the admin package list.

Administrative Tracking of Orders, Listings, and Packages

Once paid listings are live, the administrator has a new day-to-day task: quickly understand how a listing was paid for and why the user sees the current status. In a standard WooCommerce store, opening the order is often enough. On a classifieds site, you need to inspect two sides: the WooCommerce order and the WPAdverts listing. If packages are involved, there is a third point of reference: the entry under Classifieds - Packages.

The official documentation shows that unpaid listings may carry the Pending Payment state and a link to the order, while packages in the admin panel have Used and Limit columns. Treat these as practical support tools. They help answer real questions: was an order created, did payment complete, has the package already been used, and is the listing tied to a package or a one-time payment?

How to investigate a user request

When a user says, "I paid, but my listing is not there," do not start by publishing the listing manually. Manually changing the status can hide the underlying issue and create a mismatch between the order and the listing. Follow a short diagnostic path instead:

  1. Find the WooCommerce order by the user's email, order number, or the time of the request.
  2. Check the order status and payment method. For automatic publication, Completed is especially important.
  3. Open the linked listing in Classifieds and review its state.
  4. If the listing was created through a package, open Classifieds - Packages and check the owner, Used, and Limit.
  5. Compare the Hold For Moderation rules, because a paid listing may still be waiting for manual approval.

This order of checks helps prevent false conclusions. For example, the order may be paid, but the listing is not published because moderation is enabled. Or the listing may still be pending payment because the gateway left the order in Processing. Or the package may have been purchased, but the user logged into a different account. All three situations look the same to the user, but the fix is different in each case.

What to record in internal site notes

For a small project, a table in the team's documentation or a private admin page is enough. Record the list of pricing products, moderation rules, publication and management pages, cache exclusions, and the support troubleshooting flow. Do not store passwords, payment gateway keys, or private user data there. The purpose of the note is not access management, but configuration logic.

It is also useful to record "normal" statuses. For example: "a paid listing moves to moderation after payment" if that policy is enabled. That way, a new administrator will not treat every hidden listing as a bug. Prepare a short post-payment message for users as well: the listing has been saved, payment has been received, and publication will appear after review. That reduces uncertainty and repeat emails.

How not to break tracking with manual actions

In WooCommerce, it is easy to delete an order or change its status manually. In WPAdverts, it is easy to change a listing state. But once the two are integrated, every manual action can break the cause-and-effect chain. If an order is deleted, the listing may become Abandoned. If a listing is published manually before the order is completed, the user gets the outcome without proper payment. If a package is edited manually without a note explaining why, the next balance review becomes harder to trust.

A safe rule: make manual changes only after identifying the cause, and only in the place where the problem actually originates. A payment issue should be fixed in WooCommerce and the payment gateway. A moderation issue belongs in WPAdverts. A package mapping issue belongs in the package record and the user account. After any manual correction, add a short internal note describing what was changed and why.

Post-Launch Verification

A good payment integration is not finished when you save the settings. It is finished when the full test chain works. You need to confirm that every participant sees the correct state: the user understands that payment went through, the administrator sees the linked order, WooCommerce stores the order in the expected status, and WPAdverts shows either the listing or moderation according to the selected rules.

Minimum set of tests

Run your tests on a staging copy of the site or in payment gateway test mode. Do not stop after one paid order placed by the administrator: admin privileges often hide problems that a normal user would hit.

  1. New paid plan. The user selects Single Listing (WPAdverts), completes checkout, the order becomes Completed, and the listing is published or sent to moderation based on the settings.
  2. Incomplete payment. The user starts checkout but does not pay. The listing must not become active without payment.
  3. Listing package. The user buys a package, creates a listing from the remaining balance, and sees the available posting count decrease.
  4. Renewal. The user has a listing, the site has a published Renew Listing (WPAdverts) product, and the Renew Ad action produces the expected term and status.
  5. Moderation. Review is enabled for a paid or package-based listing, and after payment the listing does not appear publicly until approved.
  6. Account area. The My Ads and My Packages sections open without 404 errors, show only the current user's data, and are not cached as static HTML.

How to read statuses without panicking

If a listing does not appear immediately, separate the payment side from the editorial side first. The order may be paid, but the listing is waiting for moderation. The order may be in Processing, so publication has not happened because the extension expects Completed. The order may be missing or deleted, which makes the listing appear abandoned. Each case requires a different fix.

It helps to maintain a small internal support playbook. For example: "if the order exists and is paid but not completed, check the payment gateway"; "if the order is completed but the listing is hidden, check moderation"; "if the package is missing from the account area, compare the order user and the listing user." A playbook like that saves support time and reduces the risk of manual edits in the wrong place.

SEO, performance, and trust

Paid listings do not create automatic SEO growth on their own. But a properly configured payment flow improves catalog quality: fewer duplicates, clearer publication terms, easier moderation of unwanted content, and stronger seller trust. For performance, dynamic pages should be excluded from full-page caching, but that does not mean turning off optimization across the entire site. For indexing, it is more useful to have stable listing pages, correct statuses for expired entries, and no large wave of empty publications.

If you enable moderation, decide in advance what the user sees after payment: a review notice, an email, a status inside the account area. A paying user is especially sensitive to uncertainty. They should understand that payment went through, the listing was saved, and a specific admin action is expected next.

Safe Improvements Without Editing Plugin Files

Enhancements are only worth adding when they solve a specific problem. For WP Adverts WooCommerce Integration, the most useful improvements are usually three things: a subtle visual highlight for the pricing selection block, control over buying multiple listing products in one order, and cautious HPOS compatibility handling on a complex site. Make changes like these through a child theme, Code Snippets, or cache settings, but do not edit WPAdverts, WooCommerce, or the commercial extension files directly.

Highlighting the pricing block with CSS

If the listing form does not visually explain the difference between pricing options, you can add light styling to the container that shows listing information. The exact classes depend on the theme and markup version, so first inspect the publication page in the browser. Below is a safe example using neutral WPAdverts selectors that can be adapted in the child theme's Additional CSS.

.adverts-form .adverts-pricings,
.adverts-form .adverts-listing-types {
  border: 1px solid #d8e2ef;
  background: #f7fbff;
  padding: 16px;
  margin-bottom: 18px;
}

.adverts-form .adverts-pricings label,
.adverts-form .adverts-listing-types label {
  font-weight: 600;
}

.adverts-form .adverts-pricings .adverts-price,
.adverts-form .adverts-listing-types .adverts-price {
  color: #1f6f43;
}

After adding the CSS, test the publication page in a regular browser and in a private window. If the selector does not work, do not blindly broaden it to every form on the site. Find the actual class used by the pricing selector block and change only the top-level selector. Rolling back is simple: remove the CSS from the child theme or from the additional styles field.

Allowing multiple listing products in one order

In one of the developer's official release notes, they showed filters that make it possible to sell listing products in quantities greater than one instead of strictly one at a time. This is a narrow use case: not every site needs it, because package-based placement is often better handled through the product's listing quantity field. But if you intentionally want the user to buy several identical placements in one order, use a small snippet through Code Snippets or your child theme file.

add_filter( 'wcpl_advert_single_is_sold_individually', '__return_false' );
add_filter( 'wcpl_advert_renew_is_sold_individually', '__return_false' );

Testing is required: create a test order with a quantity greater than one, complete the payment, and make sure the user's remaining balance or available actions behave as expected. If the tracking becomes hard to follow, roll back the snippet and use a package product with a clearly defined number of placements instead. That is easier to explain both to users and to support.

HPOS and a cautious fallback for compatibility

WooCommerce supports High-Performance Order Storage, and the WPAdverts developer states that the extension is compatible with HPOS and provides the wpadverts-wc-uses-hpos filter for developers who need to disable HPOS usage inside the integration. Do not add that filter "just in case." First verify orders, statuses, packages, and listing publication in your own configuration.

If a complex site contains older custom code that reads order data directly from WordPress tables, the right fix is to update that code to use the WooCommerce CRUD API. Temporarily disabling the HPOS branch in one integration can only be a diagnostic step for a developer, not a universal recommendation for a site owner. Document the problem, enable WooCommerce's compatible mode, verify order synchronization, and only then make a decision.

Troubleshooting Common Issues

Problems with this integration almost always appear at the boundary between systems: the product was created with the wrong type, the order never reached the required status, moderation hid the listing, the user bought a package under the wrong account, cache served an outdated account page, or the built-in WPAdverts payment module is still running alongside the integration. Below is a practical symptom map worth checking before contacting support.

The pricing plan does not appear in the submission form

Symptom: the administrator created a WooCommerce product, but the user does not see it when posting a listing. Possible causes include the product not being published, a standard product type being used instead of Single Listing (WPAdverts), the product being hidden, the extension not being active, or the form using a different pricing flow.

Check the product under Products, the type in the Product Data box, its publication state, and whether the listing duration is set. Then open the submission page as a normal user. If you use Custom Fields and plan selection before the form, verify that the correct form scheme is assigned to that specific product.

The listing was paid for, but not published

Symptom: the user paid for the order, but the listing is not visible on the site. Possible causes include the order remaining in Processing, moderation being enabled for paid listings, the payment gateway not completing the order, the product requiring shipping, or the administrator expecting the wrong status.

First open the WooCommerce order and check its status. Then open the listing in Classifieds and see whether it is waiting for moderation. If the order is not Completed, fix the WooCommerce side: product virtual settings, payment gateway behavior, payment system webhooks, and the store's system status.

The listing became Abandoned

Symptom: the listing is tied to an unfinished payment and the user can no longer complete the process normally. The documentation describes this state for situations where the order was never created or was deleted by the administrator. You cannot simply "convince" the form to resume the old checkout, because the payment chain has already been broken.

Check whether there is a linked order. If there is no order, it is usually better to create a new clean path for the user: ask them to submit the listing again, or manually restore it only after payment has been verified. Do not delete WooCommerce orders on a live site unless you clearly understand which listings are attached to them.

The package was purchased, but the form does not show it

Symptom: the user paid for a listing package, but only sees paid plans in the submission form. The most likely cause is that the package is tied to a different user, or the purchase was made without a proper logged-in account. Also verify that the product is truly configured as a package, meaning it has a placement quantity greater than one.

Find the package under Classifieds - Packages by user or email, open the linked order, and compare the order owner to the user's current account. If the site allows guest package purchases, reconsider that policy. Packages are more reliable when login is required.

My Account shows 404 errors or empty tabs

Symptom: the My Ads or My Packages menu items appear, but they do not open correctly. Possible causes include the WooCommerce endpoint not being registered in the permalink rules, the slug conflicting with another page, or cache serving an outdated version of the account area.

Save the WordPress permalink settings again without changing the structure, then clear cache. Check that the slug values in WooCommerce Payments settings are unique. If the issue continues, temporarily switch the slug values back to simple Latin-based options like my-ads and my-packages.

Email notifications for paid listings are not arriving

Symptom: the listing and order statuses change, but the user or administrator does not receive notifications. The extension can add messages to the WPAdverts Emails module if that module is active. But whether the email is actually delivered also depends on the overall WordPress mail stack.

Check whether the Emails module is enabled, whether the required templates are active, and whether the To and From fields are set correctly. Then review the mail log or SMTP configuration. If the message is logged but never reaches the inbox, the issue is usually email deliverability rather than WPAdverts itself.

Strange mismatches appeared after enabling HPOS

Symptom: orders exist, but the link between listings and reports behaves inconsistently after changing WooCommerce order storage. The extension developer states HPOS support, but a live site may also include older plugins or custom code that still reads directly from legacy order tables.

Check WooCommerce for a list of incompatible extensions, enable compatible mode during migration, and make sure background order synchronization tasks have finished. If the mismatch comes from custom code, update that code to use the WooCommerce API instead of disabling platform updates. Use the integration's fallback filter only as a temporary diagnostic step for developers.

Quick cause table

Common issues at the WPAdverts and WooCommerce boundary
Symptom Where to look Safe action
No plan in the form. Product type, product publication state, extension activation. Create one minimal Single Listing (WPAdverts) product and test the form again.
Payment succeeded, but the listing is hidden. Order status and listing moderation. Confirm Completed, then check Hold For Moderation rules.
The package balance does not decrease. Order user, publishing user, package limit. Find the package by email and check Used / Limit.
The account area shows stale data. My Account page cache and WooCommerce endpoint handling. Exclude dynamic pages from full-page cache and resave permalinks.
Troubleshooting map for Pending Payment Abandoned packages and My Account in WPAdverts WooCommerce
This troubleshooting map helps you quickly separate a product issue, order issue, moderation issue, package issue, and account cache issue.

How It Works with Other WordPress and WooCommerce Features

WP Adverts WooCommerce Integration rarely works in isolation. It is usually surrounded by a theme, cache, a payment gateway, an email module, custom fields, and sometimes an author account area. A good setup does not try to enable everything at once. It separates responsibilities: WPAdverts handles listings, WooCommerce handles payments and orders, and additional extensions handle forms, emails, maps, or user profiles.

Custom Fields for plans with different value

The integration with Custom Fields makes sense when pricing plans differ not only by duration or featuring, but also by what the form contains. For example, a premium listing may include more photos, extra attributes, an expanded contact block, or a special category. The setup order is straightforward: create form schemes, create listing products, assign a scheme to each product, enable plan selection before the form appears, and test the outcome as a regular user.

The main friction point here is making the form too complex. If you add too many required fields only to the higher-tier plan, the user may pay and then abandon the listing because the form is too difficult to complete. Test the form as a user, not as an administrator. A good premium plan expands capability, but it should not turn submission into a multi-step application form.

Emails Module for clearer notifications

The official documentation describes how WooCommerce Integration works with the WPAdverts Emails Module. The module includes separate events for waiting for payment, publication after payment, renewals, and moderation. That is useful when WooCommerce's standard emails are not enough: WooCommerce explains the order, while WPAdverts can explain the listing state.

A practical workflow looks like this: enable the Emails Module, check the templates with codes starting with wc::, configure the sender, and then test the emails with a sample publication. If the emails do not arrive, do not start by rewriting the template. First check the mail log and SMTP settings, because WordPress email issues are often about deliverability rather than message wording.

Caching and optimization without breaking the account area

Caching matters for the public directory, especially when there are many listings. But the account area, cart, checkout, and submission form all need to know who the current user is. That is why dynamic pages should be excluded from full-page cache, and CSS/JS optimization should be tested gradually. If button behavior disappears after minification, or the More toggle stops working in the listing management panel, temporarily disable script bundling on listing-related pages and test for conflicts.

Rollback should be simple: disable one specific cache rule or exclude one specific page. There is no reason to turn off optimization across the entire site forever if the issue only appears on checkout or in My Account. The more precise the exclusion, the smaller the performance impact on public pages.

When WP Adverts WooCommerce Integration Is the Right Choice

The extension is a strong choice if you want to monetize listing publication while keeping WooCommerce as the site's payment center. It does not claim to solve every marketplace use case, but it handles one specific workflow well: listing plans as products, WooCommerce checkout, automatic publication after a completed order, renewals, packages, and account-based management.

Before rolling it out on a live site, follow a short sequence: one product for a new listing, one test order, verification of the Completed status, moderation testing, then packages and the account area. If that chain works, you can add a second plan, featuring, renewals, and a Custom Fields integration. If it does not work, do not expand the configuration until you identify the weak point.

After setup and testing, you can download the latest version of WP Adverts WooCommerce Integration and move on to deploying it on a staging copy of the site. That order is safer than changing a live checkout immediately: first confirm the workflow, then roll it out to the public site, and only after that start accepting payments from real users.

Questions to Resolve Before Launch

Can the extension be used without WooCommerce?

No. The whole purpose of the extension is its integration with WooCommerce. If WooCommerce is not installed and configured, listing products, checkout, and order statuses cannot do their job. For simple payments without WooCommerce, look at the built-in or other WPAdverts payment modules, but do not run them at the same time as WooCommerce Integration.

Why is the listing published only after the order reaches Completed?

The extension's official behavior ties listing publication to a completed WooCommerce order. If the payment gateway leaves the order in Processing, the listing may not become active. Check the product settings, whether it is virtual, the payment gateway behavior, and the WooCommerce system status.

Can free and paid listings exist at the same time?

Yes, if you create plans with different prices and configure moderation correctly. Free listings can be sent to review while paid listings are published more quickly, or you can keep manual moderation for all listing types. The right choice depends on your site's spam risk and editorial policy.

What works better for repeat sellers: several single products or a package?

For repeat sellers, a package is usually clearer. The user buys a bundle of placements, sees the remaining balance, and does not have to go through checkout every time they post. Allowing several single products in one order is something you should enable only after testing, because support will usually find it harder to explain balance tracking than a standard package model.

Should you switch from shortcodes to blocks?

WPAdverts recommends using modern blocks instead of legacy shortcodes like [adverts_add] and [adverts_manage]. If the site already runs reliably on shortcodes, it is better to plan that migration separately and test it on a staging copy. For a new listings section, it makes more sense to start with the Classifieds / Publish and Classifieds / Manage blocks.

Will the integration affect site performance?

It adds the WooCommerce order flow to listing publication, so dynamic pages need to be handled carefully. The public directory can still be optimized, but checkout, the cart, the account area, and the submission form should not be aggressively cached as static pages. The extension's HPOS compatibility helps on the WooCommerce order side, but it does not replace standard optimization of images, queries, and theme performance.

What should you do if the exact cause of an error is not obvious?

Narrow the chain. First test a normal WooCommerce product, then a Single Listing (WPAdverts) product, then publication without payment, then payment, then moderation, and only after that packages. That order is faster than changing every setting at once.

By OceanTheme.org Editorial Team

 

You are not logged in to post comments.