افزودن ستون ویژگی‌های محصول به لیست محصولات در پیشخوان وردپرس

آموزش افزودن ستون ویژگی‌های محصول به لیست محصولات در پیشخوان وردپرس

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

چرا مشاهده ویژگی‌های محصول در لیست محصولات اهمیت دارد؟

افزودن ستون ویژگی‌های محصول به لیست محصولات در پیشخوان وردپرس، مزایای متعددی برای مدیران فروشگاه دارد:

  • دسترسی سریع به اطلاعات کلیدی: با یک نگاه می‌توانید ویژگی‌های مهم هر محصول مانند رنگ، سایز، جنس، برند و سایر ویژگی‌های اختصاصی را مشاهده کنید.
  • مدیریت آسان‌تر موجودی: در فروشگاه‌هایی که محصولات مشابه با ویژگی‌های متفاوت دارند، این ستون به شما کمک می‌کند تا به سرعت محصولات را شناسایی و مدیریت کنید.
  • صرفه‌جویی در زمان: نیازی به باز کردن تک‌تک محصولات برای مشاهده ویژگی‌ها نیست و این موضوع به خصوص در فروشگاه‌های با تعداد محصولات بالا بسیار مفید است.
  • بهبود کارایی تیم مدیریت: تیم‌های مدیریت محتوا و فروش می‌توانند با سرعت بیشتری به اطلاعات محصولات دسترسی داشته باشند و تصمیمات بهتری بگیرند.
  • امکان مرتب‌سازی و فیلتر: با اضافه شدن این ستون، می‌توانید بر اساس ویژگی‌های خاص، محصولات را مرتب‌سازی کنید (در صورت افزودن قابلیت مرتب‌سازی).

راهکار افزودن ستون ویژگی‌های محصول با کد اختصاصی

برای افزودن ستون ویژگی‌های محصول به لیست محصولات در پیشخوان وردپرس، از سه فیلتر و هوک اصلی استفاده می‌کنیم:

  1. افزودن ستون جدید: با استفاده از فیلتر manage_edit-product_columns، یک ستون جدید به نام ویژگی محصول به لیست ستون‌های موجود اضافه می‌شود.
  2. پر کردن محتوای ستون: با استفاده از هوک manage_product_posts_custom_column، محتوای ستون جدید را با استفاده از تابع wc_get_product() و $product->get_attributes() پر می‌کنیم تا تمام ویژگی‌های محصول به همراه مقادیر آن‌ها نمایش داده شوند.
  3. تنظیم عرض ستون: با استفاده از هوک admin_head و افزودن CSS سفارشی، عرض ستون را به اندازه مناسب (۱۵٪) تنظیم می‌کنیم تا ظاهر منظم‌تری داشته باشد.

این روش کاملاً استاندارد، سبک و بدون نیاز به نصب افزونه است و با تمامی نسخه‌های ووکامرس سازگاری دارد.

کد کامل افزودن ستون ویژگی‌های محصول به لیست محصولات

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

/*
 * Add Product Attributes Column to Admin Product List
 * Displays all product attributes and their values in a custom column in the admin product list
 * Mahdi Jafarzadeh
 * https://www.wpwm.ir/
 */

// ============================================================
// 1. ADD CUSTOM COLUMN TO PRODUCT LIST
// ============================================================
add_filter('manage_edit-product_columns', 'add_product_attributes_column');

function add_product_attributes_column($columns) {
    $columns['product_attributes'] = __('ویژگی محصول', 'woocommerce');
    return $columns;
}

// ============================================================
// 2. RENDER CONTENT FOR THE COLUMN
// ============================================================
add_action('manage_product_posts_custom_column', 'render_product_attributes_column_content', 10, 2);

