woocommerce show/hide flat rate based on product quantity

After long search for a good plugin couldn’t find anything so i created this snippets to help me in this subject

//Show/Hide FLATE RATE Shipping Based on Item Count for Domestic Shipment

add_filter('woocommerce_package_rates', 'show_hide_flat_rate_shipping', 10, 2);
function show_hide_flat_rate_shipping($available_shipping_methods, $package){
    $minimum_number_of_item = 10; //Give here minumum number of items to allow freeshipping

    $flat_rate  =   true;
    global $woocommerce;

    $item_count = 0;
    foreach (WC()->cart->cart_contents as $key => $item) {
        $item_count += $item['quantity'];

    if( $item_count >= $minimum_number_of_item ){ //if products is greater or equal to the minumum number in my case 10 
        $flat_rate  =   false;

    if($flat_rate){ //if flat_rate is true
     //do nothing show all shipping methods
    else{ //if flat_rate is false
        foreach($available_shipping_methods as $shipping_method =>  $method){
            if( strpos( $shipping_method, 'flat_rate' ) !== false ) {
    return $available_shipping_methods;

Make the WooCommerce Terms & Conditions checkbox checked by default

this code is working on woocommerce 3.x and it is test on
woocommerce 3.1.0 with WordPress 4.8

just go to function.php file on your theme and add this code

function razztech_wc_terms( $terms_is_checked ) { return true;}
add_filter( 'woocommerce_terms_is_checked', 'razztech_wc_terms', 10 );
add_filter( 'woocommerce_terms_is_checked_default', 'razztech_wc_terms', 10 );

and now it should check it by default

How To Load the Contact Form 7 Script for a Contact Page Only

Contact Form 7 loads its JavaScript and CSS files on every page and this cause load problems in the whole site specialy in the home page with PageSpeed Insights when i notice the CSS and JavaScript and there was no contact form there so what we need to fix this is to remove these js and css from any page who is not contact page that contains the contact form itself

all u need is to replace the word (contact-us) with the page name in your site

also this code need to be added to functions.php of your theme (or child theme) at the end of it

add_action( 'wp_print_scripts', 'my_deregister_javascript', 100 );
function my_deregister_javascript() {
if ( !is_page('contact-us') ) {
wp_deregister_script( 'contact-form-7' );
add_action( 'wp_print_styles', 'my_deregister_styles', 100 );
function my_deregister_styles() {
if ( !is_page('contact-us') ) {
wp_deregister_style( 'contact-form-7' );
wp_deregister_style( 'contact-form-7-rtl' );

hope i saved you 2 or 3 sec in load time 🙂

Good Luck

Different logo per language

I use theme called “betheme” a lot and lately used wpml and i wanted to use

different logo for each language as client requested so i find nice way yo

do it without changing the header code. This should work on all themes by

the way

1. Go to WPML > String translation, scroll all the way to the bottom and look for a “Translate texts in admin screens”, Select the logo field, if it appears,

2. go to WPML > String translation and search for “logo” and in the drop-menu beside Select strings within domain choose “admin_texts_betheme”
and press search u should see the link for the logo for the current language just replace it with the new logo link and u done

isotope right to left support

isotope can be modified to support right-to-left layouts for languages like Hebrew and Arabic.

See test: Right to left


isOriginLeft: false,

for example

function applyIso()
layoutMode : '',
itemSelector : '.isotope-item',
transitionDuration: '0.6s',
isOriginLeft: false,
//transformsEnabled: false,
filter: "*"
}, function()

You’ll need to make the following changes:

  • Modify Isotope’s _positionAbs method
  • Set transformsEnabled: false in the Isotope options
  • Add CSS transition property styles for right/top

JavaScript for right-to-left support

/ modify Isotope's absolute position method
$.Isotope.prototype._positionAbs = function( x, y ) {
  return { right: x, top: y };

// initialize Isotope
  transformsEnabled: false
  // other options...

CSS for right-to-left support

.isotope .isotope-item {
  -webkit-transition-property: right, top, -webkit-transform, opacity;
     -moz-transition-property: right, top, -moz-transform, opacity;
      -ms-transition-property: right, top, -ms-transform, opacity;
       -o-transition-property: right, top, -o-transform, opacity;
          transition-property: right, top, transform, opacity;