Set WooCommerce cart product count total to be divisible by number
You can set WooCommerce cart total product count to be divisible by a certain number, if it is not divisible by that number then do not allow the user to checkout. add_action( ‘woocommerce_check_cart_items’, ‘check_cart_items_conditionally’ ); /** * Check cart items conditionally displaying an error notice and avoiding checkout * @link https://stackoverflow.com/questions/65767078/disable-woocommerce-checkout-if-cart-items-count-is-not-a-multiple-of-n */ function check_cart_items_conditionally() {…
Read MoreStop WooCommerce checkout fields auto-filling – leave blank
You can stop WooCommerce checkout fields from auto filling by using a Woo filter woocommerce_checkout_get_value, this could be useful in a situation when a logged in user is ordering on behalf of multiple customers. add_filter( ‘woocommerce_checkout_get_value’,’prefix_return_empty_checkout’, 1, 1 ); function prefix_return_empty_checkout(){ $user = wp_get_current_user(); //The user has the “shop_manager” role if ( in_array( ‘shop_manager’, (array)…
Read MoreAdd a menu to WordPress page with PHP action hooks
Adding a menu to WordPress via PHP and action hooks requires three steps, registering the menu location, assigning a menu to it and then placing the menu with an action hook. Register WordPress Menu Registering a menu is done with register_nav_menu, below is an example to register a ‘Store Menu’ menu. add_action( ‘init’, ‘wpb_custom_new_menu’ );…
Read MoreChange WooCommerce SKU text to another label
You can change WooCommerce SKU text to another label using the gettext filter add_filter(‘gettext’, ‘translate_woocommerce’, 10, 3); /** * Change SKU Label * @link https://gist.github.com/dannyconnolly/da6f1a2d95dc826ccdcd * @since 1.0.0 */ function translate_woocommerce($translation, $text, $domain) { if ($domain == ‘woocommerce’) { switch ($text) { case ‘SKU’: $translation = ‘Catalogue No:’; break; case ‘SKU:’: $translation = ‘Catalogue No:’;…
Read MoreShow only free shipping option on WooCommerce cart and checkout pages
By default WooCommerce will show all available shipping options on cart and checkout pages, if you have free shipping as an option you may just want that displayed by itself. The code snippet below which needs to be added to your functions.php theme file will do just that… add_filter( ‘woocommerce_package_rates’, ‘prefix_hide_shipping_when_free_is_available’, 100 ); /** *…
Read MoreFilter WooCommerce orders by payment gateway
Here is how you can filter WooCommerce orders by payment gateway in the WordPress dashboard orders screen using a plugin from SkyVerge. Add the php file directly or in a folder in the /wp-content/plugins/ directory and then activate the plugin from the WordPress dashboard. Now you will see a column that allows you to choose…
Read MoreRedirect an admin user role on login with login redirect
You can redirect a user based on their WordPress role with the login_redirect filter. add_filter( ‘login_redirect’, ‘themeprefix_login_redirect’, 10, 3 ); /** * Redirect user after successful login. * * @param string $redirect_to URL to redirect to. * @param string $request URL the user is coming from. * @param object $user Logged user’s data. * @return…
Read MoreHide the Description and Reviews Tabs in WooCommerce Products
WooCommerce products by default show ‘description‘ and ‘reviews‘ tabs below the product on a WordPress product page, you can hide these tabs from view as well as a third tab ‘additional information‘ with a snippet of code that goes in your themes functions.php file As well as remove the tabs you can rename the heading…
Read MoreAdd qty inputs next to add to cart button with and without Ajax reload on WooCommerce archives
Here is how you can add qty inputs next to add to cart with Ajax reload on WooCommerce archives. Without Ajax Reload add_filter( ‘woocommerce_loop_add_to_cart_link’, ‘quantity_inputs_for_woocommerce_loop_add_to_cart_link’, 10, 2 ); /** * Override loop template and show quantities next to add to cart buttons * @link https://gist.github.com/mikejolley/2793710 */ function quantity_inputs_for_woocommerce_loop_add_to_cart_link( $html, $product ) { if ( is_user_logged_in()…
Read MoreDisable Lazy Loading in WordPress with a filter
Since WordPress 5.5, lazy loading for images was implemented, this improves the perception of page load as the image is only loaded once in the viewport window. You may not light it as it can have a jarring effect as the sudden load as you scroll or find that you have a clash with another…
Read More