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

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

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

 

 

 

در این آموزش ما یک راه حل ساده برای شما بیان خواهیم کرد.

 

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

 

کافیست کد زیر را به فایل functions.php قالب خود اضافه کنید.

 

 

function mweb_enable_hide_out_of_stock_items( $template_name, $template_path, $located, $args ) {
	if( $template_name !== "single-product/related.php" ) {
		return;
	}

	add_filter( 'pre_option_woocommerce_hide_out_of_stock_items', function( $option ) { return "yes"; }, 10, 1 );
}


function mweb_disable_hide_out_of_stock_items( $template_name, $template_path, $located, $args ) {
	if( $template_name !== "single-product/related.php" ) {
		return;
	}

	add_filter( 'pre_option_woocommerce_hide_out_of_stock_items', function( $option ) { return "no"; }, 10, 1 );
}

add_action( 'woocommerce_before_template_part', 'mweb_enable_hide_out_of_stock_items', 10, 4 );
add_action( 'woocommerce_after_template_part', 'mweb_disable_hide_out_of_stock_items', 10, 4 );

 

کاربرانی که از محصولات ماهدیس وب استفاده می کنند، باید این کد را به انتهای فایل myfunctions اضافه کنند.

 

 

کد درخواستی (مهدی – دیدگاه ها)

add_filter( 'woocommerce_related_products', 'mweb_exclude_oos_related_products', 10, 3 );
function mweb_exclude_oos_related_products( $related_posts, $product_id, $args ){

	$out_of_stock_product_ids = (array) wc_get_products( array(
		  'status'       => 'publish',
		  'limit'        => -1,
		  'stock_status' => 'outofstock',
		  'return'       => 'ids',
	  ) );

	$exclude_ids = $out_of_stock_product_ids;

	$related_posts = array_diff( $related_posts, $exclude_ids );
	return $related_posts;

}

امیدواریم از خواندن این مقاله لذت برده باشید.

 

بیشتر بخوانید : تنظیم مرتب سازی محصولات براساس موجودی در ووکامرس

دیدگاه کاربران
  • مهدی ۱۵ آبان ۱۴۰۲

    سلام مرسی آموزش خوبتون
    کد رو قرار دادم اما محصولات فروخته شده رو که حذف میکنه، فضای بین شون رو خالی میذاره، آیا راه حلی داره که اون فضای خالی وجود نداشته یا با محصول دیگه ای به جای اون قرار بگیره؟

    • ماهدیس وب ۱۷ آبان ۱۴۰۲

      با سلام
      کدهای مقاله بروزرسانی شد

  • farshad ۱۰ مهر ۱۴۰۰

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

    • کارشناس ۱۶ مهر ۱۴۰۰

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

  • حداد ۱۷ مرداد ۱۳۹۹

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

    • ماهدیس وب ۱۹ مرداد ۱۳۹۹

      سلام ، وقتتون بخیر و نیکی
      کد ارسالی در دیدگاه ذیل را بررسی نمائید و به جای عدد 4 تعداد محصول مورد نظر را وارد نمائید

  • مهدی کبوک ۲۳ تیر ۱۳۹۹

    با سلام و احترام
    بنده این کد شما رو گذاشتم در قالب ( قالبمم دیجی لند ) ولی کار نکرد یا کلا نشون نمیده یا 1 2 تا محصول رو میاره در صورتی که تو اون دسته بندی موجود زیاد داره
    ممنون میشم بررسی کنید

    • ماهدیس وب ۲۴ تیر ۱۳۹۹

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


      add_filter( 'woocommerce_output_related_products_args', function( $args )
      {
      $args = wp_parse_args( array(
      'posts_per_page' => 4,
      'meta_query' => array (
      'key' => '_stock_status',
      'value' => 'instock'
      )
      ), $args );
      return $args;
      });

  • حمیدرضا محمدی ۲۳ شهریور ۱۳۹۸

    سلام
    مرسی از آموزش کاربردیتون , این کد محصولات ناموجود مرتبط را مخفی میکند اما آیا راهی وجود دارد که به جای محصولات مخفی شده محصولات مرتبط دیگری نمایش پیدا کند و جای آن ها خالی نماند؟

    • جواد مرادی ۲۴ شهریور ۱۳۹۸

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

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

کد امنیتی Time limit is exhausted. Please reload CAPTCHA.