ووکامرس به صاحبان فروشگاه ها اجازه می دهد تا روش های حمل و نقل را برای فروشگاه خود ایجاد کنند. روش حمل و نقل یک سرویس و هزینه است که مشتری هنگام خرید یک کالا باید آن را پرداخت کند. اگر می خواهید تجربه تحویل روان داشته باشید ، هزینه حمل و نقل یک گزینه ضروری برای هر فروشگاه WooCommerce است.
مخفی کردن روش های حمل و نقل برای شرایط خاص
ووکامرس یکی از بهترین راه حل های تجارت الکترونیک است که روش های حمل و نقل مانند حمل و نقل رایگان ، نرخ ثابت و وانت محلی را ارائه می دهد. شما می توانید آنها را برای مناطق حمل و نقل مختلف بر اساس مکان ها تنظیم کنید. به عنوان مثال ، گزینه ارسال رایگان فقط برای کدپستی در نزدیکی محل فروشگاه و گزینه نرخ ثابت برای سایر مناطق تحویل قابل استفاده است.
شایان ذکر است که حمل و نقل بر اساس مکان را می توان با استفاده از افزونه به دست آورد. با این حال ، در شرایطی که مکان مهمترین نقش نیست ، دستیابی به آن برای صاحبان فروشگاه بسیار دشوار می شود. برخی از شرایط می تواند به شرح زیر باشد:
- اگر وزن سفارش بیش از تعداد معینی از پوند یا کیلوگرم باشد ، ارسال رایگان نباید انجام شود.
- هنگامی که روش حمل و نقل در دسترس است ، همچنین بر اساس تعداد مقادیر یا قیمت آن سفارش است. به عنوان مثال ، اگر کل آن 500 دلار باشد ، فقط روش ارسال رایگان باید در دسترس باشد.
علاوه بر این ، سایر شرایطی که روش های حمل و نقل باید در هنگام پرداخت نشان داده شود یا پنهان شود. با این حال ، این پست شرایطی را که در بالا بیان کردم توضیح می دهد.
مراحل پنهان کردن روشهای حمل و نقل ووکامرس برای شرایط خاص
اجازه دهید از اولین شرطی که در بالا ذکر کردم استفاده کنیم ، در صورتی که وزن سفارش بیش از 7 کیلوگرم باشد ، حمل و نقل رایگان در دسترس است. با انجام این مراحل می توانید به این هدف برسید:
- وارد سایت وردپرس خود شوید و به عنوان کاربر مدیر به داشبورد دسترسی پیدا کنید.
- از منوی داشبورد ، روی منوی ظاهر> منوی ویرایشگر تم کلیک کنید. وقتی صفحه ویرایشگر تم باز شد ، به دنبال فایل توابع موضوع باشید تا عملکرد را برای مخفی کردن روش های حمل و نقل ووکامرس در شرایط خاص اضافه کنید.
- کد زیر را به فایل functions.php اضافه کنید:
/** * Hide free shipping when the order weight is more than 10kgs. * * @param array $rates Array of rates found for the package. * @return array */ function njengah_hide_free_shipping_for_order_weight( $rates, $package ) { $order_weight = WC()->cart->get_cart_contents_weight(); if ( $order_weight > 7 ) { 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', 'njengah_hide_free_shipping_for_order_weight', 100, 2 );
- این نتیجه است:
کد چگونه کار می کند
من از فیلتر woocommerce_package_rates برای تغییر نرخهای محاسبه شده در سبد خرید استفاده کرده ام. دارای کلیه نرخ های حمل و نقل است که پس از افزودن محصول به سبد خرید در دسترس خواهد بود. بنابراین ، این شرایط روش حمل مورد نیاز را برطرف می کند ، اگر وزن سفارش بیش از 5 کیلوگرم باشد ، ارسال رایگان.
مثال دیگر این بود که در هنگام تسویه حساب زمانی که مجموع سفارش بیش از 500 دلار است ، فقط ارسال رایگان مجاز است. با افزودن کد زیر در فایل functions.php می توانید به این مهم برسید:
/** * Hide shipping rates when the order total is more than $250. * @param array $rates Array of rates found for the package. * @return array */ function njengah_hide_shipping_for_order_total( $rates ) { $free = array(); $order_total = WC()->cart->get_subtotal(); if( $order_total > 500 ) { 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', 'njengah_hide_shipping_for_order_total', 100 );
وقتی مجموع سفارش بیش از 500 دلار باشد ، آرایه ای که فقط روش های ارسال رایگان دارد از فیلتر بازگردانده می شود ، در غیر این صورت تمام نرخ حمل و نقل بازگردانده می شود.
این نتیجه است:
در کد بالا ، تابع get_method_id () شناسه روش را فقط برای سه روش برای همه مناطق حمل و نقل می کند و نه برای یک روش خاص از یک منطقه حمل و نقل واحد برای مخفی کردن همه نرخ های ثابت ، تحویل محلی یا روشهای حمل و نقل رایگان موجود در هنگام پرداخت با این حال ، اگر می خواهید یک روش حمل و نقل خاص را پنهان کنید ، باید از شناسه روش ارسال و شناسه نمونه استفاده شود.
نتیجه
به طور خلاصه ، این پست نشان می دهد که چگونه می توانید روشهای حمل و نقل را برای شرایط خاصی که شامل شرایط نمی شوند پنهان کنید. با این حال ، اگر به قابلیت های اضافی نیاز دارید ، می توانید از افزونه ای مانند Flexible Shipping Pro for ووکامرس by WP Desk برای فعال کردن روشهای حمل و نقل بر اساس شرایط خاص استفاده کنید. قطعات کدی را که به اشتراک گذاشته ام اضافه کنید تا به گزینه های حمل و نقل پیشرفته دست یابید.