توضیحات
WooCommerce core does not provide AJAX add-to-cart on the single product page or for variable products listed on archive pages (it redirects to the single view). This plugin adds an unobtrusive AJAX workflow for:
- Simple products (single product page button becomes AJAX)
- Variable products on archive & block-based Product Collection (opens an accessible modal to choose attributes, then adds via AJAX)
- Classic themes and modern block/FSE themes (2025 and later) with Product Collection blocks
Highlights:
* Works with WooCommerce fragments (mini-cart updates automatically)
* Accessible modal (focus trap, ESC to close, restore focus)
* Nonce-secured AJAX endpoints; sanitized and validated input
* Settings page to enable/disable variable product archive functionality
* Block theme compatibility (intercepts “Select options” buttons) with slug/product_id fallback
* Performance-minded (loads minified bundles built via Webpack; falls back to source if missing)
* Translations auto-loaded from WordPress.org (no manual POT/PO generation required)
Privacy: This plugin does not send any data to external services. It only uses WooCommerce cart/session APIs.
Development
Build commands:
- Install dependencies:
npm install - Production build (minified + source maps):
npm run build - Watch during development:
npm run watch - Lint JS:
npm run lint
Translations: WordPress.org language packs auto-load this plugin’s strings. The former POT/PO/MO tooling and i18n loader file were removed (WP 4.6+). Do not add a load_plugin_textdomain() call; simply keep the Text Domain header accurate.
WooCommerce is a registered trademark of Automattic Inc. This plugin is not affiliated with or endorsed by Automattic/WooCommerce.
نصب
- Upload the
ajaxified-cart-woocommercefolder to/wp-content/plugins/. - Activate the plugin through the “Plugins” menu in WordPress.
- (Optional) Visit Settings > General > Ajaxified Cart to enable variable product archive AJAX.
- (Developers) Build assets if modifying JS:
npm install && npm run build.
سوالات متداول
-
Does it work with block / FSE themes like Twenty Twenty-Five?
-
Yes. Variable product “Select options” buttons in Product Collection blocks are intercepted, opening a modal for attributes.
-
How do I enable AJAX for variable products on archive pages?
-
Go to Settings > General > Ajaxified Cart and check “Enable ajaxified cart for variable products on archive page”.
-
Can I customize the modal styling?
-
Yes. Override or enqueue your own CSS after
abwc-modalor copy the CSS file and adjust. -
Will this conflict with caching or optimization plugins?
-
Typically no. Ensure the localized nonce is not stripped and that minification does not remove required data attributes.
-
Does it support multi-site?
-
Yes, it works on multi-site installations.
-
How are translations handled?
-
They are served automatically from WordPress.org language packs; no manual tools or bundled .mo files are needed.
نقد و بررسیها
توسعه دهندگان و همکاران
“Ajaxified Cart” نرم افزار متن باز است. افراد زیر در این افزونه مشارکت کردهاند.
مشارکت کنندگانترجمه “Ajaxified Cart” به زبان شما.
علاقه مند به توسعه هستید؟
کد را مرور کنید, را بررسی کنید مخزن SVN, یا مشترک شوید گزارش توسعه توسط RSS.
گزارش تغییرات
2.0.2
- Fix: Prefixed bootstrap variable for URL to satisfy WPCS global prefix rule.
- Tweak: Shorter plugin header/tagline (<150 chars) for WordPress.org guidelines.
- Security: Refinement of variation attribute sanitization (removed phpcs ignore, explicit key/value cleanup).
- Cleanup: Removed unused POT tooling file and generator script; relies on WP.org language packs.
- Cleanup: Removed uninstall references/documentation.
2.0.1
- Security: Strengthened sanitization for quantity, variation data, product slug, and variation_id validation.
- Added Requires Plugins header for explicit WooCommerce dependency.
- Escaped output of hidden AJAX input via wp_kses.
- Removed legacy translation loader & uninstall cleanup code; simplified README.
2.0.0
- Build migration: moved from Grunt to Webpack (minified bundles + source fallback).
- Performance & code structure improvements.
- Compatibility updates: Tested up to WordPress 6.8.3 and recent WooCommerce versions.
- Block theme support: Product Collection block variable products open an AJAX modal.
- Security: Added nonce verification + full sanitization for all AJAX inputs.
- Accessibility: Focus trap, ESC close, refresh link, restored focus to triggering button, improved modal semantics.
- Internationalization: Auto-load via WordPress.org (removed manual textdomain loader & POT tooling).
- Styling: Introduced dedicated modal stylesheet (abwc-modal.css).
- Compliance: ABSPATH guards across files, WPCS docblock adjustments, sanitized settings.
- Fallback logic: Ensures dist minified JS used when available, source files otherwise.
1.0.0
- Initial release
1.0.1
- Code Refactor for performance
1.0.2
- Single Product page AJAX fix
1.0.3
- Cart Display fix
1.2.0
- Added admin settings page for enabling/disabling ajaxified cart for variable products on shop page.
- Now ajaxified cart is working for variable products on shop page.
- Notices fixed on product single page.
1.2.1
- Fatal error fix
1.2.2
- Simple products archive ajax add to cart when variable product archive ajax option is enabled issue fix.
- Fixed 500 error when trying to add more variation products to cart than stock holds.
