Pricing Per Feature

Posted in: Modules and Extensions

One method which allows optimizing classifieds site earnings is to allow more detailed item description based on the amount the user will pay for the Ad.

For example, you can have 3 pricing types:

  • Basic – allows entering basic information.
  • Premium – allows entering basic information and 3 images.
  • Business – allows entering basic information and 10 images.

The Basic listing type would be the cheapest and the Business listing type would be the most expensive. The more details and images a user can add the more likely he is to sell his item, so for the user, it might make sense to pay more for the listing.

Pricing per feature with Easy Pricing Table plugin.

The Setup

This kind of setup is possible in WPAdverts, you will need just two extensions: WooCommerce Integration version 1.4 or newer (to handle payments) and Custom Fields (to setup different form variations).

Once you have both extensions installed and activated, you will need to go to wp-admin / Classifieds / Options / WooCommerce Payments settings panel, check the “Users need to select pricing before they can see [adverts_add] form.” checkbox and save the form.

Note the checkbox will be visible only if you have both Custom Fields and WooCommerce Integration installed and activated.

WPAdverts WooCommcerce Integration Config

Create Form Schemes

The next step is to go to wp-admin / Classifieds / Options / Custom Fields panel and create as many as you need form schemes for the [adverts_add] shortcode.

Few Notes:

Custom Categories List

If the pricing to which this form will be assigned should allow posting Ads in one category only. For example, if you only want to charge users for posting in Job Offers category. Then you would need to do the following:

Edit the Category field, in Fill Method select I will enter options myself, check the “use values” checkbox and start entering options. Make sure that in “value” field you will enter an ID of the category and in “text” field the category name.

One other way to do that would be to register a custom data sources for each of your form schemes, however, this will require some custom programming knowledge.

Different Validation Rules

It is ok to have exactly the same form schemes which will differ only in the validation rules. For example, you can have a Basic form scheme which will allow 3 file uploads only and a Premium form which will allow up to 10 file upload.

To this simple create the basic form first, then make a copy of the Basic form (that is, create a new form with the same custom fields) and change just the validation rules for the Gallery field.

Assign Form Schemes To Pricings

Once you have all the needed [adverts_add] form schemes created it is time to assign them to pricings. Go to wp-admin / Products panel and edit (or create a new) Advert listing type.

Selecting a form scheme for a WPAdverts WooCommerce product

Notice the “Form Scheme” field at the end of the “Product data” box. In this field, you can assign one of the previously created form schemes to the pricing.

Repeat this step for each of each of your pricings. Note that this feature can be used only with the “Single Listing (WPAdverts)” product. It will not work with “Renew Listing (WPAdverts)“.

Customize [adverts_add] display

When you will view the page with [adverts_add] shortcode you will notice that the shortcode will ask you to select pricing first and only then you will be able to see the [adverts_add] form. Of course, the loaded form will use the form scheme applied to selected pricing.

[adverts_add] form will ask you to select a pricing first.

The basic pricing scheme most likely will not show the differences between different listing types. This is where some pricing table plugin will come in handy.

Custom Pricing Tables

Which pricing table plugin you will use is completely up to you, any plugin should work. I will show how to do that with the Easy Pricing Table plugin.

You will need to start by installing the plugin and creating a pricing table. If you have a problem with building the pricing table, please refer to the documentation or ask EPT support for help.

As far as the WPAdverts integration is concerned the most important step is to enter correct Button URL, it should be something like ?preselected_pricing=1000 where 1000 is an ID of a product from the wp-admin / Products panel.

(To see the product ID in the Products list hover over a product and you should see the “ID: ????” where the question marks are the actual product id).

Pricing Table configured for a proper WPAdverts Integration.

We are almost done, one last step is to go to wp-admin / Pages panel and edit the page with [adverts_add] shortcode.

In the page content replace the [adverts_add] shortcode with code similar to the one below

[adverts_add ]
[wpadverts_wc_purchased]
[easy-pricing-table id="2000"]
[/adverts_add]



After this change [adverts_add] will stop using the default pricing table, instead it will render two shortcodes:

  • [wpadverts_wc_purchased] – this shortcode will display list of packages user already owns and can use. If the user does not have any active packages then the shortcode will not display anything. You do not need to use this shortcode if you are not offering packages, but if you do then without this shortcode users will have no way of using their purchased packages.
  • [easy-pricing-table id=”2000″] – this is a shortcode which will display the pricing table created earlier, assuming the pricing table ID was 2000.  The actual shortcode for your pricing table you can copy from the page where you created it.

Using different pricing table plugins

If you do not like Easy Pricing Table for some reason or have other pricing tables you would like to use then the integration steps will most likely be pretty much the same.  You will just need to remember two things:

  1. When creating the pricing table make sure the button URL is ?preselected_pricing=1000 where 1000 is an ID of a product from the wp-admin / Products panel.
  2. When editing page with [adverts_add] shortcode make sure you will use the correct shortcode for your pricing table.