Bani Honar Toolkit is a small, modular plugin. Every feature is a module that you can switch on or off from one dashboard, and developers can add their own modules.
Included modules
banihonar.com/Ab33.
Ab and ab are different links./go/.utm_ campaigns.{title}, {n} and {date}, a choice of who may duplicate, the content types it works for, and lists of custom fields and taxonomies that are never copied. Its own tab with a switch that turns it fully on or off.Two languages, one switch
The plugin screens can be shown in Persian (RTL) or English (LTR), whatever your site language is. Change it under Bani Honar Toolkit > Settings.
For developers
Extend BHTK_Module and register your module on the bhtk_register_modules action. It gets a dashboard card, an on/off switch and its own section on the Settings screen.
add_action( 'bhtk_register_modules', function ( $plugin ) { $plugin->register_module( new My_Module() ); } );
Use the bhtk_capability filter to change the capability needed to use the toolkit (default: manage_options).
Third-party code
The QR Code Generator uses the MIT-licensed “QR Code Generator for JavaScript” by Kazuhiko Arase (version 2.0.4), included in assets/js/vendor/. QR Code is a registered trademark of DENSO WAVE INCORPORATED.
Privacy and external services
The Post Duplicator stores no personal data. It marks copies and safe-edit drafts with four small custom fields (_bhtk_clone_of, _bhtk_fork_of, _bhtk_open_fork, _bhtk_fork_time) that hold post numbers and a time; they are removed when you delete all toolkit data.
The link shortener stores, for each link: the code, the destination, an optional note, the click count, the time of the last click, who created it and when. Visitors are not identified or logged by it.
The Visitor Stats module is off by default. While it is on, one small request is sent from the visitor’s browser to your own website for every page opened (at most 600 views a minute are recorded for the whole site; developers can change this with the bhtk_visits_max_per_minute filter), and your site stores: the date and time, the IP address (or the address with its last part removed, if you choose so), the country, the page address and title, the referring website, campaign tags (utm_), the browser’s User-Agent text and the device details derived from it, screen size, language and time zone. A random session code lives in the browser’s sessionStorage; no cookies are set. Visits older than the retention period you choose (365 days by default) are deleted automatically, and you can delete everything or download it at any time. An IP address can be personal data in some countries: if your visitors are protected by such a law, mention the counting in your privacy policy.
A visit from a logged-in member also stores that member’s user id; the name and e-mail address are read from the WordPress user when you open the details. Words typed into the search box of your website (?s=) are stored with the visit. Visitor Stats never reads or stores a computer name, a file path or an e-mail address from the visitor’s device: browsers do not allow websites to read them.
The country is read from your CDN or server first (Cloudflare, ArvanCloud, CloudFront and others) and from earlier visits of the same address. The option “Find the country online when the server does not know it” is off by default. Only when you switch it on, and only when the country cannot be read in another way, the visitor IP address is sent to an outside lookup service. See the section “External services” below for what is sent, to whom, and the terms and privacy policy of each service. Without that option no address leaves your server. Nothing else is sent to outside services.
The toolkit adds suggested text to the privacy policy guide (Settings > Privacy), and connects Visitor Stats to the WordPress tools Tools > Export Personal Data and Tools > Erase Personal Data: visits of a member are found by e-mail address. When a user account is deleted, the visits of that user stay as anonymous statistics.
The Contact tab sends nothing from your website; it only opens the e-mail program of the person who presses a button.
فارسی
افزونه چندمنظوره، ماژولار و قابل توسعه برای وردپرس. آمار کامل بازدید وبسایت (چند بازدید، از کجا، با چه آدرس IP و از کدام کشور، با چه دستگاه و چه مدلی)، کوتاهکنندهی لینک با دامنهی خودتان، ساخت کیو آر کد برای لینک و متن، محافظ صفحه با تب و کلید روشن/خاموش جداگانه، تکثیر نوشته و برگه با یک کلیک و «ویرایش امن» صفحههای زنده از راه پیشنویس پنهان، آپلود مستقیم تصویر پروفایل بدون گراواتار، و رابط فارسی/انگلیسی که از تنظیمات خود افزونه عوض میشود.
Bani Honar Toolkit can connect to one kind of outside service, and only if you switch it on: an IP-address-to-country lookup used by the Visitor Stats module. The Link Shortener, QR Code Generator, Post Duplicator, Page Shield and Profile Pictures modules never contact an outside service: QR codes are drawn in the browser and profile pictures are stored on your own site.
IP-address-to-country lookup (Visitor Stats, optional, off by default)
BaniHonarToolkit/1.0.0. Like any web request, the service also sees your server’s IP address. No page address, cookie, name, e-mail or other visitor detail is sent. If you also tick “Hide the last part of every IP address”, your site saves only the shortened address, but the full address is still used for that single lookup and is not stored.Services used:
https://ipwho.is/{ip}): Terms of Service and Privacy Policy.https://get.geojs.io/v1/ip/country/{ip}.json): Terms of Service and Privacy Policy.If you do not want any address to leave your server, leave the option off, or answer from a local database with the bhtk_geo_lookup filter, which skips the online services. If you use the option, mention it in your own privacy policy; the plugin adds suggested text to Settings > Privacy.
Links that open another website only when you click them (for example “Write in Gmail” on the Contact us tab, or the Google Search Console link in Visitor Stats) are ordinary links; the plugin itself sends nothing to those sites.