حذف قیمت برای محصولات نا موجود

m0h4mm4d

کاربر عضو
1/4/17
286
3
18
سلام دوستان

چه طوری قیمت را برای محصولات ناموجود حذف کرد ؟ ( محصولات ساده و متغییر )

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

======================================================

ویرایش : با تشکر از آقا محمد و جاویدان عزیز . با کد زیر که دوستان فرمودند مشکل حل شد :
 

کد:
add_filter( 'woocommerce_variable_sale_price_html', 'theanand_remove_prices', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'theanand_remove_prices', 10, 2 );
add_filter( 'woocommerce_get_price_html', 'theanand_remove_prices', 10, 2 );

function theanand_remove_prices( $price, $product ) {
if ( ! $product->is_in_stock()) {
$price = '';
}
return $price;
}
 
آخرین ویرایش توسط مدیر:
  • Like
Reactions: Para Tak

جاویدان

کاربر عضو
27/4/15
2,170
452
83
39
استان تهران
با سلام دوست عزیز

بر اساس طراحی قالب و طراح اون می تونه متفاوت باشه در حالت پیش فرض ممکن است قیمت درج نشود یا با استفاده از افزونه پارس ساز وکامرس شما متن دلخواه را قرار می دهید . همچی به طراح و استفاده ار کدها به سلیقه است

موفق باشید

 

Mohammad

مدیر انجمن
عضو کادر مدیریت
6/4/08
15,442
367
83
31
PersianScript
این کد رو تست کنید (بنده تست نکردم)

کد:
add_filter( 'woocommerce_variable_sale_price_html', 'theanand_remove_prices', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'theanand_remove_prices', 10, 2 );
add_filter( 'woocommerce_get_price_html', 'theanand_remove_prices', 10, 2 );

function theanand_remove_prices( $price, $product ) {
if ( ! $product->is_in_stock()) {
$price = '';
}
return $price;
}
 
  • Like
Reactions: جاویدان

Mohammad

مدیر انجمن
عضو کادر مدیریت
6/4/08
15,442
367
83
31
PersianScript
این کد جدید باید کار کنه:

کد:
add_action( 'woocommerce_after_shop_loop_item_title', 'wcs_stock_text_shop_page', 25 );
//create our function
function wcs_stock_text_shop_page() {
    //returns an array with 2 items availability and class for CSS
    global $product;
    $availability = $product->get_availability();
    //check if availability in the array = string 'Out of Stock'
    //if so display on page.//if you want to display the 'in stock' messages as well just leave out this, == 'Out of stock'
    if ( $availability['availability'] == 'Out of stock') {
        echo apply_filters( 'woocommerce_stock_html', '<p class="stock ' . esc_attr( $availability['class'] ) . '">' . esc_html( $availability['availability'] ) . '</p>', $availability['availability'] );
    }
 
}
 
  • Like
Reactions: جاویدان

m0h4mm4d

کاربر عضو
1/4/17
286
3
18
این کد جدید باید کار کنه:
کد دوم کار نکرد  . ظاهرا قبل از ووکامرس 3 راه حل چیز دیگری بوده .

کد اول تست شد . اوکی بود . مشکل برای محصولات ساده حل شد . محصولات متغییر هم خود قیمت را حذف می کنه ولی در توضیحات که دو تا قیمت زده شده اون قیمت اول را حذف نمیکنه . برای مثال اینطوری نمایش میده :
13,000 تومان–15,000 تومان

راه حلی سراغ دارید که نا موجود ها را در این قسمت هم حذف کنه ؟ @Mohammad

یعنی اگر نا موجود هست محصول 13 هزار تومانی همون 15 هزار تومان را نشون بده ( با توجه به اینکه اگر مثلا سه محصول متغییر فعال هم باشه ولی قیمت های یکسان داشته باشند یک قیمت نمایش میده )

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






 
آخرین ویرایش توسط مدیر:
  • Like
Reactions: جاویدان

aliomidi300

تازه وارد
15/11/16
9
5
3
سلام من مشکل دارم تمام کدهایی که گفتین رو تو functions قالب قرار دادم اما کد رو که میزارم یه خط رو تو کد نویسی ایراد میگیره و یه ضربدر کوچک کنارش میاد . و سیو میکنم سایت کلا بالا نمیاد
 

mohamad_a226

کاربر عضو
20/4/09
128
6
18
33
کرج
من از کد css برای اینکار استفاده میکنم و کد زیر رو تو css قالبم گذاشتم:
CSS:
.outofstock .price{display:none}

.outofstock .amount{display:none}
 
  • Like
Reactions: aliomidi300