function render_product_attributes_column_content($column, $post_id) {
    // Only run for our custom column
    if ('product_attributes' !== $column) {
        return;
    }
    
    // Get the product object
    $product = wc_get_product($post_id);
    if (!$product) {
        return;
    }
    
    // Get all product attributes
    $attributes = $product->get_attributes();
    
    // If attributes exist, display them
    if (!empty($attributes)) {
        foreach ($attributes as $attribute) {
            // Get the attribute label (name)
            $label = wc_attribute_label($attribute->get_name());
            
            // Get the attribute values
            $values = $product->get_attribute($attribute->get_name());
            
            // Display attribute if it has values
            if (!empty($values)) {
                echo '<strong>' . esc_html($label) . ':</strong> ' . esc_html($values) . '<br/>';
            }
        }
    } else {
        echo '—';
    }
}

// ============================================================
// 3. SET COLUMN WIDTH VIA CSS
// ============================================================
add_action('admin_head', 'set_product_attributes_column_width');

function set_product_attributes_column_width() {
    $screen = get_current_screen();
    if (is_null($screen) || 'product' !== $screen->post_type) {
        return;
    }
    echo '<style>
        .column-product_attributes { 
            width: 15% !important; 
        }
    </style>';
}

نحوه عملکرد کد به صورت گام به گام

در این بخش، هر بخش از کد را به صورت دقیق بررسی می‌کنیم و نحوه عملکرد آن را توضیح می‌دهیم:

  1. خطوط ۱۰ تا ۱۴ – افزودن ستون جدید: با استفاده از add_filter('manage_edit-product_columns', 'add_product_attributes_column')، یک فیلتر به هوک manage_edit-product_columns اضافه می‌کنیم. این هوک مسئول تعریف ستون‌های نمایش داده شده در لیست محصولات است. در تابع add_product_attributes_column، یک ستون جدید با کلید product_attributes و عنوان ویژگی محصول به آرایه ستون‌ها اضافه می‌شود.
  2. خطوط ۱۸ تا ۴۰ – پر کردن محتوای ستون: با استفاده از add_action('manage_product_posts_custom_column', 'render_product_attributes_column_content', 10, 2)، یک عملکرد به هوک manage_product_posts_custom_column اضافه می‌کنیم. این هوک برای هر سطر در لیست محصولات فراخوانی می‌شود و به ما اجازه می‌دهد محتوای ستون‌های سفارشی را تعیین کنیم.
  3. خطوط ۲۱ تا ۲۳ – بررسی ستون هدف: با استفاده از if ('product_attributes' !== $column) { return; }، اطمینان حاصل می‌کنیم که محتوای فقط برای ستون ویژگی محصول تولید شود.
  4. خطوط ۲۶ تا ۲۸ – دریافت شیء محصول: با استفاده از wc_get_product($post_id)، شیء محصول مربوط به سطر فعلی را دریافت می‌کنیم. اگر محصول وجود نداشته باشد، تابع با return خاتمه می‌یابد.
  5. خط ۳۱ – دریافت ویژگی‌های محصول: با استفاده از $product->get_attributes()، تمام ویژگی‌های اختصاصی محصول را به صورت آرایه دریافت می‌کنیم.
  6. خطوط ۳۴ تا ۳۹ – نمایش ویژگی‌ها: اگر محصول دارای ویژگی باشد، با استفاده از یک حلقه foreach، هر ویژگی را پیمایش می‌کنیم:
    • خط ۳۶: با استفاده از wc_attribute_label($attribute->get_name())، برچسب (نام نمایشی) ویژگی را دریافت می‌کنیم.
    • خط ۳۹: با استفاده از $product->get_attribute($attribute->get_name())، مقدار ویژگی را دریافت می‌کنیم.
    • خط ۴۲: اگر مقدار ویژگی خالی نباشد، آن را با فرمت نام ویژگی: مقدار و با خط جدید نمایش می‌دهیم.
  7. خطوط ۴۴ تا ۴۵ – نمایش خط تیره برای محصولات بدون ویژگی: اگر محصول هیچ ویژگی نداشته باشد، یک خط تیره () در ستون نمایش داده می‌شود.
  8. خطوط ۵۰ تا ۶۱ – تنظیم عرض ستون با CSS: با استفاده از add_action('admin_head', 'set_product_attributes_column_width')، یک عملکرد به هوک admin_head اضافه می‌کنیم که در هدر صفحات مدیریت وردپرس اجرا می‌شود. در این تابع، با بررسی نوع صفحه (فقط برای نوع محتوای product)، یک استایل CSS برای تنظیم عرض ستون ویژگی محصول به ۱۵٪ اضافه می‌شود.

