چند وقت پیش، در گفتوگویی با یکی از دوستان، موضوع کارمزد بالای درگاههای پرداخت مطرح شد. ایشان معتقد بودند که این کارمزدها نه تنها برای فروشگاهها سنگین است، بلکه دریافت کامل آن از مشتری نیز چندان جذاب نیست و ممکن است تجربه کاربری را تحت تأثیر قرار دهد. پس از بحثهای فراوان، به این نتیجه رسیدیم که بهترین راهحل، تقسیم کارمزد به صورت مساوی بین فروشگاه و مشتری است. به این ترتیب، هم فروشگاه متحمل هزینه کمتری میشود و هم مشتری احساس بهتری خواهد داشت.
اما مشکل اصلی اینجا بود که در حالت عادی، این امکان وجود نداشت که کارمزد را به صورت خودکار بین فروشگاه و مشتری تقسیم کنیم. یا باید تمام کارمزد از مشتری دریافت میشد یا فروشگاه مجبور بود تمام آن را پرداخت کند. همین موضوع باعث شد تا به فکر ایجاد یک راهحل فنی بیفتیم. امروز، در پاسخ به سوال یکی از کاربران در انجمن پشتیبانی، تصمیم گرفتیم یک فانکشن سبک و کاربردی بنویسیم که این مشکل را به بهترین شکل حل کند و روی تمامی سایتهای وردپرسی به درستی کار کند.
نحوه محاسبه کارمزد درگاههای پرداخت اینترنتی
به عنوان مثال، کارمزد درگاه پرداخت اینترنتی پرداخت یار (زیبال) به این صورت است:
- 1 درصد از مبلغ تراکنش تا سقف 8000 تومان.
- 10 درصد اضافی از همان 8000 تومان.
برای درک بهتر، فرض کنید یک تراکنش به مبلغ 1.000.000 تومان انجام شده است:
- 1 درصد از 1.000.000 تومان = 10.000 تومان (اما به دلیل سقف 8000 تومان، کارمزد 8000 تومان در نظر گرفته میشود).
- 10 درصد از 8000 تومان = 800 تومان.
- کارمزد نهایی: 8000 تومان + 800 تومان = 8800 تومان.
حال اگر بخواهیم این کارمزد را به صورت مساوی بین فروشگاه و مشتری تقسیم کنیم، هر طرف باید 4400 تومان پرداخت کند.
در مقاله امروز آکادمی فنابایت نحوه افزودن یک کارمزد درگاه پرداخت به سفارشات ووکامرس را به صورت کامل و دقیق توضیح میدهیم. این کارمزد شامل دو بخش است:
- 0.5 درصد از مبلغ کل سفارش (تا سقف 4000 تومان).
- 10 درصد اضافی به همان 400 تومان.
همچنین، به شما آموزش میدهیم چگونه میتوانید مبلغ کارمزد، سقف کارمزد و درصد مالیات اضافی را به راحتی تغییر دهید. این مقاله توسط آکادمی فنابایت تهیه شده است تا شما بتوانید به راحتی این ویژگی را در سایت خود پیادهسازی کنید.
افزودن کارمزد به سبد خرید (بدون کد کوتاه)
برای افزودن کارمزد به سبد خرید به صورت خودکار، کد زیر را به فایل functions.php
قالب وردپرس خود اضافه کنید:
کد نهایی
function fanabyte_gateway_fee($order_total) {
// محاسبه 0.5 درصد از مبلغ کل سفارش
$fee = $order_total * 0.005;
// محدود کردن کارمزد به سقف 4000 تومان
if ($fee > 4000) {
$fee = 4000;
}
// اضافه کردن 10 درصد به 4000 تومان
$additional_fee = $fee * 0.10;
$total_fee = $fee + $additional_fee;
return $total_fee;
}
// اضافه کردن کارمزد به مبلغ کل سفارش در ووکامرس
add_action('woocommerce_cart_calculate_fees', 'add_custom_gateway_fee');
function add_custom_gateway_fee() {
if (is_admin() && !defined('DOING_AJAX')) {
return;
}
// دریافت مبلغ کل سفارش
$order_total = WC()->cart->get_cart_contents_total();
// محاسبه کارمزد
$gateway_fee = fanabyte_gateway_fee($order_total);
// اضافه کردن کارمزد به سبد خرید
WC()->cart->add_fee('کارمزد درگاه پرداخت', $gateway_fee);
}
توضیحات
- تابع
fanabyte_gateway_fee
کارمزد را بر اساس مبلغ کل سفارش محاسبه میکند. - هوک
woocommerce_cart_calculate_fees
کارمزد را به صورت خودکار به سبد خرید اضافه میکند. - کارمزد در صفحه سبد خرید و صفحه پرداخت نمایش داده میشود.
استفاده از کد کوتاه برای نمایش کارمزد
اگر بخواهید کارمزد را در جای دیگری از سایت نمایش دهید، میتوانید از کد کوتاه زیر استفاده کنید. این کد کوتاه کارمزد را محاسبه و نمایش میدهد.
کد نهایی
// ایجاد کد کوتاه برای نمایش کارمزد
function fanabyte_gateway_fee_shortcode() {
// دریافت مبلغ کل سفارش
$order_total = WC()->cart->get_cart_contents_total();
// محاسبه کارمزد
$gateway_fee = fanabyte_gateway_fee($order_total);
// نمایش متن کارمزد درگاه پرداخت
return 'کارمزد درگاه پرداخت: ' . number_format($gateway_fee) . ' تومان';
}
add_shortcode('fanabyte_gateway_fee', 'fanabyte_gateway_fee_shortcode');
نحوه استفاده
- کد کوتاه
[fanabyte_gateway_fee]
را در هر جای سایت خود قرار دهید. - این کد کوتاه متن زیر را نمایش میدهد:
کارمزد درگاه پرداخت: XXXX تومان
تغییر مبلغ کارمزد، سقف و درصد مالیات
اگر میخواهید مبلغ کارمزد، سقف کارمزد یا درصد مالیات اضافی را تغییر دهید، کافی است مقادیر زیر را در تابع fanabyte_gateway_fee
ویرایش کنید:
ویرایش مقادیر
function fanabyte_gateway_fee($order_total) {
// تغییر درصد کارمزد (به جای 0.005، مقدار جدید وارد کنید)
$fee_percentage = 0.005; // 0.5 درصد
// تغییر سقف کارمزد (به جای 4000، مقدار جدید وارد کنید)
$fee_cap = 4000; // سقف 4000 تومان
// تغییر درصد مالیات اضافی (به جای 0.10، مقدار جدید وارد کنید)
$additional_tax_percentage = 0.10; // 10 درصد
// محاسبه کارمزد
$fee = $order_total * $fee_percentage;
// محدود کردن کارمزد به سقف
if ($fee > $fee_cap) {
$fee = $fee_cap;
}
// اضافه کردن درصد مالیات اضافی
$additional_fee = $fee * $additional_tax_percentage;
$total_fee = $fee + $additional_fee;
return $total_fee;
}
توضیحات
$fee_percentage
: درصد کارمزد را تغییر دهید (مثلاً برای 1%، مقدار0.01
وارد کنید).$fee_cap
: سقف کارمزد را تغییر دهید (مثلاً برای سقف 5000 تومان، مقدار5000
وارد کنید).$additional_tax_percentage
: درصد مالیات اضافی را تغییر دهید (مثلاً برای 1%، مقدار0.15
وارد کنید).
نحوه استفاده از کدها
- افزودن کد به
functions.php
:
- کدهای بالا را به فایل
functions.php
قالب وردپرس خود اضافه کنید. - تغییرات را ذخیره کنید.
- بدون کد کوتاه:
- کارمزد به صورت خودکار به سبد خرید اضافه میشود و در صفحه پرداخت نمایش داده میشود.
- با کد کوتاه:
- اگر بخواهید کارمزد را در جای دیگری نمایش دهید، کد کوتاه
[fanabyte_gateway_fee]
را در صفحه یا پست خود قرار دهید.
- تغییر مقادیر:
- برای تغییر مبلغ کارمزد، سقف یا درصد مالیات، مقادیر مربوطه را در تابع
fanabyte_gateway_fee
ویرایش کنید.
پیشنمایش استفاده از کد
در تصویر زیر میتوانید پیشنمایش قبل از استفاده از کد را مشاهده کنید.
در تصویر زیر میتوانید پیشنمایش بعد از استفاده از کد را مشاهده کنید.
جمعبندی
در این مقاله، نحوه افزودن کارمزد درگاه پرداخت به سفارشات ووکامرس را به صورت کامل توضیح دادیم. این کارمزد به صورت خودکار محاسبه و به سبد خرید اضافه میشود. همچنین، به شما آموزش دادیم چگونه میتوانید مبلغ کارمزد، سقف کارمزد و درصد مالیات اضافی را به راحتی تغییر دهید.
اگر سوالی داشتید یا نیاز به راهنمایی بیشتر بود در بخش نظرات آن را بیان کنید، تیم پشتیبانی فنابایت در کنار شماست.
4 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
واقعا دستتون درد نکنه دقیقا همونی بود که میخواستم
با درود و احترام خدمت شما کاربر عزیز،
از شما بابت به اشتراک گذاری نظرتان سپاسگزاریم.
سلام. بله دقیقا یکی از مشکلات سایت من این بود.
ممنون از پشتیبانی و اجرایی ایدها.
با درود و احترام خدمت شما کاربر عزیز،
از شما بابت به اشتراک گذاری نظرتان سپاسگزاریم.