איך להסתיר סוגי משלוחים בעמוד היציאה לתשלום לפי תנאי?

תנאי 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 );

Pablo Guides