آیا می خواهید با مخفی شدن محصولات موجود در فروشگاه ووکامرس خود ، تجربه کاربری را بهبود بخشید؟ این مقاله را تا انتها بخوانید، زیرا این پست به شما راه حلی برای مخفی کردن محصولات ناموجود در انبار ارائه می دهد.
به طور پیش فرض، ووکامرس محصولی را که در انبار موجود نیست، به جای دکمه ی خرید یا افزودن به سبد خرید، دکمه بیشتر بخوانید را نمایش دهید. علاوه بر این، گزینه خرید این محصولات در صفحه محصول غیرفعال می شود.
این ویژگی برای برخی از کاربران بسیار راحت است. به عنوان مثال، اگر محصولات را برای دوره های محدود می فروشید یا مرتبا موجودی خود را تغییر می دهید، این یک گزینه عالی است.
توجه به این نکته ضروری است که ووکامرس دارای ویژگی داخلی است تا محصولات موجود در انبار را از تنظیمات ووکامرس مخفی کند. با این حال ، اگر می خواهید انعطاف پذیری بیشتری داشته باشید یا می خواهید محصولات خارج از سهام خود را در صفحات خاصی پنهان کنید، باید از قلاب های فیلتر استفاده کنید. به همین دلیل ما تصمیم گرفتیم این آموزش را برای کمک به شما ایجاد کنیم.
مخفی کردن محصولات موجود در ووکامرس
در آموزش مختصر امروز، ما قطعات کد سفارشی را به اشتراک می گذاریم که می توانید مستقیماً به سایت خود اضافه کنید تا محصولات موجود را پنهان کنید. ما سعی کرده ایم هر مرحله را با جزئیات توضیح دهیم تا به شما در پیاده سازی این راه حل کمک کنیم.
قبل از ادامه کار ، توصیه می کنیم از سایت خود نسخه پشتیبان تهیه کنید. علاوه بر این ، باید یک تم کودک ایجاد یا نصب کنید تا اطمینان حاصل کنید که دفعه بعدی که تم خود را به روز می کنید تغییرات را از دست نمی دهید.
مراحل پنهان کردن محصولات موجود در ووکامرس
در اینجا مراحلی وجود دارد که باید دنبال کنید:
- ابتدا وارد حساب کاربری وردپرس خود شود و به بخش پنل مدیریت کل بروید.
- از منوی نمایش, روی منوی ویرایشگر پوسته کلیک کنید, بعد لود شدن صفحه فایل functions.php قالب را باز کنید و وقتی صفحه ویرایشگر تم باز شد ، به دنبال فایل توابع (functions.php) موضوع باشید تا این عملکرد را به آن اضافه کنید.
- کد های زیر را اضافه کنید به فایل :
add_filter( 'woocommerce_product_query_meta_query', 'sevencloner_only_instock_products', 10, 2 ); function sevencloner_only_instock_products( $meta_query, $query ) { // فقط در صفحات بایگانی فروشگاه if( is_admin() || is_search() || ! is_shop() ) return $meta_query; $meta_query[] = array( 'key' => '_stock_status', 'value' => 'outofstock', 'compare' => '!=' ); return $meta_query; }
- اگر می خواهید محصولات موجود در صفحه اصلی مخفی شوند ، کد زیر را به فایل php اضافه کنید:
add_filter( 'woocommerce_product_query_meta_query', 'sevencloner_product_query_meta_query', 10, 2 ); function sevencloner_product_query_meta_query( $meta_query, $query ) { // فقط در صفحه اصلی ووکامرس if( is_front_page() ){ // حذف محصولات "موجود نیست" $meta_query[] = array( 'key' => '_stock_status', 'value' => 'outofstock', 'compare' => '!=' ); } return $meta_query; }
- اگر شما می خواهید مخفی کردن محصولات موجود در صفحات جستجو کد زیر را اضافه کنید به php فایل :
add_action( 'pre_get_posts', sevencloner_out_of_stock_in_search' ); function sevencloner_out_of_stock_in_search( $query ){ if( $query->is_search() && $query->is_main_query() ) { $query->set( 'meta_key', '_stock_status' ); $query->set( 'meta_value', 'instock' ); } }
- اگر شما می خواهید مخفی کردن محصولات موجود در بخش محصولات مرتبط کد زیر را اضافه کنید به فایل php :
function njengah_out_of_stock_option( $option ){ return 'yes'; } add_action( 'woocommerce_before_template_part', function( $template_name ) { if( $template_name !== "single-product/related.php" ) { return; } add_filter( 'pre_option_woocommerce_hide_out_of_stock_items', 'njengah_out_of_stock_option' ); }); add_action( 'woocommerce_after_template_part', function( $template_name ) { if( $template_name !== "single-product/related.php" ) { return; } remove_filter( 'pre_option_woocommerce_hide_out_of_stock_items', 'njengah_out_of_stock_option' ); } );