Arik Sahaj Checkout

Description

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.

Key Features

  • Shadow Order System – Creates real WooCommerce orders when customers click the WhatsApp button
  • Automatic Inventory Protection – Stock is reduced immediately, preventing overselling
  • Variable Product Support – Captures customer’s size, color, and other variation selections
  • Zero Cost – Uses free wa.me protocol, no WhatsApp Business API required
  • HPOS Compatible – Full support for WooCommerce High-Performance Order Storage
  • Customizable Messages – Template system with dynamic placeholders
  • Flexible Button Positioning – Before, after, or replace add to cart button
  • Order Status Control – Choose default status for shadow orders
  • Abandonment Protection – Keep order records even if customer doesn’t complete WhatsApp message
  • Email Suppression – Shadow orders never trigger admin/customer email notifications
  • Theme Compatible – Works with The7, Storefront, Astra, OceanWP, Divi and more

How It Works

  1. Customer selects product options on your site
  2. Clicks “Order via WhatsApp” button
  3. Plugin creates a real WooCommerce order (shadow order)
  4. Stock is automatically reduced
  5. WhatsApp opens with pre-filled order details including Order ID
  6. Shop owner can reference the Order ID in WooCommerce dashboard

Perfect For

  • Stores that primarily take orders via WhatsApp
  • Businesses in markets where WhatsApp is the preferred communication channel
  • Shops wanting inventory protection without complex checkout flows
  • Stores selling variable products through WhatsApp

Technical Highlights

  • Object-oriented PHP architecture
  • Follows WordPress and WooCommerce coding standards
  • Security-first approach with nonce verification and input sanitization
  • Rate limiting to prevent abuse
  • Full i18n/l10n support for translations
  • Mobile-responsive design
  • High-specificity CSS to defeat theme style conflicts
  • Button style caching for performance on archive pages

Additional Information

Support & Connect

You can also use the plugin support forum on WordPress.org.

Privacy

This plugin does not collect or transmit any personal data to external
services. All orders are stored locally in your WooCommerce database.

Requirements

  • WordPress 5.8 or higher
  • WooCommerce 6.0 or higher
  • PHP 8.0 or higher

Server Note

If PHP mail() is disabled on your server (common on shared hosting),
install WP Mail SMTP with Gmail, SendGrid, or Mailgun to enable
WooCommerce order emails for real customer orders. Shadow orders
created by this plugin suppress all email notifications and are
unaffected by this server configuration.

Credits

Developed with love for WooCommerce store owners who use WhatsApp for sales.

Screenshots

  • screenshot-1.png
  • screenshot-2.png
  • screenshot-3.png
  • screenshot-4.png
  • screenshot-5.png

Installation

Automatic Installation

  1. Go to Plugins > Add New
  2. Search for “Arik Sahaj Checkout”
  3. Click Install Now
  4. Activate the plugin

Manual Installation

  1. Download the plugin zip file
  2. Go to Plugins > Add New > Upload Plugin
  3. Choose the downloaded file and click Install Now
  4. Activate the plugin

Configuration

  1. Go to WooCommerce > WhatsApp Checkout
  2. Enter your WhatsApp number with country code (e.g., +8801719937625)
  3. Customize the message template
  4. Configure button text and position
  5. Save settings

FAQ

Do I need WhatsApp Business API?

No! This plugin uses the free wa.me protocol, so there are no API costs or business verification requirements.

What happens to the stock when someone clicks the button?

The plugin creates a real WooCommerce order, which automatically reduces stock quantity. This prevents overselling.

Can I use this with variable products?

Yes! The plugin fully supports variable products and captures the customer’s selected variations (size, color, etc.).

What if the customer doesn’t complete the WhatsApp order?

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.

Can I translate the plugin?

Yes! The plugin is fully translatable and includes a .pot file for easy translation.

Does it work with HPOS (High-Performance Order Storage)?

Yes! The plugin is fully compatible with WooCommerce’s HPOS feature.

Can I customize the WhatsApp message?

Yes! Use placeholders like {product_name}, {order_id}, {quantity}, {total}, and {variations} in your message template.

What order status is used for shadow orders?

By default, shadow orders are created with “On Hold” status, but you can change this in the settings.

Will shadow orders send email notifications to admin or customer?

No. Shadow orders intentionally suppress all WooCommerce transactional emails.
Email notifications are only sent for real orders processed through the
standard WooCommerce checkout.

Does it work on servers where PHP mail() is disabled?

Yes. Since version 1.0.2 the plugin fully suppresses WooCommerce email hooks
during shadow order creation, so PHP mail() is never called regardless of
your server configuration.

