{"id":354886,"date":"2026-10-28T18:50:02","date_gmt":"2026-10-28T18:50:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/arrayfunnel-checkout-upsells-cart-recovery\/"},"modified":"2026-10-29T20:24:43","modified_gmt":"2026-10-29T20:24:43","slug":"arrayfunnel","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/arrayfunnel\/","author":18176087,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.4","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"ArrayFunnel - Checkout, Upsells & Cart Recovery","header_author":"emranio","header_description":"Convert more WooCommerce visitors into buyers with a side cart, optimized checkout, order bumps, abandoned-cart recovery, and local analytics.","assets_banners_color":"f6f4fc","last_updated":"2026-10-29 20:24:43","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/arrayfunnel\/","header_author_uri":"https:\/\/profiles.wordpress.org\/emranio\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":93,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"emranio","date":"2026-10-28 18:49:43","revision":3771406},"1.0.1":{"tag":"1.0.1","author":"emranio","date":"2026-10-29 20:24:43","revision":3773965}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3773965,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3773965,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3773965,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3773965,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[15962,3148,168852,173309,286],"plugin_category":[45],"plugin_contributors":[257116],"plugin_business_model":[],"class_list":["post-354886","plugin","type-plugin","status-publish","hentry","plugin_tags-abandoned-cart","plugin_tags-checkout","plugin_tags-order-bump","plugin_tags-side-cart","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-emranio","plugin_committers-emranio"],"banners":{"banner":"https:\/\/ps.w.org\/arrayfunnel\/assets\/banner-772x250.png?rev=3773965","banner_2x":"https:\/\/ps.w.org\/arrayfunnel\/assets\/banner-1544x500.png?rev=3773965","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/arrayfunnel\/assets\/icon-128x128.png?rev=3773965","icon_2x":"https:\/\/ps.w.org\/arrayfunnel\/assets\/icon-256x256.png?rev=3773965","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>ArrayFunnel adds focused conversion tools to a WooCommerce store. Everything runs on your own\nsite without an external account. Optional plugin notification preferences can be sent to\nArrayHash when a site administrator saves them in Help or applies Easy Setup.<\/p>\n\n<p><strong>Side cart<\/strong><\/p>\n\n<p>A slide-out cart drawer with quantity controls, coupon entry, and an optional free-shipping\nprogress bar. Three colour accents, two themes, and three corner styles are included, and the\ndrawer can either open on every add-to-cart or stay out of the way until the shopper opens it.<\/p>\n\n<p><strong>Checkout<\/strong><\/p>\n\n<p>An optional countdown display, connection badges on secure checkouts, and low-stock\nnotices for items already in the cart. Billing and shipping address fields are also put into a\nconsistent order.<\/p>\n\n<p>These enhancements, and order bumps, render on the classic checkout \u2014 a checkout page built\nwith the <code>[woocommerce_checkout]<\/code> shortcode. They do not appear on the block checkout. The side\ncart, abandoned-cart recovery, and analytics work with either checkout.<\/p>\n\n<p><strong>Order bumps<\/strong><\/p>\n\n<p>Offer a single-click add-on on the classic checkout page. Each bump targets all carts, specific\nproducts, specific categories, or a cart-total range, and ships with three display templates.<\/p>\n\n<p><strong>Abandoned-cart recovery<\/strong><\/p>\n\n<p>When a shopper types their email at checkout but does not complete the order, ArrayFunnel saves\nthe cart and can send up to three recovery emails on a schedule you choose. Each email carries a\nlink that restores the exact cart and can apply a coupon you nominate.<\/p>\n\n<p><strong>Analytics<\/strong><\/p>\n\n<p>Checkout views, orders, revenue, average order value, bump acceptance rate, and recovered carts,\nall recorded in your own database and shown on a dashboard inside WP Admin.<\/p>\n\n<h3>External services<\/h3>\n\n<p>ArrayHash plugin notifications (optional)<\/p>\n\n<p>When a site administrator saves notification preferences in Help or applies Easy Setup, the\nplugin sends an asynchronous HTTPS request to:\nhttps:\/\/user-portal.arrayhash.com\/welcome-notification-config\/<\/p>\n\n<p>The request includes the recipient name and email, site URL and language, product name\n(arrayfunnel), selected notification topics, and a preference revision used to reject stale\nretries. The service records these choices to manage security and release updates, offers,\nand ecommerce articles. No shopper, order, cart, payment, or local analytics data is included.<\/p>\n\n<p>No request is made merely by installing or viewing a page. All topics can be disabled; saving\nthat choice sends a removal request. Failed requests remain queued and retry with the original\nrevision until acknowledged, including removal requests. Local saving remains available when\nthe service is unavailable. The plugin loads no remote scripts, styles, fonts, or images.<\/p>\n\n<h3>Build instructions<\/h3>\n\n<p>Readable PHP, JavaScript, and CSS sources are included in <code>\/src<\/code>. The compiled front-end and\nadmin bundles are in <code>\/public\/build<\/code>, produced by <code>@wordpress\/scripts<\/code> using the bundled\n    webpack.config.js, <code>postcss.config.js<\/code>, and <code>tailwind.config.js<\/code>.<\/p>\n\n<p>To reproduce the build:<\/p>\n\n<pre><code>npm install &amp;&amp; npm run build\n<\/code><\/pre>\n\n<p>To install the PHP autoloader:<\/p>\n\n<pre><code>composer install --no-dev --optimize-autoloader\n<\/code><\/pre>\n\n<p>In the development checkout, <code>npm run plugin:make<\/code> prepares a production build in <code>zip\/plugin<\/code>,\nand <code>npm run plugin:zip<\/code> builds an installable <code>zip\/arrayfunnel.zip<\/code>. These commands use the\nnormal Composer autoloader; PHP-Scoper is not required. See <code>docs\/releasing.md<\/code> in the source\nrepository for release, copy, artwork, and WordPress.org publishing instructions.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce 9.0 or newer.<\/li>\n<li>Upload and activate ArrayFunnel.<\/li>\n<li>Open <strong>ArrayFunnel<\/strong> in the WordPress admin menu to configure it.<\/li>\n<\/ol>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.5 or higher<\/li>\n<li>PHP 8.0 or higher<\/li>\n<li>WooCommerce 9.0 or higher<\/li>\n<li>A classic checkout page (built with the <code>[woocommerce_checkout]<\/code> shortcode) for the checkout\nenhancements and order bumps<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20send%20anything%20to%20an%20external%20service%3F\"><h3>Does this plugin send anything to an external service?<\/h3><\/dt>\n<dd><p>The store features, including analytics and abandoned-cart recovery, run against your own\nWordPress database. Recovery emails use your site's mailer. If an administrator saves plugin\nnotification preferences, ArrayFunnel sends the selected recipient name, email, site URL, site\nlanguage, selected topics, plugin name and preference revision to ArrayHash. Viewing Help or\nopening Easy Setup alone does not send this data. Turn all three topics off and save to request\nremoval from plugin notifications.<\/p><\/dd>\n<dt id=\"what%20personal%20data%20does%20it%20store%3F\"><h3>What personal data does it store?<\/h3><\/dt>\n<dd><p>If abandoned-cart recovery is used, the billing email address a shopper types at checkout is\nstored, together with the phone number when one is entered and a snapshot of the cart contents.\nThis is the data needed to send the recovery email and rebuild the cart. Rows older than 90 days\nare deleted automatically by a daily scheduled task, and deleting the plugin removes every\nArrayFunnel table, option, and scheduled task. Plugin notification preferences also store the\nchosen recipient and topics locally, along with pending delivery state until acknowledged.<\/p><\/dd>\n<dt id=\"why%20do%20the%20checkout%20features%20not%20show%20on%20my%20checkout%20page%3F\"><h3>Why do the checkout features not show on my checkout page?<\/h3><\/dt>\n<dd><p>The checkout enhancements and order bumps hook into the classic checkout. If your checkout page\nwas built with the Checkout block, replace its contents with the <code>[woocommerce_checkout]<\/code>\nshortcode. The side cart, abandoned-cart recovery, and analytics are unaffected and work with\neither checkout.<\/p><\/dd>\n<dt id=\"can%20i%20turn%20a%20feature%20off%3F\"><h3>Can I turn a feature off?<\/h3><\/dt>\n<dd><p>Yes. The side cart and the checkout enhancements each have their own switch on the Settings\nscreen, and the countdown and trust badges have their own switches on the Checkout screen.\nOrder bumps are activated one at a time, so a store with no active bump shows none.\nAbandoned-cart tracking only records a cart once a shopper has entered an email address at\ncheckout.<\/p><\/dd>\n<dt id=\"how%20long%20are%20analytics%20kept%3F\"><h3>How long are analytics kept?<\/h3><\/dt>\n<dd><p>Indefinitely by default. Set a retention period in days on the Settings screen and a daily\nscheduled task will prune anything older.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added easy setup wizard.<\/li>\n<li>Added modules page.<\/li>\n<li>Improved UI.<\/li>\n<li>Fixed bugs.<\/li>\n<\/ul>","raw_excerpt":"Convert more WooCommerce visitors into buyers with a side cart, optimized checkout, order bumps, abandoned-cart recovery, and local analytics.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/354886","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=354886"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/emranio"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=354886"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=354886"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=354886"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=354886"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=354886"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=354886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}