{"id":485,"date":"2015-07-10T10:14:59","date_gmt":"2015-07-10T08:14:59","guid":{"rendered":"https:\/\/wp-rocket.me\/blog\/?p=485"},"modified":"2023-08-29T08:17:22","modified_gmt":"2023-08-29T06:17:22","slug":"using-woocommerce-dynamic-cart-wp-rocket","status":"publish","type":"post","link":"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/","title":{"rendered":"Using WooCommerce Dynamic Cart and WP&nbsp;Rocket"},"content":{"rendered":"<p>At <a href=\"https:\/\/elephantcs.nl\/\">Elephant<\/a>, we\u2019re using <a href=\"https:\/\/wp-rocket.me\/wordpress-caching-plugins-for-woocommerce\/\">WP Rocket to cache our WordPress WooCommerce websites<\/a>. Simple to set up, full of features and good compatibility with most of the commonly used plugins (ACF, WPML, etc) in the WordPress realm.<\/p><p>WP Rocket uses all kinds of different ways to speed up your site, from saving static pages in wp-content\/cache\/wp-rocket (gzipped for faster download), combining and concatenating JS and CSS (if you want it to), to adding headers to your .htaccess.<\/p><p>This makes the whole loading process of your site very quick, though with webshops, this might be a bit problematic, since you need them to show some new stuff every now and then, right?<\/p><p>WP Rocket&nbsp;allows you to exclude any&nbsp;page(s) from the cache, but when you\u2019re using WooCommerce, Easy Digital Download, iThemes Exchange, Jigoshop or WP-Shop, you\u2019ll be fine since cart and checkout pages will be auto-excluded from those plugins automatically.<\/p><p>Recently, however, I ran into a little problem with the mini cart that WooCommerce offers and that you can use, for example, in your webshop header. The mini cart was not Ajax-ed, so the content was being cached and&nbsp;sometimes made it&nbsp;look like you didn\u2019t have any items in your cart even when you did. By reaching out via Twitter I found out that the only way to solve this correctly was by retrieving this mini cart via WP AJAX. Since I promised the helpful team at WP Rocket a write up, I\u2019ll tell you how I did this.<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/wp-rocket.me\/wp-content\/uploads\/2\/Schermafbeelding-2015-06-17-om-09.18.291.png\" alt=\"Schermafbeelding 2015-06-17 om 09.18.29\" class=\"wp-image-518\"\/><\/figure><\/div><p>The mini cart over at <a href=\"https:\/\/jaloezieenverkoop.nl\/\" target=\"_blank\" rel=\"noopener noreferrer\">jaloezieenverkoop.nl<\/a> has only one dynamic part: {x} product(s) {total_price}. You can generate a mini cart using the Woo function <a href=\"https:\/\/docs.woocommerce.com\/wc-apidocs\/function-woocommerce_mini_cart.html\" target=\"_blank\" rel=\"noopener noreferrer\">woocommerce_mini_cart()<\/a>, but for me, this proved to be a bit too much information.<\/p><p>So, my mini cart looks like this:<\/p><div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-php code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-php code-embed-code\">&lt;?php global $woocommerce; ?&gt;<br\/><br\/>&lt;div id=&quot;shop-cart&quot;&gt;<br\/>    &lt;span class=&quot;cart-title&quot;&gt;&lt;?php _e( &#039;Winkelwagen&#039;, &#039; your-textdomain &#039; ); ?&gt;&lt;\/span&gt;<br\/>    &lt;span class=&quot;cart-products&quot;&gt;<br\/>    <br\/>        &lt;span class=&quot;cart-result&quot;&gt;&lt;\/span&gt;<br\/><br\/>    &lt;\/span&gt;<br\/>    &lt;div class=&quot;cart-links&quot;&gt;<br\/>        &lt;ul&gt;<br\/>            &lt;li&gt;&lt;a href=&quot;&lt;?php echo $woocommerce-&gt;cart-&gt;get_cart_url(); ?&gt;&quot; title=&quot;&lt;?php _e( &#039;Bekijken&#039;, &#039; your-textdomain &#039; ); ?&gt;&quot;&gt;&lt;?php _e( &#039;Bekijken&#039;, &#039;your-textdomain&#039; ); ?&gt;&lt;\/a&gt;&lt;\/li&gt;<br\/>            &lt;li&gt;&lt;a href=&quot;&lt;?php echo $woocommerce-&gt;cart-&gt;get_checkout_url() ?&gt;&quot; title=&quot;&lt;?php _e( &#039;Checkout&#039; ) ?&gt;&quot;&gt;&lt;?php _e( &#039;Afrekenen&#039;, &#039;your-textdomain&#039; ); ?&gt;&lt;\/a&gt;&lt;\/li&gt;<br\/>        &lt;\/ul&gt;<br\/>    &lt;\/div&gt;<br\/>&lt;\/div&gt;&lt;!-- #shop-cart --&gt;<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div><p>Please note the span .cart-result \u2013 that\u2019s the span we\u2019re going to use for our mini cart data. The rest of our mini cart is always going to be the same (checkout button, go to cart button), so we can easily have those elements cached.<\/p><p>We setup the AJAX call next. I\u2019m using regular <a href=\"https:\/\/api.jquery.com\/jquery.post\/\" target=\"_blank\" rel=\"noopener noreferrer\">jQuery<\/a>, obviously there are other ways to do this, but I suspect that most of you out there are comfortable with this way of doing things.<\/p><p>So first, the JS initializing the call:<\/p><div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-javascript code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-javascript code-embed-code\">\/*------------------------------------------------------------------------*\/<br\/>\/* Load cart by Ajax<br\/>\/*------------------------------------------------------------------------*\/<br\/><br\/>if( 1 == jQuery( &#039;.cart-result&#039; ).length ) {<br\/><br\/>\tvar data = {<br\/>\t\t&#039;action&#039;: &#039;load_woo_cart&#039;<br\/>\t};<br\/>\t<br\/>\tjQuery.post( woocommerce_params.ajax_url, data, function( response ) {<br\/>\t\tjQuery( &#039;.cart-result&#039; ).append( response );<br\/>\t});<br\/><br\/>}<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div><p>As you can see we\u2019re checking to see if .cart-result is there, we create the $_POST data (our only data being the call we want to make) and we re-use the WooCommerce AJAX URL so we don\u2019t have to enqueue it ourselved.<\/p><p>With the data returned, we fill up .cart-result. Nothing more, nothing less.<\/p><p>Next step, let\u2019s see what our PHP looks like\u2026<\/p><div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-php code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-php code-embed-code\">\/**<br\/>* Ajax functions to retrieve cart<br\/>**\/<br\/><br\/>add_action( &#039;wp_ajax_nopriv_load_woo_cart&#039;, &#039;load_woo_cart&#039; );<br\/>add_action( &#039;wp_ajax_load_woo_cart&#039;, &#039;load_woo_cart&#039; );<br\/><br\/>function load_woo_cart(){<br\/>\techo get_template_part( &#039;parts\/header\/cart-ajax&#039; );<br\/>\tdie();<br\/>}<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div><p>We add some actions here that receive the calls made by our Javascript. I\u2019m not diving in on how that works (you could check that yourselves in the <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\/wp_ajax_%28action%29\" target=\"_blank\" rel=\"noopener noreferrer\">WordPress codex<\/a>, but it basically only returns the template part with the cart data we need: {x} product(s) {total_price}. I\u2019m working with template parts here and I think you should to \u2013 it\u2019s best practice not having your markup tangled up with your code, of course (if I did, I\u2019d have some evil front end devs harassing me in no time).<\/p><p>The part looks like this:<\/p><div class=\"wp-block-wab-pastacode\">\n\t<div class=\"code-embed-wrapper\"> <pre class=\"language-php code-embed-pre line-numbers\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-php code-embed-code\">&lt;?php global $woocommerce;<br\/>if ( $woocommerce-&gt;cart-&gt;cart_contents_count &gt; 0 ) : ?&gt;<br\/>    <br\/>    &lt;?php $producten = ($woocommerce-&gt;cart-&gt;cart_contents_count &gt; 1 ? __(&#039; Producten &#039;) : __(&#039; Product &#039;) ); ?&gt;<br\/>    &lt;?php echo $woocommerce-&gt;cart-&gt;cart_contents_count . $producten . $woocommerce-&gt;cart-&gt;get_cart_total(); ?&gt;<br\/><br\/>&lt;?php else : ?&gt;<br\/>    <br\/>    &lt;?php _e( &#039;Geen producten&#039;, &#039;your-textdomain); ?&gt;<br\/><br\/>&lt;?php endif; ?&gt;<\/code><\/pre> <div class=\"code-embed-infos\"> <\/div> <\/div><\/div><p>I\u2019m using Woo\u2019s global to retrieve the data I need and only that, not the total mini cart you get from woocommerce_mini_cart() \u2013 though that might be nice to retrieve here as well, if you need that kind of data.<\/p><p>And that\u2019s it! Your cart will always contain the right data and WP Rocket will only cache the parts it needs to cache. Now, there is one little catch here, if you\u2019re on a slower webserver; and that is the AJAX delay in loading that bit of data. I always find myself using jQuery Block UI to provide a loading message until the data is returned to provide an optimal user experience \u2013 but that is a bit out of the scope of this blog.<\/p><p>Good luck!<\/p>","protected":false},"excerpt":{"rendered":"<p>A guest post by Tommy who explains how to use WP&nbsp;Rocket and dynamic cart of WooCommerce<\/p>\n","protected":false},"author":5178,"featured_media":319315,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"kia_subtitle":"","footnotes":""},"categories":[62],"tags":[],"class_list":["post-485","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-inside-wp-rocket"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Using WooCommerce Dynamic Cart and WP Rocket<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using WooCommerce Dynamic Cart and WP Rocket\" \/>\n<meta property=\"og:description\" content=\"A guest post by Tommy who explains how to use WP&nbsp;Rocket and dynamic cart of WooCommerce\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/\" \/>\n<meta property=\"og:site_name\" content=\"WP Rocket\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/pages\/WP-Rocket\/631942253526829\" \/>\n<meta property=\"article:published_time\" content=\"2015-07-10T08:14:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-29T06:17:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wp-rocket.me\/wp-content\/uploads\/2\/woocommerce-wp-rocket.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"820\" \/>\n\t<meta property=\"og:image:height\" content=\"198\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Tommy Kolkman\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@wp_rocket\" \/>\n<meta name=\"twitter:site\" content=\"@wp_rocket\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tommy Kolkman\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/\"},\"author\":{\"name\":\"Tommy Kolkman\",\"@id\":\"https:\/\/wp-rocket.me\/#\/schema\/person\/a291286061b72acc035889218b46808f\"},\"headline\":\"Using WooCommerce Dynamic Cart and WP&nbsp;Rocket\",\"datePublished\":\"2015-07-10T08:14:59+00:00\",\"dateModified\":\"2023-08-29T06:17:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/\"},\"wordCount\":702,\"commentCount\":12,\"publisher\":{\"@id\":\"https:\/\/wp-rocket.me\/#organization\"},\"image\":{\"@id\":\"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/2\/woocommerce-wp-rocket.jpg\",\"articleSection\":[\"Inside WP Rocket\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/\",\"url\":\"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/\",\"name\":\"Using WooCommerce Dynamic Cart and WP Rocket\",\"isPartOf\":{\"@id\":\"https:\/\/wp-rocket.me\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/2\/woocommerce-wp-rocket.jpg\",\"datePublished\":\"2015-07-10T08:14:59+00:00\",\"dateModified\":\"2023-08-29T06:17:22+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/#primaryimage\",\"url\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/2\/woocommerce-wp-rocket.jpg\",\"contentUrl\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/2\/woocommerce-wp-rocket.jpg\",\"width\":820,\"height\":198},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/wp-rocket.me\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Inside WP Rocket\",\"item\":\"https:\/\/wp-rocket.me\/blog\/inside-wp-rocket\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Using WooCommerce Dynamic Cart and WP&nbsp;Rocket\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wp-rocket.me\/#website\",\"url\":\"https:\/\/wp-rocket.me\/\",\"name\":\"WP Rocket\",\"description\":\"Plugin d&#039;optimisation de sites WordPress\",\"publisher\":{\"@id\":\"https:\/\/wp-rocket.me\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/wp-rocket.me\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/wp-rocket.me\/#organization\",\"name\":\"WP Rocket\",\"url\":\"https:\/\/wp-rocket.me\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/wp-rocket.me\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/logo-wp-rocket-paypal-2.png\",\"contentUrl\":\"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/logo-wp-rocket-paypal-2.png\",\"width\":150,\"height\":41,\"caption\":\"WP Rocket\"},\"image\":{\"@id\":\"https:\/\/wp-rocket.me\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/pages\/WP-Rocket\/631942253526829\",\"https:\/\/x.com\/wp_rocket\",\"https:\/\/www.youtube.com\/channel\/UC1ozThXHd1IWIZ5wkshgp_Q\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/wp-rocket.me\/#\/schema\/person\/a291286061b72acc035889218b46808f\",\"name\":\"Tommy Kolkman\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/wp-rocket.me\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/921f2b291dc51785e5ba9edfbb4e6d4b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/921f2b291dc51785e5ba9edfbb4e6d4b?s=96&d=mm&r=g\",\"caption\":\"Tommy Kolkman\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Using WooCommerce Dynamic Cart and WP Rocket","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/","og_locale":"en_US","og_type":"article","og_title":"Using WooCommerce Dynamic Cart and WP Rocket","og_description":"A guest post by Tommy who explains how to use WP&nbsp;Rocket and dynamic cart of WooCommerce","og_url":"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/","og_site_name":"WP Rocket","article_publisher":"https:\/\/www.facebook.com\/pages\/WP-Rocket\/631942253526829","article_published_time":"2015-07-10T08:14:59+00:00","article_modified_time":"2023-08-29T06:17:22+00:00","og_image":[{"width":820,"height":198,"url":"https:\/\/wp-rocket.me\/wp-content\/uploads\/2\/woocommerce-wp-rocket.jpg","type":"image\/jpeg"}],"author":"Tommy Kolkman","twitter_card":"summary_large_image","twitter_creator":"@wp_rocket","twitter_site":"@wp_rocket","twitter_misc":{"Written by":"Tommy Kolkman","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/#article","isPartOf":{"@id":"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/"},"author":{"name":"Tommy Kolkman","@id":"https:\/\/wp-rocket.me\/#\/schema\/person\/a291286061b72acc035889218b46808f"},"headline":"Using WooCommerce Dynamic Cart and WP&nbsp;Rocket","datePublished":"2015-07-10T08:14:59+00:00","dateModified":"2023-08-29T06:17:22+00:00","mainEntityOfPage":{"@id":"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/"},"wordCount":702,"commentCount":12,"publisher":{"@id":"https:\/\/wp-rocket.me\/#organization"},"image":{"@id":"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/#primaryimage"},"thumbnailUrl":"https:\/\/wp-rocket.me\/wp-content\/uploads\/2\/woocommerce-wp-rocket.jpg","articleSection":["Inside WP Rocket"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/","url":"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/","name":"Using WooCommerce Dynamic Cart and WP Rocket","isPartOf":{"@id":"https:\/\/wp-rocket.me\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/#primaryimage"},"image":{"@id":"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/#primaryimage"},"thumbnailUrl":"https:\/\/wp-rocket.me\/wp-content\/uploads\/2\/woocommerce-wp-rocket.jpg","datePublished":"2015-07-10T08:14:59+00:00","dateModified":"2023-08-29T06:17:22+00:00","breadcrumb":{"@id":"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/#primaryimage","url":"https:\/\/wp-rocket.me\/wp-content\/uploads\/2\/woocommerce-wp-rocket.jpg","contentUrl":"https:\/\/wp-rocket.me\/wp-content\/uploads\/2\/woocommerce-wp-rocket.jpg","width":820,"height":198},{"@type":"BreadcrumbList","@id":"https:\/\/wp-rocket.me\/blog\/using-woocommerce-dynamic-cart-wp-rocket\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wp-rocket.me"},{"@type":"ListItem","position":2,"name":"Inside WP Rocket","item":"https:\/\/wp-rocket.me\/blog\/inside-wp-rocket\/"},{"@type":"ListItem","position":3,"name":"Using WooCommerce Dynamic Cart and WP&nbsp;Rocket"}]},{"@type":"WebSite","@id":"https:\/\/wp-rocket.me\/#website","url":"https:\/\/wp-rocket.me\/","name":"WP Rocket","description":"Plugin d&#039;optimisation de sites WordPress","publisher":{"@id":"https:\/\/wp-rocket.me\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wp-rocket.me\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/wp-rocket.me\/#organization","name":"WP Rocket","url":"https:\/\/wp-rocket.me\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wp-rocket.me\/#\/schema\/logo\/image\/","url":"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/logo-wp-rocket-paypal-2.png","contentUrl":"https:\/\/wp-rocket.me\/wp-content\/uploads\/1\/logo-wp-rocket-paypal-2.png","width":150,"height":41,"caption":"WP Rocket"},"image":{"@id":"https:\/\/wp-rocket.me\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/pages\/WP-Rocket\/631942253526829","https:\/\/x.com\/wp_rocket","https:\/\/www.youtube.com\/channel\/UC1ozThXHd1IWIZ5wkshgp_Q"]},{"@type":"Person","@id":"https:\/\/wp-rocket.me\/#\/schema\/person\/a291286061b72acc035889218b46808f","name":"Tommy Kolkman","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wp-rocket.me\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/921f2b291dc51785e5ba9edfbb4e6d4b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/921f2b291dc51785e5ba9edfbb4e6d4b?s=96&d=mm&r=g","caption":"Tommy Kolkman"}}]}},"_links":{"self":[{"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/posts\/485"}],"collection":[{"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/users\/5178"}],"replies":[{"embeddable":true,"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/comments?post=485"}],"version-history":[{"count":0,"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/posts\/485\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/media\/319315"}],"wp:attachment":[{"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/media?parent=485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/categories?post=485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp-rocket.me\/wp-json\/wp\/v2\/tags?post=485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}