آیا می خواهید روش های حمل و نقل ووکامرس را بر اساس طبقه بندی پنهان کنید؟ به طور پیش فرض ، ووکامرس به شما امکان می دهد هزینه حمل و نقل محصولات را بر اساس کشور دریافت کنید. ممکن است بخواهید روشهای حمل و نقل را برای دسته های خاصی غیرفعال کنید.
روش حمل و نقل یک سرویس و هزینه است که مشتری هنگام خرید یک کالا باید آن را پرداخت کند. اگر می خواهید تجربه تحویل روان داشته باشید ، هزینه حمل و نقل یک گزینه ضروری برای هر فروشگاه ووکامرس است.
روش های حمل و نقل مانند ارسال رایگان ، نرخ ثابت و وانت محلی در اختیار شما قرار می گیرد. بسیار آسان است که آنها را برای مناطق حمل و نقل مختلف بر اساس مکان ها تنظیم کنید.
به عنوان مثال ، گزینه ارسال رایگان فقط برای کدپستی در نزدیکی محل فروشگاه و گزینه نرخ ثابت برای سایر مناطق تحویل قابل استفاده است.
نحوه غیرفعال کردن روش حمل و نقل در ووکامرس بر اساس طبقه بندی
در این پست ، ما نحوه چگونگی غیرفعال کردن روش حمل و نقل بر اساس طبقه بندی محصول را به اشتراک می گذاریم. به عنوان مثال ، ممکن است دسته ای با قطعات بزرگ خودرو داشته باشید ، که ممکن است فقط با روش حمل و نقل نرخ ثابت ارسال شوند.
ووکامرس راه حلی برای دستیابی به این هدف ندارد. این بدان معناست که ما باید از قطعه کد سفارشی استفاده کنیم.
بگذارید ببینیم چگونه می توانید به این هدف برسید.
مراحل غیرفعال کردن روش حمل و نقل در ووکامرس بر اساس طبقه بندی
در اینجا مراحلی وجود دارد که باید دنبال کنید:
- وارد سایت وردپرس خود شوید و به عنوان کاربر مدیر به داشبورد دسترسی پیدا کنید.
- از منوی داشبورد ، روی منوی ظاهر> منوی ویرایشگر تم کلیک کنید. وقتی صفحه ویرایشگر تم باز شد ، به دنبال فایل توابع موضوع بگردید که در آن تابع را اضافه می کنیم که روش های حمل و نقل را بر اساس دسته بندی غیرفعال می کند.
- کد زیر را به فایل php اضافه کنید:
/** * Filter shipping methods in the checkout */ add_filter( 'woocommerce_package_rates', 'sevencloner_filter_shipping_methods', 10, 2 ); function sevencloner_filter_shipping_methods( $rates, $package ) { // روش حمل و نقل اقتصادی را بیابید $economy_shipping_method_key = FALSE; foreach ( $rates as $rate_key => $rate ) { if ( is_object( $rate ) && method_exists( $rate, 'get_label' ) && $rate->get_label() === "Economy" ) { $economy_shipping_method_key = $rate_key; } } // همه محصولات را بررسی کرده و دسته آنها را بررسی کنید if ( $economy_shipping_method_key !== FALSE ) { $car_parts_found = FALSE; foreach ( $package['contents'] as $key => $item ) { $categories = get_the_terms( $item['product_id'], 'product_cat' ); if ( $categories && ! is_wp_error( $categories ) && is_array( $categories ) ) { foreach ( $categories as $category ) { if ( "Car Parts" === $category->name ) { $car_parts_found = TRUE; } } } } // قطعات خودرو پیدا شده است ، حمل و نقل اقتصادی را غیرفعال کنید if ( $car_parts_found === TRUE ) { unset( $rates[$economy_shipping_method_key] ); } } return $rates; }
نتیجه
در این پست ، ما یک قطعه کد PHP سفارشی را برای مخفی کردن روش های حمل و نقل بر اساس طبقه بندی به اشتراک گذاشته ایم.
به یاد داشته باشید که “Economy” و “قطعات خودرو” (خطوط 9 و 22) را در کد متناسب با نیازهای خود جایگزین کنید.
اگر می خواهید محدودیت های حمل و نقل زیادی اضافه کنید ، توصیه می کنیم از افزونه ای مانند ووکامرس Condition Shipping Pro استفاده کنید. این افزونه محدود کردن روش های ارسال مستقیم از تنظیمات ووکامرس را بسیار آسان می کند.
اگر در اجرای راه حل بالا با مشکل مواجه شدید ، لطفاً با یک توسعه دهنده واجد شرایط وردپرس تماس بگیرید.