حذف گزینه ارسال با هزینه در صورت فعال بودن ارسال رایگان

BahramElf

کاربر عضو
1/5/14
166
5
18
سلام

در فروشگاه برای خرید های بالای 50000 تومان ارسال رایگان در نظر گرفتیم، مشکل اینجاست وقتی مجموع خرید کاربر بالای 50000 تومان میره و گزینه ارسال رایگان واسش فعال میشه، هنوز گزینه ارسال با هزینه هم نمایش داده میشه و کاربر میتونه این گزینه رو هم انتخاب کنه، چطور میشه تعریف کنیم در صورت فعال شدن ارسال رایگان گزینه ارسال با هزینه رو نمایش نده؟

You must be registered for see images attach


You must be registered for see images attach


 

navvab.sh

تازه وارد
9/10/15
4
0
1
دوست عزیز

برای این کار، کد زیر رو در آخر فایل functions.php قالبت بزار.

کد:
add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 10, 2 );
function hide_shipping_when_free_is_available( $rates, $package ) {
  	if ( isset( $rates['free_shipping'] ) ) {
  		unset( $rates['flat_rate'] );
  		$free_shipping          = $rates['free_shipping'];
  		$rates                  = array();
  		$rates['free_shipping'] = $free_shipping;
	}
	return $rates;
}
 

BahramElf

کاربر عضو
1/5/14
166
5
18
در این لینک روش های مختلف برای انجام اینکار در ورژن های متفاوت ووکامرس معرفی شده



 
آخرین ویرایش توسط مدیر:

masoud_drug7089

تازه وارد
19/11/16
14
0
1
سلام

در فروشگاه برای خرید های بالای 50000 تومان ارسال رایگان در نظر گرفتیم، مشکل اینجاست وقتی مجموع خرید کاربر بالای 50000 تومان میره و گزینه ارسال رایگان واسش فعال میشه، هنوز گزینه ارسال با هزینه هم نمایش داده میشه و کاربر میتونه این گزینه رو هم انتخاب کنه، چطور میشه تعریف کنیم در صورت فعال شدن ارسال رایگان گزینه ارسال با هزینه رو نمایش نده؟

You must be registered for see images attach


You must be registered for see images attach
دوست عزیز سلام

امکانش هست نحوه فعال کردن این مورد را کامل توضیح دهید تا بتونم استفاده کنم؟

 

hadi500

تازه وارد
3/11/16
5
0
1
سلام

من هم به نحوه فعال کردن موارد بالا نیازمندم 

 

MahdiY

راهبر انجمن
25/1/13
2,178
88
48
اینترنت!
دوست عزیز

برای این کار، کد زیر رو در آخر فایل functions.php قالبت بزار.

add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 10, 2 );
function hide_shipping_when_free_is_available( $rates, $package ) {
if ( isset( $rates['free_shipping'] ) ) {
unset( $rates['flat_rate'] );
$free_shipping = $rates['free_shipping'];
$rates = array();
$rates['free_shipping'] = $free_shipping;
}
return $rates;
}
@hadi500 @masoud_drug7089

فایل functions.php قالب خودتون را باز کنید

در آخر فایل (قبل از علامت ?>) کد بالا را قرار دهید و فایل رو ذخیره کنید

 

masoud_drug7089

تازه وارد
19/11/16
14
0
1
من اضافه کردم ولی بازم بقیه موارد مثل پست سفارشی و پیشتاز قابل انتخاب هستند

 

MahdiY

راهبر انجمن
25/1/13
2,178
88
48
اینترنت!
منظور همون فانکشن ووکامرس هست درسته؟
منظور فایل functions.php در پوشه قالبتون در مسیر wp-content/themes هستش

من اضافه کردم ولی بازم بقیه موارد مثل پست سفارشی و پیشتاز قابل انتخاب هستند
کد زیر را هم تست کنید

کد:
function my_hide_shipping_when_free_is_available( $rates ) {
	$free = array();
	foreach ( $rates as $rate_id => $rate ) {
		if ( 'free_shipping' === $rate->method_id )
			$free[ $rate_id ] = $rate;
			break;
		}
	
	return ! empty( $free ) ? $free : $rates;
}
add_filter( 'woocommerce_package_rates', 'my_hide_shipping_when_free_is_available', 100 );
 

masoud_drug7089

تازه وارد
19/11/16
14
0
1
در هر دو مورد 

هزینه های ارسال همگی فعال میشن

و کاربر خودش میتونه انتخاب کنه

گزینه حمل و نقل رایگان هم فعال میشه و انتخاب پیش فرض نیستش