پرش به محتویات

ساخت صفحات آرشیو پویای WooCommerce

با این آموزش قالب آرشیو سفارشی WooCommerce می‌سازید که هم دسته‌بندی محصولات و هم محصولات را نشان دهد.

هم‌زمان می‌توانید با گزینه‌های Shop page display و Category page display کنترل کنید چه زمانی دسته‌ها یا محصولات نمایش داده شوند.

گزینه‌های Product Catalog در سفارشی‌ساز

Appearance > Customize > WooCommerce > Product Catalog

نتیجه نمونه

نتیجه نمونه

گام ۱: آماده‌سازی محصولات و دسته‌بندی‌ها

دسته‌بندی‌های محصول را با زیردسته‌ها بسازید. چند محصول اضافه کنید و به دسته‌های مختلف اختصاص دهید. بهتر است برای هر دسته تصویر بگذارید — در قالب هم نمایش می‌دهیم.

داده‌های WooCommerce آماده شده

گام ۲: ساخت آرشیو WooCommerce

نوع قالب درست را انتخاب کنید (WooCommerce - Product archive).

اگر با آرشیو محصول Bricks آشنا نیستید، اینجا بیشتر بخوانید.

قالب آرشیو WooCommerce

شرط‌های قالب را در Settings > Template Settings > Conditions تنظیم کنید تا هنگام مرور صفحه Shop و آرشیو دسته‌ها و برچسب‌های WooCommerce اعمال شود.

شرط‌های قالب آرشیو

دو حلقه query جدا بسازید و با شرط در فرانت‌اند یکی را نمایش دهید. در مثال زیر دو section ساخته شده: یکی برای حلقه دسته‌بندی‌ها و یکی برای محصولات.

دو section برای دو حلقه

گام ۳: بخش دسته‌بندی محصولات

مهم

هنگام استفاده از echo dynamic tag باید اجرای کد را فعال کنید. نام تابع‌ها را در هوک bricks/code/echo_function_names ثبت کنید. مرجع: Code Review

برای نمایش پویای دسته‌بندی‌ها، تابع PHP get_queried_object_id() را در فیلد Parent استفاده کنید. از echo dynamic tag Bricks و {echo:get_queried_object_id} در فیلد Parent مثل زیر:

تنظیمات حلقه دسته‌بندی محصولات

همچنین از تابع PHP woocommerce_get_loop_display_mode() در WooCommerce برای نمایش شرطی این بخش استفاده می‌کنیم.

woocommerce_get_loop_display_mode() بر اساس تنظیمات شما products، subcategories یا both (رشته) برمی‌گرداند.

خروجی woocommerce_get_loop_display_mode

شرط section دسته‌ها را این‌طور بگذارید:

از {echo:woocommerce_get_loop_display_mode} != products استفاده کنید.

شرط section دسته‌بندی‌ها

این بخش وقتی Show products انتخاب نشده نمایش داده می‌شود

تنظیمات حلقه تصاویر و متن در مثال: {woo_product_cat_image} برای تصویر دسته. {term_name:link} برای متن دسته با لینک.

تنظیمات حلقه term

گام ۴: بخش محصولات

تنظیمات query محصولات ساده است — فقط تعداد پست در هر صفحه را کنترل کنید.

تنظیمات حلقه محصولات

شرط section محصولات را این‌طور بگذارید:

از {echo:woocommerce_get_loop_display_mode} != subcategories استفاده کنید.

شرط section محصولات

بخش محصولات وقتی Show subcategories / Show categories انتخاب نشده نمایش داده می‌شود

تنظیمات حلقه محصول برای مرجع (روی dynamic tag تمرکز کنید، نه استایل):

تنظیمات حلقه محصول

ساختار محصول

اگر محصول چند دسته دارد و فقط اولین دسته را می‌خواهید (تا باکس سبز خیلی بلند نشود)، {post_terms_product_cat} را با {echo:product_first_category_name} جایگزین کنید:

// Place in your child theme functions.php
// Returns the first category name of a product
function product_first_category_name() {
    global $product;
    if( $product && is_a( $product, 'WC_Product' ) ) {
        // Get the product categories
        $terms = get_the_terms( $product->get_id(), 'product_cat' );

        $cats = [];

        // Loop through the categories, and add them to the $cats array
        foreach( $terms as $term ) {
            $cats[] = $term->name;
        }

        // Return the first category
        if( ! empty($cats) ) {
            ob_start();
            echo $cats[0];
            return ob_get_clean();
        }
    }
}

بررسی نتیجه

اکنون صفحه Shop و آرشیو دسته‌های محصول باید درست کار کند. نمایش بخش دسته‌ها و محصولات را از پیشخوان وردپرس در Appearance > Customize > WooCommerce > Product Catalog کنترل کنید.

نتیجه نهایی آرشیو پویای WooCommerce

قالب آرشیو سفارشی WooCommerce