{"id":374613,"date":"2026-09-27T08:27:18","date_gmt":"2026-09-27T08:27:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/canalyar-telegram-bale-rubika-channel-posts-for-woocommerce\/"},"modified":"2026-09-27T10:16:57","modified_gmt":"2026-09-27T10:16:57","slug":"mk-canalyar","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/mk-canalyar\/","author":23356701,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.13.3","stable_tag":"1.13.3","tested":"7.1.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"CanalYar Channel Posts for Telegram, Bale and Rubika","header_author":"Milad Kardgar","header_description":"Publish WooCommerce products to your Telegram, Bale and Rubika channels in one click, automatically or on a schedule, and keep price and stock in those posts up to date. No bot or token needed: make our bot an admin of your channel and paste your connection key.","assets_banners_color":"fcfeff","last_updated":"2026-09-27 10:16:57","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/canalyarr.ir\/","header_author_uri":"https:\/\/mkardgar.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":35,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.13.0":{"tag":"1.13.0","author":"miladkardgar","date":"2026-09-27 08:26:53","revision":3715152},"1.13.2":{"tag":"1.13.2","author":"miladkardgar","date":"2026-09-27 09:49:53","revision":3715260},"1.13.3":{"tag":"1.13.3","author":"miladkardgar","date":"2026-09-27 10:16:57","revision":3715301}},"upgrade_notice":{"1.9.7":"<p>Server error messages in English on non-Persian dashboards.<\/p>","1.9.6":"<p>Update details follow the dashboard language.<\/p>","1.9.5":"<p>Persian FAQ in update details.<\/p>","1.9.4":"<p>Persian installation guide in update details.<\/p>","1.9.3":"<p>Persian update details.<\/p>","1.9.2":"<p>Persian plugin name and description.<\/p>","1.9.1":"<p>New admin menu icon.<\/p>","1.9.0":"<p>English interface with a bundled Persian translation; fixes the &quot;Color attribute&quot; setting.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3715152,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3715152,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3715152,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3715152,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.13.0","1.13.2","1.13.3"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[2015,5325,174,9171,286],"plugin_category":[45,56],"plugin_contributors":[282909],"plugin_business_model":[],"class_list":["post-374613","plugin","type-plugin","status-publish","hentry","plugin_tags-auto-post","plugin_tags-channel","plugin_tags-social","plugin_tags-telegram","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-social-and-sharing","plugin_contributors-miladkardgar","plugin_committers-miladkardgar"],"banners":{"banner":"https:\/\/ps.w.org\/mk-canalyar\/assets\/banner-772x250.png?rev=3715152","banner_2x":"https:\/\/ps.w.org\/mk-canalyar\/assets\/banner-1544x500.png?rev=3715152","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mk-canalyar\/assets\/icon-128x128.png?rev=3715152","icon_2x":"https:\/\/ps.w.org\/mk-canalyar\/assets\/icon-256x256.png?rev=3715152","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>CanalYar turns any WooCommerce product into a ready-made channel post \u2014 name, product code, price (with the old price struck through on sale), colors, attributes, your support ID and a buy link \u2014 and posts it with the product images to your channels on Telegram, Bale and Rubika.<\/p>\n\n<p><strong>This plugin is the WordPress side of the CanalYar service (canalyarr.ir).<\/strong> Posts are delivered by the service's bots, so you need a CanalYar account and connection key. New accounts get a free trial; after that, a paid plan is required. See \"External services\" below for exactly what is sent.<\/p>\n\n<h4>What makes it different<\/h4>\n\n<p>Usually you have to create a bot for every messenger, paste its token into your site, and \u2014 if your server cannot reach Telegram \u2014 find a proxy too. CanalYar needs none of that:<\/p>\n\n<ul>\n<li><strong>The bot is ours.<\/strong> You only make our bot an admin of your channel.<\/li>\n<li><strong>No token ever enters your site,<\/strong> so there is nothing to leak.<\/li>\n<li><strong>No access problems.<\/strong> Our server reaches all three messengers; your server does not have to.<\/li>\n<\/ul>\n\n<h4>One post, not many<\/h4>\n\n<p>Telegram and Bale receive the images as an album with the text as its caption, so every product is a single post. Rubika has no albums, so the main image goes with the text.<\/p>\n\n<h4>It runs by itself<\/h4>\n\n<ul>\n<li><strong>Auto send:<\/strong> every product published for the first time is sent to the channels you choose about a minute later.<\/li>\n<li><strong>Scheduling and queue:<\/strong> send a post at a set day and hour, or add it to a queue that posts at a fixed gap within the hours you allow.<\/li>\n<li><strong>Posts stay current:<\/strong> when a price changes, the channel posts are edited; a product that sells out gets an \"Out of stock\" label or is removed.<\/li>\n<\/ul>\n\n<h4>Send anything, not only products<\/h4>\n\n<p>On the <strong>Send message<\/strong> tab you can post your own text to the channels, alone or with up to 10 images (an album), a file (PDF, ZIP, \u2026), a song (MP3\/M4A, with a music player) or a video (MP4), picked from the media library \u2014 up to 30 MB.<\/p>\n\n<h4>One account, with or without WordPress<\/h4>\n\n<p>The same CanalYar account also works without this plugin: in the web panel at canalyarr.ir you can add channels and send text, images, files, music and video from any browser, with no website at all. The plugin adds what only WooCommerce access makes possible \u2014 posts built from products, auto send, scheduling and prices kept current. Channels, quota and reports are shared between the panel and the plugin, and developers can use the same key with the REST API.<\/p>\n\n<h4>Channel ownership check<\/h4>\n\n<p>Because the bot is shared, \"the bot is an admin\" is not enough. When you add a channel, a six-digit code is posted in that channel and you enter it in the dashboard. Until you do, nothing is posted there \u2014 so nobody else can post to your channel.<\/p>\n\n<h4>Languages<\/h4>\n\n<p>The plugin is in English with a full Persian (fa_IR) translation included. Channel posts are written in your site's language, even when your own dashboard language is different.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin does not work without the <strong>CanalYar relay service<\/strong>, run by the plugin author at canalyarr.ir. The plugin never talks to Telegram, Bale or Rubika directly; everything goes through <code>https:\/\/canalyarr.ir\/bot-relay\/v1<\/code>, and the service delivers it to the messengers with its own bots.<\/p>\n\n<p>What is sent, and when:<\/p>\n\n<ul>\n<li><strong>Your connection key<\/strong> \u2014 with every request, to identify your site.<\/li>\n<li><strong>Account status<\/strong> \u2014 when you open the CanalYar settings page or the send window, the plugin asks for your plan, usage and channels (cached for 5 minutes). Only the key is sent.<\/li>\n<li><strong>Channels<\/strong> \u2014 when you add, verify, test or remove a channel: the messenger, the channel username or ID, the verification code, and (for a test message) your site name.<\/li>\n<li><strong>Posts<\/strong> \u2014 when you send a product (by hand, by auto send, on a schedule or from the queue): the post text, the target channels, the image mode and the product images (as file uploads).<\/li>\n<li><strong>Messages<\/strong> \u2014 when you send a message from the \"Send message\" tab: the text, the target channels and the attachment you picked from the media library (images, or one file, song or video, as a file upload).<\/li>\n<li><strong>Post updates<\/strong> \u2014 when a sent product's price or stock changes (if you turned this on): the channel, the message IDs and the new text, or a delete request.<\/li>\n<\/ul>\n\n<p>No customer or order data is ever sent. The service passes post text, images and files on to the messengers and deletes the uploaded images and files after sending; it keeps request logs (time, messenger, status, size, error) for troubleshooting and usage counting.<\/p>\n\n<p>On some plans, the service adds a short \"Sent by CanalYar\" line to channel posts. Nothing is added to your website.<\/p>\n\n<ul>\n<li>Terms of service: https:\/\/canalyarr.ir\/legal.php#terms-en<\/li>\n<li>Privacy policy: https:\/\/canalyarr.ir\/legal.php#privacy-en<\/li>\n<\/ul>\n\n<p>Posts delivered to the messengers are also subject to their terms: <a href=\"https:\/\/telegram.org\/tos\">Telegram<\/a>, <a href=\"https:\/\/bale.ai\/terms\">Bale<\/a>, <a href=\"https:\/\/rubika.ir\/\">Rubika<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin (WooCommerce must be active).<\/li>\n<li>Sign up at <a href=\"https:\/\/canalyarr.ir\/panel\/\">canalyarr.ir\/panel<\/a> with your mobile number (there is a free trial) and copy your connection key.<\/li>\n<li>Go to <strong>CanalYar \u2192 Connection &amp; subscription<\/strong> and enter the key.<\/li>\n<li>Make the bots shown there admins of your channels with the \"Post messages\" permission.<\/li>\n<li>On the <strong>Channels<\/strong> tab, add each channel and verify it with the six-digit code.<\/li>\n<li>In the product list, click <strong>Send to channel<\/strong> \u2014 or turn on auto send.<\/li>\n<\/ol>\n\n<p>A full guide is on the plugin's <strong>Guide<\/strong> tab.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20account%3F\"><h3>Do I need an account?<\/h3><\/dt>\n<dd><p>Yes. Posts are sent by the CanalYar service, which needs an account and a connection key. New accounts get a free trial.<\/p><\/dd>\n<dt id=\"can%20i%20use%20canalyar%20without%20this%20plugin%3F\"><h3>Can I use CanalYar without this plugin?<\/h3><\/dt>\n<dd><p>Yes. The web panel at canalyarr.ir\/panel sends messages with images, files, music or video to your channels without any website. Install this plugin when you want your WooCommerce products posted automatically. Both use the same account, channels and quota.<\/p><\/dd>\n<dt id=\"what%20can%20i%20send%20besides%20products%3F\"><h3>What can I send besides products?<\/h3><\/dt>\n<dd><p>On the \"Send message\" tab: any text, alone or with up to 10 images (an album on Telegram and Bale), or one file, song (MP3\/M4A) or video (MP4) from the media library, up to 30 MB.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20my%20subscription%20ends%3F\"><h3>What happens when my subscription ends?<\/h3><\/dt>\n<dd><p>The plugin stays active and your settings and channels are kept; new posts are simply not sent until you renew. Queued posts wait and continue after renewal.<\/p><\/dd>\n<dt id=\"how%20is%20the%20quota%20counted%3F\"><h3>How is the quota counted?<\/h3><\/dt>\n<dd><p>One post or message in one channel is one unit, whether it is sent from the plugin or the web panel. One product in three channels is three units. Quotas reset every month.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20text%20before%20sending%3F\"><h3>Can I change the text before sending?<\/h3><\/dt>\n<dd><p>Yes. The generated text can be edited in the send window, and the overall layout can be changed on the \"Post template\" tab.<\/p><\/dd>\n<dt id=\"do%20i%20have%20to%20send%20every%20product%20by%20hand%3F\"><h3>Do I have to send every product by hand?<\/h3><\/dt>\n<dd><p>No. Turn on \"Auto send\" on the \"Channels\" tab; new products are sent by themselves or go to the send queue.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20a%20channel%20post%20when%20the%20price%20changes%3F\"><h3>What happens to a channel post when the price changes?<\/h3><\/dt>\n<dd><p>It is edited automatically; only the price values in the text change. This covers posts sent with version 1.8 or later.<\/p><\/dd>\n<dt id=\"auto%20send%20or%20the%20queue%20runs%20late\"><h3>Auto send or the queue runs late<\/h3><\/dt>\n<dd><p>These tasks run on WordPress WP-Cron. If your site has little traffic or DISABLE_WP_CRON is on, a server cron job must call wp-cron.php every few minutes.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.13.3<\/h4>\n\n<ul>\n<li>Fix: product links with non-Latin (e.g. Persian) slugs were broken in posts sent by hand, because the %xx parts of the address were stripped.<\/li>\n<li>Bale now shows <a href=\"https:\/\/link\">text<\/a> as a clickable text too.<\/li>\n<\/ul>\n\n<h4>1.13.2<\/h4>\n\n<ul>\n<li>The free-form message page now explains the <a href=\"https:\/\/link\">text<\/a> and ~strikethrough~ formatting.<\/li>\n<\/ul>\n\n<h4>1.13.1<\/h4>\n\n<ul>\n<li>Post template: <a href=\"https:\/\/link\">text<\/a> turns a text into a clickable link on Telegram (for example <a href=\"{link}\">Buy on our website<\/a>); Bale and Rubika get \"text: link\". ~Strikethrough~ now also works on Telegram through the shared bot.<\/li>\n<\/ul>\n\n<h4>1.13.0<\/h4>\n\n<ul>\n<li>All internal names (classes, constants, options, hooks, post meta) now use the unique prefix \"canalyarr\" instead of \"mkc\". Existing settings, send history and queued posts are moved over automatically on update.<\/li>\n<li>Developers: the filters are now canalyarr_post_values, canalyarr_post_installments and canalyarr_post_installment_offers.<\/li>\n<\/ul>\n\n<h4>1.12.2<\/h4>\n\n<ul>\n<li>Plugin renamed to \"CanalYar Channel Posts for Telegram, Bale and Rubika\" (WordPress.org does not allow \"WooCommerce\" in plugin names).<\/li>\n<\/ul>\n\n<h4>1.12.1<\/h4>\n\n<ul>\n<li>Plugin renamed to \"CanalYar Channel Posts for Telegram, Bale and Rubika\" to make clear it is a third-party integration.<\/li>\n<\/ul>\n\n<h4>1.12.0<\/h4>\n\n<ul>\n<li>New post placeholder {base_price_number}: the base price without the installment markup, number only (filled by the cash and installment pricing plugin; otherwise the same as {price_number}). Price sync updates it in earlier posts too.<\/li>\n<\/ul>\n\n<h4>1.11.3<\/h4>\n\n<ul>\n<li>Send queue: posts keep to their time slot, so with a daily gap they go out at the same hour every day instead of drifting later.<\/li>\n<\/ul>\n\n<h4>1.11.2<\/h4>\n\n<ul>\n<li>Send queue: the gap between two posts can now be 1, 2 or 3 days or a week.<\/li>\n<\/ul>\n\n<h4>1.11.1<\/h4>\n\n<ul>\n<li>Documentation: the same account works from the canalyarr.ir web panel without WordPress; new FAQ entries about sending messages and files.<\/li>\n<\/ul>\n\n<h4>1.11.0<\/h4>\n\n<ul>\n<li>Send queue: choose which days of the week the queue may post on.<\/li>\n<\/ul>\n\n<h4>1.10.1<\/h4>\n\n<ul>\n<li>Fix: scheduling a send for a set time was rejected as \"in the past\" on sites running a Persian (Jalali) date plugin.<\/li>\n<\/ul>\n\n<h4>1.10.0<\/h4>\n\n<ul>\n<li>New \"Send message\" tab: post any text to your channels, with images, a file, a song or a video from the media library.<\/li>\n<\/ul>\n\n<h4>1.9.7<\/h4>\n\n<ul>\n<li>Server messages follow the dashboard language (English outside Persian dashboards).<\/li>\n<\/ul>\n\n<h4>1.9.6<\/h4>\n\n<ul>\n<li>Update details follow the dashboard language.<\/li>\n<\/ul>\n\n<h4>1.9.5<\/h4>\n\n<ul>\n<li>Persian FAQ in update details.<\/li>\n<\/ul>\n\n<h4>1.9.4<\/h4>\n\n<ul>\n<li>Persian installation guide in update details.<\/li>\n<\/ul>\n\n<h4>1.9.3<\/h4>\n\n<ul>\n<li>Update details are shown in Persian.<\/li>\n<\/ul>\n\n<h4>1.9.2<\/h4>\n\n<ul>\n<li>Plugin name and description are translated into Persian on Persian sites.<\/li>\n<\/ul>\n\n<h4>1.9.1<\/h4>\n\n<ul>\n<li>New CanalYar logo as the admin menu icon.<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>The plugin is now in English, with a full Persian translation included. Channel posts are always written in the site language.<\/li>\n<li>Dates follow the dashboard language: Jalali dates and Persian digits in Persian, WordPress dates otherwise.<\/li>\n<li>Fix: the \"Color attribute\" setting on the \"Post template\" tab had no effect.<\/li>\n<\/ul>\n\n<h4>1.8.3<\/h4>\n\n<ul>\n<li>Guide: link to the API documentation for non-WordPress sites.<\/li>\n<\/ul>\n\n<h4>1.8.2<\/h4>\n\n<ul>\n<li>Full guide to auto send, scheduling and the queue, keeping posts up to date, and panel features on the \"Guide\" tab.<\/li>\n<\/ul>\n\n<h4>1.8.1<\/h4>\n\n<ul>\n<li>Fix: the send queue counts its gap from the channel's last post (manual, scheduled or automatic), not only from its own previous post.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Channel posts are edited automatically when the price changes.<\/li>\n<li>A product that sells out gets an \"Out of stock\" label (or, if you choose, its posts are deleted); the label is removed when it is back in stock.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Scheduled sending: pick a day and hour in the send window.<\/li>\n<li>Send queue: posts go out at a fixed gap within allowed hours; auto send can use the queue too.<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Auto send for newly published products.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Post WooCommerce products to Telegram, Bale and Rubika channels in one click, automatically or on a schedule, with prices kept up to date.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/374613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=374613"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/miladkardgar"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=374613"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=374613"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=374613"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=374613"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=374613"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=374613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}