Put High-Value Orders On Hold for Review
Sends paid orders above an amount to "On hold" instead of "Processing", so you can check them for fraud before shipping.
Opens WPIDE on
Code
$wpide_review_amount = 1000; // Orders at or above this total are held.
add_filter( 'woocommerce_payment_complete_order_status', function ( $status, $order_id, $order = null ) use ( $wpide_review_amount ) {
$order = $order instanceof WC_Order ? $order : wc_get_order( $order_id );
if ( 'processing' === $status && $order && (float) $order->get_total() >= $wpide_review_amount ) {
$order->add_order_note( sprintf( 'Held for manual review: order total is %s or more.', wc_price( $wpide_review_amount ) ) );
return 'on-hold';
}
return $status;
}, 10, 3 );
Notes
The payment is still taken and only the status changes, so move checked orders to Processing yourself.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.