اگر سایت فروشگاهی دارید و برای آن کد تخفیف فعال می‌کنید، یکی از راه‌های ترغیب مشتریان، فعال‌سازی کد تخفیف براساس خریدهای قبلی می‌باشد. در واقع شما یک شرطی را هنگام تعریف کد تخفیف به آن اعمال می‌کنید به طوری که اگر کاربر میزان خریدهای قبلیش کمتر از یک مقدار مشخص باشد، قادر به استفاده از کد تخفیف نیست. در این مقاله قرار است نحوه تعریف کد تخفیف براساس مجموع خریدهای قبلی در ووکامرس را به شما آموزش دهیم.

کوپن‌های تخفیف دیجی کالا براساس خریدهای قبلی
دریافت کد تخفیف براساس خریدها و سفارشات قبلی کاربر

فعال سازی کوپن تخفیف براساس میزان خریدهای قبلی

اگر می‌خواهید براساس میزان خریدهای قبلی کاربر کد تخفیف اختصاصی تعریف کنید، کافی است قطعه کد زیر را در فایل 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
) );

در این نوشته یاد گرفتیم که چگونه می‌توان کد تخفیف در ووکامرس را براساس خریدهای قبلی کاربر محدود کرد. در صورتی که نظری یا پیشنهادی دارید می‌توانید آن را با ما در میان بگذارید. همچنین اگر به دنبال ترفندهای بیشتر هستید، به ترفند وردپرس مراجعه کنید.

۴.۷/۵ - (۱۴۶ امتیاز)
افزونه روش‌های حمل و نقل ایران برای ووکامرس WooCommerce Iran Post Shipping

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *