• Skip to main content
  • Skip to primary sidebar

WordPress, Genesis Framework and Storefront customization tutorials

  • Archive
    • Free
    • Premium
  • Blog
  • About
  • Contact
  • Newsletter
  • Login
Home » WooCommerce » Page 3

WooCommerce

How to move additional information after add to cart button

// =========================================================================
// REMOVE ADDITIONAL INFORMATION TAB
// =========================================================================
add_filter( 'woocommerce_product_tabs', 'remove_additional_information_tab', 100, 1 );
function remove_additional_information_tab( $tabs ) {
    unset($tabs['additional_information']);

    return $tabs;
}

// =========================================================================
// ADD ADDITIONAL INFORMATION AFTER ADD TO CART
// =========================================================================
add_action( 'woocommerce_single_product_summary', 'additional_info_under_add_to_cart', 35 );
function additional_info_under_add_to_cart() {
    global $product;

    if ( $product && ( $product->has_attributes() || apply_filters( 'wc_product_enable_dimensions_display', $product->has_weight() || $product->has_dimensions() ) ) ) {
        wc_display_product_attributes( $product );
    }
}

Filed Under: Free Tagged With: WooCommerce

How to show custom message based on shipping class on single product page

// =========================================================================
// Custom Text on Product Page based on Shipping Class 
// =========================================================================
function display_shipping_class_on_product_page() {
    $product = wc_get_product();

    $shipping_class = $product->get_shipping_class();

    switch ( $shipping_class ) {
        case 'your_shipping_class_1':
            echo '';
            break;
        case 'your_shipping_class_2':
            echo '';
            break;
    }
}
add_action( 'woocommerce_single_product_summary', 'display_shipping_class_on_product_page', 10 );

Filed Under: Free Tagged With: WooCommerce

Disable payment method for specific country in WooCommerce

// =========================================================================
// DISABLE COD PAYMENT METHOD FOR SPECIFIC COUNTRY - DE
// =========================================================================
add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_country_de' );
  
function payment_gateway_disable_country_de( $available_gateways ) {
    if ( is_admin() ) return;
    if ( isset( $available_gateways['authorize'] ) && WC()->customer->get_billing_country() <> 'DE' ) {
        unset( $available_gateways['authorize'] );
    } else {
        if ( isset( $available_gateways['cod'] ) && WC()->customer->get_billing_country() == 'DE' ) {
            unset( $available_gateways['cod'] );
        }
    }
    return $available_gateways;
}

Filed Under: Premium Tagged With: WooCommerce

Add fee to specific payment gateway only for physical products

// =========================================================================
// ADD FEE TO SPECIFIC PAYMENT GATEWAY => COD - ONLY FOR PHYSICAL PRODUCT
// =========================================================================
// Part 1: assign fee
 
add_action( 'woocommerce_cart_calculate_fees', 'add_checkout_fee_for_gateway' );
 
function add_checkout_fee_for_gateway() {
    
     
    foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
        // Check if there are non-virtual products
        if ( ! $cart_item['data']->is_virtual() ) {
            $chosen_gateway = WC()->session->chosen_payment_method;
  
              if ( $chosen_gateway == 'cod' ) {

              // Note: edit "Fee" and "5" below to control Label and Fee Amount
              WC()->cart->add_fee( __('Utánvét díja', 'woocommerce'), 510 );

              }
        }
    }
 
}
 
// Part 2: reload checkout on payment gateway change
 
add_action( 'woocommerce_review_order_before_payment', 'refresh_checkout_on_payment_methods_change' );
 
function refresh_checkout_on_payment_methods_change(){
    ?>
    <script type="text/javascript">
        (function($){
            $( 'form.checkout' ).on( 'change', 'input[name^="payment_method"]', function() {
                $('body').trigger('update_checkout');
            });
        })(jQuery);
    </script>
    <?php
}

Filed Under: Premium Tagged With: WooCommerce

Add custom out of stock message for specific product category

// =========================================================================
// ADD CUSTOM MESSAGE IF SPECIFIC PRODUCT CATEGORY OUT OF STOCK
// =========================================================================
add_filter( 'woocommerce_get_availability', 'woo_custom_get_availability', 1, 2);
function woo_custom_get_availability( $availability, $_product ) {
    
    global $product;
    //CATEGORY 1
    if ( has_term( 'CATEGORY_NAME_1', 'product_cat', $product->get_id() ) ) {
        // Change In Stock Text
        if ( $_product->is_in_stock() ) {
            $availability['availability'] = __('Available!', 'woocommerce');
        }
        // Change Out of Stock Text
        if ( ! $_product->is_in_stock() ) {
            $availability['availability'] = __('Jelenleg nincs kitűzve tréning időpont', 'woocommerce');
        }
        return $availability;
    }
    //CATEGORY 2
    else if ( has_term( 'CATEGORY_NAME_2', 'product_cat', $product->get_id() ) ) {
        // Change In Stock Text
        if ( $_product->is_in_stock() ) {
            $availability['availability'] = __('Available!', 'woocommerce');
        }
        // Change Out of Stock Text
        if ( ! $_product->is_in_stock() ) {
            $availability['availability'] = __('Jelenleg nincs kitűzve tréning időpont', 'woocommerce');
        }
        return $availability;
    }
    else{
        // Change In Stock Text
        if ( $_product->is_in_stock() ) {
            $availability['availability'] = __('Készleten', 'woocommerce');
        }
        // Change Out of Stock Text
        if ( ! $_product->is_in_stock() ) {
            $availability['availability'] = __('Elfogyott', 'woocommerce');
        }
        return $availability;
    }
}

Filed Under: Premium Tagged With: WooCommerce

WooCommerce free shipping over amount and hide other shipping methods

https://flexibleshipping.com/woocommerce-free-shipping-over-amount/

Filed Under: Premium Tagged With: WooCommerce

Disable Payment Gateway For Specific Product Category

//DISABLE COD PAYMENT FOR SPECIFIC PRODUCT CATEGORY
function unset_payment_cod_for_online_trening( $available_gateways ) {
    global $woocommerce;
    $unset = false;
    $category_ids = array( 109 );
    foreach ( $woocommerce->cart->cart_contents as $key => $values ) {
        $terms = get_the_terms( $values['product_id'], 'product_cat' );    
        foreach ( $terms as $term ) {        
            if ( in_array( $term->term_id, $category_ids ) ) {
                $unset = true;
                break;
            }
        }
    }
        if ( $unset == true ) unset( $available_gateways['cod'] );
        return $available_gateways;
}
add_action( 'woocommerce_available_payment_gateways', 'unset_payment_cod_for_online_trening', 5 );

Filed Under: Premium Tagged With: WooCommerce

Disable Payment Gateway For Specific Shipping Method

<?php
//Disable Payment Gateway For Specific Shipping Method

add_filter( 'woocommerce_available_payment_gateways', 'wpflames_gateway_disable_shipping_368' );

function wpflames_gateway_disable_shipping_368( $available_gateways ) {

    global $woocommerce;

    if ( !is_admin() ) {

        $chosen_methods = WC()-&amp;gt;session-&amp;gt;get( 'chosen_shipping_methods' );

        $chosen_shipping = $chosen_methods[0];

        //Free shipping
        if ( isset( $available_gateways['cod'] ) && 0 === strpos( $chosen_shipping, 'free_shipping' ) ) {
            unset( $available_gateways['cod'] );
        }

        //Flat rate
        if ( isset( $available_gateways['cod'] ) && 0 === strpos( $chosen_shipping, 'flat_rate' ) ) {
            unset( $available_gateways['cheque'] );
        }
        //Local pickup
        if ( isset( $available_gateways['cod'] ) && 0 === strpos( $chosen_shipping, 'local_pickup' ) ) {
            unset( $available_gateways['cod'] );
        }
        
        //Cheque
        if ( isset( $available_gateways['cod'] ) && 0 === strpos( $chosen_shipping, 'flat_rate:2' ) ) {
            unset( $available_gateways['cheque'] );
        }

    }

return $available_gateways;

}

Filed Under: Premium Tagged With: WooCommerce

