شرطی کردن قسمت حمل و نقل

mojtaba472

تازه وارد
سلام دوستان

وقت بخیر

من نیاز دارم قسمت حمل و نقل به صورت شرطی باشه. به این صورت که مشتری اگر محصولی را انتخاب کرد که بالای 3 گیلوگرم وزن داشت فقط قسمت پست سفارشی براش فعال بشه در غیر اینصورت پست پیشتاز.

ممنون میشم من راهنمایی کنید.
 

Mohammad

مدیر انجمن
پرسنل مدیریت
راهکار آماده ای براش وجود نداره. باید اختصاصی کدی براتون طراحی بشه...
 

Mohammad

مدیر انجمن
پرسنل مدیریت
البته این رو یافتم!
تست کنید

PHP:
add_filter( 'woocommerce_package_rates', 'hide_shipping_weight_based', 10, 2 );
function hide_shipping_weight_based( $rates, $package ) {
    // Set weight variable
    $cart_weight = 0;
 
    // Shipping rate to be excluded
    $shipping_id = 'table_rate_shipping_first-class';
 
    // Calculate cart's total
    foreach( WC()->cart->cart_contents as $key => $value)
        $cart_weight += $value['data']->weight * $value['quantity'];
 
    if( $cart_weight <= 30 )
        unset( $rates[ $shipping_id ] );
 
    return $rates;
}

table_rate_shipping_first-class = ایدی روش حمل و نقل
cart_weight <= 30 اینجا وزن محصول رو نوشته! اگر وزن بیش از 30 (کیلوگرم یا گرم یا هر چی در تنظیمات! باشه... این روش حمل و نقل مخفی میشه


پ.ن: در فانکشن قالبتون قرار بدید.
 

mojtaba472

تازه وارد
البته این رو یافتم!
تست کنید

PHP:
add_filter( 'woocommerce_package_rates', 'hide_shipping_weight_based', 10, 2 );
function hide_shipping_weight_based( $rates, $package ) {
    // Set weight variable
    $cart_weight = 0;

    // Shipping rate to be excluded
    $shipping_id = 'table_rate_shipping_first-class';

    // Calculate cart's total
    foreach( WC()->cart->cart_contents as $key => $value)
        $cart_weight += $value['data']->weight * $value['quantity'];

    if( $cart_weight <= 30 )
        unset( $rates[ $shipping_id ] );

    return $rates;
}

table_rate_shipping_first-class = ایدی روش حمل و نقل
cart_weight <= 30 اینجا وزن محصول رو نوشته! اگر وزن بیش از 30 (کیلوگرم یا گرم یا هر چی در تنظیمات! باشه... این روش حمل و نقل مخفی میشه


پ.ن: در فانکشن قالبتون قرار بدید.
سلام
وقت بخیر
ممنون میشه لطف کنید بگید چگونه میتونم ای دی روش حمل و نقل بدست بیارم؟

تشکر
 

hasanakbari110

تازه وارد
سلام دوستان

وقت بخیر

من نیاز دارم قسمت حمل و نقل به صورت شرطی باشه. به این صورت که مشتری اگر محصولی را انتخاب کرد که بالای 3 گیلوگرم وزن داشت فقط قسمت پست سفارشی براش فعال بشه در غیر اینصورت پست پیشتاز.

ممنون میشم من راهنمایی کنید.
افزونه WooCommerce Conditional Shipping and Payments استفاده کنید
 
بالا