اگر سایت فروشگاهی دارید و برای آن کد تخفیف فعال میکنید، یکی از راههای ترغیب مشتریان، فعالسازی کد تخفیف براساس خریدهای قبلی میباشد. در واقع شما یک شرطی را هنگام تعریف کد تخفیف به آن اعمال میکنید به طوری که اگر کاربر میزان خریدهای قبلیش کمتر از یک مقدار مشخص باشد، قادر به استفاده از کد تخفیف نیست. در این مقاله قرار است نحوه تعریف کد تخفیف براساس مجموع خریدهای قبلی در ووکامرس را به شما آموزش دهیم.
فعال سازی کوپن تخفیف براساس میزان خریدهای قبلی
اگر میخواهید براساس میزان خریدهای قبلی کاربر کد تخفیف اختصاصی تعریف کنید، کافی است قطعه کد زیر را در فایل functions.php قرار دهید. این قطعه کد یک فیلد به نام “کمترین میزان خرید” به بخش کد تخفیف در پیشخوان اضافه میکند و اگر مدیر فروشگاه آن را پر نماید، در برگه تسویه حساب هنگام فعالسازی کوپن میزان خرید کاربر (سفارشات با وضعیت “تکمیل شده”) را بررسی مینماید.
نکته: برای اینکه میزان خرید کاربر بررسی شود، کاربر باید قبل از نهایی کردن سفارش خود، در سایت لاگین شده باشد.
/**
* @snippet Minimum Purchase Price For Coupons
* @author Rasool Vahdati
* @testedwith WooCommerce 6
*/
// Add custom field for minimum purchase price on the coupon edit page
add_action('woocommerce_coupon_options', 'add_minimum_purchase_price_field');
function add_minimum_purchase_price_field()
{
woocommerce_wp_text_input(array(
'id' => 'minimum_purchase_price',
'label' => __('Minimum Purchase Price', 'woocommerce'),
'description' => __('Enter the minimum purchase price required to be eligible for this coupon.'),
'type' => 'text'
));
}
// Save custom field value when saving the coupon
add_action('woocommerce_coupon_options_save', 'save_minimum_purchase_price_field');
function save_minimum_purchase_price_field($post_id)
{
$minimum_purchase_price = isset($_POST['minimum_purchase_price']) ? wc_clean(wp_unslash($_POST['minimum_purchase_price'])) : '';
update_post_meta($post_id, 'minimum_purchase_price', $minimum_purchase_price);
}
// Apply coupon if user is eligible based on minimum purchase price
add_filter('woocommerce_coupon_is_valid', 'check_coupon_eligibility_based_on_minimum_price', 10, 2);
function check_coupon_eligibility_based_on_minimum_price($valid, $coupon)
{
// Check if the coupon has a minimum purchase price set
$minimum_purchase_price = get_post_meta($coupon->get_id(), 'minimum_purchase_price', true);
if (!empty($minimum_purchase_price)) {
$user_id = get_current_user_id(); // Get the current user ID
// Check if the user has made previous purchases
if ($user_id) {
$customer_orders = wc_get_orders(array(
'customer_id' => $user_id,
'status' => array('completed'), // Only consider completed orders
));
$total_purchase_amount = 0;
foreach ($customer_orders as $order) {
$total_purchase_amount += $order->get_total();
}
// Check if the total purchase amount is greater than or equal to the minimum required purchase price
if ($total_purchase_amount >= $minimum_purchase_price) {
// Allow the coupon to be valid
return true;
} else {
// Invalidate the coupon if conditions are not met
return false;
}
}
}
// If no minimum purchase price is set, return the original validity status
return $valid;
}
همانطور که گفته شد در حال حاضر میزان خریدهای قبلی کاربر براساس وضعیت “تکمیل شده” محاسبه میگردد. در صورتی که نیاز دارید تا وضعیتهای دیگر ووکامرس را به این بررسی اضافه کنید، کافی است بخش زیر را در کد بالا پیدا کنید.
$customer_orders = wc_get_orders( array(
'customer_id' => $user_id,
'status' => array( 'completed' ), // Only consider orders with completed status
) );
سپس آن را با بخش زیر عوض کنید. همچنین میتوانید وضعیتهای بیشتری را به بخش status اضافه نمایید.
$customer_orders = wc_get_orders( array(
'customer_id' => $user_id,
'status' => array( 'in-progress', 'completed' ), // Only consider orders with in progress or completed status
) );
در این نوشته یاد گرفتیم که چگونه میتوان کد تخفیف در ووکامرس را براساس خریدهای قبلی کاربر محدود کرد. در صورتی که نظری یا پیشنهادی دارید میتوانید آن را با ما در میان بگذارید. همچنین اگر به دنبال ترفندهای بیشتر هستید، به ترفند وردپرس مراجعه کنید.