When you deal with WooCommerce websites, you also need to look into design, readability, and accessibility. And if you have hundreds or thousands of products, you probably need to set some global rules so that you don’t need to worry about editing each product manually.
One rule could be the way product titles are displayed. Maybe you have a mix of capitalized product names (“Red Square Table”), non-capitalized ones (“White round chair”) and all caps ones (“GREEN COUCH”), and therefore you’re looking for a PHP shortcut to fix this automatically.
So, here’s a super simple solution to capitalize all product titles. Enjoy!
Continue reading WooCommerce: Capitalize All Product Names
There are times when the “long description” and the “short description” are not enough on the WooCommerce Single Product page. What if you need to add another HTML content section – say – at the very bottom of the page (and maybe, because of the longer page, add another add to cart button there as well)?
In this simple snippet, we will add another “WYSIWYG” text editor in the Edit Product page, and display the output at the bottom of the single product page. Enjoy!
Continue reading WooCommerce: Add a Third Description @ Single Product Page
In case you have very long single product pages, it may be helpful to show the Add to Cart form at the bottom of the page or even inside the description tab.
Thankfully this is pretty easy and only requires one line of code. The only thing that you may want to change is the hook name, which defines the position of the button, and the priority, which defines the relative position of the element in case there are other ones “hooked” onto the same hook.
In this example, we will place the button at the very bottom of the page, below tabs, upsells and related products. Enjoy!
Continue reading WooCommerce: Duplicate Add to Cart Button @ Single Product Page
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!
Continue reading WooCommerce: Show Related Products In a Blog Post!
WooCommerce order emails customization is possibly the most wanted feature for WooCommerce store owners and developers right now. It is very difficult to edit the default templates and it’s no surprise there are many email customizer plugins out there.
We’ve already seen how to add content to specific WooCommerce emails, how to add custom email CSS, how to display product images, and more, but today I’d like to teach you a quick workaround to edit the default email text strings such as the initial greeting (‘Hi Mary,‘) or other sentences (‘We have finished processing your order.‘, ‘The following note has been added to your order:‘, ‘Just to let you know — we’ve received your order, and it is now being processed:‘, etc.).
With “edit”, of course, I mean either change the text, or completely hide it. So, let’s see how it’s done. Enjoy!
Continue reading WooCommerce: Edit Text Content @ Order Emails
Products attributes display on the single product page whenever attribute terms are assigned to a given WooCommerce product. This is the default behaviour.
However, what if you want to show the product attribute table somewhere else? For example, in a blog post, or in a custom pricing table?
Well, we can build a shortcode for that – simply specify a product ID and the shortcode will magically output its attributes. Enjoy!
Continue reading WooCommerce: Products Attributes in a Shortcode
Yeah Google Analytics is cool, but have you ever coded your own tracking functions within your WooCommerce website?
An example may be counting the number of times customers click on the “Buy product” button that displays on the Single External Product Page, and show the counter in the Products Table in the backend.
For example, I use this to calculate the Click Through Rate (% clicks / views) and see how popular an external product is. Of course, you could also decide to extend the counter to all products (simple, variable, etc.) and count the number of times customers click on the Add to Cart, but for today let’s stick to the external products count. Enjoy!
Continue reading WooCommerce: Count External Product Clicks
WooCommerce variable products display the list of attributes and their terms in the “Additional Information” tab on the single product page. For example, it will display “Color: red, yellow” and “Size: large, small” if your variable product uses those attribute terms to generate variations.
Yes, you could completely remove the “Additional Information” tab all together, but sometimes you may need to just hide a specific attribute in this table, for whatever reason. Especially when you want to avoid your customers getting confused and abandoning your website.
So, here’s the fix. Enjoy!
Continue reading WooCommerce: Hide Specific “Additional Information” Tab Attribute @ Single Product
Yes, you could use a plugin to bulk search and replace a given string inside the WordPress database… but today I want to show you a simple snippet you can use to bulk edit SKUs in your store (please test first on staging or a development site!).
Specifically, we will replace dashes “-” with an empty string (i.e. we will remove dashes from all products’ SKU), but you can of course readapt this and for example add suffixes, remove prefixes, replace special characters and so on. Enjoy!
Continue reading WooCommerce: Bulk Search & Replace SKUs
This functionality can be helpful to those who need to differentiate purchased products from non-purchased ones. Think about a way to automatically discount non-tagged products, in order to entice more sales; or a function that only shows purchased products via a custom shortcode.
No matter the application, “tagging” products upon purchase is super easy. Of course, make sure to create a custom product tag first, and get its ID, so that you can use this in the code below. Enjoy!
Continue reading WooCommerce: Automatically Add Tag To Purchased Products
Yes, “manage stock” is a nice feature to make sure you don’t oversell a given product based on the stock you have in your warehouse. However, what if you also need to have a “daily sales limit” – say you can’t sell more than 3 of a given product ID in a given day?
This is an interesting functionality that is also helpful for you to learn how to get today’s orders, how to loop through the orders to find a specific product ID and sum its quantities, and finally how to use the woocommerce_is_purchasable filter to set if a product can be purchased or not (which means, the add to cart may or may not show). Enjoy!
Continue reading WooCommerce: Limit Sales Of A Product Per Day
The “Ship to a Different Address?” checkbox displays on the WooCommerce Checkout page and toggles the shipping form. That’s useful when Billing and Shipping addresses are different, so let’s say every B2C requires the double form.
However, the “Ship to a Different Address?” string may be confusing or may need further clarification, as not all customers are created equal. What about “I’d like to define a different shipping address” or “Ship to a different address than the Billing one“?
Either way, editing the string is super easy, so you can change it to whatever you like. Enjoy!
Continue reading WooCommerce: Edit “Ship to a Different Address?” @ Checkout
The frontend WooCommerce product search, for some reason, doesn’t work for SKU values. If it does, then your theme developers were smart enough to include this in their code, because this is a big problem especially for B2B stores.
Today, we’ll study how to alter the product search query, as well as the wc_get_product_id_by_sku() function, which is super helpful to determine the product ID for a given SKU. Enjoy!
Continue reading WooCommerce: Search Products By SKU (Frontend)
We’ve already seen how to hide products based on IP addresses, hide products belonging to a specific category and even hide all products from the Shop page.
Today I want to publish another version of those, but this time we’ll use a custom field / ACF in our conditional logic, so that we can toggle the product visibility based on its value. Enjoy!
Continue reading WooCommerce: Hide Products Based On Custom Field / ACF Value
By default, the WooCommerce Shop page displays simple, variable, grouped, bundle and other product types. As you know, each variable product is made of one or more “single variations”, and these are only visible in the single product page.
Now, what if you want to display a grid of all “single variations” in a custom page / post? Well, a shortcode can be coded so that you can achieve just that. Enjoy!
Continue reading WooCommerce: Display All Single Variations (Shortcode)
This is a great customization for those WooCommerce store owners who are willing to accept donations, custom amounts, or need anyway that the customer enters a custom price on the product page for paying an invoice or a bill.
This is as simple as creating a simple product with $0 price, and after that using the snippet below to display an input field on the single product page, where customers can enter their custom amount. Enjoy!
Continue reading WooCommerce: Allow Customers To Define the Product Price
It’s official – there is no way to get the fees total from an order with a simple PHP getter (not sure why – you can get lots of values such as totals, addresses, dates, URLs with one line of code except for this basic thing!).
So, we’ve got to fix this. Let’s say you have access to the $order object (on the thank you page, in the WordPress dashboard, inside an order email, etc.); here’s a few lines of PHP you can use to calculate the total amount of order fees. Enjoy!
Well, there is actually one line of PHP you can use to calculate the order total fees (despite I didn’t think so while I was writing this post) – I’ve now added it to the list of order “getters” here (where you can get lots of order values such as totals, addresses, dates, URLs with one liners).
So, in order not to waste this post, you still find below the original way to calculate order total fees (by looping through all order fees and adding up totals), as well as the one liner that can help you save time. Enjoy!
Continue reading WooCommerce: Get Order Fees Total
By default, WooCommerce does not display the product thumbnail inside the order emails.
With this little trick, however, you can revert this default behavior and indeed show images beside their product name inside the email order item table. Enjoy!
Continue reading WooCommerce: Show Product Image @ Emails
Alright, this title may not really help you understand what I mean, so let’s put it in another way. When, as an administrator, you edit an order and are in the Order Items table, you have the chance to edit the item quantity, subtotal and discounted price (see screenshot below).
Now, what if you also want to have the freedom to display and edit another custom field, so that it is saved inside the order once you hit the “Save” button?
This could be useful for custom setups – for example let’s imagine the admin has the necessity to also define the “shipped quantity”, so that they know exactly if a specific order has been entirely fulfilled or requires a second shipment to get completed.
Either way, see the screenshot below, play with the snippet, and see how it goes. Enjoy!
Continue reading WooCommerce: Item Custom Field @ Edit Order Page
Ok, this is an unusual snippet today, but it may happen that for performance / security / conflict / conditional / privacy reasons you may need a certain WooCommerce user role to not see / load / use a given plugin.
Let’s think of an example: as an administrator, you wish to use a CRM plugin to sync your order data to an external software. This plugin, however, does not have the ability to exclude Shop Managers from accessing it, and you don’t want to install yet another plugin to define who can access and who can not.
Another case scenario: Shop Managers and Administrators wish to use a live chat plugin, but they want to restrict the live chat visibility to logged in customers only, while logged out customers should not see anything, hidden code included.
There are a million reasons why this could be helpful. So, let’s see how to actually deactivate a plugin (not disable its scripts – but actually deactivate it) with a handy piece of code. Test it and only then – enjoy!
Continue reading WooCommerce: Disable A Plugin For Customers / Shop Managers