+302321500575 info@supported.gr

Woocommerce Tutorial – Χρεώσεις Αποστολών ανα Κιλό (χωρίς Plugin)

26
Φεβ

Σε μια πρόσφατη υλοποίηση μας χρειάστηκε να υλοποιήσουμε χρεώσεις αποστολών ανα κιλό.

Φυσικά υπάρχουν διάφορα plugin τα οποία κάνουν την εξής εργασία με απλό τρόπο, τι γίνεται όμως εαν δεν μας καλύπτουν;

Στο έργο που αναλάβαμε μας ζητήθηκε να προβούμε σε κλιμακωτή χρέωση που έχει ένας πελάτης, οι χρεώσεις είναι εώς 2kg 2.90€ και για κάθε κιλό επιπλέον 0.90€.

Οπότε για αρχή δημιουργήσαμε 6 χρεώσεις αποστολών μια για εώς 2kg (με χρέωση 2.338+φπα) και άλλες 5 για κάθε επιπλέον κιλό (με χρέωση 2,338 + 0,725+φπα κτλ)

Έπειτα θα πρέπει να ορίσουμε τις συνθήκες έτσι ώστε να εμφανίζετε ανάλογα με το βάρος και η ανάλογη χρέωση αποστολής και φυσικά να απενεργοποιούνται οι υπόλοιπες, για να το κάνετε αυτο μπορείτε να εντάξετε τον παρακάτω κώδικα στο functions.php του θέματος σας

/**Conditional shipping rates by WebOS**/
add_filter( 'woocommerce_package_rates', 'webos_woocommerce_tiered_shipping', 10, 2 );

function webos_woocommerce_tiered_shipping( $rates, $package ) {

if ( WC()->cart->cart_contents_weight < 2.001 ) {if ( isset( $rates['flat_rate:1'] ) ) unset( $rates['flat_rate:3'], $rates['flat_rate:4'], $rates['flat_rate:5'], $rates['flat_rate:6'], $rates['flat_rate:7'] );} elseif ( WC()->cart->cart_contents_weight < 3.001 ) {if ( isset( $rates['flat_rate:1'] ) ) unset( $rates['flat_rate:1'], $rates['flat_rate:4'], $rates['flat_rate:5'], $rates['flat_rate:6'], $rates['flat_rate:7'] );} elseif ( WC()->cart->cart_contents_weight < 4.001 ) {if ( isset( $rates['flat_rate:1'] ) ) unset( $rates['flat_rate:1'], $rates['flat_rate:3'], $rates['flat_rate:5'], $rates['flat_rate:6'], $rates['flat_rate:7'] );} elseif ( WC()->cart->cart_contents_weight < 5.001 ) {if ( isset( $rates['flat_rate:1'] ) ) unset( $rates['flat_rate:1'], $rates['flat_rate:3'], $rates['flat_rate:4'], $rates['flat_rate:6'], $rates['flat_rate:7'] );} elseif ( WC()->cart->cart_contents_weight < 6.001 ) {if ( isset( $rates['flat_rate:1'] ) ) unset( $rates['flat_rate:1'], $rates['flat_rate:3'], $rates['flat_rate:4'], $rates['flat_rate:5'], $rates['flat_rate:7'] );} elseif ( WC()->cart->cart_contents_weight < 7.001 ) {if ( isset( $rates['flat_rate:1'] ) ) unset( $rates['flat_rate:1'], $rates['flat_rate:3'], $rates['flat_rate:4'], $rates['flat_rate:5'], $rates['flat_rate:6'] );} else {if ( isset( $rates['flat_rate:1'] ) ) unset( $rates['flat_rate:1'], $rates['flat_rate:3'], $rates['flat_rate:4'], $rates['flat_rate:5'], $rates['flat_rate:6'], $rates['flat_rate:7'] );}return $rates;}

Αυτό ήταν, πλέον μόλις το βάρος της παραγγελίας είναι πάνω απο 2.001kg αυτόματα θα ενεργοποιηθεί το επόμενο flat rate. Για βρείτε το κάθε ID της κάθε χρέωσης αποστολής μπορείτε απλά να αφήσετε το ποντίκι πάνω στον τρόπο αποστολής και να σας εμφανίσει το id=3 κτλ

#HappyCoding | #WebOS | #Woocommerce | #Tutorial