نکات مهم

در این بخش به نکات کلیدی برای استفاده صحیح از این کد اشاره می‌کنیم که باید به آن‌ها توجه ویژه‌ای داشته باشید:

  • استفاده از قالب فرزند: کد را در فایل functions.php قالب فرزند قرار دهید تا با بروزرسانی قالب اصلی، تغییرات شما از بین نرود.
  • سازگاری با محصولات متغیر: این کد ویژگی‌های محصولات ساده و محصولات متغیر را به خوبی نمایش می‌دهد. برای محصولات متغیر، ویژگی‌های سطح محصول (نه تغییرات) نمایش داده می‌شوند.
  • سفارشی‌سازی عرض ستون: می‌توانید عدد ۱۵٪ را در بخش CSS به هر اندازه‌ای که نیاز دارید تغییر دهید. برای ستون‌های با محتوای طولانی‌تر، عرض بیشتر (مانند ۲۰٪) مناسب‌تر است.
  • به‌روزرسانی کش: پس از اعمال کد، ممکن است تغییرات بلافاصله در لیست محصولات نمایش داده نشوند. در صورت عدم نمایش، کش مرورگر خود را پاک کنید یا صفحه را با Ctrl+F5 رفرش کنید.
  • سفارشی‌سازی عنوان ستون: می‌توانید متن ویژگی محصول را در خط ۱۲ کد به هر عنوان دلخواه مانند مشخصات فنی یا Attribute تغییر دهید.
  • افزودن قابلیت مرتب‌سازی: این کد به صورت پیش‌فرض قابلیت مرتب‌سازی بر اساس ستون ویژگی را ندارد. برای افزودن مرتب‌سازی، باید کدهای تکمیلی با استفاده از فیلتر manage_edit-product_sortable_columns اضافه کنید.
  • سازگاری با افزونه‌های مدیریت محصول: این کد با اکثر افزونه‌های مدیریت محصول و ووکامرس سازگاری دارد، اما در صورت بروز تداخل، افزونه‌های دیگر را به‌طور موقت غیرفعال کنید تا مشکل شناسایی شود.

جمع‌بندی

در این مقاله از سری مقالات آموزشی وردپرس، به بررسی روش افزودن ستون ویژگی‌های محصول به لیست محصولات در پیشخوان وردپرس پرداختیم. با استفاده از کد ساده و استانداردی که ارائه شد، می‌توانید به سرعت و بدون نیاز به باز کردن هر محصول، تمام ویژگی‌های اختصاصی محصولات خود را مستقیماً در نمای لیست مشاهده کنید. این تغییر کوچک اما تأثیرگذار، مدیریت محصولات را آسان‌تر می‌کند، زمان شما را صرفه‌جویی می‌نماید و کارایی تیم مدیریت فروشگاه را بهبود می‌بخشد.

امیدواریم این آموزش برای شما مفید بوده باشد. اگر سوالی درباره افزودن ستون ویژگی‌های محصول به لیست محصولات، نحوه استفاده از کد یا هر بخش دیگری از این آموزش دارید، لطفاً در بخش نظرات مطرح کنید. همچنین اگر تجربه‌ای در سفارشی‌سازی پیشخوان وردپرس یا مدیریت محصولات ووکامرس دارید، خوشحال می‌شویم آن را با ما و سایر کاربران به اشتراک بگذارید.

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

اگر نظر یا سوالی درباره این کد دارید بنویسید، ما در سریعترین زمان بررسی می‌کنیم و جواب شما رو میدیم.

ایمیل شما منتشر نخواهد شد.
اولین نفری باشید که نظر می دهد!

مقالات آموزش و نکات وردپرس