Title: Negah Contact Hub
Author: hamidjafari31
Published: <strong>November 1, 2026</strong>
Last modified: November 1, 2026

---

Search plugins

![](https://ps.w.org/negah-contact-hub/assets/banner-772x250.png?rev=3778503)

![](https://ps.w.org/negah-contact-hub/assets/icon-256x256.png?rev=3778503)

# Negah Contact Hub

 By [hamidjafari31](https://profiles.wordpress.org/hamidjafari31/)

[Download](https://downloads.wordpress.org/plugin/negah-contact-hub.1.0.1.zip)

 * [Details](https://wordpress.org/plugins/negah-contact-hub/#description)
 * [Reviews](https://wordpress.org/plugins/negah-contact-hub/#reviews)
 *  [Installation](https://wordpress.org/plugins/negah-contact-hub/#installation)
 * [Development](https://wordpress.org/plugins/negah-contact-hub/#developers)

 [Support](https://wordpress.org/support/plugin/negah-contact-hub/)

## Description

Negah Contact Hub puts your contact channels one tap away. On desktop it is a round
floating button that opens a small panel. On phones it can instead be a full-width
bar pinned to the bottom of the screen that slides a sheet up when tapped, which
is far easier to notice and reach than a corner button.

It was written for Persian and other right-to-left sites, and that shapes what it
does differently from a generic contact-button plugin:

 * **Bale messenger is a first-class channel.** Bale is widely used in Iran and 
   is rarely supported elsewhere. Enter a username, a `join/XXXX` invite, or a full
   link and the plugin builds the correct `https://ble.ir/` address.
 * **Iranian phone numbers are normalised.** Type `09121234567` in the WhatsApp 
   field and the plugin converts it to the international form WhatsApp expects. 
   Persian and Arabic-Indic digits are accepted everywhere a number is asked for.
 * **Taps open the app, not the web client.** On Android the plugin uses an `intent://`
   URL carrying a browser fallback, so a visitor without the app is returned to 
   the web link by the operating system instead of hitting an error page. On iOS
   it switches to the native scheme and falls back to the web link on a timer. This
   is what stops WhatsApp links from landing on the `web.whatsapp.com` QR screen.
 * **Right-to-left by default.** Layout direction, flex order and the number direction
   inside each line follow the site’s own direction, and the widget inherits the
   theme’s font rather than loading one.

#### Built to stay out of the way

 * No jQuery, no external CSS or JavaScript files, no web fonts, no outside requests
   of any kind.
 * Styles and script are added inline through the standard enqueue API, and only
   on pages where the widget is actually shown.
 * Icons are inline SVG, so there is no icon font to download.
 * The optional attention effects animate only `transform` and `opacity`, so they
   run on the compositor and never force a layout recalculation. They pause while
   the panel is open and switch off automatically for visitors who have asked their
   device for reduced motion.
 * Nothing is tracked, logged or sent anywhere. The plugin stores one option row
   and nothing else.

#### Channels

Two phone numbers, WhatsApp, Telegram, Bale and a map location. Each one has its
own title, an optional short line underneath, a value or link, and a sort order.
Any channel left empty is simply not rendered.

#### Accessibility

The panel is a labelled dialog, the triggers report their expanded state, every 
control is reachable by keyboard, Escape closes the panel, and focus outlines are
preserved.

### External services

This plugin does not contact any external service. It makes no HTTP requests of

its own, bundles no remote scripts, stylesheets or fonts, and sends no data anywhere.
Nothing about your site or your visitors is transmitted by the plugin, and no analytics
or tracking of any kind is performed.

What the plugin does is build ordinary outbound links from the contact details
 
you enter in its settings, and render them as a button or bar. A link is followed
only when a visitor deliberately taps or clicks it, and the visitor’s browser or
app then connects to that service directly, exactly as it would for any link you
placed in a post. No data is sent before that point, and the plugin sends nothing
itself at any point.

The destinations below are the ones the plugin can build links to. Which of them

appear on your site, if any, is entirely up to the details you fill in; a channel
you leave empty is never rendered and never linked to.

 * WhatsApp – if you fill in the WhatsApp field, the plugin builds a wa.me link
   
   from the number you entered. A visitor who taps it is taken to WhatsApp to start
   a chat with that number, carrying the number and nothing else. Terms of service:
   https://www.whatsapp.com/legal/terms-of-service Privacy policy: https://www.whatsapp.
   com/legal/privacy-policy
 * Telegram – if you fill in the Telegram field, the plugin builds a t.me link
    
   from the username or invite link you entered. A visitor who taps it is taken 
   to Telegram to open that chat, channel or group. Terms of service: https://telegram.
   org/tos Privacy policy: https://telegram.org/privacy
 * Bale – if you fill in the Bale field, the plugin builds a ble.ir link from the
   
   username or invite path you entered. Bale is a messaging platform used mainly
   in Iran. A visitor who taps it is taken to Bale to open that chat, channel or
   group. Terms of service: https://bale.ai/terms Privacy policy: https://bale.ai/
   terms – Bale publishes a single legal document and its privacy terms are sections
   of that page, so the two links are the same.
 * A map of your choice – the location field takes a complete map link that you
   
   supply yourself, for whichever map provider you prefer. The plugin stores and
   renders that link as given and does not add anything to it. A visitor who taps
   it is taken to that provider, whose own terms and privacy policy then apply.

Phone numbers are not an external service: they become a tel: link that hands
 the
number to the visitor’s own dialler.

## Screenshots

[⌊The round floating button and its label on a desktop page.⌉⌊The round floating
button and its label on a desktop page.⌉[

The round floating button and its label on a desktop page.

[⌊The desktop panel open, showing every channel the site owner enabled.⌉⌊The desktop
panel open, showing every channel the site owner enabled.⌉[

The desktop panel open, showing every channel the site owner enabled.

[⌊The full-width sticky bar pinned to the bottom of a page on a phone.⌉⌊The full-
width sticky bar pinned to the bottom of a page on a phone.⌉[

The full-width sticky bar pinned to the bottom of a page on a phone.

[⌊The sheet slid up from that bar, with each channel ready to tap.⌉⌊The sheet slid
up from that bar, with each channel ready to tap.⌉[

The sheet slid up from that bar, with each channel ready to tap.

[⌊The settings screen, where each channel gets a title, an optional line under it,
and a value.⌉⌊The settings screen, where each channel gets a title, an optional 
line under it, and a value.⌉[

The settings screen, where each channel gets a title, an optional line under it,
and a value.

## Installation

 1. In your WordPress admin go to Plugins  Add New  Upload Plugin and choose the zip
    file, or search for “Negah Contact Hub” in the plugin directory.
 2. Activate the plugin.
 3. Go to Settings  Contact Hub, fill in the channels you use, and save.

Nothing is displayed on the front end until at least one channel has a value.

## FAQ

### Tapping WhatsApp opens the web version and asks me to scan a QR code. Why?

That happens when the link is opened in a new tab, which prevents the operating 
system from handing it to the app, or when the page is being viewed inside another
app’s in-app browser such as Instagram’s. This plugin removes the new-tab behaviour
on phones and switches to the native app link, which fixes the first case. The in-
app browser case cannot be fixed from a website; for traffic coming from Instagram,
put the WhatsApp link in your bio instead.

### What do I enter in the Bale field?

A username without the @, an invite path such as `join/XXXXXXXX` for a group or 
channel, or a complete `https://ble.ir/...` link. Bale does not publish a custom
URL scheme, so the plugin uses the standard https link, which the Bale app registers
on both Android and iOS.

### Can I use it on a left-to-right site?

Yes. The widget follows whatever direction the site is set to. The Persian-specific
conveniences, such as converting a leading zero to a country code, only apply when
you type a local number; an international number entered with a `+` is left alone.

### Does it work with caching plugins?

Yes. The markup is identical for every visitor and the device-specific behaviour
is decided in the browser, so a cached page behaves the same as an uncached one.

### How do I change the mobile layout back to a round button?

Settings  Contact Hub  Mobile  Mobile layout, and pick the round floating button.

### Will the sticky bar cover my footer?

There is a setting that adds matching space to the end of the page so it does not.
If your theme already reserves space at the bottom, turn that setting off.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Negah Contact Hub” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ hamidjafari31 ](https://profiles.wordpress.org/hamidjafari31/)

[Translate “Negah Contact Hub” into your language.](https://translate.wordpress.org/projects/wp-plugins/negah-contact-hub)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/negah-contact-hub/),
check out the [SVN repository](https://plugins.svn.wordpress.org/negah-contact-hub/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/negah-contact-hub/)
by [RSS](https://plugins.trac.wordpress.org/log/negah-contact-hub/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.1

 * A WhatsApp number pasted as a web.whatsapp.com or api.whatsapp.com address is
   now rewritten to the wa.me form, so a tap on a phone opens the app instead of
   the web client. Any prefilled message in the link is kept.
 * Telegram links written against the older telegram.me host are normalised to t.
   me, which is the host the app registers.

#### 1.0.0

 * First public release.

## Meta

 *  Version **1.0.1**
 *  Last updated **13 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.2 or higher **
 * Tags
 * [bale](https://wordpress.org/plugins/tags/bale/)[contact button](https://wordpress.org/plugins/tags/contact-button/)
   [rtl](https://wordpress.org/plugins/tags/rtl/)[sticky bar](https://wordpress.org/plugins/tags/sticky-bar/)
   [whatsapp](https://wordpress.org/plugins/tags/whatsapp/)
 *  [Advanced View](https://wordpress.org/plugins/negah-contact-hub/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/negah-contact-hub/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/negah-contact-hub/reviews/)

## Contributors

 *   [ hamidjafari31 ](https://profiles.wordpress.org/hamidjafari31/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/negah-contact-hub/)