Jak skrýt určitou dopravní metodu na základě uživatelské role

Pro B2B e-shopy se může hodit, skrýt určitou dopravní metodu, podle toho, jakou má uživatel roli. Například pro partnery nebudete chtít povolit local pickup. O tom je dnešní snippet. Funguje jen pro přihlášené a odstraní z pokladny definovanou dopravní metodu: Další užitečné snippety najdete na…

Obsah článku

Přidejte záhlaví a začněte generovat tabulku obsahu

Pro B2B e-shopy se může hodit, skrýt určitou dopravní metodu, podle toho, jakou má uživatel roli. Například pro partnery nebudete chtít povolit local pickup.

O tom je dnešní snippet. Funguje jen pro přihlášené a odstraní z pokladny definovanou dopravní metodu:

add_filter( 'woocommerce_package_rates', 'hide_shipping_for_user_role', 10, 2 );

function hide_shipping_for_user_role( $rates, $package ) {

    $excluded_role = 'partner';
    $shipping_id = 'local_pickup:2';

    $user = wp_get_current_user();
    if ( empty( $user ) ) return $rates;

    if( in_array( $excluded_role, (array) $user->roles ) && isset( $rates[ $shipping_id ] ) )
        unset( $rates[ $shipping_id ] );

    return $rates;

}

Další užitečné snippety najdete na stránce Užitečné snippety pro WooCommerce