همانطور که می‌دانید صفحه تک محصول (single-product.php) دارای تب‌های (زبانه‌های) مختلفی نظیر اطلاعات، اطلاعات تکمیلی و… می‌باشد. قرار است در این مقاله، ویرایش زبانه‌ها در برگه تک محصول را بررسی و به شما آموزش دهیم. شما پس از این آموزش قادر خواهید بود، زبانه جدید اضافه نمایید یا زبانه‌های قبلی و موجود را ویرایش کنید.

نکته: شما به منظور استفاده از کدهای هر بخش باید آن را در فایل functions.php پوسته فرزند قرار دهید یا از افزونه Snippets استفاده نمایید. به خاطر داشته باشید کدها را در functions.php پوسته والد قرار ندهید، چون با به‌روزرسانی پوسته این کدها از بین خواهند رفت.

تب‌های محصول در ووکامرس

آنچه در این آموزش خواهید خواند:

حذف زبانه‌ها

در صورتی که می‌خواهید یک یا چند زبانه در صفحه تک محصول را حذف نمایید، کافی است از قطعه کد زیر استفاده کنید.

/**
 * Remove product data tabs
 */
add_filter( 'woocommerce_product_tabs', 'woo_remove_product_tabs', 98 );

function woo_remove_product_tabs( $tabs ) {

    unset( $tabs['description'] );      	// Remove the description tab
    unset( $tabs['reviews'] ); 			// Remove the reviews tab
    unset( $tabs['additional_information'] );  	// Remove the additional information tab

    return $tabs;
}

تغییر نام زبانه‌ها

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

/**
 * Rename product data tabs
 */
add_filter( 'woocommerce_product_tabs', 'woo_rename_tabs', 98 );
function woo_rename_tabs( $tabs ) {

	$tabs['description']['title'] = __( 'More Information' );		// Rename the description tab
	$tabs['reviews']['title'] = __( 'Ratings' );				// Rename the reviews tab
	$tabs['additional_information']['title'] = __( 'Product Data' );	// Rename the additional information tab

	return $tabs;

}

تغییر ترتیب زبانه‌ها

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

/**
 * Reorder product data tabs
 */
add_filter( 'woocommerce_product_tabs', 'woo_reorder_tabs', 98 );
function woo_reorder_tabs( $tabs ) {

	$tabs['reviews']['priority'] = 5;			// Reviews first
	$tabs['description']['priority'] = 10;			// Description second
	$tabs['additional_information']['priority'] = 15;	// Additional information third

	return $tabs;
}

سفارشی‌سازی یک زبانه

در صورتی که می‌خواهید یک زبانه را سفارشی‌سازی کنید. به عنوان مثال تابع فراخوانی زبانه را تغییر داده و تابع مورد نظر خود را اجرا کنید، قطعه کد زیر به شما کمک خواهد کرد تا این کار را به راحتی انجام دهید.

/**
 * Customize product data tabs
 */
add_filter( 'woocommerce_product_tabs', 'woo_custom_description_tab', 98 );
function woo_custom_description_tab( $tabs ) {

	$tabs['description']['callback'] = 'woo_custom_description_tab_content';	// Custom description callback

	return $tabs;
}

function woo_custom_description_tab_content() {
	echo '<h2>Custom Description</h2>';
	echo '<p>Here\'s a custom description</p>';
}

افزودن یک زبانه دلخواه

اگر می‌خواهید یک تب (زبانه) جدید و دلخواه به بخش زبانه‌ها اضافه کنید، کافی است از قطعه کد زیر استفاده کنید. همانطور که در کد زیر مشخص است، یک زبانه از سه بخش اصلی عنوان (title)، اولویت (priority) و تابع اجرا (callback) تعریف می‌شود. در اینجا تابع woo_new_product_tab_content تابع مربوط به callback زبانه test_tab بوده و محتوای آن در زبانه test_tab نمایش داده خواهد شد.

/**
 * Add a custom product data tab
 */
add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );
function woo_new_product_tab( $tabs ) {
	
	// Adds the new tab
	
	$tabs['test_tab'] = array(
		'title' 	=> __( 'New Product Tab', 'woocommerce' ),
		'priority' 	=> ۵۰,
		'callback' 	=> 'woo_new_product_tab_content'
	);

	return $tabs;

}
function woo_new_product_tab_content() {

	// The new tab content

	echo '<h2>New Product Tab</h2>';
	echo '<p>Here\'s your new product tab.</p>';
	
}

زبانه اطلاعات تکمیلی

زبانه اطلاعات تکمیلی، زبانه‌ای است که در آن اطلاعات کامل محصول نظیر وزن، ابعاد و ویژگی‌های آن نمایش داده می‌شود. اگر می‌خواهید تغییراتی در این زبانه ایجاد کنید، در صورتی که محصول شما وزن، ابعاد یا ویژگی نداشته باشد با خطای زیر روبرو خواهید شد:

نوشته مرتبط
دریافت اطلاعات سفارش در ووکامرس

Warning: call_user_func() expects parameter 1 to be a valid callback, no array or string given in /mysite/wp-content/plugins/woocommerce/templates/single-product/tabs/tabs.php on line ۳۵

برای جلوگیری از بروز این مشکل، شما باید از شروط ووکامرس زیر استفاده کنید:

  • has_attributes()
  • has_dimensions()
  • has_weight()
/**
 * Check if product has attributes, dimensions or weight to override the call_user_func() expects parameter 1 to be a valid callback error when changing the additional tab
 */
add_filter( 'woocommerce_product_tabs', 'woo_rename_tabs', 98 );

function woo_rename_tabs( $tabs ) {

	global $product;
	
	if( $product->has_attributes() || $product->has_dimensions() || $product->has_weight() ) { // Check if product has attributes, dimensions or weight
		$tabs['additional_information']['title'] = __( 'Product Data' );	// Rename the additional information tab
	}
 
	return $tabs;
 
} 

در این نوشته سعی داشتیم ویرایش زبانه‌ها در صفحه تک محصول را به شما آموزش دهیم. شما با استفاده از کدهای بالا به راحتی می‌توانید تمامی تغییرات مورد دلخواه خود را به راحتی اجرا و پیاده‌سازی کنید. در صورتی که سؤالی داشتید می‌توانید از بخش دیدگاه‌ها، آن را برای ما ارسال کنید تا در کمترین زمان به آن پاسخ دهیم.

منبع : Woocommerce

One thought on “ویرایش زبانه‌ها در برگه تک محصول ووکامرس

  1. عاطفه میگوید:

    با سلام
    جهت مدیریت حمل و نقل در افزونه دکان نیاز به راهنمایی دارم .
    میخوام هر فروشنده ای بتونه مبلغ حمل و نقل رو برای خودش شخصی سازی کنه .مثلا فروشندهx بتونه هزینه ۳۰۰۰۰ تومن رو برای حمل کالای خواب ثبت کنه
    لطفا کمکم کنید

    • مدیر سایت میگوید:

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

  2. ایمان میگوید:

    سلام نمایش زبانه های برای من به صورت عمودی هست (زیر هم) می خوام مثل شکل مثال شما افقی باشه(کنار هم) چطوری می تونم این کار رو انجام بدم؟

    • مدیر سایت میگوید:

      باسلام
      تنظیمات افقی یا عمودی کردن زبانه های پیش فرض در ووکامرس در تنظیمات پوسته شما عموماً باید وجود داشته باشد. اگر نباشد شما باید با استفاده از کد این کار را انجام دهید.
      موفق و پیروز باشید

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *