مخفی کردن محصولات ناموجود در بخش محصولات مرتبط – در پست قبل درباره چگونگی مخفی کردن محصولات ناموجود در فروشگاه یا صفحات بایگانی ووکامرس صحبت کردیم.اما یکی از کاربران سوالی رو مطرح کرد که چگونه می توانم محصولات ناموجود را در هنگام مشاهده محصولات مرتبط در صفحه ی محصول مخفی کنم؟
در این آموزش ما یک راه حل ساده برای شما بیان خواهیم کرد.
مخفی کردن محصولات ناموجود در بخش محصولات مرتبط
کافیست کد زیر را به فایل 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; }
امیدواریم از خواندن این مقاله لذت برده باشید.
بیشتر بخوانید : تنظیم مرتب سازی محصولات براساس موجودی در ووکامرس
سلام مرسی آموزش خوبتون
کد رو قرار دادم اما محصولات فروخته شده رو که حذف میکنه، فضای بین شون رو خالی میذاره، آیا راه حلی داره که اون فضای خالی وجود نداشته یا با محصول دیگه ای به جای اون قرار بگیره؟
با سلام
کدهای مقاله بروزرسانی شد
سلام ، کدی که داخل کامنت ها هست هیچ کار خاصی انجام نمیده و محصولات نا موجود به قوت خودش باقیه. کد سالمی ندارید که این مشکل رو حل کنه ؟
سلام وقت بخیر ، این مورد مجدد بررسی خواهد شد و درصورت وجود اختلال پست بروز می شود.
سلام وقت بخیر
خیلی ممنون از مطلبی که منتشر کردید ولی یه مشکلی وجود دارد:
وقتی کد را قرار میدیم در بخش محصولات مرتبط کالای ناموجود فقط مخفی میشوند و جاهایشان خالی میماند که بسیار ظاهر بدی را در سایت ایجاد میکند که اگر اینگونه باشد بهتر اصلا از این کد استفاده نکنیم
لطفا اگر ممکن باشد کد را ویرایش بفرمایید تا مشکل حل شود و ما راه حلی را پیشنهاد بدهید
باتشکر
سلام ، وقتتون بخیر و نیکی
کد ارسالی در دیدگاه ذیل را بررسی نمائید و به جای عدد 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;
});
سلام
مرسی از آموزش کاربردیتون , این کد محصولات ناموجود مرتبط را مخفی میکند اما آیا راهی وجود دارد که به جای محصولات مخفی شده محصولات مرتبط دیگری نمایش پیدا کند و جای آن ها خالی نماند؟
سلام و عرض ادب،بله این کد فقط برای حذف محصولات ناموجود از لیست کاربرد دارد. بررسی میکنیم اگر راه حلی وجود داشته باشد حتما در وبلاگ منتشر خواهیم کرد.