یه راهی واسه حل این مشکل پیدا کردم. اما همچنان یه گیر هایی داره.
راهکار اینه که یه کد تو function.php اضافه بشه برای غیر فعال کردن پرداخت تو صفحۀ checkout، تا بعد از اون، سفارش به حالت "تکمیل شده" در بیاد. اون وقت مدیر می تونه وضعیت سفارش رو به "در انتظار پرداخت" تغییر بده تا لینک پرداخت تو قسمت سفارشات پنل کاربری، بیاد.
اما مشکل اینجاست که بعد از checkout نمی خوام سفارش بره تو وضعیت "تکمیل شده". بلکه می خوام بره به "در انتظار بررسی" یا همون "processing".
کدی که می گفتم تو function.php نوشته می شه:
add_filter( 'woocommerce_cart_needs_payment', '__return_false' );
دنبال راهی می گردم برای اینکه وضعیت رو از حالت تکمیل شده در بیاره یا اصلا وارد این وضعیت نشه.
این کد رو از اینترنت پیدا کردم و یه کم تغییرش دادم، شد این:
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_pending_completed_order', 10, 1 );
function custom_woocommerce_auto_pending_completed_order( $order_id ) {
if ( ! $order_id )
return;
$order = wc_get_order( $order_id );
$cach = get_post_meta($order_id, '_payment_method', false);
foreach ($cach as $key => $value) {
if (empty($value)) {
unset($cach[$key]);
}
}
if (empty($cach)) {
// For completed Orders without any payment methods (with paid status "completed")
if( $order->get_status() === 'completed' ) {
$order->update_status( 'processing' );
}
}
}
منتهی اینم کار نمی کنه. این کد قراره بعد از تبدیل وضعیت به "تکمیل شده" اونو به "در انتظار بررسی" تغییر بده.