خرید هاست خرید سرور

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

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

https://erisa.ir/product/ست-آجیل-خوری-فیروزه-با-جعبه/

الان برای این محصول من دو تا دسته بندی دارم. یکی “فیروزه کوبی” یکی هم “مجموعه الماس” - کاری که ووکامرس داره میکنه اینه که فقط از دسته بندی فیروزه کوبی و محصولات خیلی قدیمی رو پیشنهاد میده. در حالی که من میخوام فقط از دسته بندی “مجموعه الماس” پیشنهادهاش رو بده. راهی برای این کار وجود داره؟ البته میدونم که از داخل ووکامرس اونجا که محصول رو معرفی میکنیم میشه محصولات مرتبط معرفی کرد، ولی این کار جدا از زمان بر بودنش، اون داستان قبلی سر جاش باقیه. نمونه لینک:

https://erisa.ir/product/شکلات-خوری-4-درب-خاتم-با-جعبه-ترمه/

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

لینک اون یکی سایت:

https://sophiadesign.ir/product/مانتو-ژاكارد-مجلسی-سوفیا-دیزاین-كد٩٨٢/

سلام خدمت شما
بررسی بفرمایید در داخل فولدر قالبتون به مسیر
woocommerce > single-product > related.php
را کپی کنید و فشرده نمایید و اینجا ارسال کنید تا کد محصولات مرتبط بر اساس تاریخ خدمت شما ارسال شود
( فایل related.php را ارسال نمایید)

4 Likes

سلام. ممنون.

related.zip (861 بایت)

1 Like

سلام
فایل زیر را جایگزین کنید
اگر ایرادی داشت بگید برطرف کنم چون فایل برای قالب وودمارت هست (من قالب وودمارت را ندارم که بررسی کنم) و بدون بررسی کدها را جایگزین کردم

new_related.zip

4 Likes

سلام. جایگزین کردم ولی اتفاقی نیافتاد.

https://erisa.ir/handicrafts/

چون قالب وودمارت المان ها را اختصاصی زده و در واقع بدون بررسی و آزمودن کد ها نمیشه چیز درستی ارسال کرد
اما کلیت کد ها همین بود که خدمتتون ارسال کردم

 <?php
		// Setup your custom query
		$args = array('post_type' => 'product','posts_per_page' => '4','orderby' => 'date', 'post__not_in' => array(get_the_ID()) );
		$loop = new WP_Query( $args );

		while ( $loop->have_posts() ) : $loop->the_post(); ?>
			<?php wc_get_template_part( 'content', 'product' ); ?>
		<?php endwhile; // end of the loop. ?>
2 Likes

ممنون لطف کردید
خیلی از کد سر در نمیارم. باید ببینم راه دیگه ای میشه براش پیدا کرد یا نه.

این افزونه ها رو بررسی کنید

1 Like

سلام و تشکر مجدد. کدی که لطف کردید انگار اوکی بود. البته سری اول تغییر نکرد ولی تو تنظیمات قالب یه چیزی رو تغییر دادم اوکی شد. حالت نمایش رو گذاشتم رو شبکه ای درست شد. بازم ممنون. خیلی خوب شد.

1

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

https://sophiadesign.ir/product/مانتو-ژاكارد-مجلسی-سوفیا-دیزاین-كد٩٨٢/

به این مسیر برید
ووکامرس - پیکربندی - محصولات - موجودی
و تیک “مخفی کردن محصولاتی که در انبار موجود نیستند” رو بزنید

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

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

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

برای حذف کردن محصولات مرتبطی که در انبار وجود ندارد و موجودیشون تموم شده کد زیر را در فانکشن قالبتون جایگذاری نمایید

function iranwp_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 );
}
 
/**
 * Temporarily disable hide out of stock items.
 *
 * @param string $template_name
 * @param string $template_path
 * @param bool $located
 * @param array $args
 */
function iranwp_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', 'iranwp_enable_hide_out_of_stock_items', 10, 4 );
add_action( 'woocommerce_after_template_part', 'iranwp_disable_hide_out_of_stock_items', 10, 4 );
2 Likes

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

2 Likes