سلطان وب
سبد خرید
خانه | آموزش ووکامرس | آموزش پنهان کردن قیمت محصولات ناموجود در ووکامرس

آموزش پنهان کردن قیمت محصولات ناموجود در ووکامرس

آموزش پنهان کردن قیمت محصولات ناموجود در ووکامرس

آموزش پنهان کردن قیمت محصولات ناموجود در ووکامرس

گاهی اوقات خیلی از فروشگاه های اینترنتی به دلیل نوسانات موجود در بازار یا دلایل مختلف دیگری نمی‌توان قیمت برای محصولات سایت درج کرد و مایل هستیم تا به جای قیمت ، از عباراتی همچون “جهت دریافت قیمت تماس بگیرید” یا عبارات دیگری مانند “تماس بگیرید” استفاده کنیم. در این زمان نیاز هست تا یکسری تغییراتی در قالب سایت خود ایجاد کنیم تا این قابلیت به سایت اضافه شود.


نمایش برچسب دلخواه برای محصولات ناموجود در ووکامرس

برای درج برچسب های دلخواهی همچون “تماس بگیرید” برای محصولات ناموجود میتوان از روش های مختلفی استفاده کرد اما توجه داشته باشید ابتدا بایستی موجودی انبار را برای محصولات تظیم کرده باشید. شما میتوانید با استفاده از آموزش تنظیم موجودی انبار محصولات در ووکامرس برای محصولات خود موجودی انبار را تنظیم کنید.

در ادامه 3 روش برای مخفی کردن قیمت محصولات ناموجود در ووکامرس را توضیح خواهم داد:

  1. پنهان کردن قیمت محصولات ناموجود با استفاده از فیلتر ووکامرس
  2. مخفی کردن قیمت محصولات ناموجود در ووکامرس با CSS
  3. مخفی کردن قیمت محصولات ناموجود در ووکامرس با کدنویسی
  4. مخفی کردن محصولات ناموجود در ووکامرس
  5. انتقال محصولات ناموجود به انتهای لیست در ووکامرس

پنهان کردن قیمت محصولات ناموجود با استفاده از فیلتر ووکامرس

این روش بسیار ساده به وسیله فیلتر خود ووکامرس انجام می‌شود و به کمک این روش قابلیت عدم نمایش قیمت محصولات ناموجود در ووکامرس برای شما ایجاد میگردد. برای استفاده از این روش نیاز است فایل functions.php قالب خود را باز کنید و تکه کد زیر را در انتهای فایل فانکشن قالب خود قرار دهید. (باتوجه به اینکه فایل functions.php یک فایل بسیار حیاتی و مهم محسوب میشود ؛ قبل از ویرایش و افزودن هرگونه تغییر در این فایل ، حتما یک بکاپ از سایتتون تهیه کنید تا در صورت بروز مشکل ، فایل را به حالت اولیه برگردانید):

function websoltan_remove_outofstock_prices( $price, $product ) {
if ( ! $product->is_in_stock() ) {
$price = '';
}
return $price;
}

add_filter( 'woocommerce_variable_sale_price_html', 'websoltan_remove_outofstock_prices', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'websoltan_remove_outofstock_prices', 10, 2 );
add_filter( 'woocommerce_get_price_html', 'websoltan_remove_outofstock_prices', 10, 2 );

مخفی کردن قیمت محصولات ناموجود در ووکامرس با CSS

با استفاده از این روش میتوانید از طریق سفارشی سازی استایل ؛ قیمت محصولات ناموجود را مخفی کنید. برای انجام این کار نیاز هست مطابق تصویر زیر وارد مسیر نمایش – سفارشی سازی – css اضافی شوید.

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

.outofstock .price{display:none}
.outofstock .amount{display:none}

مخفی کردن قیمت محصولات ناموجود در ووکامرس با کدنویسی

