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

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

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

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

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

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


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

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

  1. افزونه Related Products Manager for WooCommerce
  2. کد نمایش محصولات مرتبط بر اساس دسته بندی در ووکامرس

افزونه Related Products Manager for WooCommerce

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

زمانیکه مشتری وارد صفحه محصول شما میشود ممکن است نیاز داشته باشد تا محصولات مشابه را نیز بررسی کند ، حال اگر شما بتوانید محصولات مرتبط با محصولی که کاربر در حال مشاهده است را به صفحه محصول خود اضافه کنید ، مطمئناً میتوانید نیاز مشتری را براورده کنید و این باعث میشود تعداد سفارشات افزایش پیدا کند. ساده ترین روش برای اضافه کردن این قابلیت به سایت استفاده از افزونه Related Products Manager for WooCommerce میباشد.

افزونه Related Products Manager for WooCommerce یک افزونه فروشگاهی وردپرس است که به شما این امکان را میدهد تا محصولات مرتبط را در فروشگاه ووکامرس خود سفارشی سازی کنید. این پلاگین به صورت کامل با محبوب ترین صفحه سازهای وردپرس مانند المنتور سازگاری دارد. این امکان برای شما فراهم است تا ستون ها ، ترتیب آنها ، برچسب ، دسته ها ، ویژگی محصول و … را به صورت دستی بر اساس هر محصول تغییر دهید. همچنین میتوانید محصولات مرتبط را مخفی و عناوین و موقعیت های محصول مرتبط را تغییر دهید.

امکانات افزونه Related Products Manager Pro for WooCommerce

  1. تنظیم ستون های محصولات مرتبط: میتوانید تعداد ستون های نمایش محصولات مرتبط را مدیریت کنید.
  2. سفارش توسط : شما میتوانید محصولات مرتبط را از طریق گزینه های (تصادفی – تاریخ – عنوان – شناسه – ترتیب – قیمت) شخصی سازی کنید.
  3. تنظیم به صورت دستی: یک قابلیت به صفحه ویرایش هر محصول اضافه میشود که شما میتوانید محصولات مرتبط ، دسته بندی محصولات و برچسب ها را به صورت دستی برای هر محصول به صورت جداگانه انتخاب کنید. همچنین گزینه ایی برای حذف محصولات مرتبط بر اساس هر محصول وجود دارد.
  4. دسته ها و برچسب ها: شما میتوانید انتخاب کنید که محصولات مرتبط براساس دسته بندی یا برچسب ها نمایش داده شوند.
  5. مخفی کردن محصولات مرتبط: این امکان برای شما فراهم است تا محصولات مرتبط را در سطح جهانی پنهان کنید.

آموزش افزونه Related Products Manager Pro for WooCommerce

برای استفاده از افزونه Related Products Manager Pro for WooCommerce ابتدا نیاز هست از لینک زیر افزونه را دانلود و سپس داخل فروشگاه اینترنتی خودتون نصب کنید.

دانلود افزونه Related Products Manager Pro for WooCommerce

بعد از نصب و فعال سازی افزونه وارد مسیر ووکامرس – پیکربندی – Related Products Manager شوید تا بتوانیم تنظیمات افزونه را مطابق تصویر زیر مشاهده کنیم.

افزونه دارای تنظیمات متعددی میباشد که فقط موارد مرتبط با این آموزش توضیح داده خواهد شد.

Related Products Manager: این گزینه را جهت استفاده از افزونه فعال کنید.

Related products number: تعداد مورد نیاز برای نمایش محصولات مرتبط را در این بخش مشخص کنید.

Related products columns: تعداد ستون ها برای نمایش محصولات مرتبط را در این بخش مشخص کنید.

Relate by category: با فعال سازی این گزینه ، محصولات مرتبط بر اساس دسته بندی نمایش داده میشود.

Relate by tag: با فعال سازی این گزینه ، محصولات مرتبط بر اساس برچسب ها نمایش داده میشود.

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

نکته: جهت استفاده از این افزونه میتوانید از طریق المنتور ویجت محصولات مرتبط را داخل صفحه محصول خود اضافه کنید و یا میتوانید صفحه محصول را بدون تغییر رها کنید تا بصورت پیشفرض از تنظیمات قالب فراخوانی شود و یا میتونین از شورتکد [prowc_rpm_product_category] استفاده کنید و در مکان دلخواه ویجت محصولات مرتبط را در صفحه محصول نمایش دهید.


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

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

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

public_html/wp-content/themes/your-theme/function.php

/**
* Only show products in the same sub categories in the related products area
*/
function blz_filter_related_products_subcats_only($terms, $product_id) {
    // Check to see if this product has only one category ticked
	$prodterms = get_the_terms($product_id, 'product_cat');
	if (count($prodterms) === 1) {
		return $terms;
	}
    
    // Loop through the product categories and remove parent categories
	$subcategories = array();
	foreach ($prodterms as $k => $prodterm) {
		if ($prodterm->parent === 0) {
			unset($prodterms[$k]);
		} else {
			$subcategories[] = $prodterm->term_id;
		}
	}
	return $subcategories;
}
add_filter( 'woocommerce_get_related_product_cat_terms', 'blz_filter_related_products_subcats_only', 20, 2 );

