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

m0h4mm4d

کاربر عضو
سلام دوستان

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

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

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

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

کد:
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
واکنش‌ها[ی پسندها]: Para Tak

جاویدان

کاربر عضو
با سلام دوست عزیز

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

موفق باشید

 

Mohammad

مدیر انجمن
پرسنل مدیریت
این کد رو تست کنید (بنده تست نکردم)

کد:
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;
}
 

Mohammad

مدیر انجمن
پرسنل مدیریت
این کد جدید باید کار کنه:

کد:
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'] );
    }
 
}
 

m0h4mm4d

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

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

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

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

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






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

Mohammad

مدیر انجمن
پرسنل مدیریت
به دنبال تغییر همون کد مورد تاییدت هستم

 

aliomidi300

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

mohamad_a226

کاربر عضو
من از کد css برای اینکار استفاده میکنم و کد زیر رو تو css قالبم گذاشتم:
CSS:
.outofstock .price{display:none}

.outofstock .amount{display:none}
 

aliomidi300

تازه وارد
ممنون مشکل برطرف شد
این کد رو تو قسمت نمایش / سفارش سازی / css اضافی وارد کردم
با تشکر از شما محمد جان
 
بالا