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

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

Translate “Negah Contact Hub” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by 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.