قدم بعدی این است که وارد مسیر  your-theme/woocommerce/single-product/related.php شوید و کد زیر را با کدهای داخل فایل related.php جایگزین کنید.

<?php
/**
 * Related Products
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/single-product/related.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see         https://docs.woocommerce.com/document/template-structure/
 * @author      WooThemes
 * @package     WooCommerce/Templates
 * @version     1.6.4
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

global $product, $woocommerce_loop;

if ( empty( $product ) || ! $product->exists() ) {
    return;
}

if ( ! $related = $product->get_related( $posts_per_page ) ) {
    return;
}

$cats_array = array(0);

// get categories
$terms = wp_get_post_terms( $product->id, 'product_cat' );

// select only the category which doesn't have any children
foreach ( $terms as $term ) {
    $children = get_term_children( $term->term_id, 'product_cat' );
    if ( !sizeof( $children ) )
    $cats_array[] = $term->term_id;
}

var_dump($cats_array);

$args = apply_filters( 'woocommerce_related_products_args', array(
    'post_type' => 'product',
    'ignore_sticky_posts' => 1,
    'no_found_rows' => 1,
    'posts_per_page' => $posts_per_page,
    'orderby' => $orderby,
    'tax_query' => array(
        array(
            'taxonomy' => 'product_cat',
            'field' => 'id',
            'terms' => $cats_array
        ),
    )
));

$products                    = new WP_Query( $args );
$woocommerce_loop['name']    = 'related';
$woocommerce_loop['columns'] = apply_filters( 'woocommerce_related_products_columns', $columns );

if ( $products->have_posts() ) : ?>

    <div class="related products">

        <h2><?php _e( 'Related Products', 'woocommerce' ); ?></h2>

        <?php woocommerce_product_loop_start(); ?>

            <?php while ( $products->have_posts() ) : $products->the_post(); ?>

                <?php wc_get_template_part( 'content', 'product' ); ?>

            <?php endwhile; // end of the loop. ?>

        <?php woocommerce_product_loop_end(); ?>

    </div>

<?php endif;

wp_reset_postdata();

درصورتیکه فایل related.php وجود نداشت ، این فایل را بسازید و سپس کد بالا را داخل این فایل قرار دهید و تنظیمات را ذخیره کنید.

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

add_filter( 'woocommerce_product_related_posts', 'woocommerce_get_direct_related_products' );

function woocommerce_get_direct_related_products() {
    global $woocommerce, $product;

    // Related products are found from category
    $cats_array = array(0);

    // Get categories
    $terms = wp_get_post_terms( $product->id, 'product_cat' );

    //Select only the category which doesn't have any children
    foreach ( $terms as $term ) {
        $children = get_term_children( $term->term_id, 'product_cat' );
        if ( !sizeof( $children ) )
            $cats_array[] = $term->term_id;
    }

    // Don't bother if none are set
    if ( sizeof( $cats_array ) == 1 ) return array();

    // Meta query
    $meta_query = array();
    $meta_query[] = $woocommerce->query->visibility_meta_query();
    $meta_query[] = $woocommerce->query->stock_status_meta_query();

    $limit = 5;

    // Get the posts
    return array(
        'orderby'       => 'rand',
        'posts_per_page'=> $limit,
        'post_type'     => 'product',
        'fields'        => 'ids',
        'meta_query'    => $meta_query,
        'tax_query'     => array(
            array(
                'taxonomy'  => 'product_cat',
                'field'     => 'id',
                'terms'     => $cats_array
            )
        )
    );
}

نتیجه گیری

در این مطلب سعی کردم 2 روش نمایش محصولات مرتبط بر اساس دسته بندی در ووکامرس رو بهتون آموزش بدم تا بتونید به راحتی این امکان را به سایتتون اضافه کنید و نیازی به صرف هزینه در این زمینه نداشته باشید.

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

2 پاسخ

  1. سلام ممنون از آموزش خوبتون
    میخوام که محصولات مرتبط سایتم طبق آخرین زیر دسته ای توش قرار دارد نمایش داده بشه
    الان از دسته اصلی تا زیر دسته به صورت درهم محصول مرتبط نمایش داده میشه …
    میتونید راهنماییم کنید چطوری این کار رو بکنم؟

    1. سلام وقتتون بخیر
      خواهش میکنم 💚
      بزرگوار از همین آموزش اگر استفاده کنید ، موردی که مدنظرتون هست پیاده سازی میشه
      درصورتیکه مایل بودید این پروژه توسط ما براتون انجام بشه ، داخل تلگرام بهمون پیام بدید تا براتون بررسی انجام بشه .
      ایدی تلگرام ما websoltan_com
      موفق باشین 🌹💚

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