{"id":272333,"date":"2026-01-07T16:18:28","date_gmt":"2026-01-07T16:18:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/arik-sahaj-checkout\/"},"modified":"2026-03-12T21:23:02","modified_gmt":"2026-03-12T21:23:02","slug":"arik-sahaj-checkout","status":"publish","type":"plugin","link":"https:\/\/test.wordpress.org\/plugins\/arik-sahaj-checkout\/","author":18024400,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.2","stable_tag":"1.0.2","tested":"6.9.4","requires":"5.8","requires_php":"8.0","requires_plugins":null,"header_name":"Arik Sahaj Checkout","header_author":"wcblogs87","header_description":"Create WooCommerce orders and send details via WhatsApp with inventory protection.","assets_banners_color":"b6d4bd","last_updated":"2026-03-12 21:23:02","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/arik-sahaj-checkout\/","header_author_uri":"https:\/\/profiles.wordpress.org\/wcblogs87\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":257,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"wcblogs87","date":"2026-03-12 21:23:02"}},"upgrade_notice":{"1.0.2":"<p>Critical update. Fixes fatal AJAX errors on servers with PHP mail() disabled,\nfatal class redeclaration error, button style settings not applying, and\nmultiple CSS conflicts with popular themes. Upgrade immediately.<\/p>","1.0.0":"<p>Initial release of Arik Sahaj Checkout plugin.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3434498,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3434498,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3434498,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3434498,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3434498,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3434498,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3434587,"resolution":"5","location":"assets","locale":""}},"screenshots":{"1":"screenshot-1.png","2":"screenshot-2.png","3":"screenshot-3.png","4":"screenshot-4.png","5":"screenshot-5.png"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[3148,3160,176324,286,13816],"plugin_category":[45],"plugin_contributors":[246811],"plugin_business_model":[],"class_list":["post-272333","plugin","type-plugin","status-publish","hentry","plugin_tags-checkout","plugin_tags-whatsapp","plugin_tags-whatsapp-order","plugin_tags-woocommerce","plugin_tags-woocommerce-checkout","plugin_category-ecommerce","plugin_contributors-wcblogs87","plugin_committers-wcblogs87"],"banners":{"banner":"https:\/\/ps.w.org\/arik-sahaj-checkout\/assets\/banner-772x250.png?rev=3434498","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/arik-sahaj-checkout\/assets\/icon-256x256.png?rev=3434498","icon_2x":"https:\/\/ps.w.org\/arik-sahaj-checkout\/assets\/icon-256x256.png?rev=3434498","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/arik-sahaj-checkout\/assets\/screenshot-1.png?rev=3434498","caption":"screenshot-1.png"},{"src":"https:\/\/ps.w.org\/arik-sahaj-checkout\/assets\/screenshot-2.png?rev=3434498","caption":"screenshot-2.png"},{"src":"https:\/\/ps.w.org\/arik-sahaj-checkout\/assets\/screenshot-3.png?rev=3434498","caption":"screenshot-3.png"},{"src":"https:\/\/ps.w.org\/arik-sahaj-checkout\/assets\/screenshot-4.png?rev=3434498","caption":"screenshot-4.png"},{"src":"https:\/\/ps.w.org\/arik-sahaj-checkout\/assets\/screenshot-5.png?rev=3434587","caption":"screenshot-5.png"}],"raw_content":"<!--section=description-->\n<p>Arik Sahaj Checkout revolutionizes the way you handle WhatsApp orders in WooCommerce. Unlike simple WhatsApp buttons that just open a chat, this plugin creates real WooCommerce orders in the background, ensuring inventory safety and preventing overselling.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Shadow Order System<\/strong> - Creates real WooCommerce orders when customers click the WhatsApp button<\/li>\n<li><strong>Automatic Inventory Protection<\/strong> - Stock is reduced immediately, preventing overselling<\/li>\n<li><strong>Variable Product Support<\/strong> - Captures customer's size, color, and other variation selections<\/li>\n<li><strong>Zero Cost<\/strong> - Uses free wa.me protocol, no WhatsApp Business API required<\/li>\n<li><strong>HPOS Compatible<\/strong> - Full support for WooCommerce High-Performance Order Storage<\/li>\n<li><strong>Customizable Messages<\/strong> - Template system with dynamic placeholders<\/li>\n<li><strong>Flexible Button Positioning<\/strong> - Before, after, or replace add to cart button<\/li>\n<li><strong>Order Status Control<\/strong> - Choose default status for shadow orders<\/li>\n<li><strong>Abandonment Protection<\/strong> - Keep order records even if customer doesn't complete WhatsApp message<\/li>\n<li><strong>Email Suppression<\/strong> - Shadow orders never trigger admin\/customer email notifications<\/li>\n<li><strong>Theme Compatible<\/strong> - Works with The7, Storefront, Astra, OceanWP, Divi and more<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>Customer selects product options on your site<\/li>\n<li>Clicks \"Order via WhatsApp\" button<\/li>\n<li>Plugin creates a real WooCommerce order (shadow order)<\/li>\n<li>Stock is automatically reduced<\/li>\n<li>WhatsApp opens with pre-filled order details including Order ID<\/li>\n<li>Shop owner can reference the Order ID in WooCommerce dashboard<\/li>\n<\/ol>\n\n<h4>Perfect For<\/h4>\n\n<ul>\n<li>Stores that primarily take orders via WhatsApp<\/li>\n<li>Businesses in markets where WhatsApp is the preferred communication channel<\/li>\n<li>Shops wanting inventory protection without complex checkout flows<\/li>\n<li>Stores selling variable products through WhatsApp<\/li>\n<\/ul>\n\n<h4>Technical Highlights<\/h4>\n\n<ul>\n<li>Object-oriented PHP architecture<\/li>\n<li>Follows WordPress and WooCommerce coding standards<\/li>\n<li>Security-first approach with nonce verification and input sanitization<\/li>\n<li>Rate limiting to prevent abuse<\/li>\n<li>Full i18n\/l10n support for translations<\/li>\n<li>Mobile-responsive design<\/li>\n<li>High-specificity CSS to defeat theme style conflicts<\/li>\n<li>Button style caching for performance on archive pages<\/li>\n<\/ul>\n\n<h3>Additional Information<\/h3>\n\n<h4>Support &amp; Connect<\/h4>\n\n<ul>\n<li><strong>Email Support:<\/strong> helpwcblog@gmail.com<\/li>\n<li><strong>Website:<\/strong> <strong><a href=\"https:\/\/gernx.com\/\">https:\/\/gernx.com\/<\/a><\/strong> <\/li>\n<li><strong>Support Forum:<\/strong> <a href=\"https:\/\/wordpress.org\/support\/plugin\/arik-sahaj-checkout\/\">WordPress.org Support<\/a><\/li>\n<li><strong>LinkedIn:<\/strong> <a href=\"https:\/\/www.linkedin.com\/in\/is-tanmoy\/\">Tanmoy Biswas<\/a><\/li>\n<\/ul>\n\n<p>You can also use the plugin support forum on WordPress.org.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>This plugin does not collect or transmit any personal data to external\nservices. All orders are stored locally in your WooCommerce database.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.8 or higher<\/li>\n<li>WooCommerce 6.0 or higher<\/li>\n<li>PHP 8.0 or higher<\/li>\n<\/ul>\n\n<h4>Server Note<\/h4>\n\n<p>If PHP mail() is disabled on your server (common on shared hosting),\ninstall WP Mail SMTP with Gmail, SendGrid, or Mailgun to enable\nWooCommerce order emails for real customer orders. Shadow orders\ncreated by this plugin suppress all email notifications and are\nunaffected by this server configuration.<\/p>\n\n<h3>Credits<\/h3>\n\n<p>Developed with love for WooCommerce store owners who use WhatsApp for sales.<\/p>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Go to Plugins &gt; Add New<\/li>\n<li>Search for \"Arik Sahaj Checkout\"<\/li>\n<li>Click Install Now<\/li>\n<li>Activate the plugin<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin zip file<\/li>\n<li>Go to Plugins &gt; Add New &gt; Upload Plugin<\/li>\n<li>Choose the downloaded file and click Install Now<\/li>\n<li>Activate the plugin<\/li>\n<\/ol>\n\n<h4>Configuration<\/h4>\n\n<ol>\n<li>Go to WooCommerce &gt; WhatsApp Checkout<\/li>\n<li>Enter your WhatsApp number with country code (e.g., +8801719937625)<\/li>\n<li>Customize the message template<\/li>\n<li>Configure button text and position<\/li>\n<li>Save settings<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20whatsapp%20business%20api%3F\"><h3>Do I need WhatsApp Business API?<\/h3><\/dt>\n<dd><p>No! This plugin uses the free wa.me protocol, so there are no API costs or business verification requirements.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20the%20stock%20when%20someone%20clicks%20the%20button%3F\"><h3>What happens to the stock when someone clicks the button?<\/h3><\/dt>\n<dd><p>The plugin creates a real WooCommerce order, which automatically reduces stock quantity. This prevents overselling.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20variable%20products%3F\"><h3>Can I use this with variable products?<\/h3><\/dt>\n<dd><p>Yes! The plugin fully supports variable products and captures the customer's selected variations (size, color, etc.).<\/p><\/dd>\n<dt id=\"what%20if%20the%20customer%20doesn%27t%20complete%20the%20whatsapp%20order%3F\"><h3>What if the customer doesn't complete the WhatsApp order?<\/h3><\/dt>\n<dd><p>The shadow order remains in your WooCommerce dashboard with \"On Hold\" or \"Pending\" status. You can follow up with the customer or cancel the order to restore stock.<\/p><\/dd>\n<dt id=\"can%20i%20translate%20the%20plugin%3F\"><h3>Can I translate the plugin?<\/h3><\/dt>\n<dd><p>Yes! The plugin is fully translatable and includes a .pot file for easy translation.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20hpos%20%28high-performance%20order%20storage%29%3F\"><h3>Does it work with HPOS (High-Performance Order Storage)?<\/h3><\/dt>\n<dd><p>Yes! The plugin is fully compatible with WooCommerce's HPOS feature.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20whatsapp%20message%3F\"><h3>Can I customize the WhatsApp message?<\/h3><\/dt>\n<dd><p>Yes! Use placeholders like {product_name}, {order_id}, {quantity}, {total}, and {variations} in your message template.<\/p><\/dd>\n<dt id=\"what%20order%20status%20is%20used%20for%20shadow%20orders%3F\"><h3>What order status is used for shadow orders?<\/h3><\/dt>\n<dd><p>By default, shadow orders are created with \"On Hold\" status, but you can change this in the settings.<\/p><\/dd>\n<dt id=\"will%20shadow%20orders%20send%20email%20notifications%20to%20admin%20or%20customer%3F\"><h3>Will shadow orders send email notifications to admin or customer?<\/h3><\/dt>\n<dd><p>No. Shadow orders intentionally suppress all WooCommerce transactional emails.\nEmail notifications are only sent for real orders processed through the\nstandard WooCommerce checkout.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20servers%20where%20php%20mail%28%29%20is%20disabled%3F\"><h3>Does it work on servers where PHP mail() is disabled?<\/h3><\/dt>\n<dd><p>Yes. Since version 1.0.2 the plugin fully suppresses WooCommerce email hooks\nduring shadow order creation, so PHP mail() is never called regardless of\nyour server configuration.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the7%20theme%3F\"><h3>Does it work with The7 theme?<\/h3><\/dt>\n<dd><p>Yes. Version 1.0.2 adds specific high-specificity CSS selectors to override\nThe7's aggressive button style rules.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<p>Release Date: March 13, 2026<\/p>\n\n<p><strong>Critical Bug Fixes<\/strong><\/p>\n\n<ul>\n<li><p>Fixed fatal error \"Call to undefined function PHPMailer\\PHPMailer\\mail()\"\ncaused by WooCommerce firing admin email notification during shadow order\ncreation on servers where PHP mail() is disabled.\nAdded disable_wc_emails() \/ enable_wc_emails() wrapper around update_status()\nto fully suppress all transactional emails for shadow orders.<\/p><\/li>\n<li><p>Fixed fatal error \"Cannot redeclare class ARIKSAC_Order_Handler\" caused\nby incorrect file content being uploaded to class-ariksac-ajax.php.<\/p><\/li>\n<li><p>Fixed AJAX 500 error triggered by calling update_meta_data() on\n'_customer_ip_address' and '_customer_user_agent' which fires\nwc_doing_it_wrong() in WooCommerce 3.2+. Replaced with\nset_customer_ip_address() and set_customer_user_agent() setters.<\/p><\/li>\n<li><p>Fixed double backslash syntax errors on global PHP class references\n(&#092;WC_Product, &#092;WC_Order, &#092;WP_Error, &#092;WC_DateTime, &#092;WP_Term, &#092;Throwable)\nthroughout class-ariksac-order-handler.php, class-ariksac-frontend.php,\nand class-ariksac-ajax.php.<\/p><\/li>\n<\/ul>\n\n<p><strong>Button Style Bugs Fixed<\/strong><\/p>\n\n<ul>\n<li><p>Fixed button background color, hover background color, text color, hover\ntext color, font size, border radius, padding, icon size, and gap settings\nnot applying on frontend.\nRoot cause: single-class CSS selector lost specificity war against theme\n!important rules (The7, Storefront, Astra, OceanWP). Fixed by replacing\nwith a high-specificity selector list covering all major themes.<\/p><\/li>\n<li><p>Fixed font-size, border-radius, padding, and gap having no !important\nin dynamic CSS \u2014 theme .button styles overrode them silently.<\/p><\/li>\n<\/ul>\n\n<p><strong>CSS Bugs Fixed<\/strong><\/p>\n\n<ul>\n<li><p>Fixed WooCommerce notice styles never applying. CSS used .ariksac-notice.success\nand .ariksac-notice.error but JS adds .woocommerce-message and .woocommerce-error.\nUpdated selectors to match actual JS output.<\/p><\/li>\n<li><p>Fixed mobile @media queries using padding !important and icon width\/height\n!important which overrode user-saved settings on screens under 768px\/480px.\nRemoved conflicting overrides \u2014 layout-only margin adjustments remain.<\/p><\/li>\n<li><p>Fixed prefers-reduced-motion and prefers-contrast @media overrides being\nnon-functional. Since wp_add_inline_style() appends after the static\nstylesheet, the dynamic CSS transition !important and border: none !important\nalways won. Moved both overrides into add_dynamic_styles() in PHP.<\/p><\/li>\n<li><p>Fixed .ariksac-loop-button { font-size: 14px } and { width: auto } being\nsilently ignored due to conflicting dynamic CSS !important rules.\nRemoved both \u2014 only min-width and min-height remain on loop button.<\/p><\/li>\n<li><p>Fixed debug data (file path, line number, full stack trace) being exposed\nin production AJAX JSON error responses. Removed file, line, and trace\nkeys from catch block. Debug message now only shown when WP_DEBUG is true.<\/p><\/li>\n<\/ul>\n\n<p><strong>New Features &amp; Improvements<\/strong><\/p>\n\n<ul>\n<li><p>Added email suppression system \u2014 two new private methods:\ndisable_wc_emails() and enable_wc_emails() targeting all 11 WooCommerce\nemail notification types.<\/p><\/li>\n<li><p>Added button style result caching \u2014 get_button_styles() now caches in\n$this-&gt;button_styles property. get_option() called once per request\ninstead of once per rendered button (significant on shop\/archive pages).<\/p><\/li>\n<li><p>Added sanitize_hex_color() fallback guard \u2014 all four color options now\nuse ?: '#fallback' so the button is never rendered with empty\nbackground-color or color properties.<\/p><\/li>\n<li><p>Added The7 theme compatibility \u2014 high-specificity body-level CSS selectors\nadded to override The7's aggressive button !important rules on both\nsingle product and archive pages.<\/p><\/li>\n<li><p>Added dark mode support for WooCommerce notice styles\n(prefers-color-scheme: dark).<\/p><\/li>\n<li><p>Added Divi theme wrapper compatibility rule.<\/p><\/li>\n<li><p>Added focus-visible accessibility improvement \u2014 keyboard users see focus\nrings, mouse users do not (:focus:not(:focus-visible) pattern).<\/p><\/li>\n<li><p>Added admin CSS for icon uploader \u2014 .ariksac-icon-uploader,\n.ariksac-icon-preview, .ariksac-upload-icon, .ariksac-remove-icon\nwere used in settings PHP and admin.js but had zero CSS styles.<\/p><\/li>\n<li><p>Added admin responsive layout for Contact &amp; Support tab cards and\nfieldset padding inputs at max-width: 782px.<\/p><\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<p>Release Date: 2026<\/p>\n\n<ul>\n<li>Initial release<\/li>\n<li>Shadow order system<\/li>\n<li>Variable product support<\/li>\n<li>HPOS compatibility<\/li>\n<li>Security features (nonce, rate limiting, input sanitization)<\/li>\n<li>Customizable message templates<\/li>\n<li>Flexible button positioning (before, after, replace add to cart)<\/li>\n<li>Configurable order status for shadow orders<\/li>\n<\/ul>","raw_excerpt":"Create shadow WooCommerce orders and enable WhatsApp checkout with automatic inventory protection.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/272333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=272333"}],"author":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wcblogs87"}],"wp:attachment":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=272333"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=272333"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=272333"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=272333"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=272333"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=272333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}