با استفاده از این روش شما با سفارشی سازی فایل های ووکامرس میتوانید قیمت محصولات ناموجود را مخفی کنید. در این روش تغییراتی که ایجاد میکنیم تا هنگامی که کاربر محصولات ناموجود را مشاهده کرد ؛ به جای نمایش قیمت ، عنوان دیگری را مشاهده کند. برای انجام این روش ابتدا وارد پوشه قالب شوید. سپس وارد پوشه woocommerce شده و بدنبال زیرپوشه ایی با نام single-product بگردید. در پوشه single-product باید فایلی با نام price.php ایجاد کنید.

در واقع مسیری که قرار است فایل جدید را ایجاد کنید بصورت روبرو میشود : theme/woocommerce/single-product/

در مسیر بالا theme نام پوشه قالب شماست. در نهایت فایل price.php را در این مسیر ایجاد کنید و تکه کد زیر را داخل آن قرار دهید (توجه داشته باشید encoding فایل روی utf8 تنظیم شده باشد ؛ در غیر این صورت امکان استفاده از زبان فارسی را نخواهید داشت) :

<!--?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly global $post, $product; ?-->
<div>
<p class="price"><!--?php $stockamount = $product->get_stock_quantity();<br ?--> $price = $product->get_price_html();
$pricelabel = "تماس بگیرید";
if($stockamount == 0){
echo $pricelabel;}
else{
echo $price;};
?></p>
</div>

مخفی کردن محصولات ناموجود در ووکامرس

با استفاده از این روش ، شما بدون نیاز به هیچگونه کدنویسی و تنها با استفاده از تنظیمات افزونه ووکامرس میتوانید محصولاتی که موجودی انبار آنها به اتمام رسیده است را مخفی کنید.

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

با فعال سازی نمایش تمام‌شدن موجودی انبار ، دیگر محصولات ناموجود در سایت شما نمایش داده نخواهد شد. همچنین شما میتوانید با استفاده از تکه کد زیر محصولات ناموجود را در سایت خود مخفی کنید. برای این کار کافی است کد زیر را به فایل functions.php قالب خود اضافه کنید.

add_action( 'pre_get_posts', 'websoltan_hide_out_of_stock_products' );
 function websoltan_hide_out_of_stock_products( $q ) {
     if ( ! $q->is_main_query() || is_admin() ) {
        return;
    }
     if ( $outofstock_term = get_term_by( 'name', 'outofstock', 'product_visibility' ) ) {
        $tax_query = (array) $q->get('tax_query');
         $tax_query[] = array(
            'taxonomy' =  'product_visibility',
            'field' =  'term_taxonomy_id',
            'terms' =  array( $outofstock_term->term_taxonomy_id ),
            'operator' =  'NOT IN'
        );
         $q->set( 'tax_query', $tax_query );
    }
    remove_action( 'pre_get_posts', 'websoltan_hide_out_of_stock_products' );
}

انتقال محصولات ناموجود به انتهای لیست در ووکامرس

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

خرید افزونه اینستوک


نتیجه گیری

در این آموزش سعی کردم نحوه عدم نمایش قیمت محصولات ناموجود در ووکامرس را بهتون توضیح بدهم. به کمک روش‌های فوق میتوانید قیمت محصولات ناموجود را از دید مشتراین پنهان کنید. درصورتیکه تمایل دارید محصولات ناموجود را به انتهای لیست انتقال دهید ، پیشنهاد میکنم از افزونه اینستوک استفاده کنید و درصورتیکه مایل هستید محصولات بدون قیمت یا محصولات رایگان را به انتهای لیست صفحات سایت خود منتقل کنید ، پیشنهاد میکنم از افزونه سورتینو استفاده کنید. درصورتیکه سوالی داشتید ؛ میتوانید از طریق دیدگاه ها بیان کنید تا در اسرع وقت به سوال شما پاسخ دهم. موفق باشید

دیدگاهتان را بنویسید