Maybe because I’m Italian, but I like exclamation marks! Also, Italian gestures – of course. With that being said, today we look at an amazing WooCommerce customization.
I’ve finally gained back some free time to work on my personal projects, and one of these is an affiliate website. In order to drive traffic to this WooCommerce website, we have a major content strategy and we publish 7 relevant posts per month.
However, it’s difficult to drive blog readers to the shop page, so I came up with a great idea – why not adding a grid of relevant related products at the end of each blog post, based on the most used keywords?
The rationale behind this is quite easy:
- you have a list of product tags
- you have a blog post full of words
- you count and define the most mentioned product tag
- you show 10 products from that product tag
Cool, ha? Well, let’s take a look at my code, and feel free to use it on your install!
This blog post is clearly about Sicilian wine, and mentions the word “vino” several times. The snippet below is able to find that out, and add a “Related Products” to the bottom of the blog post with 10 products belonging to the “vino” product tag. Amazing!
PHP Snippet: Show Related Products In a Blog Post Based on The Most Mentioned Product Tag
Important note: right at the beginning of the snippet, you must first build manually (or find an automatic way to build it) an array of “BLOG POST WORD” -> “PRODUCT TAG SLUG” relationships. This is unless your products tag slugs are exactly identical (case sensitive) to the words you want to count inside the blog post.
Other cool stuff inside the snippet:
- We loop through the array and use substr_count, a cool PHP function that counts how many times a substring is mentioned in a string, to count how many times our “WORDS” (array keys) are mentioned in the blog post content. During the loop I basically use the $max variable to store the greatest count, and in such case I overwrite the $top_tag variable with the current tag slug
- Once the loop is completed, if at least one tag slug was found, I simply use the WooCommerce
-
- Oferta!
- Sem categoria
Acesso Premium
- Original price was: R$350.00.R$200.00Current price is: R$200.00.
- Comprar
-
/** * @snippet Related Products @ Blog Post * @how-to Get CustomizeWoo.com FREE * @author Rodolfo Melogli * @compatible WooCommerce 7 * @donate $9 https://businessbloomer.com/bloomer-armada/ */ add_filter( ‘the_content’, ‘bbloomer_blog_post_related_products’ ); function bbloomer_blog_post_related_products( $text ) { if ( is_singular( ‘post’ ) ) { $word_to_tag = array( ‘pasta’ => ‘pasta-2’, ‘pizza’ => ‘sicilian-pizza’, ‘spaghetti’ => ‘spag’, ); $max = 0; $top_tag = ”; foreach ( $word_to_tag as $word => $tag_slug ) { if ( substr_count( $text, $word ) > $max ) { $max = substr_count( $text, $word ); $top_tag = $tag_slug; } } if ( $top_tag ) $text .= ‘
Related Products
‘ . do_shortcode( ‘
‘ ); } return $text; }You can place PHP snippets at the bottom of your child theme functions.php file (delete “?>” if you have it there). CSS, on the other hand, goes in your child theme style.css file. Make sure you know what you are doing when editing such files – if you need more guidance, please take a look at my free video tutorial “Where to Place WooCommerce Customization?”
If you think this code saved you time & money, feel free to join 14,000+ WooCommerce Weekly subscribers for blog post updates or 250+ Business Bloomer supporters for 365 days of WooCommerce benefits. Thank you in advance 🙂
Check out these free video tutorials. You can learn how to customize WooCommerce without unnecessary plugins, how to properly configure the WooCommerce plugin settings and even how to master WooCommerce troubleshooting in case of a bug!