If you’re using WooCommerce and selling one-off products you don’t necessarily want to use the default terminology for sold out products. You might want to hide the sold price and remove the WooCommerce “In Stock” messages that are better suited to sites selling t-shirts and so on. Removing the stock availability messages is simple enough using the woocommerce_get_availability filter.
add_filter('woocommerce_get_availability', 'my_get_availability', 1, 2); function my_get_availability($availability, $_product) { $availability = ''; }
Couldn’t be any simpler, just set the availability text to an empty string. Presto chango those messages are gone.
Replacing the price with SOLD when a product is sold is almost as simple, it just requires hooking into a couple more filters.
add_filter("woocommerce_variable_sale_price_html", "my_remove_prices", 10, 2); add_filter("woocommerce_variable_price_html", "my_remove_prices", 10, 2); add_filter("woocommerce_get_price_html", "my_remove_prices", 10, 2); function my_remove_prices($price, $product) { if (!$product->is_in_stock()) { $price = "SOLD"; } return $price; }