1. Requirements

  • WordPress 3.8+, 4.x
  • PHP 5.4 or higher.
  • PHP GD Graphics Library (just for the image CAPTCHA).

2. Installation

If it's your first time installing a plugin, follow the following steps.

  1. Login to to your WordPress administration back-end.
  2. Navigate to Plugins → Add New, click the Browse button.
  3. Unzip the package you have downloaded and select the file to upload.
  4. Once upload has completed, either click the Activate this plugin link on that page or go back to the plugins page, find the "This Domain is For Sale" plugin and click its Activate link.
  5. At your own discretion, you can also upload and enable the free theme (download DIFSTHEME) that comes with this plugin, via Appearance → Themes → Add New. We have recently released a commercial theme too, it's called "Domain" :) you can see a live preview of that theme by clicking this link.
  6. Without a theme, you should use the "Domain For Sale" widgets through Appearance → Widgets, just right after activating the plugin.
  7. Finally, go to your WordPress front-end and make sure the form is visible on the front page :) you're done!


  1. If the WordPress installation is not meant to be used for any other purpose than selling domain names, we recommend you to unpublish all the sample posts and pages created during the WordPress installation.
  2. In order to update the registration & expiration dates in the "Domains" page, or the statistics provided by the "Domain Facts" feature, you should clear the plugin cache, either through the "Domain For Sale" menu in the administration toolbar, or through the "Domains" page.
  3. If you are selling more than one domain it's recommended to not to receive offers for your main domain - that is, the domain that your WordPress is installed on.
    In order to do so, you can create a configuration for the main domain and change the "Status" of the main domain to "Closed". In addition to this, using a new option that is introduced since v2.4 you can  declare your main domain as "not for sale". By using this option all the plugin widgets that are related to selling domains will be made hidden on the main domain automatically.

    Follow these steps to make "Close" your main domain:
    1. Go to your WordPress administration back-end → Domains for SaleConfiguration,
    2. Type the name of your main domain (e.g. in the text box at top right and click the Configure button.
    3. Find the "Status" option under the "Bidding" tab and change its override option to "Override the default".
    4. Change "Status" setting to Closed and save the configuration.

    Follow these steps to declare your main domain as "not for sale":

    1. Go to your WordPress administration back-end → Domains for SaleConfiguration,
    2. Find the "Main Domain" section under the "Advanced" tab.
    3. Tick the "The main domain name is not for sale" and save the configuration.

    The reason for this lies in the fact that by selling the main domain and transferring it to its new owner your WordPress installation will be unreachable and also all your other domains (if any) will display blank pages or something like that. Obviously, this shouldn't be a problem if you either want to sell all your domains at once, or you have only a single domain to sell.

2.1 Manual update

Before you begin!

If you have either modified the plugin (and\or a theme) or received a customized version from us, please contact us via before attempting an update.

If you've purchased this plugin via HTMLPIE.COM you will receive updates via e-mail, other customers should download the latest version from the marketplace they have purchased the plugin from.

Once you had the latest version of the plugin, follow these steps to manually update your plugin:

  1. Login to your WordPress administration back-end and go to the Plugins page, find the "This Domain is For Sale" plugin, click its "Deactivate" link.
  2. Using a FTP client, or a Web-based tool like cPanel, create a backup of the plugin folder at /wp-content/plugins/this-domain-is-for-sale or your whole WordPress (especially if you have translation files under /this-domain-is-for-sale/languages or /wp-content/languages), then delete the entire /this-domain-is-for-sale folder.
    (Never use the "Delete" link of the Plugins page! it will delete your offers, statistics, configuration etc)
  3. Unzip the file (it's inside the ZIP package you have downloaded) and upload the /this-domain-is-for-sale directory to the /wp-content/plugins
  4. Go back to the Plugins page, click the Activate link of the "This Domain is For Sale" plugin and you are done!

Please note, if you are using the free theme (DIFSTHEME) you should update it to the latest version as well.

2.2 Automatic updates

Before you begin!

If you have either modified the plugin (and\or a theme) or received a customized version from us, please contact us via before attempting an update.

Automatic updates require an "activation key", please visit to register your copy and receive your activation key.

Follow these steps once you have received your key:

  1. Login to your WordPress administration back-end.
  2. Go to "Domain For Sale" → Configuration → Maintenance.
  3. Enter your activation key & enable automatic updates.
  4. Save the configuration and you're done!

Now, every time there is an update available the WordPress itself will take care of it just like it takes care of updates for free plugins and WordPress core.

2.3 How to add your domains

This plugin can handle any number of domains as long as they are all parked on the same domain that has the WordPress and this plugin installed on.

Unfortunately, the term "parking" or a "parked domain" is not used widespread so depending on the software you are using on your Web server you may have to deal with "Domain Pointers", "Domain Aliases", and so on and so forth.

If you have any problems parking your domains, please contact your Web host for instructions, but bear in mind, most Web hosts put their own custom landing pages on parked domains; Therefore, if you only ask them to park the domain they will probably park it on some landing page of their own, so it's better to be specific and ask them to park your domains on the domain name that has the WordPress is installed on, just in case.

In order to make sure the domains are parked properly, visiting each parked domains, you should see your WordPress site and the Web browser address bar would still be showing the the parked domain that you have typed the name of, and not showing the name of the main domain which has the WordPress installed on.

If that is still not clear, let's say is parked on, each time you go to the the domain name in your Web browser address bar must remain while the site that you will be brought to would be that of and nothing else.

Please note, visitors can easily find out the domain name which the WordPress is installed on by simply viewing the source code of the page from their Web browser from any of your domains.

3. Troubleshooting

I've activated the plugin but I can't see anything new on my front-end:
Go back to the administration back-end, find Widgets under Appearance menu, add any of the Domain For Sale widgets to a widget area.
Not receiving e-mails:
Make sure you have entered a correct e-mail address in the configuration form.
Make sure the e-mails do not end up in the Spam box of your e-mail.
I have enabled the image CAPTCHA but I cannot see it:
Make sure "PHP GD library" is installed on your Web server.
The form title always changes into the main domain name.
Make sure you have parked your domains on the main domain, not redirected to; please refer to the section 2.3 for more details.

If none of the above could help contact us through and we'll be there in a jiffy :)

4. Frequently Asked Questions

4.1 Is it possible to park domains on an addon domain and not the primary domain?

Technically speaking, yes it is possible but it depends on your Web server software too, you can contact us - or your Web host - if you need help with it.

4.2 How to add a PayPal button to the form?

Using plain PayPal buttons for this purpose is not recommended at all as any payment made through PayPal can be cancelled for 45 days.
Most of our customers use escrow services, such as as they are safe, secure, and made for this purpose, we recommend you to use them too. If you are selling your domains for a fixed price you can create payment "buttons" for your domains on and place the HTML code they'll provide using the "Custom HTML code" feature.

4.3 How to add domain-specific CSS?

You should use a special class name that is domain-specific, like this:

body.difs_domain_example_com {
	background: #fff;
body.difs_domain_example_com a {
	color: #0000ee;

4.4 How to redirect parked domains to a page other than the front page?

Create or edit the .htaccess file in the root directory (usually /public_html) and add the following to it, replace the /index.php?page_id=1 with the destination (index.php is necessary), and replace the domains with the parked domains you wish to redirect (note, the last one ends with just [NC], while all the rest have [OR,NC])

RewriteEngine On
		RewriteBase /
		RewriteCond %{HTTP_HOST} ^$ [OR,NC]
		RewriteCond %{HTTP_HOST} ^$ [OR,NC]
		RewriteCond %{HTTP_HOST} ^$ [NC]
		RewriteCond %{QUERY_STRING} ^$
		RewriteRule ^$ /index.php?page_id=1 [R=301,L]

Please note, for the above sample to work properly, your WordPress Address and Site Address settings under Settings → General should not have any www. prefix.

4.5 How to have more statistics?

This plugin provides a bunch of useful statistics that should be enough to know what is going on with your domains etc, but if you need more detailed statistics such as visitors' geographical diversity, device usage etc you can easily add Piwik to your theme by following these steps.

  1. Download Piwik ( and install it at for example.
  2. Use your main domain name in the primary configuration wizard.
  3. Login to your Piwik administration back-end.
  4. Go to the Settings page by clicking your user name at the top right.
  5. Click the Tracking Code menu on the left.
  6. Check Prepend the site domain to the page title when tracking (very important!)
  7. Copy the JavaScript Tracking Code and paste it somewhere before </body> in the footer.php of your theme.
  8. Wait for some visitors :)
  9. Go to the Piwik Dashboard (or login to Piwik)
  10. Navigate to Page Titles under the Actions tab, this is where you can see some visit statistics per parked domains; the other tabs can tell you about browser, device usage, etc.

Do you know a WordPress plugin and\or software that can be used alongside this plugin to provide better domain-specific statistics? Please let us know about it!

5. Administration

The administration back-end of this plugin consists of several pages which provide you with almost everything you need to have a successful domain business, below we will explain what you should know about these pages.

5.1 Offers page

The Offers page provides a list of the all offers made on all your domain names.


Offers can be filtered by month, domain name and extensions using the lists at the top of the table and by clicking the email & IP addresses, domain names, referrers (if one exists), and dates (which filters by day) in the table.


If you have a domain name for a particular country that does not do business in US dollars, you can easily set the currency for the domain to other major world currencies.

Each day, the plugin connects to the European Central Bank website and retrieves the latest exchange rates for different currencies. All you have to do is to hover your mouse over the offers in currencies other than USD to see their estimated value! No need to go to or each and every time to just check the USD value. :)


The Referrer column has two specific, almost unrelated jobs. Firstly, you should know that you can provide custom referring links such as "" to anybody (they do not need a user account) so that they can refer bidders to your website.

Second; there is the referring URL - this is the URL that brought the bidder to your domain, let's say "". You can use this information to find out where the traffic to your domains comes from. You can use statistics plugins as well (most web hosts offer AwStats, which is awesome) however those statistics cannot tell you which offer was made as a result of which backlink, the referrer column does that! :)

CSV download:

A CSV export of the offers allows you to bring your data to spreadsheet software like Microsoft Excel or LibreOffice Calc.

5.2 Domains page

This page contains a list of your parked domains. How to park your domains? please read the section 2.3 above :)


Once you have parked all of your domains, you can either import a list of your domains via the "Import" form or wait for the Domains page to get populated automatically using the offers data (takes some time, depending on how fast each domain receives its first offer).

Highest Offer:

The highest offer for each domain name is calculated based on the estimated value of the offer in USD, and as currencies are automatically converted using up-to-date daily exchange rates, you can hover over each number to view the value converted to USD.

Registration & expiration dates:

The registration and expiration dates of domain names with TLDs that has publicly-accessible WHOIS services are added to the Domains page automatically. In addition, there's expiration warnings in form of a label for the domain name and color change of the expiration date.

5.3 Statistics page

This page provides eight charts, probably enough to know what is going on but if you need more please read section 3.5 for how you can setup Piwik.

5.4 Shortcodes page

Contains a list of available plugin Shortcodes together with available arguments and descriptions for them.

Please note, instead of Shortcodes you can use widgets or drag & drop page builder plugins such as WPBakery Visual Composer or SiteOrigin Panels.

5.5 Configuration page

This is probably the best part of this plugin, but you can probably just skip the lines below as all the settings on that page are self-explanatory too :)

  • Domain rewrite
    Some domain names consist of more than one keyword, such as, it'd be useful to "camel-case" such names in order to ensure keywords are easily identifiable, like :)

  • Title
    As the name implies this option defines a title for your landing pages.

    %domain% can be used as a token for the domain name, and you should leave this field empty if you prefer a dynamic title for the form, like " Is for sale" (with "Is for sale" part being a translatable string, but if you customize the Title it won't be translatable, at least until v2.5).
    Starting from v2.4, a new token was added, %domain_html%, which prints domain name wrapped in HTML so that it can be styled using CSS.

  • Description
    You can put details about the history of the domain name and such; the %domain% token can be used in this field as well.
    Starting from v2.4, a new token was added, %domain_html%, which prints domain name wrapped in HTML so that it can be styled using CSS.

    Please note, this field cannot be translated, until at least v2.5.

  • Description <meta> tag
    As the name implies, a description <meta> tag can be added (obviously to the <head>) using this feature.
    Please read this article for how you can write a proper <meta> description:
  • Tags
    Allows you to mark or classify your domains with tags.

  • Logo
    Starting from v2.4, each domain can have a logo.
  • Domain facts
    Adds several useful statistics about the domain, such as age, offer count, highest offer, etc.
  • The main domain is not for sale
    By enabling this option the following widgets will be made hidden on your main domain:
    Domain facts, Fixed price, All in one (except its domain list, search, and filters), Form, and Starting price.
    These widgets however will stay the same: Title, Description, Tags, Search, Filters, Domain name, Custom HTML, Logo, Portfolio (domain list), Status.
  • Add name, phone, and comment
    With these options enabled, bidders will be able to provide their name and phone number, and possibly write a few lines about their offer.
    Please note, "comment" here is not the same thing as a WordPress post comment, it's just a private message sent to you, invisible to public.

  • Redirect on successful bid submission
    Redirects the bidder once the form is submitted; use with caution!

  • Form route
    By default the form is located on the front page but if it is not located there for whatever reason, you can enter the URL to the page that contains the form so that domain name links from the domain list, form titles, and so on will lead to that URL instead of the front page.
  • Portfolio route
    By default the portfolio is located on the front page but if it is not located there for whatever reason, you can enter the URL to the page that contains the portfolio so that the search and filters widgets will redirect to that URL once submitted.
  • Custom HTML
    Use this option to add JavaScript snippets, or buttons, etc.
  • Cron jobs
    In order to calculate the domain "age" a WHOIS request has to be made for each domain name to get its registration and expiration dates, this is done in several Cron jobs.
  • E-mail each offer to the domain owner Receive an email notification for each offer.
  • Custom "From:" Address

    Please use this option only if you are sure of what you are doing!

    By default, all the e-mails sent through your form use sender's e-mail address as the "From:" in the header of the e-mail (it requires your server to allow "relaying"), using this option you can set a different e-mail address for the "From:".

  • Sending e-mails without relaying

    When a script hosted on your own site sends you an e-mail, the sender's e-mail address will be used as the "From:" address, even though the e-mail has not actually been sent through the sender's e-mail server, this action is known as "relaying".

    In order to minimize Spam, Phishing, online fraud, and so on and so forth many services, like DreamHost, iPage, GoDaddy, etc. either disable or limit the "relaying" feature, and require you to set the "From:" address of the e-mails you send from your own site to a trusted e-mail address; for example, one that you can use SMTP authentication with or one that belongs to your own site (for example if your site is By enabling this feature, the plugin looks at the e-mail addresses of the sender and recipient, the "Mail" and the "Custom From: Address" options, and decides what is best to be used as the "From:" address.

    Please enable this option only if your server does not allow "relaying" or limits it to a very few email per hour or per day.

  • E-mail format

    Most of the e-mails you receive every day have HTML tags in them, but due to security concerns this plugin does not allow HTML elements in the e-mails, and sends them in "plain text" by default. This option allows you to change that and allow HTML.

  • E-mail verification

    Sends a link to the bidders asking them to click it to verify their e-mail address.

  • Notifications for e-mail verifications

    Sends an e-mail to the domain owner notifying them of verification of bidder's e-mail address.

  • SMTP Settings

    This plugin supports SMTP, the details for which can be provided in this section.

  • Portfolio
    You can either add a list of your domains manually or enable automatic population of the domain list using domains added to the "Domains" page.
    There are also other options like inclusion of price, tags, etc and a domain list filter and so on and so forth.
  • Price
    How do you want to sell your domain(s), to the highest price or a fixed-price? This is where you choose that.
  • Currency
    This plugin automatically converts non-USD currencies to USD, so for example if you hover your mouse over a price in the Offers table that is in GBP you'll see how much it actually is worth in USD.

  • Starting price
    Sets a minimum limit for offers. Obviously, not useful when "Fixed price" option is selected for the "Price" option.

  • Follow the highest offer for the starting price
    Uses the highest offer for the domain instead of the starting price option.

  • Set an end date
    Limits the bidding time; displays a message to the visitors when the time is past.
    The free theme (DIFSTHEME) has the jQuery Coutndown plugin integrated with this, which you should take a look at :)

  • Status
    "Open" to visitors and their offers.
    "Closed", as in temporarily not accepting offers
    "Sold" as in sold :)

  • CAPTCHA type
    This plugin has an anti-Spam flood protection that blocks repetitive form submissions, but in addition to that, it offers two types of CAPTCHA solutions, the well-known and indeed cumbersome image CAPTCHA, and the totally invisible Honey-pot CAPTCHA.

  • E-mail and IP address blacklists
    As the name implies you can blacklist e-mail and IP addresses by filling these two boxes.

    Please note, IP blacklist feature is not meant to stop DDoS attacks, besides this blacklist does not cover your whole WordPress site, only the form this plugin provides.

  • Force this status to all the domains regardless of their own status
    This is actually the only setting which cannot be configured on a per-domain basis, unlike all the rest.

    This option let's you declare all the inventory of your domains as "Closed" (when there is a wholesale offer for example) or "Sold" and so on, it overrides the domain-level configurations of the "Status" setting; use with caution!

  • Offer pruning
    Automatically prunes old offers.

  • Automatic updates
    Register your copy via using your purchase code to let WordPress update this plugin just like it updates free plugins hosted on

That's about it, please feel free to contact us for feature requests!

Do you want to be notified of updates? follow @htmlpie on Twitter or subscribe our newsletter via