Witam, potrzebowałbym pomocy z kodem, który zmienia tytuł dostawy danego produktu w koszyku w sklepie w zależności od klasy wysyłkowej zamiast sztywno ustawionej nazwy wysyłki dla wszystkich klas.
Mam coś takiego:
add_filter('woocommerce_package_rates', 'change_shipping_method_name_based_on_shipping_class', 50, 2);
function change_shipping_method_name_based_on_shipping_class($rates, $package){
$shipping_class_id = 64;
$found = false;
foreach( $package['contents'] as $cart_item ) {
if( $cart_item['data']->get_shipping_class_id() == $shipping_class_id ){
$found = true;
break;
}
}
foreach ( $rates as $rate_key => $rate ) {
if ( 'flat_rate' === $rate->method_id ) {
if( $found )
$rates[$rate_key]->label = __( 'Przesyłka paletowa', 'woocommerce' );
else
$rates[$rate_key]->label = __( 'Kurier DPD', 'woocommerce' );
}
}
return $rates;
}
ogólnie mam 3 klasy wysyłkowe - Duża, Średnia, Mała (nazwy sobie pozmieniam w późniejszym czasie), aktualnie kod faktycznie zmienia nazwę wysyłki, ale tylko na "Kurier DPD" dla wszystkich produktów niezależnie od ustawionej klasy wysyłkowej. Jeśli ktoś wie jak powinien wyglądać ten kod, to prosiłbym o pomoc, z góry dziękuje.