رفتن به مطلب
iranwebserver میزبانی وب
sohrabtahmasbi

مشکل نمایش قیمت در محصولات متغیر (ووکامرس)

پست های پیشنهاد شده

درود بر دوستان عزیز

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

محصولات به دو صورت متری و کلافی فروخته میشن که هر دو قیمت در زیر توضیحات محصول نمایش داده میشن و خریدار رو در نگاه اول گمراه میکنه ، قصد دارم که فقط یکی از این دو قیمت در صفحات نمایش داده بشه.

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

function patricks_custom_variation_price( $price, $product ) {
	$target_product_types = array( 
		'variable' 
	);
	if ( in_array ( $product->product_type, $target_product_types ) ) {
		// if variable product return and empty string
		return '';
	}
	return $price;
}
add_filter('woocommerce_get_price_html', 'patricks_custom_variation_price', 10, 2);

 

قبل از استفاده از کد:

قبل-از-استفاده-از-کد.jpg

 

 

بعد از استفاده از کد:

بعداز-استفاده-از-کد.jpg

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

انتقال یافت پرسش و پاسخ ووکامرس

 

کد زیر رو بزار توی functions.php قالبت و نتیجه رو بگو که اگر درست بود دوستان دیگر هم استفاده کنن.

 

add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);

function custom_variation_price( $price, $product ) {

	$price = '';

	if ( !$product->min_variation_price || $product->min_variation_price !== $product->max_variation_price ) {
		$price .= '<span class="from">' . _x('From', 'min_price', 'woocommerce') . ' </span>';
		$price .= woocommerce_price($product->get_price());
	}

	return $price;
}

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 6/11/2016در22:47، Mohammad گفته است :

انتقال یافت پرسش و پاسخ ووکامرس

 

کد زیر رو بزار توی functions.php قالبت و نتیجه رو بگو که اگر درست بود دوستان دیگر هم استفاده کنن.

 


add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);

function custom_variation_price( $price, $product ) {

	$price = '';

	if ( !$product->min_variation_price || $product->min_variation_price !== $product->max_variation_price ) {
		$price .= '<span class="from">' . _x('From', 'min_price', 'woocommerce') . ' </span>';
		$price .= woocommerce_price($product->get_price());
	}

	return $price;
}

 

اقا این کد  هم مشکل داره   همون مشکی که دوستمون بالا گفتن :(

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 9 ساعت قبل، alix201 گفته است :

اقا این کد  هم مشکل داره   همون مشکی که دوستمون بالا گفتن :(

 

با سلام

دوست عزیز

بهتر نیست به جای اینکه بگید مشکل داره بگید مشکلتون دقیقا کجاست آیا خطایی اروری چیزی میبینید عکسی چیزی ضمیمه کنید.

موفق باشید

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 6/18/2016در12:23، جاویدان گفته است :

با سلام

دوست عزیز

بهتر نیست به جای اینکه بگید مشکل داره بگید مشکلتون دقیقا کجاست آیا خطایی اروری چیزی میبینید عکسی چیزی ضمیمه کنید.

موفق باشید

دوست عزیز   قیمتهای محصولاتی رو  که چند قیمت مختلف دارند  با این کد  درست  میشه و  تو پیشنمایش  یک قیمت نشون میده تا اینجای کار کد  درست عمل میکنه   ولی  برای محصولاتی که   فقط یک  قیمت دارند و  محصول ساده هستند   قیمت مخفی میشه   نه  تو پیشنمایش قیمت هست  و نه تو صفحه محصول   باید (باید کدی باشه که  فقط رو  محصولات متغییر عمل کنه  نه   رو کل محصولات )

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

کد زیر را تست کنید

add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);

function custom_variation_price( $price, $product ) {
	
	if($product->product_type !== "variable")
		return $price;

	if ( !$product->min_variation_price || $product->min_variation_price !== $product->max_variation_price )
		return '<span class="from">از </span>' . woocommerce_price($product->get_price());

	return $price;
}

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

درود بر شما

نمیدونم مشکل شما حل شد یا نه ولی من این کد رو پیدا کردم و تست کردم ؛ کاملا جواب میده.

کمترین قیمت رو هم نمایش میده:

add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );
function wc_wc20_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';
}
return $price;
}

امیدوارم مشکلتون حل بشه :)

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 26 دی 1395 در 20:55، usas313 گفته است :

درود بر شما

نمیدونم مشکل شما حل شد یا نه ولی من این کد رو پیدا کردم و تست کردم ؛ کاملا جواب میده.

کمترین قیمت رو هم نمایش میده:


add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );
function wc_wc20_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';
}
return $price;
}

امیدوارم مشکلتون حل بشه :)

خیییلی ممنون مشکل منم حل شد

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 26 دی 1395 در 20:55، usas313 گفته است :

درود بر شما

نمیدونم مشکل شما حل شد یا نه ولی من این کد رو پیدا کردم و تست کردم ؛ کاملا جواب میده.

کمترین قیمت رو هم نمایش میده:


add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );
function wc_wc20_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';
}
return $price;
}

امیدوارم مشکلتون حل بشه :)

 

 

سلام دوستان . وقت بخیر .

من این کد رو زدم ، مشکلم برطرف شد ، فقط موردی که هست ، وقتی وارد صفحه محصول میشیم ، فقط کمترین قیمت رو زده .

من میخوام اصلا اون قیمت نباشه ! میشه ؟

 

001.png

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 26 دی 1395 در 20:55، usas313 گفته است :

درود بر شما

نمیدونم مشکل شما حل شد یا نه ولی من این کد رو پیدا کردم و تست کردم ؛ کاملا جواب میده.

کمترین قیمت رو هم نمایش میده:


add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );
function wc_wc20_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';
}
return $price;
}

امیدوارم مشکلتون حل بشه :)

سلام

این کد رو کجا باید وارد کرد دقیقا؟

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

×