Force Default Shipping Method in Woocommerce

PHOTO EMBED

Mon May 16 2022 07:19:46 GMT+0000 (Coordinated Universal Time)

Saved by @peterteszary #php

<?php


add_action( 'woocommerce_before_cart', 'auto_select_free_shipping_by_default' );
function auto_select_free_shipping_by_default() {
    if ( isset(WC()->session) && ! WC()->session->has_session() )
        WC()->session->set_customer_session_cookie( true );

    // Check if "free shipping" is already set
    if ( strpos( WC()->session->get('chosen_shipping_methods')[0], 'woocommerce_flatrate_perpostcode' ) !== false )
        return;

    // Loop through shipping methods
    foreach( WC()->session->get('shipping_for_package_0')['rates'] as $key => $rate ){
        if( $rate->method_id === 'shipping_method_0_woocommerce_flatrate_perpostcode' ){
            // Set "Free shipping" method
            WC()->session->set( 'chosen_shipping_methods', array($rate->id) );
            return;
        }
    }
}

?>
content_copyCOPY

https://stackoverflow.com/questions/53480420/change-the-default-shipping-method-in-woocommerce