مرتب کردن سفارشات ووکامرس بر اساس تاریخ پرداخت

مرتب کردن سفارشات ووکامرس بر اساس تاریخ پرداخت

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

برای حل این مشکل، با استفاده از کد زیر می‌توانید لیست سفارشات ووکامرس را بر اساس تاریخ پرداخت (و نه تاریخ ثبت) مرتب کنید.

if ( is_admin() ) {
	add_filter( 'pre_get_posts', 'woo_sort_orders_list_by_pay_date' );
}

function woo_sort_orders_list_by_pay_date( $query ) {

	$screen = get_current_screen();

	if ( ! ( $screen->id == 'edit-shop_order' ) ) {
		return $query;
	}

	$query->set( 'order', 'DESC' );
	$query->set( 'meta_key', '_date_paid' );
	$query->set( 'orderby', 'meta_value' );

	return $query;
}

توجه داشته باشید این کد صرفا برای سایت‌های مناسب هست که فقط پرداخت آنلاین دارند. استفاده از این کد برای سایت‌هایی که روش‌های دیگری در کنار پرداخت آنلاین دارند (مثل پرداخت در محل) توصیه نمی‌شود.

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

نشانی ایمیل شما منتشر نخواهد شد.