If product is out of stock echo something – WooCommerce product single

//Echo something if product is out of stock
add_action( 'woocommerce_share', 'add_out_of_stock_custom_message', 5 );
function add_out_of_stock_custom_message() {
    global $product;
    if ( ! $product->is_in_stock() ) {
            echo '';
        }

}

Filed Under: Free Tagged With: WooCommerce

How to send custom email based on product ID in WooCommerce

add_action( 'woocommerce_email_before_order_table', 'add_online_trening_welcome_email_text', 10, 2 );

function add_online_trening_welcome_email_text( $order, $sent_to_admin ) {

    if ( ! $sent_to_admin ) {

        foreach( $order->get_items() as $item ) {
            $product = wc_get_product( $item['product_id'] );

            // Use the name or product ID here
            if( $product->get_id() == 2767  ) {
                echo '<p style="text-align: center">A befizetést követően 1 munkanapon belül e-mailben megkapod a leírást, hogyan tudod elérni az online videókat. A számlád postán érkezik. Köszönöm, hogy a módszeremet választottad. Köszönöm, hogy tenni akarsz magadért.</p>';
            }
        }
    }
}

Filed Under: Premium Tagged With: WooCommerce

Disable Barion if shipping method is free shipping

//Disable Payment Gateway For Specific Shipping Method
 
add_filter( 'woocommerce_available_payment_gateways', 'wpninja_gateway_disable_shipping_326' );
 
function wpninja_gateway_disable_shipping_326( $available_gateways ) {
 
    global $woocommerce;
     
    if ( !is_admin() ) {
         
        $chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
         
        $chosen_shipping = $chosen_methods[0];
         
        if ( isset( $available_gateways['cod'] ) && 0 === strpos( $chosen_shipping, 'free_shipping' ) ) {
            unset( $available_gateways['barion'] );
        }
        
    }
     
return $available_gateways;
     
}

Filed Under: Free Tagged With: WooCommerce

How to apply coupon when specific product ID in the cart?

//APPLY COUPON AUTOMATICALLY IF PRODUCT ID IS IN THE CART
add_action( 'woocommerce_before_cart', 'wpninja_apply_matched_coupons' );
 
function wpninja_apply_matched_coupons() {
 
    $coupon_code = 'sapikupon'; 
 
    if ( WC()->cart->has_discount( $coupon_code ) ) return;
 
    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
 
        // this is your product ID
        $autocoupon = array( 1035 );

        if( in_array( $cart_item['product_id'], $autocoupon ) ) {   
            WC()->cart->add_discount( $coupon_code );
            wc_print_notices();
        }
    
    }
 
}

Filed Under: Premium Tagged With: WooCommerce

How to add Taxonomy Filter to WooCommerce admin

add_filter( 'woocommerce_product_filters', 'wpninja_filter_by_custom_taxonomy_dashboard_products' );
 
function wpninja_filter_by_custom_taxonomy_dashboard_products( $output ) {
   
  global $wp_query;
 
  $output .= wc_product_dropdown_categories( array(
    'show_option_none' => 'Filter by product tag',
    'taxonomy' => 'product_tag',
    'name' => 'product_tag',
    'selected' => isset( $wp_query->query_vars['product_tag'] ) ? $wp_query->query_vars['product_tag'] : '',
  ) );
   
  return $output;
}

Filed Under: Premium Tagged With: WooCommerce

Search by product SKU

/**
 * Search by product SKU
 */
function wpninja_product_search_sku( $join, $query ) {
	if ( ! $query->is_main_query() || is_admin() || ! is_search() || ! is_woocommerce() ) {
		return $join;
	}

	global $wpdb;

	$join .= " LEFT JOIN {$wpdb->postmeta} wpninja_post_meta ON {$wpdb->posts}.ID = wpninja_post_meta.post_id ";

	return $join;
}

add_filter( 'posts_join', 'wpninja_product_search_sku', 10, 2 );

/**
 * Modify the search query with posts_where.
 */
