Title: Domain Search for WHMCS
Author: Shipon Karmakar
Published: <strong>28 Tháng 2, 2025</strong>
Last modified: 29 Tháng 9, 2026

---

Tìm kiếm plugin

![](https://ps.w.org/domain-search-for-whmcs/assets/banner-772x250.png?rev=3646122)

![](https://ps.w.org/domain-search-for-whmcs/assets/Icon-256x256.gif?rev=3287071)

# Domain Search for WHMCS

 Bởi [Shipon Karmakar](https://profiles.wordpress.org/shiponkarmakar/)

[Tải về](https://downloads.wordpress.org/plugin/domain-search-for-whmcs.3.1.7.zip)

 * [Chi tiết](https://vi.wordpress.org/plugins/domain-search-for-whmcs/#description)
 * [Đánh giá](https://vi.wordpress.org/plugins/domain-search-for-whmcs/#reviews)
 *  [Cài đặt](https://vi.wordpress.org/plugins/domain-search-for-whmcs/#installation)
 * [Nhà phát triển](https://vi.wordpress.org/plugins/domain-search-for-whmcs/#developers)

 [Hỗ trợ](https://wordpress.org/support/plugin/domain-search-for-whmcs/)

## Mô tả

**Domain Search for WHMCS** is a lightweight WordPress plugin that adds a polished
domain search form to your site and hands the visitor off to your existing WHMCS
billing portal to complete registration.

It is purpose-built for hosting providers, domain resellers, ICANN registrars, and
white-label hosting brands who already use WHMCS as their billing platform.

#### TL;DR

 * Install, activate, paste `[domain_search_for_whmcs]` on any page.
 * No JavaScript on the front-end. No external requests. No tracking.
 * Create unlimited branded shortcodes pointing at different WHMCS installs.
 * Modern admin dashboard with built-in support center.
 * Translation-ready, multisite-friendly, GDPR-friendly.

#### Why this plugin

Most WHMCS integrations are heavy or hard-coded. This one is the opposite: a single,
dependency-free shortcode that drops into any layout. It does one thing and does
it cleanly.

 * No external API calls — submits directly to your own WHMCS install.
 * No JavaScript on the public site (admin-only JS for the dashboard tabs).
 * Works with classic themes, block themes, and every major page builder.
 * Visitor queries never touch a third-party server.

#### Key features

**Drop-in shortcode** — `[domain_search_for_whmcs]` works in posts, pages, widgets,
FSE template parts, page-builder shortcode blocks, or via `do_shortcode()` in PHP.

**Unlimited custom shortcodes** — create branded forms each pointing at a different
WHMCS install with its own placeholder. Reference them as `[domain_search_for_whmcs
id="sc_xxxxx"]`.

**Modern admin dashboard** — tabbed UI, click-to-copy shortcodes, an “At a Glance”
overview (custom shortcode count, active host, HTTPS status), and a built-in Support
tab.

**Built for speed** — one ~1.7 KB CSS file. No JavaScript, no jQuery, no Ajax, no
remote assets, no tracking pixels.

**Theme-agnostic styling** — six stable, well-named CSS classes you can target from
any theme or page builder.

**Developer extensibility** — five filter hooks let plugins and themes change behavior
without forking. See _Developer Filters_ below.

**Secure by default** — nonce verification, capability checks, sanitized I/O, properly
escaped output.

**Translation-ready** — every string wrapped in the `domain-search-for-whmcs` text
domain.

**Privacy-friendly** — no data collection, no cookies, no remote services. See _Privacy_
below.

#### Perfect for

 * Hosting providers running WHMCS as their billing system.
 * Domain resellers with multiple storefronts (TLD niches, geographic markets, white-
   label brands).
 * ICANN registrars offering retail domain sales through WordPress.
 * Agencies building landing pages for hosting clients.

#### How it works

 1. The shortcode renders a clean HTML form on your page.
 2. When a visitor submits it, the browser navigates (in a new tab) to:
     https://your-
    whmcs.com/cart.php?a=add&domain=register&query=THE-DOMAIN
 3. WHMCS handles availability, pricing, TLDs, cart, and checkout — exactly as it would
    for any other entry point.

You do **not** need to expose any WHMCS API credentials in WordPress. The plugin
never calls WHMCS APIs; it just hands off the visitor.

#### Roadmap

 * Optional Gutenberg block wrapper.
 * Optional Elementor and Bricks widgets.
 * Optional inline Ajax availability check (off by default; would call your WHMCS
   Domain Availability API).
 * Bulk import/export of custom shortcodes.

### Quick Start

 1. Install and activate the plugin.
 2. Go to **Settings  Domain Search for WHMCS**.
 3. On the **Default Settings** tab, enter your WHMCS base URL (e.g. `https://billing.
    example.com`) and a placeholder (“Find your domain”).
 4. Click **Save Changes**.
 5. Add `[domain_search_for_whmcs]` to any post or page.

That’s it. Visitors who type a domain and submit will land on your WHMCS cart with
the search pre-filled.

### Shortcode Reference

**Default shortcode** (uses the _Default Settings_ tab values):

    ```
    [domain_search_for_whmcs]
    ```

**Custom shortcode** (uses settings from a specific custom shortcode):

    ```
    [domain_search_for_whmcs id="sc_1234567890_456"]
    ```

The `id` value is generated when you create a custom shortcode and is shown in the
table on the **Custom Shortcodes** tab. Click it to copy.

If a custom `id` is provided but doesn’t exist (e.g. it was deleted), the plugin
falls back to the default settings rather than rendering nothing.

### Developer Filters

The plugin exposes five filters for runtime customization. All filters fire inside
the shortcode renderer, so you can vary output per page, per user, or per locale.

#### dsfwhmcs_whmcs_url

Filter the resolved WHMCS base URL right before the form is rendered.

    ```
    add_filter('dsfwhmcs_whmcs_url', function($url, $atts) {
        // Send logged-in users to the staff portal.
        return is_user_logged_in() ? 'https://members.example.com' : $url;
    }, 10, 2);
    ```

**Returns:** `string` — the WHMCS base URL.

#### dsfwhmcs_placeholder

Filter the placeholder text dynamically.

    ```
    add_filter('dsfwhmcs_placeholder', function($placeholder, $atts) {
        return get_locale() === 'fr_FR' ? 'Trouvez votre domaine' : $placeholder;
    }, 10, 2);
    ```

**Returns:** `string` — the placeholder text.

#### dsfwhmcs_form_action

Filter the full form action URL (default: `{whmcs_url}/cart.php`).

    ```
    add_filter('dsfwhmcs_form_action', function($action, $whmcs_url, $atts) {
        return trailingslashit($whmcs_url) . 'domainchecker.php';
    }, 10, 3);
    ```

**Returns:** `string` — the action URL.

#### dsfwhmcs_form_method

Switch the form method. Defaults to `GET`; return `'POST'` for legacy WHMCS configurations
that prefer it.

    ```
    add_filter('dsfwhmcs_form_method', function() {
        return 'POST';
    });
    ```

**Returns:** `string` — `'GET'` or `'POST'`.

#### dsfwhmcs_shortcode_html

Filter the rendered HTML before it’s returned to WordPress. Useful for wrapping 
the form, injecting analytics attributes, or replacing markup wholesale.

    ```
    add_filter('dsfwhmcs_shortcode_html', function($html, $atts) {
        return '<div class="my-wrapper">' . $html . '</div>';
    }, 10, 2);
    ```

**Returns:** `string` — the final HTML.

### Compatibility

 * **WordPress:** 5.0+ (tested up to 7.1)
 * **PHP:** 7.4+ required (PHP 8.0, 8.1, 8.2, 8.3 fully tested; PHP 8.1+ recommended)
 * **WHMCS:** any version supporting the standard `cart.php?a=add&domain=register`
   URL (WHMCS 6.0+)
 * **Multisite:** fully compatible; settings are per-site
 * **Page builders:** Gutenberg, Classic Editor, Elementor, Beaver Builder, Bricks,
   Divi, Oxygen, Breakdance
 * **Caching plugins:** fully compatible (the form is static HTML)
 * **HTTPS:** strongly recommended for both WordPress and WHMCS — the dashboard’s“
   At a Glance” panel flags HTTP connections

### Troubleshooting

#### The form submits but I get a 404 or blank page on WHMCS

Check the WHMCS URL in **Default Settings**. It should be the base URL of your WHMCS
install (e.g. `https://billing.example.com`) — not `https://billing.example.com/
cart.php`. The plugin appends `cart.php` itself.

#### The form looks unstyled

Make sure your theme isn’t blocking plugin stylesheets. The plugin enqueues a file
named `domain-search-for-whmcs.css` on the front-end. If your theme has aggressive
CSS overrides, target the `.dsfwhmcs-*` classes from the _Customization_ tab.

#### Visitors land on the cart but the search box is empty

This usually means the URL was reached without the query parameter. Check that no
caching plugin is stripping query strings from form submissions.

#### The Support tab is cut off on my phone

Update to 3.1.0+. The tab strip is now horizontally scrollable on narrow screens.

#### Other plugins’ notices appear inside the green dashboard header

That’s a WordPress core behavior. Update to 3.0.0+ where the plugin uses `<hr class
="wp-header-end">` to push third-party notices below the header.

### Privacy

Domain Search for WHMCS is privacy-respecting by design.

 * **No tracking.** The plugin sets no cookies and loads no remote scripts.
 * **No data collection.** Visitor search queries pass directly from the browser
   to your WHMCS install — they do not touch the WordPress server, are not logged,
   and are not transmitted to any third party.
 * **No external services.** All assets (CSS, fonts, icons) are served from your
   own site. No CDN or remote dependency.
 * **Stored data.** Only configuration is stored — WHMCS URL, placeholder text, 
   custom shortcode definitions — in the WordPress `wp_options` table. This is removed
   on plugin uninstall.

You should still ensure your WHMCS install has its own privacy policy in place, 
since the visitor will be entering personal data on that side of the integration.

### External Services

This plugin does not connect to any external service.

The visitor’s browser submits the search form directly to **your own WHMCS installation**—
a first-party endpoint that you control. Nothing is sent to WordPress.org, third-
party domain APIs, analytics services, or the plugin author.

### Source Code

This plugin contains no minified or compiled assets. All PHP, CSS, and JavaScript
shipped in the plugin is human-readable source.

The plugin is hosted on WordPress.org. Issues and pull requests can be submitted
via the support forum or by emailing [shipon@zendforce.com](https://vi.wordpress.org/plugins/domain-search-for-whmcs/shipon@zendforce.com?output_format=md).

## Ảnh màn hình

[⌊Front-end domain search form rendered on a marketing page.⌉⌊Front-end domain search
form rendered on a marketing page.⌉[

Front-end domain search form rendered on a marketing page.

[⌊Admin dashboard — Default Settings tab.⌉⌊Admin dashboard — Default Settings tab
.⌉[

Admin dashboard — Default Settings tab.

[⌊Admin dashboard — Custom Shortcodes tab with multiple branded forms.⌉⌊Admin dashboard—
Custom Shortcodes tab with multiple branded forms.⌉[

Admin dashboard — Custom Shortcodes tab with multiple branded forms.

[⌊Admin dashboard — Customization reference for theme designers.⌉⌊Admin dashboard—
Customization reference for theme designers.⌉[

Admin dashboard — Customization reference for theme designers.

## Cài đặt

#### From the WordPress.org directory (recommended)

 1. In your WordPress admin, go to **Plugins  Add New**.
 2. Search for “Domain Search for WHMCS”.
 3. Click **Install Now**, then **Activate**.
 4. Configure under **Settings  Domain Search for WHMCS**.

#### Manual installation

 1. Download the plugin ZIP from WordPress.org.
 2. Upload it via **Plugins  Add New  Upload Plugin**, or extract to `/wp-content/plugins/
    domain-search-for-whmcs/` via SFTP.
 3. Activate through the **Plugins** menu.
 4. Configure under **Settings  Domain Search for WHMCS**.

## Hỏi đáp

### How do I change the WHMCS URL?

Open **Settings  Domain Search for WHMCS** and update the _WHMCS URL_ on the **Default
Settings** tab. Use the base URL of your WHMCS install (e.g. `https://billing.example.
com`) — no trailing slash, no `cart.php`.

### Can I customize the placeholder text?

Yes. Each shortcode has its own placeholder field. You can also change it programmatically
with the `dsfwhmcs_placeholder` filter.

### Can I have different search forms for different brands?

Yes — that is what the **Custom Shortcodes** tab is for. Each custom shortcode has
its own WHMCS URL and placeholder. Reference it as `[domain_search_for_whmcs id="
sc_xxxxx"]`. Click any shortcode in the table to copy.

### Does this plugin store any user data?

No. The plugin saves only your configuration (WHMCS URLs, placeholders, custom shortcode
definitions) in `wp_options`. The search form submits the visitor’s query directly
to your WHMCS site — nothing is logged or transmitted by this plugin.

### Will it work with my theme or page builder?

Yes. The output is small, semantic HTML. Tested with classic themes, block themes(
FSE), Elementor, Beaver Builder, Bricks, Divi, Oxygen, and Breakdance. If your builder
has a “Shortcode” element, drop it in there.

### How do I style the form?

Open the **Customization** tab inside the plugin to see the available CSS classes.
Add overrides in _Appearance  Customize  Additional CSS_, your child theme’s stylesheet,
or a CSS plugin. The classes are stable and won’t change between minor versions:

 * `.dsfwhmcs-wrapper` — outer container
 * `.dsfwhmcs-form` — `<form>` element
 * `.dsfwhmcs-search-input-group` — input group container
 * `.dsfwhmcs-input-with-button` — flexbox wrapper for input + button
 * `.dsfwhmcs-domain-search-input` — the `<input>` field
 * `.dsfwhmcs-domain-search-button` — the submit button

### How do I get support?

The **Community Forum** on WordPress.org is the primary support channel — please
open a thread there for the fastest public response. You can also reach the developer
directly at [shipon@zendforce.com](https://vi.wordpress.org/plugins/domain-search-for-whmcs/shipon@zendforce.com?output_format=md)
for personal assistance. Inside the plugin, the **Support** tab has both links plus
a system info card that’s handy to copy-paste into a bug report.

### Does it work with the WHMCS REST/Domain Lookup API?

Not at the moment — the plugin hands off to WHMCS’s own `cart.php` flow. This keeps
the integration simple, fast, and dependency-free, with no need to expose WHMCS 
API credentials to WordPress. An optional inline-availability mode (off by default)
is on the roadmap.

### Will my old shortcodes still work after upgrading?

Yes. All existing default settings and custom shortcode IDs are preserved across
upgrades. No data migration is required.

### Why am I seeing other plugins’ admin notices on the settings page?

Standard WordPress behavior — third-party plugins (SMTP plugins, security plugins,
etc.) hook into the global `admin_notices` action which fires on every admin screen.
Domain Search for WHMCS does not display those notices itself.

### What PHP version does the plugin require?

PHP 7.4 or higher. The plugin is tested on PHP 7.4, 8.0, 8.1, 8.2, and 8.3. We strongly
recommend running PHP 8.1 or newer for performance and security — PHP 7.4 itself
reached end-of-life in November 2022.

### How do I uninstall and remove all data?

Deactivate, then **Delete** the plugin from the Plugins screen. The bundled `uninstall.
php` removes all plugin options from the database.

### Is the plugin GDPR-compliant?

Yes. The plugin does not collect, process, or transmit visitor data. The search 
form submits the query directly from the visitor’s browser to your own WHMCS install(
a first-party data flow already covered by your existing privacy policy). The plugin
sets no cookies, loads no remote assets, and logs nothing.

### Is the plugin compatible with WordPress Multisite?

Yes. Activate per-site or network-activate. Settings are stored per-site, so each
site in the network has its own WHMCS URL and shortcodes.

### Can I contribute or submit a feature request?

Yes — open a thread on the WordPress.org plugin support forum, or email [shipon@zendforce.com](https://vi.wordpress.org/plugins/domain-search-for-whmcs/shipon@zendforce.com?output_format=md).

## Đánh giá

![](https://secure.gravatar.com/avatar/9b7b4a85851565ed7c78961c9daa8a3fb1eddf2c11fdaeb3f1785a0d683c6a16?
s=60&d=retro&r=g)

### 󠀁[WordPress Plugins for Domain Resellers](https://wordpress.org/support/topic/wordpress-plugins-for-domain-resellers/)󠁿

 [Muhibul Haque](https://profiles.wordpress.org/devmuhib/) 1 Tháng 3, 2025

Essential plugins for domain resellers who have built their websites with WordPress.
Thank you for creating such valuable tools!

 [ Đọc tất cả 1 đánh giá ](https://wordpress.org/support/plugin/domain-search-for-whmcs/reviews/)

## Người đóng góp & Lập trình viên

“Domain Search for WHMCS” là mã nguồn mở. Những người sau đã đóng góp vào plugin
này.

Những người đóng góp

 *   [ Shipon Karmakar ](https://profiles.wordpress.org/shiponkarmakar/)

[Dịch “Domain Search for WHMCS” sang ngôn ngữ của bạn.](https://translate.wordpress.org/projects/wp-plugins/domain-search-for-whmcs)

### Muốn tham gia phát triển?

[Duyệt code](https://plugins.trac.wordpress.org/browser/domain-search-for-whmcs/),
check out [SVN repository](https://plugins.svn.wordpress.org/domain-search-for-whmcs/),
hoặc theo dõi [nhật ký phát triển](https://plugins.trac.wordpress.org/log/domain-search-for-whmcs/)
qua [RSS](https://plugins.trac.wordpress.org/log/domain-search-for-whmcs/?limit=100&mode=stop_on_copy&format=rss).

## Nhật ký thay đổi

#### 3.1.7

 * **Maintenance:** regenerated the translation template (`.pot`) so its version
   stamp and strings match the current release. No functional changes.

#### 3.1.6

 * **Compatibility:** tested and confirmed working with WordPress 7.1. “Tested up
   to” raised to 7.1. No code changes were required — the plugin uses only stable
   core APIs and is unaffected by the 7.1 editor-iframe, client-side media, jQuery
   UI 1.14, and @wordpress/components changes.

#### 3.1.5

 * **Compatibility:** tested and confirmed working with WordPress 7.0. “Tested up
   to” raised to 7.0.

#### 3.1.4

**Critical hotfix.**

 * **Fixed:** the search form was disappearing entirely on sites where the saved
   WHMCS URL was empty. 3.1.2 introduced an “if URL is empty, render nothing” guard
   that turned out to be too aggressive for sites whose URL had been wiped by the
   earlier data-loss bug (present in 3.1.0–3.1.1). The shortcode now always renders
   the form.
 * **New:** automatic URL recovery — if the canonical URL is ever missing, the plugin
   tries in order: (1) the legacy `whmcs_domain_search_url` option from pre-2.0 
   versions, (2) a backup copy that is automatically written on every save going
   forward, (3) the activation default URL. Whichever wins is also written back 
   to the canonical key so the settings page shows it again.
 * **Hardened:** every save of the WHMCS URL now also writes to a backup option (`
   domain_search_for_whmcs_url_backup`). If a future plugin/code bug ever wipes 
   the canonical key again, the form will self-heal on the next page load.

#### 3.1.3

 * **Fixed:** the search-button icon was rendering at 20px inside a much taller 
   button, so it appeared tiny and off-center after the 3.1.1 dashicons  SVG change.
   The inline SVG icon is now 26px with a heavier 3px stroke, matching the original
   icon weight from pre-3.1.1 releases. Explicit `stroke: currentColor; fill: none`
   added in CSS as a safety net in case a theme tries to fill or recolor SVGs globally.

#### 3.1.2

**Critical bug-fix patch.**

 * **Fixed (data loss):** saving the Default Settings form (WHMCS URL / placeholder)
   was wiping the saved Appearance colors back to defaults, and saving the Appearance
   form was clearing the WHMCS URL and placeholder. Both forms shared a single Settings
   API option group, so WordPress’s `options.php` was resetting the _other_ form’s
   fields on each save. Each form now uses its own option group and they save independently.
 * **Fixed (data loss):** saving the Default Settings form was also silently wiping
   every Custom Shortcode (same root cause — the shortcodes option was in the shared
   group). Custom shortcodes now live in their own option group too and are safe
   across all save operations.
 * **Fixed:** existing sites upgrading to 3.1.x saw a visibly stronger search-input
   border. The default border color was previously the brand mint green (`#1DD1A1`),
   which looked much heavier than the subtle translucent border (`#1DD1A126`) used
   in pre-3.1 releases. The default is now a neutral light gray (`#E5E7EB`), matching
   the original soft look. Sites that already saved a custom border color are unaffected.
 * **Fixed:** `uninstall.php` did not remove the `domain_search_for_whmcs_appearance`
   option introduced in 3.1.0, leaving orphan data in `wp_options` after uninstall.
   All four plugin options are now cleaned up.
 * **Fixed:** the shortcode no longer renders a broken form if the WHMCS URL is 
   empty. Admins see a hidden HTML comment pointing to the settings page; visitors
   see nothing.
 * **Hardened:** delete-shortcode handler now sanitizes the incoming `shortcode_id`
   with `sanitize_key()` to match how IDs are persisted, keeping nonce verification
   consistent.
 * **Improved:** third-party admin notices (from SMTP plugins, marketing nags, theme
   prompts, etc.) are now suppressed on the plugin’s settings page only. Notices
   on every other WordPress admin screen are unchanged — this keeps the dashboard
   focused on configuring the plugin without losing visibility of important notices
   elsewhere.

#### 3.1.1

**Performance & polish patch.**

 * **Performance:** removed the 32 KB Dashicons stylesheet from the front-end. The
   search button now uses a tiny inline SVG icon — one fewer HTTP request and ~32
   KB saved on every page that displays the form.
 * **Performance:** front-end CSS is now enqueued only on pages that actually use
   the `[domain_search_for_whmcs]` shortcode (lazy registration + on-demand enqueue
   inside the shortcode handler). Pages without the form pay zero CSS cost.
 * **Privacy:** added `rel="noreferrer"` to the form (alongside the existing `noopener`)
   so the referrer URL is no longer leaked to WHMCS.
 * **Polish:** removed the redundant “Active” pill from the dashboard header (the
   dashboard only renders when the plugin is active — the pill said nothing useful).
 * **i18n:** regenerated the `.pot` template with an updated `Project-Id-Version`
   and `POT-Creation-Date`.

#### 3.1.0

**Feature release: Appearance customizer with live preview.**

 * **New:** dedicated **Appearance tab** in the admin dashboard — fully customize
   the front-end search form: input background, text color, border, focus border,
   placeholder color, button background, hover background, icon color, plus separate
   corner-radius sliders for input and button (0–50px each). Changes apply through
   CSS custom properties with zero front-end JavaScript.
 * **New:** **Live Preview** card at the top of the Appearance tab — see your color
   and radius choices applied instantly as you tweak them.
 * **New:** synced color picker + hex text input for every color setting (use whichever
   you prefer; both stay in sync).
 * **New:** **Reset to defaults** button restores the entire Appearance section 
   in one click (with confirmation).
 * **New:** Appearance settings are organized via clean **sub-tabs** (Search Input/
   Search Button) inside the Color & Style card, keeping the form short and scannable.
 * **New:** active main tab and sub-tab are now persisted across page reloads (`
   localStorage`), so saving from the Button sub-tab returns you to the Button sub-
   tab.
 * **Improved:** front-end CSS now uses CSS custom properties (`--dsfw-input-bg`,`--
   dsfw-button-bg`, etc.), so theme developers can also override appearance from
   a stylesheet without touching the plugin’s settings.
 * **Improved:** “Settings saved” notice now appears after saving via the Default
   Settings or Appearance forms (Settings API redirect was previously silent).
 * **Improved:** responsive admin layout — tab strip wraps to a second row on narrow
   screens instead of clipping; mobile-friendly header, tighter card padding on 
   small viewports, single-column support grid, stacked footer.
 * **Improved:** input font-size raised to 16px on mobile to prevent iOS zoom-on-
   focus.
 * **Improved:** shortcodes table scrolls horizontally on narrow screens instead
   of overflowing.
 * **i18n:** regenerated the empty `.pot` template with all 112 unique strings —
   translators can now contribute via Poedit, Loco Translate, or the WordPress.org
   translation platform.
 * **Internal:** moved inline admin JavaScript to `assets/admin.js`, properly enqueued
   via `wp_enqueue_script` with `wp_localize_script` for translatable strings. Cleaner
   code and CSP-friendly (no inline `<script>` blocks).
 * **Polish:** tighter one-line plugin header description matching the readme; removed
   the email link from the dashboard footer (still available in the Resources sidebar
   and Support tab).

#### 3.0.0

**Major release: redesigned admin, brand refresh, security hardening, developer 
extensibility.**

 * **New:** ZendForce-branded admin dashboard — modular cards, tabbed navigation,
   click-to-copy shortcodes, and an “At a Glance” overview (custom shortcode count,
   active host, connection protocol).
 * **New:** built-in **Support** tab with WordPress.org forum link, direct email
   contact (shipon@zendforce.com), system info card, and a “before you contact” 
   checklist.
 * **New:** five developer filter hooks — `dsfwhmcs_whmcs_url`, `dsfwhmcs_placeholder`,`
   dsfwhmcs_form_action`, `dsfwhmcs_form_method`, `dsfwhmcs_shortcode_html`.
 * **New:** logo mark, status pill, and a polished plugin footer with quick links.
 * **New:** translation-ready strings across the entire admin UI.
 * **Changed:** “Tested up to” raised to WordPress 6.7.5.
 * **Fixed:** `uninstall.php` was deleting stale option keys and left actual plugin
   data behind. It now correctly removes all plugin options on uninstall.
 * **Fixed:** removed a non-functional WordPress nonce from the front-end search
   form. Because the form posts to an external WHMCS URL, the nonce could never 
   validate — it was just a leakable token on every page.
 * **Changed:** the search form now submits via `GET` (matching WHMCS `cart.php`
   convention) and opens in a new tab with `rel="noopener"`.
 * **Hardened:** explicit `current_user_can('manage_options')` checks on the settings
   handler and rendering function. Safer sanitization on `$_GET` parameters and 
   shortcode IDs (`sanitize_key`).
 * **Improved:** admin assets only load on the plugin’s settings page; asset versions
   tied to the plugin version for clean cache busting.
 * **Improved:** plugin headers now declare `Requires at least`, `Tested up to`,
   and `Requires PHP` so WordPress can warn users on incompatible installs.
 * **Removed:** stray `https:/` directory accidentally bundled in earlier releases.
 * **Internal:** introduced `DSFWHMCS_VERSION`, `DSFWHMCS_FILE`, `DSFWHMCS_DIR`,
   and `DSFWHMCS_URL` constants for cleaner internals.

#### 2.1.0

 * Redesigned admin dashboard with a modern, card-based UI and tabbed navigation.
 * Fixed: `uninstall.php` removes the correct option keys.
 * Fixed: removed the unused nonce from the front-end search form.
 * Changed: search form submits via `GET` and opens in a new tab.
 * Hardened: explicit capability checks; safer sanitization of `$_GET['message']`.
 * Improved: admin assets only load on the plugin’s settings page.
 * Removed: stray `https:/` directory bundled in prior releases.

#### 2.0.0

 * Added admin settings for WHMCS URL and placeholder text.
 * Improved security with nonce verification.
 * Enhanced shortcode management functionality.
 * Optimized code for better performance and compatibility.
 * Added the ability to create and delete multiple shortcodes.
 * Improved admin panel UI for better user experience.

#### 1.5.0

 * Improved shortcode functionality.
 * Added basic security improvements.
 * Fixed minor styling issues.

#### 1.0.0

 * Initial release.

## Meta

 *  Phiên bản **3.1.7**
 *  Cập nhật lần cuối **2 tuần trước**
 *  Số lượt cài đặt **200+**
 *  Phiên bản WordPress ** 5.0 hoặc cao hơn **
 *  Đã kiểm tra lên đến **7.1.3**
 *  Phiên bản PHP ** 7.4 hoặc cao hơn **
 *  Ngôn ngữ
 * [English (US)](https://wordpress.org/plugins/domain-search-for-whmcs/)
 * Thẻ
 * [domain registration](https://vi.wordpress.org/plugins/tags/domain-registration/)
   [domain search](https://vi.wordpress.org/plugins/tags/domain-search/)[Hosting](https://vi.wordpress.org/plugins/tags/hosting/)
   [web hosting](https://vi.wordpress.org/plugins/tags/web-hosting/)[WHMCS](https://vi.wordpress.org/plugins/tags/whmcs/)
 *  [Nâng cao](https://vi.wordpress.org/plugins/domain-search-for-whmcs/advanced/)

## Đánh giá

 5 trên 5 sao.

 *  [  1 5-star review     ](https://wordpress.org/support/plugin/domain-search-for-whmcs/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/domain-search-for-whmcs/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/domain-search-for-whmcs/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/domain-search-for-whmcs/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/domain-search-for-whmcs/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/domain-search-for-whmcs/reviews/#new-post)

[Xem tất cả đánh giá](https://wordpress.org/support/plugin/domain-search-for-whmcs/reviews/)

## Những người đóng góp

 *   [ Shipon Karmakar ](https://profiles.wordpress.org/shiponkarmakar/)

## Hỗ trợ

Có điều gì muốn nói? cần giúp đỡ?

 [Xem diễn đàn hỗ trợ](https://wordpress.org/support/plugin/domain-search-for-whmcs/)