{"id":326352,"date":"2026-06-24T21:33:49","date_gmt":"2026-06-24T21:33:49","guid":{"rendered":"https:\/\/tr.wordpress.org\/plugins\/iletiniz-sms\/"},"modified":"2026-06-24T21:58:38","modified_gmt":"2026-06-24T21:58:38","slug":"iletiniz-sms","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/iletiniz-sms\/","author":23516638,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.0","stable_tag":"1.5.0","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"\u0130letiniz SMS","header_author":"\u0130letiniz","header_description":"Connect your iletiniz account to WordPress: automatically send WooCommerce order notifications, send bulk SMS to your customers, and manage your plan and quota from the dashboard.","assets_banners_color":"ed844b","last_updated":"2026-06-24 21:58:38","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/iletiniz.com\/wordpress","header_author_uri":"https:\/\/iletiniz.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":54,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.0":{"tag":"1.4.0","author":"iletiniz","date":"2026-06-24 21:33:14"},"1.5.0":{"tag":"1.5.0","author":"iletiniz","date":"2026-06-24 21:58:38"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3585417,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3585417,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3585417,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3585417,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3585417,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.0","1.5.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[57809,711,1201,3160,286],"plugin_category":[41,45],"plugin_contributors":[268785],"plugin_business_model":[],"class_list":["post-326352","plugin","type-plugin","status-publish","hentry","plugin_tags-bulk-sms","plugin_tags-sms","plugin_tags-sms-notifications","plugin_tags-whatsapp","plugin_tags-woocommerce","plugin_category-communication","plugin_category-ecommerce","plugin_contributors-iletiniz","plugin_committers-iletiniz"],"banners":{"banner":"https:\/\/ps.w.org\/iletiniz-sms\/assets\/banner-772x250.png?rev=3585417","banner_2x":"https:\/\/ps.w.org\/iletiniz-sms\/assets\/banner-1544x500.png?rev=3585417","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/iletiniz-sms\/assets\/icon.svg?rev=3585417","icon":"https:\/\/ps.w.org\/iletiniz-sms\/assets\/icon.svg?rev=3585417","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>\u0130letiniz SMS connects your WordPress site to iletiniz using the OAuth 2.0 Authorization Code flow (with PKCE) and turns your store into a complete SMS application. iletiniz is a hosted messaging service that sends SMS (and other channels, such as WhatsApp\/Telegram, depending on your connected provider) through your own approved sender IDs and provider accounts.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Secure one-click connection via OAuth (no API key or password to type in), with workspace selection.<\/li>\n<li><strong>Dashboard:<\/strong> connection status, plan and remaining quota, connected SMS providers and approved sender IDs.<\/li>\n<li><strong>WooCommerce automation:<\/strong> when an order status changes (received, processing, shipped, cancelled, refunded, etc.) an automatic, templated SMS is sent to the customer.<\/li>\n<li><strong>Bulk sending:<\/strong> send a personalized bulk SMS to your WooCommerce customers in one go (filtered by order status and date).<\/li>\n<li><strong>Plan\/quota gate:<\/strong> when your quota runs out or you have no active plan, the plugin links you directly to iletiniz to upgrade.<\/li>\n<li>The API key is stored encrypted on your server (Libsodium\/AES); least-privilege scope principle.<\/li>\n<li>Disconnect (revoke) support.<\/li>\n<\/ul>\n\n<p><strong>Authorization scopes:<\/strong> <code>messages:send<\/code>, <code>contacts:write<\/code>, <code>connections:read<\/code>, <code>account:read<\/code>.<\/p>\n\n<p>This plugin requires a (free or paid) account at iletiniz. Sending messages consumes the quota of your iletiniz plan.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the third-party iletiniz service, operated by \u0130letiniz, to provide all of its messaging functionality. iletiniz is the SMS\/messaging provider behind the plugin; without it the plugin cannot send messages or display account information. Two iletiniz endpoints are used:<\/p>\n\n<p><strong>1. iletiniz API \u2013 api.iletiniz.com<\/strong><\/p>\n\n<p>This is the service that actually sends your messages and returns your account\/sender data. It is contacted in the following cases:<\/p>\n\n<ul>\n<li>When a WooCommerce order changes status and the matching notification is enabled \u2014 to send the order SMS. Data sent: the customer's phone number, the rendered message text, and (optionally) the selected sender ID and provider code.<\/li>\n<li>When you run a bulk send from the \"Bulk Sending\" page \u2014 to send the messages. Data sent: the recipient phone numbers and the rendered message text for each recipient, plus the optional sender ID and provider code.<\/li>\n<li>When the Dashboard, WooCommerce, or Bulk Sending pages load \u2014 to read your plan\/quota (<code>\/v1\/account<\/code>) and your approved senders\/connections (<code>\/v1\/senders<\/code>). No personal data is sent in these read requests.<\/li>\n<\/ul>\n\n<p>Every request includes your iletiniz API key as a Bearer token so the service can authenticate your account.<\/p>\n\n<p><strong>2. iletiniz web app \/ authorization server \u2013 iletiniz.com<\/strong><\/p>\n\n<p>This is used only to connect and disconnect your site (OAuth 2.0 with PKCE). It is contacted in the following cases:<\/p>\n\n<ul>\n<li>When you click \"Connect to iletiniz\", you are redirected to iletiniz.com to log in and authorize the connection. After authorization, the plugin exchanges the returned authorization code for an API key at <code>\/connect\/token<\/code>. Data sent: the authorization code, the PKCE code verifier, the client id (<code>wordpress<\/code>), and the redirect URL.<\/li>\n<li>When you disconnect, the plugin calls <code>\/connect\/revoke<\/code> to revoke the credentials on the iletiniz side. Data sent: the client id and the API key being revoked.<\/li>\n<\/ul>\n\n<p>Use of these services is subject to the iletiniz Terms of Use and Privacy Policy:<\/p>\n\n<ul>\n<li>Terms of Use: https:\/\/iletiniz.com\/kullanim-sartlari<\/li>\n<li>Privacy Policy: https:\/\/iletiniz.com\/gizlilik-politikasi<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Copy the plugin folder into <code>\/wp-content\/plugins\/<\/code> (or upload the plugin ZIP from the WordPress admin).<\/li>\n<li>Activate the plugin from the WordPress admin Plugins screen.<\/li>\n<li>Open <strong>iletiniz \u203a Settings<\/strong> from the left-hand menu (there is no key or secret to enter).<\/li>\n<li>Click <strong>Connect to iletiniz<\/strong>, sign in to your iletiniz account and select a workspace.<\/li>\n<li>Once connected, your plan, quota and providers appear under <strong>iletiniz \u203a Dashboard<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20to%20enter%20an%20api%20key%20or%20password%20to%20connect%3F\"><h3>Do I need to enter an API key or password to connect?<\/h3><\/dt>\n<dd><p>No. The plugin uses OAuth 2.0 with PKCE (RFC 7636) \u2014 there is no client secret. You just click <strong>Connect to iletiniz<\/strong>, sign in to your iletiniz account and select a workspace.<\/p><\/dd>\n<dt id=\"where%20is%20the%20api%20key%20stored%3F\"><h3>Where is the API key stored?<\/h3><\/dt>\n<dd><p>In the <code>wp_options<\/code> table, encrypted with Libsodium or AES. The plaintext key is never written to the database.<\/p><\/dd>\n<dt id=\"is%20woocommerce%20required%3F\"><h3>Is WooCommerce required?<\/h3><\/dt>\n<dd><p>No. Without WooCommerce, the order automation and bulk sending menus are hidden; the connection and the developer API still work.<\/p><\/dd>\n<dt id=\"i%20can%27t%20send%20messages%20%2F%20i%20get%20a%20quota%20warning.\"><h3>I can't send messages \/ I get a quota warning.<\/h3><\/dt>\n<dd><p>Check your quota on the Dashboard. If you have no active plan or your quota is used up, you need to get a plan from iletiniz (use the link shown on the Dashboard).<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20disconnect%3F\"><h3>What happens if I disconnect?<\/h3><\/dt>\n<dd><p>The local API key is deleted and the key is revoked on the iletiniz server.<\/p><\/dd>\n<dt id=\"developer%20api\"><h3>Developer API<\/h3><\/dt>\n<dd><p>You can send an SMS from your own code:<\/p>\n\n<pre><code>\/\/ Single SMS (the channel is determined by the type of the selected iletiniz provider)\n$result = Iletiniz_Client::send_sms( '+905001234567', 'Hello!', array(\n    'sender'   =&gt; 'MYSTORE',   \/\/ optional approved sender ID\n    'provider' =&gt; 'netgsm',    \/\/ optional connection code\n) );\nif ( is_wp_error( $result ) ) {\n    \/\/ Handle the error\n}\n<\/code><\/pre><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Internationalization: all admin UI strings now use English as the base (source) language, and a complete Turkish (tr_TR) translation is bundled. The plugin can now be properly translated into any language via translate.wordpress.org.<\/li>\n<li>Added a <code>\/languages<\/code> folder with the translation template (<code>iletiniz-sms.pot<\/code>) and the Turkish translation (<code>iletiniz-sms-tr_TR.po<\/code> \/ <code>.mo<\/code>), and declared <code>Domain Path: \/languages<\/code> in the plugin header. Turkish stores keep seeing the interface in Turkish.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Compliance: documented the external iletiniz services (api.iletiniz.com and iletiniz.com) in the readme, including what data is sent and when, plus Terms of Use and Privacy Policy links.<\/li>\n<li>The readme and plugin description are now provided in English (base language for translations).<\/li>\n<li>Inline admin JavaScript (bulk message counter and WooCommerce sender\/provider sync) is now registered and enqueued via <code>wp_enqueue_script()<\/code> \/ <code>wp_localize_script()<\/code> instead of being printed inline.<\/li>\n<li>Removed the <code>load_plugin_textdomain()<\/code> call \u2014 translations are loaded automatically by WordPress.org for the plugin slug.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Security\/UX: OAuth 2.0 with PKCE (RFC 7636, S256). Connecting no longer requires a client secret \u2014 the Client Secret field was removed from Settings and customers connect with a single click. (No shared secret is required on the server side either.)<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New design: all admin pages (Dashboard, Settings, WooCommerce, Bulk Sending) were redesigned to match the iletiniz.com brand identity \u2014 logo, brand color (signal orange), modern cards, badges and buttons. The top menu icon is now the iletiniz logo.<\/li>\n<li>Fix (scope): authorization now always requests the scopes required for the dashboard and sending (<code>messages:send<\/code>, <code>contacts:write<\/code>, <code>connections:read<\/code>, <code>account:read<\/code>). This fixes the \"Authorization error ... (scope)\" seen on the dashboard for installs upgraded from 1.0.0 that had an older (narrow) scope setting saved. Reconnect once from Settings.<\/li>\n<li>Compatibility: declared WooCommerce HPOS (High-Performance Order Storage) compatibility \u2014 the \"incompatible plugin\" warning in modern WooCommerce is gone, and order-status SMS notifications also work on HPOS stores.<\/li>\n<li>WP 6.7+: translations are loaded on the <code>init<\/code> hook (\"Translation loading triggered too early\" warning avoided).<\/li>\n<li>Test environment: the Docker image was moved to current WordPress + PHP 8.3; WooCommerce is now installed automatically in the test environment. The \"headers already sent\" issue that broke the OAuth redirect was fixed because debug output is no longer printed to the screen.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Dashboard: connection status, plan and quota, provider\/sender list, plan gate.<\/li>\n<li>WooCommerce: configurable, templated automatic SMS based on order status.<\/li>\n<li>Bulk sending: filtered, personalized bulk SMS to WooCommerce customers.<\/li>\n<li>New scopes: <code>connections:read<\/code>, <code>account:read<\/code>.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release: OAuth 2.0 Authorization Code flow, encrypted API key storage, SMS sending.<\/li>\n<\/ul>","raw_excerpt":"Send WooCommerce order SMS notifications and bulk SMS, and manage your iletiniz plan and quota, all from your WordPress dashboard.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/326352","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=326352"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/iletiniz"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=326352"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=326352"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=326352"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=326352"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=326352"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=326352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}