function wpninja_product_search_where( $where, $query ) {
	if ( ! $query->is_main_query() || is_admin() || ! is_search() || ! is_woocommerce() ) {
		return $where;
	}

	global $wpdb;

	$where = preg_replace(
		"/\(\s*{$wpdb->posts}.post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
		"({$wpdb->posts}.post_title LIKE $1) OR (wpninja_post_meta.meta_key = '_sku' AND wpninja_post_meta.meta_value LIKE $1)", $where );

	return $where;
}

add_filter( 'posts_where', 'wpninja_product_search_where', 10, 2 );

Filed Under: Free Tagged With: WooCommerce

Show SKU above the product title

//Show SKU above the product title
function fdesign_show_sku(){
    global $product;
    echo '<small>Cikkszám:</small> <small>' . $product->get_sku() .'</small>';
}
add_action( 'woocommerce_before_single_product_summary', 'fdesign_show_sku', 5 );

Filed Under: Free Tagged With: WooCommerce

Show Product Search in Header

//Show Product Search in Header
function new_nav_menu_items($items, $args) {
    
    $my_product_search = get_product_search_form( $echo );
    
    if($args->theme_location == 'main_navigation'){
       $items = $items . $my_product_search;
    }

    return $items;
}
add_filter('wp_nav_menu_items', 'new_nav_menu_items', 10, 2);

Filed Under: Free Tagged With: WooCommerce

How to fix WooCommerce Terms and Conditions link on Checkout Page

jQuery(function($){
    $( "a.woocommerce-terms-and-conditions-link" ).unbind( "click" );
    $( "body" ).on('click', 'a.woocommerce-terms-and-conditions-link', function( event ) {

         $(this).attr("target", "_blank");
        window.open( $(this).attr("href"));

        return false;
    });

});

Filed Under: Free Tagged With: WooCommerce

Add Product to WooCommerce Cart Automatically


add_action( 'template_redirect', 'snippet_add_product_to_cart' );

function snippet_add_product_to_cart() {

// select ID
$product_id = 21874;

//check if product already in cart
if ( WC()->cart->get_cart_contents_count() == 0 ) {

// if no products in cart, add it
WC()->cart->add_to_cart( $product_id );

}

}

Filed Under: Free Tagged With: WooCommerce

Add Product to Cart When Visiting a Specific Page ID


add_action( 'wp', 'add_product_to_cart_on_page_id_load' );

function add_product_to_cart_on_page_id_load() {

// product ID to add to cart
$product_id = 21874;

// page ID to target
if ( is_page( 19473 ) ) {
WC()->cart->empty_cart();
WC()->cart->add_to_cart( $product_id );
}

}

Filed Under: Free Tagged With: WooCommerce

Add custom field to single product page


//ADD CUSTOM FIELD TO SINGLE PRODUCT BEFORE ADD TO CART BUTTON
add_action( 'woocommerce_single_variation', 'add_custom_field_before_addtocart', 5 );
function add_custom_field_before_addtocart() {
include('woo/custom-field.php');
}


<?php the_field('custom'); ?>

Filed Under: Free Tagged With: WooCommerce

  • « Go to Previous Page
  • Page 1
  • Page 2
  • Page 3
  • Page 4
  • Page 5
  • Go to Next Page »

Primary Sidebar

Gabor Flamich

Hi! I'm Gabor.
I write tutorials on WordPress and WooCommerce.

MacBook

12 Essential Snippets for Genesis Developers

Subscribe to my Newsletter to view my basic collection of Genesis snippets that I use for my projects!

Sign Up for Free
  • Facebook
  • GitHub
  • Instagram
  • LinkedIn
  • Twitter
  • YouTube
UpdraftPlus Premium

Tags

ACF Ajax Analytics API Bootstrap Breadcrumb category CPT CSS fetch FSE Genesis Google Maps Gutenberg HTML Isotope JavaScript jQuery loop Map Menu Parallax PHP Rest API SASS SEO SQL Storefront SVG tab tag manager tags Taxonomy Tool upsell Webpack Wholesale WooCommerce WordPress WPML

Disclosure: Some of the links in this site are affiliate links. I will be paid a commission if you use this link to make a purchase.

  • Privacy Policy / Terms of Service
© 2025 WP Flames - All Right Reserved