WooCommerce 3.3 – Hide uncategorized category from the shop page on the frontend

<?php // Do not include this if already open! /** * Code goes in theme functions.php. */ add_filter( 'woocommerce_product_subcategories_args', 'custom_woocommerce_product_subcategories_args' ); function custom_woocommerce_product_subcategories_args( $args ) { $args['exclude'] = get_option( 'default_product_cat' ); return $args; } view raw functions.php hosted with ❤ by GitHub

Small drop-in plugin to fix double-serialized product attributes (they are no longer double-unserialized in WC Core)

<?php /** * Plugin Name: Double serialized attributes fixer * Description: Adds a tool to fix double serialized attributes in WooCommerce. * Version: 0.0.9 * Author: Mike J * Requires at least: 4.4 * Tested up to: 4.7 */ if ( ! defined( 'ABSPATH' ) ) { exit; } add_filter( 'woocommerce_debug_tools', 'double_serialized_attributes_fixer_tool' ); function double_serialized_attributes_fixer_tool(Continue reading “Small drop-in plugin to fix double-serialized product attributes (they are no longer double-unserialized in WC Core)”

WooCommerce – Notify admin when a new customer account is created

<?php // Do not include this if already open! /** * Code goes in theme functions.php. */ add_action( 'woocommerce_created_customer', 'woocommerce_created_customer_admin_notification' ); function woocommerce_created_customer_admin_notification( $customer_id ) { wp_send_new_user_notifications( $customer_id, 'admin' ); } view raw functions.php hosted with ❤ by GitHub

WooCommerce – Hide price suffix when product is not taxable.

<?php // Do not include this if already open! /** * Code goes in theme functions.php. */ add_filter( 'woocommerce_get_price_suffix', 'custom_woocommerce_get_price_suffix', 10, 2 ); function custom_woocommerce_get_price_suffix( $price_display_suffix, $product ) { if ( ! $product->is_taxable() ) { return ''; } return $price_display_suffix; } view raw functions.php hosted with ❤ by GitHub

WooCommerce – Redirect external products offsite (disable single listings)

<?php // Do not include this if already open! /** * Code goes in theme functions.php. */ add_action( 'template_redirect', 'redirect_external_products' ); function redirect_external_products() { global $post; if ( is_singular( 'product' ) && ! empty( $post ) && ( $product = wc_get_product( $post ) ) && $product->is_type( 'external' ) ) { wp_redirect( $product->get_product_url() ); exit; }Continue reading “WooCommerce – Redirect external products offsite (disable single listings)”

WooCommerce – remove payment method from emails

<?php // Do not include this if already open! /** * Code goes in theme functions.php. */ add_filter( 'woocommerce_get_order_item_totals', 'custom_woocommerce_get_order_item_totals' ); function custom_woocommerce_get_order_item_totals( $totals ) { unset( $totals['payment_method'] ); return $totals; } view raw gistfile1.txt hosted with ❤ by GitHub

WooCommerce – Hide shipping rates when free shipping is available.

<?php /** * Hide shipping rates when free shipping is available. * Updated to support WooCommerce 2.6 Shipping Zones. * * @param array $rates Array of rates found for the package. * @return array */ function my_hide_shipping_when_free_is_available( $rates ) { $free = array(); foreach ( $rates as $rate_id => $rate ) { if ( 'free_shipping'Continue reading “WooCommerce – Hide shipping rates when free shipping is available.”

WooCommerce – Add all upsells of a product to the cart via custom link

<?php // Do not include this if already open! /** * Code goes in theme functions.php. * Product must have upsells, and this works with simple products only. * Example link: yoursite.com?add-upsells-to-cart=X, X being your product ID. */ add_action( 'wp_loaded', 'bulk_upsell_add_to_cart_action', 20 ); function bulk_upsell_add_to_cart_action() { if ( ! empty( $_GET['add-upsells-to-cart'] ) ) { $product_idContinue reading “WooCommerce – Add all upsells of a product to the cart via custom link”

WooCommerce – enable free shipping only if product class is found in cart.

<?php // Do not include this if already open! /** * Code goes in theme functions.php. Free Shipping Method must be enabled. */ add_filter( 'woocommerce_shipping_free_shipping_is_available', 'free_shipping_based_on_cart_shipping_class' ); function free_shipping_based_on_cart_shipping_class( $is_available ) { /** * This example enables free shipping only when an item is found in the cart with a class named 'free_shipping' */ $cart_itemsContinue reading “WooCommerce – enable free shipping only if product class is found in cart.”