تغییر متن دکمه خرید بر اساس دستهبندی یا نوع محصول در ووکامرس
با تابع `has_term` درون فیلتر `woocommerce_product_single_add_to_cart_text` متن دکمه را بر اساس دسته کالا تفکیک کنید.
مشخصات فنی و شناسنامه کد (Code Information)
بازبینی: 1405/06/29<?php
/**
* تغییر متن دکمه خرید بر اساس دستهبندی و نوع محصول در ووکامرس
*/
function bisco_category_based_cart_button_text( $text ) {
global $product;
if ( ! $product ) {
return $text;
}
$product_id = $product->get_id();
// برای دسته دورههای آموزشی
if ( has_term( 'courses', 'product_cat', $product_id ) ) {
return 'ثبتنام و شرکت در دوره';
}
// برای دسته فایلها و محصولات دانلودی
if ( has_term( 'downloads', 'product_cat', $product_id ) || $product->is_downloadable() ) {
return 'خرید و دانلود آنی فایل';
}
// برای محصولات رایگان
if ( '0' == $product->get_price() || empty( $product->get_price() ) ) {
return 'دریافت رایگان';
}
return $text;
}
add_filter( 'woocommerce_product_single_add_to_cart_text', 'bisco_category_based_cart_button_text' );
کد را کجا قرار دهیم؟ (Placement Guide)
کد را در functions.php قرار داده و اسلاگ دستهبندیهای خود را جایگزین 'courses' و 'downloads' کنید.
این کد چگونه کار میکند؟ (How it Works)
تابع ویژگیهای شیء محصول فعلی را خوانده و با بررسی دستهبندی یا ویژگی قابل دانلود بودن، مناسبترین متن را برمیگرداند.
چه زمانی از این کد استفاده کنیم؟ (Use Cases)
در فروشگاههای چندمنظوره که هم فایل دانلودی، هم دوره و هم کالای فیزیکی عرضه میکنند.
چه زمانی نباید از این کد استفاده کنیم؟ (Anti-patterns)
در فروشگاههایی با محصولات کاملاً یکدست.
پیشنیازهای اجرا
ووکامرس فعال و شناسایی اسلاگ دستههای محصول.
نحوه تست و اطمینان از عملکرد
یک محصول دوره و یک محصول دانلودی را بررسی کنید؛ دکمههای هرکدام دارای متن اختصاصی خواهند بود.
نحوه بازگردانی سریع (Rollback)
کد را حذف کنید.
خطاهای رایج و راهحل رفع
اشتباه در اسلاگ دسته (حتماً اسلاگ انگلیسی را در has_term بنویسید).
ملاحظات و نکات امنیتی
بدون ریسک امنیتی.
تاثیر بر سرعت و پرفورمنس
استفاده از کش داخلی ترمهای وردپرس بدون کندی.