کد افزونه که باید در سایت قرار بگیره ٬قسمت functions.php قالب
/**
* ویجت محصول WooCommerce با قابلیت AJAX و انیمیشن قیمت
* نسخه: 2.4 (با انیمیشن شمارشگر قیمت)
*
* نحوه استفاده:
* 1. این کد را در فایل functions.php قالب خود قرار دهید
* 2. یا از شورتکد استفاده کنید: [product_widget] یا [product_widget id="123"]
* 3. یا مستقیماً در فایلهای PHP
*/
// جلوگیری از دسترسی مستقیم
if (!defined('ABSPATH')) {
exit;
}
// بررسی فعال بودن WooCommerce
if (!function_exists('is_plugin_active')) {
include_once(ABSPATH . 'wp-admin/includes/plugin.php');
}
if (!in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) {
return;
}
/**
* تابع تبدیل اعداد انگلیسی به فارسی
*/
if (!function_exists('convert_to_persian_numbers')) {
function convert_to_persian_numbers($string) {
$persian_numbers = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
$english_numbers = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
return str_replace($english_numbers, $persian_numbers, $string);
}
}
/**
* تابع اصلی ویجت محصول
*/
function custom_product_widget($product_id = null) {
global $product;
// ایجاد ID یکتا برای هر ویجت
static $widget_counter = 0;
$widget_counter++;
$unique_id = 'widget-' . $widget_counter . '-' . time();
// اگر product_id ارسال نشده، محصول فعلی را بگیر
if (!$product_id && is_product()) {
$current_product = $product;
} elseif ($product_id) {
$current_product = wc_get_product($product_id);
} else {
return 'محصولی یافت نشد
';
}
if (!$current_product || !is_object($current_product)) {
return 'محصول معتبر نیست
';
}
// دریافت اطلاعات محصول با بررسی خالی بودن
$product_price = $current_product->get_price();
$regular_price = $current_product->get_regular_price();
$sale_price = $current_product->get_sale_price();
$is_on_sale = $current_product->is_on_sale();
$is_variable = $current_product->is_type('variable');
$is_in_stock = $current_product->is_in_stock();
$stock_status = $current_product->get_stock_status();
$stock_quantity = $current_product->get_stock_quantity();
$manage_stock = $current_product->get_manage_stock();
// تبدیل قیمتها به عدد و بررسی معتبر بودن
$product_price = !empty($product_price) ? floatval($product_price) : 0;
$regular_price = !empty($regular_price) ? floatval($regular_price) : 0;
$sale_price = !empty($sale_price) ? floatval($sale_price) : 0;
// محاسبه درصد تخفیف
$discount_percentage = 0;
if ($is_on_sale && $regular_price > 0 && $sale_price > 0) {
$discount_percentage = round((($regular_price - $sale_price) / $regular_price) * 100);
}
// تعیین حداکثر تعداد قابل خرید
$max_quantity = 9999;
if ($manage_stock && $stock_quantity > 0) {
$max_quantity = $stock_quantity;
}
// اگر قیمتها صفر یا خالی هستند، از قیمت نمایشی استفاده کن
if ($product_price <= 0) {
$display_price = $current_product->get_price_html();
if (empty($display_price)) {
return 'برای اطلاع از قیمت این محصول تماس بگیرید، شماره تماس: 09128008175
';
}
}
ob_start();
?>
قیمت محصول
0): ?>
0 && $sale_price > 0): ?>
تومان
تومان
% تخفیف
تومان
get_price_html()); ?>
get_available_variations()): ?>
get_available_variations();
$variation_attributes = $current_product->get_variation_attributes();
// دریافت ویژگیهای پیشفرض محصول
$default_attributes = $current_product->get_default_attributes();
foreach ($variation_attributes as $attribute_name => $options) {
$attribute_label = wc_attribute_label($attribute_name);
$clean_attribute_name = 'attribute_' . sanitize_title($attribute_name);
// تعیین مقدار پیشفرض
$default_value = '';
if (isset($default_attributes[sanitize_title($attribute_name)])) {
$default_value = $default_attributes[sanitize_title($attribute_name)];
} elseif (!empty($options)) {
// اگر پیشفرض تعریف نشده، اولین گزینه را انتخاب کن
$default_value = reset($options);
}
// بررسی اینکه آیا ویژگی از taxonomy است یا custom
$is_taxonomy = taxonomy_exists($attribute_name);
?>
name : $option;
} else {
// برای ویژگیهای سفارشی (custom attributes)
$display_name = $option;
}
?>
0 && $stock_quantity <= 5): ?>
تنها عدد در انبار باقی مانده
محصول با موفقیت به سبد خرید اضافه شد!
is_in_stock()) {
wp_send_json_error('محصول موجود نمیباشد');
return;
}
// بررسی موجودی برای محصول متغیر
if ($variation_id) {
$variation_product = wc_get_product($variation_id);
if (!$variation_product || !$variation_product->is_in_stock()) {
wp_send_json_error('این ویژگی محصول موجود نمیباشد');
return;
}
// بررسی تعداد با موجودی
if ($variation_product->managing_stock()) {
$stock_quantity = $variation_product->get_stock_quantity();
if ($stock_quantity !== null && $quantity > $stock_quantity) {
wp_send_json_error('تعداد درخواستی بیشتر از موجودی است. حداکثر ' . $stock_quantity . ' عدد موجود است.');
return;
}
}
} else {
// بررسی تعداد برای محصول ساده
if ($product->managing_stock()) {
$stock_quantity = $product->get_stock_quantity();
if ($stock_quantity !== null && $quantity > $stock_quantity) {
wp_send_json_error('تعداد درخواستی بیشتر از موجودی است. حداکثر ' . $stock_quantity . ' عدد موجود است.');
return;
}
}
}
if ($product->is_type('variable') && !$variation_id && !empty($variation)) {
$available_variations = $product->get_available_variations();
foreach ($available_variations as $var) {
$match = true;
foreach ($variation as $attr_name => $attr_value) {
if (!isset($var['attributes'][$attr_name]) ||
$var['attributes'][$attr_name] !== $attr_value) {
$match = false;
break;
}
}
if ($match) {
$variation_id = $var['variation_id'];
break;
}
}
}
$formatted_variation = array();
if (!empty($variation)) {
foreach ($variation as $key => $value) {
$formatted_variation[$key] = $value;
}
}
$added = WC()->cart->add_to_cart($product_id, $quantity, $variation_id, $formatted_variation);
if ($added) {
$cart_count = WC()->cart->get_cart_contents_count();
$cart_total = WC()->cart->get_cart_total();
$added_product = wc_get_product($variation_id ? $variation_id : $product_id);
$product_name = $added_product ? $added_product->get_name() : 'محصول';
$cart_url = wc_get_cart_url();
wp_send_json_success(array(
'message' => sprintf('"%s" با موفقیت به سبد خرید اضافه شد', $product_name),
'cart_count' => $cart_count,
'cart_total' => $cart_total,
'cart_url' => $cart_url,
'product_name' => $product_name,
'quantity' => $quantity,
'cart_hash' => WC()->cart->get_cart_hash()
));
} else {
$notices = wc_get_notices('error');
$error_message = 'خطا در افزودن محصول به سبد خرید';
if (!empty($notices)) {
$error_message = implode(', ', array_column($notices, 'notice'));
wc_clear_notices();
}
wp_send_json_error($error_message);
}
} catch (Exception $e) {
wp_send_json_error('خطای سیستمی: ' . $e->getMessage());
}
}
// شورتکد برای استفاده آسان
add_shortcode('product_widget', function($atts) {
global $product, $post;
$atts = shortcode_atts(array(
'id' => null
), $atts);
$product_id = $atts['id'];
if (!$product_id) {
if (is_product() && $product) {
$product_id = $product->get_id();
}
elseif (isset($GLOBALS['product']) && is_object($GLOBALS['product'])) {
$product_id = $GLOBALS['product']->get_id();
}
elseif ($post && $post->post_type === 'product') {
$product_id = $post->ID;
}
elseif (get_query_var('product')) {
$product_slug = get_query_var('product');
$product_post = get_page_by_path($product_slug, OBJECT, 'product');
if ($product_post) {
$product_id = $product_post->ID;
}
}
}
return custom_product_widget($product_id);
});
در ادامه این شرت کد و در جای مد نظر در قالب محصول قرار دهید :
[product_widget]
اگه برای متغییر های مختلف تصاویر متفاوتی دارید و برای هر متغییر ٬ تصویر شاخص ست کردید برای نمایش بدردستی این تصاویر از این کد استفاده کنید در فاکشن های سایت
/**
* شورتکد نمایش تصاویر محصول WooCommerce - نسخه بهبود یافته
* نسخه: 2.0
*
* نحوه استفاده:
* [product_images] یا [product_images id="123"]
*
* این کد را در functions.php قرار دهید
*/
// جلوگیری از دسترسی مستقیم
if (!defined('ABSPATH')) {
exit;
}
/**
* تابع اصلی نمایش تصاویر محصول
*/
function custom_product_images($product_id = null) {
global $product;
// ایجاد ID یکتا برای هر گالری
static $gallery_counter = 0;
$gallery_counter++;
$gallery_id = 'gallery-' . $gallery_counter . '-' . time();
// دریافت محصول
if (!$product_id && is_product()) {
$current_product = $product;
} elseif ($product_id) {
$current_product = wc_get_product($product_id);
} else {
return 'محصولی یافت نشد
';
}
if (!$current_product || !is_object($current_product)) {
return 'محصول معتبر نیست
';
}
// دریافت اطلاعات تصاویر
$product_image_id = $current_product->get_image_id();
$gallery_image_ids = $current_product->get_gallery_image_ids();
$is_variable = $current_product->is_type('variable');
// ترکیب تصویر اصلی با گالری
$all_image_ids = array();
if ($product_image_id) {
$all_image_ids[] = $product_image_id;
}
if (!empty($gallery_image_ids)) {
$all_image_ids = array_merge($all_image_ids, $gallery_image_ids);
}
// حذف تکراریها
$all_image_ids = array_unique($all_image_ids);
if (empty($all_image_ids)) {
return 'تصویری برای این محصول وجود ندارد
';
}
// دریافت تصاویر متغیرها برای محصولات متغیر
$variation_images = array();
$variation_attributes_map = array();
if ($is_variable) {
$available_variations = $current_product->get_available_variations();
foreach ($available_variations as $variation) {
$variation_id = $variation['variation_id'];
if (!empty($variation['image_id'])) {
$variation_images[$variation_id] = array(
'image_id' => $variation['image_id'],
'image_url' => wp_get_attachment_image_url($variation['image_id'], 'large'),
'thumb_url' => wp_get_attachment_image_url($variation['image_id'], 'thumbnail'),
'attributes' => $variation['attributes']
);
// ایجاد کلید یکتا برای هر ترکیب ویژگی
$attr_key = serialize($variation['attributes']);
$variation_attributes_map[$attr_key] = $variation_id;
}
}
}
ob_start();
?>
1): ?>
$image_id):
$thumb_url = wp_get_attachment_image_url($image_id, 'thumbnail');
$thumb_alt = get_post_meta($image_id, '_wp_attachment_image_alt', true);
?>
1): ?>
null
), $atts);
$product_id = $atts['id'];
if (!$product_id) {
if (is_product() && $product) {
$product_id = $product->get_id();
}
elseif (isset($GLOBALS['product']) && is_object($GLOBALS['product'])) {
$product_id = $GLOBALS['product']->get_id();
}
elseif ($post && $post->post_type === 'product') {
$product_id = $post->ID;
}
elseif (get_query_var('product')) {
$product_slug = get_query_var('product');
$product_post = get_page_by_path($product_slug, OBJECT, 'product');
if ($product_post) {
$product_id = $product_post->ID;
}
}
}
return custom_product_images($product_id);
});
و این شرتکد را در جای دلخواه برای گالری تصویر محصول استفاده کنید :
[product_images]
آموزش و راهنما کد :
آموزش کامل نصب و استفاده از ویجت محصول WooCommerce با انیمیشن قیمت
📌 معرفی
ویجت محصول WooCommerce یک افزونه قدرتمند و کاملاً فارسی است که تجربه خرید کاربران را به سطح حرفهایتری میبرد. این ویجت با انیمیشنهای جذاب، طراحی مدرن و قابلیتهای پیشرفته، نرخ تبدیل فروشگاه شما را افزایش میدهد.
✨ ویژگیهای کلیدی
🎬 انیمیشنهای حرفهای
- شمارشگر قیمت: قیمت به صورت پویا و با افکت شمارشگر نمایش داده میشود
- انیمیشن تخفیف: نمایش جذاب قیمت تخفیفدار با افکتهای بصری
- تایمینگ هوشمند: هر المان با تاخیر مناسب برای جلب توجه کاربر ظاهر میشود
🛒 قابلیتهای کاربردی
- ✅ پشتیبانی کامل از محصولات ساده و متغیر (Variable Products)
- ✅ مدیریت موجودی به صورت Real-time
- ✅ افزودن به سبد با AJAX (بدون رفرش صفحه)
- ✅ کنترل تعداد محصول با دکمههای + و –
- ✅ نمایش پیامهای هوشمند موجودی
- ✅ طراحی کاملاً ریسپانسیو (موبایل فرندلی)
- ✅ پشتیبانی از اعداد فارسی
🎨 طراحی مدرن
- رنگبندی حرفهای و قابل تنظیم
- انیمیشنهای روان و چشمنواز
- رابط کاربری ساده و کاربرپسند
- سازگار با تمام قالبهای وردپرس
📥 نصب و راهاندازی
مرحله 1️⃣: دریافت کد
ابتدا کد PHP را که در ادامه آورده شده، کپی کنید.
مرحله 2️⃣: افزودن به قالب
روش اول – افزودن به functions.php:
- به پنل مدیریت وردپرس بروید
- از منوی سمت چپ وارد ظاهر > ویرایشگر فایلهای قالب شوید
- فایل functions.php را باز کنید
- کد را در انتهای فایل کپی کنید
- روی دکمه بهروزرسانی فایل کلیک کنید
⚠️ هشدار مهم: قبل از هر تغییری، حتماً از فایل functions.php بکاپ بگیرید!
روش دوم – ایجاد افزونه سفارشی (پیشنهادی):
- یک پوشه با نام
custom-product-widgetدر مسیر/wp-content/plugins/ایجاد کنید - داخل پوشه یک فایل با نام
custom-product-widget.phpبسازید - کد زیر را در ابتدای فایل قرار دهید:
<?php
/**
* Plugin Name: ویجت محصول حرفهای
* Description: ویجت محصول WooCommerce با انیمیشن قیمت
* Version: 2.4
* Author: نام شما
*/
- سپس کد اصلی ویجت را اضافه کنید
- به افزونهها بروید و افزونه را فعال کنید
🚀 نحوه استفاده
1️⃣ استفاده با شورتکد
شورتکدها سادهترین روش استفاده از ویجت هستند.
نمایش ویجت برای محصول فعلی:
[product_widget]
این شورتکد به صورت خودکار ID محصول فعلی را تشخیص میدهد.
نمایش ویجت برای محصول خاص:
[product_widget id="123"]
عدد 123 را با شناسه محصول مورد نظر خود جایگزین کنید.
کجا میتوان شورتکد را استفاده کرد؟
الف) در محتوای صفحات و نوشتهها:
- وارد ویرایشگر صفحه/نوشته شوید
- شورتکد را در جایی که میخواهید ویجت نمایش داده شود، بچسبانید
- صفحه را ذخیره کنید
ب) در ویجتهای سایدبار:
- به ظاهر > ابزارکها بروید
- یک ابزارک متن یا HTML سفارشی اضافه کنید
- شورتکد را داخل آن قرار دهید
ج) در صفحه محصول:
- به WooCommerce > تنظیمات > محصولات بروید
- یا مستقیماً در قالب محصول خود شورتکد را اضافه کنید
2️⃣ استفاده مستقیم در فایلهای PHP
اگر میخواهید ویجت را در فایلهای قالب استفاده کنید:
<?php
// نمایش برای محصول فعلی
echo custom_product_widget();
// نمایش برای محصول خاص
echo custom_product_widget(123); // 123 = شناسه محصول
?>
مثالهای کاربردی:
الف) افزودن به single-product.php:
<?php
// بعد از عنوان محصول
the_title('<h1>', '</h1>');
// نمایش ویجت
echo custom_product_widget();
?>
ب) نمایش در حلقه محصولات:
<?php
if (have_posts()) :
while (have_posts()) : the_post();
global $product;
echo custom_product_widget($product->get_id());
endwhile;
endif;
?>
3️⃣ استفاده با صفحهسازها (Page Builders)
Elementor:
- یک ویجت Shortcode اضافه کنید
- شورتکد را وارد کنید
- استایل را تنظیم کنید
WPBakery:
- یک Raw HTML یا Text Block اضافه کنید
- شورتکد را قرار دهید
Gutenberg:
- بلاک Shortcode را اضافه کنید
- شورتکد را وارد کنید
🎨 شخصیسازی ظاهر
تغییر رنگها
رنگهای اصلی در بخش CSS کد قرار دارند. برای تغییر آنها:
/* رنگ دکمه افزودن به سبد */
.widget-add-to-cart-btn {
background: #F85811; /* رنگ اصلی */
}
.widget-add-to-cart-btn:hover {
background: #d94a0d; /* رنگ هاور */
}
/* رنگ گزینه انتخاب شده */
.widget-attribute-option.selected {
background: #1f2937; /* رنگ پسزمینه */
border-color: #1f2937; /* رنگ حاشیه */
}
/* رنگ قیمت تخفیف */
.widget-sale-price {
color: #059669; /* رنگ قیمت تخفیفدار */
}
/* رنگ بج تخفیف */
.widget-discount-badge {
background: linear-gradient(135deg, #ef4444, #dc2626);
}
تنظیم سرعت انیمیشن
برای تغییر سرعت انیمیشن شمارشگر قیمت، خط زیر را در بخش JavaScript پیدا کنید:
function animatePrice(element, targetPrice, callback) {
var duration = 800; // سرعت انیمیشن (میلیثانیه)
var steps = 30; // تعداد مراحل انیمیشن
// هر چه duration کمتر باشد، انیمیشن سریعتر است
// هر چه steps بیشتر باشد، انیمیشن نرمتر است
}
پیشنهادات:
- سریع:
duration = 500, steps = 20 - معمولی:
duration = 800, steps = 30(پیشفرض) - آرام:
duration = 1200, steps = 40
تغییر فونت
.custom-product-widget {
font-family: 'shabnam'; /* فونت پیشفرض */
}
/* برای استفاده از فونت دلخواه: */
.custom-product-widget {
font-family: 'Vazir', 'Tahoma', sans-serif;
}
🔧 تنظیمات پیشرفته
غیرفعال کردن انیمیشن
اگر نمیخواهید انیمیشن شمارشگر داشته باشید:
// این بخش را پیدا کنید:
animatePrice(priceElement.querySelector('.widget-price'), Math.round(displayPrice), ...
// و با این جایگزین کنید:
var formattedPrice = convertToPersianNumber(Math.round(displayPrice).toLocaleString('en-US'));
priceElement.querySelector('.widget-price').innerHTML = formattedPrice + currencyText;
تغییر پیام موجودی
پیام “تنها X عدد در انبار باقی مانده” را میتوانید تغییر دهید:
// این خط را پیدا کنید:
newStockInfo.textContent = 'تنها ' + convertToPersianNumber(maxQty) + ' عدد در انبار باقی مانده';
// و متن دلخواه خود را بنویسید:
newStockInfo.textContent = 'فقط ' + convertToPersianNumber(maxQty) + ' عدد موجود است!';
تغییر حد آستانه موجودی کم
به صورت پیشفرض، اگر موجودی کمتر از 5 عدد باشد، پیام نمایش داده میشود:
// در بخش PHP این خط را پیدا کنید:
<?php if ($is_in_stock && $manage_stock && $stock_quantity > 0 && $stock_quantity <= 5): ?>
// عدد 5 را تغییر دهید، مثلاً برای 10 عدد:
<?php if ($is_in_stock && $manage_stock && $stock_quantity > 0 && $stock_quantity <= 10): ?>
تغییر شماره تماس
پیام “برای اطلاع از قیمت تماس بگیرید” را میتوانید سفارشی کنید:
// این خط را پیدا کنید:
return '<p style="...">برای اطلاع از قیمت این محصول تماس بگیرید، شماره تماس: 09128008175</p>';
// و با شماره و متن دلخواه جایگزین کنید:
return '<p style="...">برای استعلام قیمت با ما تماس بگیرید: 021-12345678</p>';
📱 نکات موبایل فرندلی
ویجت به صورت خودکار برای موبایل بهینه شده است، اما میتوانید تنظیمات را شخصیسازی کنید:
@media (max-width: 640px) {
/* اندازه فونت دکمه */
.widget-add-to-cart-btn {
font-size: 14px; /* میتوانید تغییر دهید */
}
/* اندازه گزینهها */
.widget-attribute-option {
padding: 6px 12px; /* فاصله داخلی */
font-size: 13px; /* اندازه فونت */
}
}
🐛 رفع مشکلات رایج
مشکل 1: ویجت نمایش داده نمیشود
راهحل:
- بررسی کنید WooCommerce نصب و فعال باشد
- کد را در جای درست کپی کرده باشید
- Cache سایت را پاک کنید
- مرورگر را رفرش کنید (Ctrl+F5)
مشکل 2: قیمت بهروز نمیشود
راهحل:
- کنسول مرورگر را چک کنید (F12)
- مطمئن شوید jQuery بارگذاری شده است
- بررسی کنید محصول از نوع Variable باشد
- ویژگیهای محصول را صحیح تنظیم کرده باشید
مشکل 3: انیمیشن کار نمیکند
راهحل:
- بررسی کنید JavaScript در مرورگر فعال باشد
- از آخرین نسخه مرورگر استفاده کنید
- تداخل با افزونههای دیگر را بررسی کنید
مشکل 4: دکمه افزودن به سبد کار نمیکند
راهحل:
// مطمئن شوید این خطوط در functions.php هستند:
add_action('wp_ajax_custom_add_to_cart', 'handle_custom_add_to_cart');
add_action('wp_ajax_nopriv_custom_add_to_cart', 'handle_custom_add_to_cart');
مشکل 5: اعداد فارسی نمایش داده نمیشود
راهحل:
- بررسی کنید تابع
convert_to_persian_numbersدر کد موجود باشد - فونت مناسب برای اعداد فارسی استفاده کنید
💡 نکات بهینهسازی
1. کش (Cache)
ویجت کاملاً با افزونههای کش سازگار است. در صورت بروز مشکل:
// این کد را اضافه کنید تا ویجت از کش معاف شود:
add_filter('rocket_cache_reject_uri', function($urls) {
$urls[] = '/shop/(.*)';
return $urls;
});
2. سرعت بارگذاری
برای بهبود سرعت:
- از CDN برای فونتها استفاده کنید
- تصاویر محصولات را بهینه کنید
- از کش مرورگر استفاده کنید
3. SEO
برای بهبود سئو:
- از متا تگهای مناسب استفاده کنید
- قیمتها را با Schema Markup مشخص کنید
- از متن جایگزین برای تصاویر استفاده کنید
🎯 موارد استفاده پیشنهادی
1. فروشگاه پوشاک
- نمایش سایزها و رنگها
- مدیریت موجودی برای هر سایز
2. فروشگاه لوازم الکترونیکی
- نمایش مشخصات فنی
- قیمتگذاری پویا
3. فروشگاه مواد غذایی
- وزنهای مختلف
- قیمت به ازای هر کیلو
4. فروشگاه کتاب
- نسخههای مختلف (چاپی، PDF)
- تخفیفهای ویژه
🔐 امنیت
ویجت دارای تمهیدات امنیتی زیر است:
✅ Nonce Verification: جلوگیری از حملات CSRF ✅ Data Sanitization: پاکسازی ورودیها ✅ Escape Output: امنسازی خروجیها ✅ Permission Check: بررسی دسترسیها
📊 گزارش و آمار
برای مشاهده آمار فروش ویجت:
- به WooCommerce > گزارشها بروید
- تب سفارشات را انتخاب کنید
- فیلتر تاریخ را تنظیم کنید
🆘 پشتیبانی
در صورت بروز مشکل:
- مستندات را مطالعه کنید
- کنسول مرورگر را بررسی کنید (F12)
- نسخه WooCommerce را بهروز کنید
- افزونههای تداخلکننده را غیرفعال کنید
📝 لایسنس
این کد تحت لایسنس GPL v2 یا بالاتر منتشر شده است و میتوانید آزادانه استفاده، تغییر و توزیع کنید.
🎉 نتیجهگیری
ویجت محصول WooCommerce با انیمیشن قیمت، ابزاری قدرتمند برای افزایش نرخ تبدیل فروشگاه آنلاین شماست. با استفاده از این آموزش میتوانید به راحتی آن را نصب، پیکربندی و سفارشیسازی کنید.
نکات پایانی:
- همیشه قبل از تغییرات، بکاپ بگیرید
- در محیط تست ابتدا امتحان کنید
- از نسخههای بهروز افزونهها استفاده کنید
- تجربه کاربری را اولویت قرار دهید
📞 تماس با ما
برای سفارش طراحی و توسعه اختصاصی، با ما در تماس باشید:
- 📧 ایمیل: info@example.com
- 📱 تلگرام: @YourTelegram
- 🌐 وبسایت: www.example.com
موفق و پرفروش باشید! 🚀