Phone Orders For WooCommerce

Automatically select Free Shipping if it becomes available

add_action( 'wpo_cart_updated_with_user', function () {
    $packages                = WC()->shipping()->get_packages();
    $chosen_shipping_methods = WC()->session->get( 'chosen_shipping_methods' );
    $free_shipping_was_found = false;
    foreach ( $packages as $i => $package ) {
        foreach($package['rates'] as $rate_id=>$data)
            if(strstr($rate_id, "free_shipping") !==false)
                $free_shipping_was_found = true;
    }
    if(!$free_shipping_was_found )
        WC()->session->set( 'free_shipping_was_set', false);
    if ( $free_shipping_was_found AND !WC()->session->get( 'free_shipping_was_set', false) ) {
        foreach ( $packages as $i => $package ) {
            foreach($package['rates'] as $rate_id=>$data)
                if(strstr($rate_id, "free_shipping") !==false) {
                    $chosen_shipping_methods[ $i ] = $rate_id;
                }
        }
        WC()->session->set( 'chosen_shipping_methods', $chosen_shipping_methods );
        WC()->session->set( 'free_shipping_was_set', true );
    }
});

Have questions? Please submit a support request. We're always happy to help!

Phone Orders
for WooCommerce
PRO

From $120
Buy
✓ 30-day money-back guarantee