Domyślnie WooCommerce daje klientowi możliwość wyboru, czy chce wysłać zamówienie na inny adres niż adres rozliczeniowy. Ta opcja pojawia się w postaci checkboxa „Wysłać na inny adres?” na stronie zamówienia.
W niektórych przypadkach jednak – na przykład, gdy wysyłka zawsze musi trafić na inny adres niż rozliczeniowy – warto wymusić zaznaczenie tej opcji i ukryć ją przed użytkownikiem, aby nie mógł jej odznaczyć. Na szczęście da się to zrobić w WooCommerce w bardzo prosty sposób.
Co chcemy osiągnąć?
Chcemy, żeby:
✅ pole „Wysłać na inny adres?” było zawsze zaznaczone
✅ klient nie mógł go odznaczyć
✅ formularz adresu wysyłki był zawsze widoczny
Jak to zrobić?
Poniżej znajdziesz gotowy fragment kodu, który wystarczy wkleić do pliku functions.php Twojego motywu potomnego (child theme) lub dodać przez plugin Code Snippets.
🔧 Kod:
// Zawsze zaznacz "wysłać na inny adres"
add_filter( 'woocommerce_ship_to_different_address_checked', '__return_true' );
// Wymuś, żeby WooCommerce zawsze używał innego adresu wysyłki
add_filter( 'woocommerce_cart_needs_shipping_address', '__return_true' );
// Ukryj checkbox i zawsze pokaż formularz adresu wysyłki
add_action( 'wp_head', function() {
if (is_checkout()) {
echo '<style>
#ship-to-different-address input {
display: none !important;
}
</style>';
}
});
🔍 Co robi ten kod?
- Pierwszy filtr ustawia checkbox jako zaznaczony domyślnie.
- Drugi filtr informuje WooCommerce, że zawsze potrzebny jest adres wysyłki.
- Trzeci fragment CSS-owy ukrywa checkbox oraz wymusza wyświetlanie formularza adresu wysyłki na stronie zamówienia.
Kiedy to może się przydać?
- Gdy zawsze wysyłasz produkty na adres dostawy, inny niż adres fakturowania.
- Gdy realizujesz wysyłki na prezent, dropshipping, lub do paczkomatów.
- Gdy chcesz uprościć proces zakupowy i uniknąć błędów klientów.
Bezpieczeństwo i aktualizacje
Ten sposób jest lekki i bezpieczny, ponieważ używa natywnych hooków WooCommerce i prostego stylu CSS. Można go łatwo wyłączyć lub zmodyfikować w przyszłości.
Jeśli korzystasz z motywu potomnego – umieść kod w pliku functions.php