Does it work with The7 theme?

Yes. Version 1.0.2 adds specific high-specificity CSS selectors to override
The7’s aggressive button style rules.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Arik Sahaj Checkout” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Arik Sahaj Checkout” 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.2

Release Date: March 13, 2026

Critical Bug Fixes

  • Fixed fatal error “Call to undefined function PHPMailer\PHPMailer\mail()”
    caused by WooCommerce firing admin email notification during shadow order
    creation on servers where PHP mail() is disabled.
    Added disable_wc_emails() / enable_wc_emails() wrapper around update_status()
    to fully suppress all transactional emails for shadow orders.

  • Fixed fatal error “Cannot redeclare class ARIKSAC_Order_Handler” caused
    by incorrect file content being uploaded to class-ariksac-ajax.php.

  • Fixed AJAX 500 error triggered by calling update_meta_data() on
    ‘_customer_ip_address’ and ‘_customer_user_agent’ which fires
    wc_doing_it_wrong() in WooCommerce 3.2+. Replaced with
    set_customer_ip_address() and set_customer_user_agent() setters.

  • Fixed double backslash syntax errors on global PHP class references
    (\WC_Product, \WC_Order, \WP_Error, \WC_DateTime, \WP_Term, \Throwable)
    throughout class-ariksac-order-handler.php, class-ariksac-frontend.php,
    and class-ariksac-ajax.php.

Button Style Bugs Fixed

  • Fixed button background color, hover background color, text color, hover
    text color, font size, border radius, padding, icon size, and gap settings
    not applying on frontend.
    Root cause: single-class CSS selector lost specificity war against theme
    !important rules (The7, Storefront, Astra, OceanWP). Fixed by replacing
    with a high-specificity selector list covering all major themes.

  • Fixed font-size, border-radius, padding, and gap having no !important
    in dynamic CSS — theme .button styles overrode them silently.

CSS Bugs Fixed

  • Fixed WooCommerce notice styles never applying. CSS used .ariksac-notice.success
    and .ariksac-notice.error but JS adds .woocommerce-message and .woocommerce-error.
    Updated selectors to match actual JS output.

  • Fixed mobile @media queries using padding !important and icon width/height
    !important which overrode user-saved settings on screens under 768px/480px.
    Removed conflicting overrides — layout-only margin adjustments remain.

  • Fixed prefers-reduced-motion and prefers-contrast @media overrides being
    non-functional. Since wp_add_inline_style() appends after the static
    stylesheet, the dynamic CSS transition !important and border: none !important
    always won. Moved both overrides into add_dynamic_styles() in PHP.

  • Fixed .ariksac-loop-button { font-size: 14px } and { width: auto } being
    silently ignored due to conflicting dynamic CSS !important rules.
    Removed both — only min-width and min-height remain on loop button.

  • Fixed debug data (file path, line number, full stack trace) being exposed
    in production AJAX JSON error responses. Removed file, line, and trace
    keys from catch block. Debug message now only shown when WP_DEBUG is true.

New Features & Improvements

  • Added email suppression system — two new private methods:
    disable_wc_emails() and enable_wc_emails() targeting all 11 WooCommerce
    email notification types.

  • Added button style result caching — get_button_styles() now caches in
    $this->button_styles property. get_option() called once per request
    instead of once per rendered button (significant on shop/archive pages).

  • Added sanitize_hex_color() fallback guard — all four color options now
    use ?: ‘#fallback’ so the button is never rendered with empty
    background-color or color properties.

  • Added The7 theme compatibility — high-specificity body-level CSS selectors
    added to override The7’s aggressive button !important rules on both
    single product and archive pages.

  • Added dark mode support for WooCommerce notice styles
    (prefers-color-scheme: dark).

  • Added Divi theme wrapper compatibility rule.

  • Added focus-visible accessibility improvement — keyboard users see focus
    rings, mouse users do not (:focus:not(:focus-visible) pattern).

  • Added admin CSS for icon uploader — .ariksac-icon-uploader,
    .ariksac-icon-preview, .ariksac-upload-icon, .ariksac-remove-icon
    were used in settings PHP and admin.js but had zero CSS styles.

  • Added admin responsive layout for Contact & Support tab cards and
    fieldset padding inputs at max-width: 782px.

1.0.0

Release Date: 2026

  • Initial release
  • Shadow order system
  • Variable product support
  • HPOS compatibility
  • Security features (nonce, rate limiting, input sanitization)
  • Customizable message templates
  • Flexible button positioning (before, after, replace add to cart)
  • Configurable order status for shadow orders