ووکامرس (WooCommerce)، یکی از محبوبترین افزونههای فروش آنلاین برای وردپرس است که به راحتی امکان فروش محصولات و خدمات را فراهم میکند. یکی از قابلیتهای مورد نیاز در بسیاری از فروشگاههای آنلاین، نمایش قیمت 0 به عنوان “رایگان” است. در این مقاله، نحوه پیادهسازی این قابلیت در ووکامرس را به طور کامل و مرحله به مرحله توضیح خواهیم داد.
مطالعه بیشتر: ۱۲ روش افزایش سرعت و عملکرد ووکامرس (بروزرسانی ۱۴۰۳)
نحوه تبدیل قیمت 0 به “رایگان” در ووکامرس (WooCommerce)
برای تبدیل قیمت 0 به “رایگان” در ووکامرس، باید تغییراتی در کدهای قالب ایجاد کنیم. این کار از طریق هوکها و فیلترهای ووکامرس انجام میشود. هوکها و فیلترها قابلیت اضافه کردن، تغییر یا حذف عملکردهای پیشفرض ووکامرس را فراهم میکنند.
قدم اول: آمادهسازی قالب برای نمایش قیمت صفر
قبل از انجام هر گونه تغییر در فایلهای قالب، توصیه میشود که از قالب فرزند (Child Theme) استفاده کنید. این کار باعث میشود که تغییرات شما با بهروزرسانیهای قالب اصلی از بین نرود.
۱. ایجاد قالب فرزند (Child Theme):
•ابتدا یک پوشه جدید در مسیر wp-content/themes با نام دلخواه (مثلاً my-child-theme) ایجاد کنید.
•فایل style.css را در این پوشه ایجاد کنید و محتویات زیر را در آن قرار دهید:
/* Theme Name: My Child Theme Template: parent-theme-folder-name */
•فایل functions.php را در همان پوشه ایجاد کنید. این فایل جایی است که کدهای سفارشی خود را قرار خواهیم داد.
قدم دوم: اضافه کردن کد فانکشن به functions.php
اکنون باید کدی بنویسیم که قیمت 0 را به “رایگان” تبدیل کند. این کد را در فایل functions.php قالب فرزند خود قرار میدهیم.
۱. باز کردن فایل functions.php:
فایل functions.php را در ویرایشگر متن باز کنید.
۲. اضافه کردن کد فانکشن:
کد زیر را به فایل functions.php اضافه کنید:
// تغییر نمایش قیمت 0 به "رایگان" add_filter('woocommerce_get_price_html', 'change_free_price_text', 100, 2); function change_free_price_text($price, $product) { if ($product->get_price() == 0) { $price = '<span class="amount">رایگان</span>'; } return $price; }
این کد از یک فیلتر به نام woocommerce_get_price_html استفاده میکند که قیمت نمایش داده شده را تغییر میدهد. اگر قیمت محصول برابر با 0 باشد، متن “رایگان” به جای آن نمایش داده میشود.
قدم سوم: تست و بررسی
۱. بارگذاری قالب فرزند:
به داشبورد وردپرس خود وارد شوید و به قسمت نمایش > پوستهها بروید. قالب فرزند خود را فعال کنید.
۲. بررسی تغییرات:
به فروشگاه خود مراجعه کنید و محصولاتی که قیمت 0 دارند را بررسی کنید. باید ببینید که به جای قیمت 0، متن “رایگان” نمایش داده میشود.
قدم چهارم: تنظیمات بیشتر (اختیاری)
ممکن است بخواهید متن “رایگان” را به زبان یا شکل دیگری نمایش دهید. برای این کار میتوانید تغییرات بیشتری در کد خود ایجاد کنید.
۱. تغییر متن نمایش داده شده:
اگر میخواهید متن دیگری به جای “رایگان” نمایش داده شود، میتوانید خط زیر را تغییر دهید:
$price = '<span class="amount">Free</span>'; // به جای 'Free' متن دلخواه خود را قرار دهید
۲. استفاده از CSS برای استایلدهی:
ممکن است بخواهید استایل خاصی به متن “رایگان” بدهید. برای این کار میتوانید از CSS استفاده کنید. مثلاً:
.amount { color: green; font-weight: bold; }
این کد را میتوانید به فایل style.css قالب فرزند خود اضافه کنید.
نکات تکمیلی برای تبدیل قیمت 0 به “رایگان” در ووکامرس
با انجام مراحل پیشین، شما باید بتوانید قیمت 0 را به “رایگان” تبدیل کنید. با این حال، برخی نکات و موارد تکمیلی میتواند به بهبود و سفارشیسازی بیشتر این تغییر کمک کند.
نکته ۱: بررسی محصولات با قیمت تخفیفی 0
گاهی اوقات ممکن است قیمت اصلی محصول بیشتر از 0 باشد اما به دلیل تخفیف، قیمت نهایی آن 0 شود. برای اطمینان از این که این مورد نیز پوشش داده شده است، میتوانید فانکشن خود را کمی تغییر دهید.
function change_free_price_text($price, $product) { if ($product->get_price() == 0 || $product->get_sale_price() == 0) { $price = '<span class="amount">رایگان</span>'; } return $price; }
این کد هم قیمت اصلی و هم قیمت تخفیفی محصول را بررسی میکند.
نکته ۲: استفاده از چند زبانه
اگر سایت شما چند زبانه است و از افزونههای چند زبانه مانند WPML یا Polylang استفاده میکنید، ممکن است بخواهید متن “رایگان” را بر اساس زبان کاربر تغییر دهید. برای این کار میتوانید از توابع ترجمه استفاده کنید.
function change_free_price_text($price, $product) { if ($product->get_price() == 0 || $product->get_sale_price() == 0) { $price = '<span class="amount">' . __('رایگان', 'your-text-domain') . '</span>'; } return $price; }
در اینجا از تابع __() استفاده شده است که متن را بر اساس زبان فعلی ترجمه میکند.
نکته ۳: نمایش رایگان در سبد خرید و صفحه تسویهحساب
اگر میخواهید متن “رایگان” در سبد خرید و صفحه تسویهحساب نیز نمایش داده شود، باید فیلترهای مناسب را برای این صفحات نیز اضافه کنید.
add_filter('woocommerce_cart_item_price', 'change_free_price_cart', 10, 3); add_filter('woocommerce_cart_item_subtotal', 'change_free_price_cart', 10, 3); function change_free_price_cart($price, $cart_item, $cart_item_key) { if ($cart_item['data']->get_price() == 0) { $price = '<span class="amount">رایگان</span>'; } return $price; }
این فیلترها قیمت محصولات را در سبد خرید و صفحه تسویهحساب بررسی میکنند و در صورت 0 بودن، آن را به “رایگان” تغییر میدهند.
نکته ۴: توجه به قالبهای ووکامرس
ممکن است برخی از قالبهای ووکامرس کدهای خاص خود را برای نمایش قیمتها داشته باشند. در این صورت، باید مطمئن شوید که تغییرات شما با این قالبها سازگار است. برای این کار میتوانید به مستندات قالب مورد استفاده خود مراجعه کنید و در صورت نیاز با توسعهدهندگان آن مشورت کنید.
نتیجهگیری نهایی
تبدیل قیمت 0 به “رایگان” در ووکامرس یک تغییر ساده اما مؤثر است که میتواند تجربه کاربری بهتری را فراهم کند. با استفاده از کدها و نکات ارائه شده در این مقاله، میتوانید به راحتی این تغییر را پیادهسازی کنید و در صورت نیاز آن را سفارشیسازی کنید تا با نیازهای خاص فروشگاه آنلاین شما هماهنگ باشد.
توجه به جزئیات و اطمینان از سازگاری این تغییرات با قالب و افزونههای مورد استفاده، میتواند از بروز مشکلات احتمالی جلوگیری کند و عملکرد فروشگاه شما را بهینه نگه دارد.