איך להסתיר סוגי משלוחים בעמוד היציאה לתשלום לפי תנאי?
תנאי 1. – הסתרת סוגי משלוח לפי משקל ההזמנה :
במקטע הבא אנחנו נסתיר את כל סגי המשלוחים וסתיר משלוח חינמי כאשר משקל המוצר הוא יותר מ10 קילוגרמים
/**
* how to force hide free shipping method when the order total weight is more than 10 kgs .
*
* @param array $rates Array of rates found for the package.
* @return array
*/
function pablo_hide_free_shipping_for_order_weight( $rates, $package ) {
$order_weight = WC()->cart->get_cart_contents_weight();
if ( $order_weight > 10 ) {
foreach( $rates as $rate_id => $rate_val ) {
if ( 'free_shipping' === $rate_val->get_method_id() ) {
unset( $rates[ $rate_id ] );
}
}
}
return $rates;
}
add_filter( 'woocommerce_package_rates', 'pablo_hide_free_shipping_for_order_weight', 100, 2 );
תנאי 2 : הצגת משלוח בחינם כאשר סכום ההסמנה מגיע לסך מוגדר מראש :
כאשר המקטע קוד הבא מוגדר רק משלוח בחינם יוצג
/**
* Hide all of the other shipping methods in WooCommerce and show only Free Shipping selection when the order total is more than $5000.
*
* @param array $rates Array of rates found for the package.
* @return array
*/
function pablo_hide_shipping_for_order_total( $rates ) {
$free = array();
$order_total = WC()->cart->get_subtotal();
if( $order_total > 5000 ) {
foreach ( $rates as $rate_id => $rate ) {
if ( 'free_shipping' === $rate->get_method_id() ) {
$free[ $rate_id ] = $rate;
}
}
}
return ! empty( $free ) ? $free : $rates;
}
add_filter( 'woocommerce_package_rates', 'pablo_hide_shipping_for_order_total', 100 );