{"id":319384,"date":"2026-06-17T09:01:17","date_gmt":"2026-06-17T09:01:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/meta-cart-for-woocommerce\/"},"modified":"2026-06-22T14:31:02","modified_gmt":"2026-06-22T14:31:02","slug":"cartbridge-checkout-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/ky.wordpress.org\/plugins\/cartbridge-checkout-for-woocommerce\/","author":7246658,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"CartBridge Checkout Links for WooCommerce","header_author":"gik000","header_description":"Intercepts Meta (Facebook & Instagram) shop checkout URLs and pre-fills the WooCommerce cart automatically, so customers land straight at checkout.","assets_banners_color":"3d4653","last_updated":"2026-06-22 14:31:02","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/liberapay.com\/unmoscerinonelweb.com\/donate","header_plugin_uri":"","header_author_uri":"https:\/\/unmoscerinonelweb.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":95,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"Gik000","date":"2026-06-22 14:31:02"}},"upgrade_notice":{"1.0.1":"<p>Renamed for WordPress.org compliance. No configuration changes required.<\/p>","1.0.0":"<p>Initial release. No upgrade steps required.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3575495,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3575495,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3575495,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3575495,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Meta Commerce Manager \u2014 Checkout URL setting.","2":"WooCommerce checkout page after the cart has been pre-filled via the Meta link."}},"plugin_section":[],"plugin_tags":[3047,3148,157,311,286],"plugin_category":[45,56],"plugin_contributors":[267484],"plugin_business_model":[],"class_list":["post-319384","plugin","type-plugin","status-publish","hentry","plugin_tags-cart","plugin_tags-checkout","plugin_tags-facebook","plugin_tags-instagram","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-social-and-sharing","plugin_contributors-gik000","plugin_committers-gik000"],"banners":{"banner":"https:\/\/ps.w.org\/cartbridge-checkout-for-woocommerce\/assets\/banner-772x250.png?rev=3575495","banner_2x":"https:\/\/ps.w.org\/cartbridge-checkout-for-woocommerce\/assets\/banner-1544x500.png?rev=3575495","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cartbridge-checkout-for-woocommerce\/assets\/icon-128x128.png?rev=3575495","icon_2x":"https:\/\/ps.w.org\/cartbridge-checkout-for-woocommerce\/assets\/icon-256x256.png?rev=3575495","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Since mid-2025 Meta no longer supports native on-platform checkout for Facebook and Instagram shops. Merchants must instead configure a <strong>Checkout URL<\/strong> on their own website \u2014 Meta documents this approach in the <a href=\"https:\/\/developers.facebook.com\/docs\/commerce-platform\/setup-checkout-url\">Commerce Platform Checkout URL setup guide<\/a>. That URL should pre-fill the store cart and send customers straight to checkout.<\/p>\n\n<p><strong>CartBridge Checkout Links for WooCommerce<\/strong> handles this seamlessly. You configure your store URL as the checkout URL in Meta Commerce Manager and the plugin takes care of the rest: it reads the product list from the URL, fills the WooCommerce cart, and redirects the customer to the checkout page.<\/p>\n\n<h4>How it works<\/h4>\n\n<p>Meta appends a <code>products<\/code> query parameter to your checkout URL every time a customer taps \"Buy\" on your Facebook or Instagram shop listing:<\/p>\n\n<pre><code>https:\/\/yourstore.com\/checkout?products=wc_post_id_123:2,wc_post_id_456:1\n<\/code><\/pre>\n\n<p>The plugin intercepts this request, adds the right products (and quantities) to the cart, and bounces the customer to <code>\/checkout<\/code> in one smooth redirect.<\/p>\n\n<h4>Supported product ID formats<\/h4>\n\n<ul>\n<li><code>wc_post_id_123:2<\/code> \u2014 simple product with WooCommerce post ID 123, quantity 2<\/li>\n<li><code>wc_post_id_123_variation_456:2<\/code> \u2014 variable product 123, variation 456, quantity 2<\/li>\n<li><code>123:2<\/code> \u2014 plain WooCommerce post ID (fallback format)<\/li>\n<\/ul>\n\n<h4>Optional parameters<\/h4>\n\n<ul>\n<li><code>coupon=CODE<\/code> \u2014 applies a coupon code automatically<\/li>\n<li><code>utm_source<\/code>, <code>utm_medium<\/code>, <code>utm_campaign<\/code>, <code>utm_content<\/code>, <code>utm_term<\/code> \u2014 forwarded to the checkout URL for analytics<\/li>\n<li><code>fbclid<\/code>, <code>cart_origin<\/code> \u2014 forwarded for Meta attribution<\/li>\n<\/ul>\n\n<h4>Setup<\/h4>\n\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Follow <a href=\"https:\/\/developers.facebook.com\/docs\/commerce-platform\/setup-checkout-url\">Meta's official Checkout URL setup guide<\/a>.<\/li>\n<li>In <strong>Meta Commerce Manager \u2192 Settings \u2192 Checkout<\/strong>, choose <em>Checkout on another website<\/em>.<\/li>\n<li>Set the Checkout URL to your store's checkout page, e.g. <code>https:\/\/yourstore.com\/checkout<\/code>.<\/li>\n<li>Meta will automatically append the <code>?products=\u2026<\/code> parameter when a customer buys.<\/li>\n<\/ol>\n\n<h4>Security<\/h4>\n\n<ul>\n<li>All query-string values are sanitised before use.<\/li>\n<li>Product IDs are validated against the WooCommerce catalogue; non-existent or non-purchasable products are silently skipped.<\/li>\n<li>Quantities are capped at 99 per item; item count is capped at 50 per request.<\/li>\n<li>The final redirect uses <code>wp_safe_redirect()<\/code>.<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.0 or later<\/li>\n<li>WooCommerce 7.0 or later<\/li>\n<li>PHP 7.4 or later<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>cartbridge-checkout-for-woocommerce<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Configure your Checkout URL in Meta Commerce Manager (see the Description tab).<\/li>\n<\/ol>\n\n<p>No other configuration is needed.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20variable%20products%3F\"><h3>Does this work with variable products?<\/h3><\/dt>\n<dd><p>Yes. Meta passes variation IDs in the format <code>wc_post_id_123_variation_456:qty<\/code>. The plugin maps those to the correct WooCommerce variation automatically.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20product%20is%20out%20of%20stock%3F\"><h3>What happens if a product is out of stock?<\/h3><\/dt>\n<dd><p>Out-of-stock and non-purchasable products are silently skipped. If <em>no<\/em> valid product can be added to the cart, the redirect is suppressed and the customer stays on the landing page.<\/p><\/dd>\n<dt id=\"can%20i%20use%20any%20page%20as%20the%20checkout%20url%3F\"><h3>Can I use any page as the checkout URL?<\/h3><\/dt>\n<dd><p>Yes. The plugin listens on <em>every<\/em> front-end request and activates only when the <code>products<\/code> parameter is present, so you can point Meta to any page of your site.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20conflict%20with%20page%20caching%3F\"><h3>Does the plugin conflict with page caching?<\/h3><\/dt>\n<dd><p>URLs containing the <code>products<\/code> parameter should be excluded from your caching layer. Most caching plugins (LiteSpeed Cache, W3 Total Cache, WP Rocket, etc.) allow you to add query-string exclusion rules for this parameter.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20gdpr-compliant%3F\"><h3>Is the plugin GDPR-compliant?<\/h3><\/dt>\n<dd><p>The plugin does not collect, store, or transmit any personal data. It only reads URL parameters provided by Meta and uses them to populate a server-side WooCommerce cart session.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Renamed plugin to CartBridge Checkout Links for WooCommerce for WordPress.org directory compliance.<\/li>\n<li>Replaced generic wc prefix with cartbridge prefix throughout the codebase.<\/li>\n<li>Removed redundant load_plugin_textdomain() call.<\/li>\n<li>Added plugin directory banners and icons.<\/li>\n<li>Added link to Meta's official Checkout URL documentation in the plugin description.<\/li>\n<li>Added complete translations for 14 languages.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Fills the WooCommerce cart automatically when customers arrive from a Meta (Facebook or Instagram) shop checkout URL.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/319384","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=319384"}],"author":[{"embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gik000"}],"wp:attachment":[{"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=319384"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=319384"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=319384"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=319384"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=319384"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ky.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=319384"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}