Мне нужно, чтобы WooCommerce подталкивал платежи, сделанные чеком, в статус «обработка», а не в состояние «на удержании». Я попробовал приведенный ниже фрагмент, но, похоже, он не дал эффекта.
Вот мой код:
add_filter( 'woocommerce_payment_complete_order_status', 'sf_wc_autocomplete_paid_orders' );
function sf_wc_autocomplete_paid_orders( $order_status, $order_id ) {
$order = wc_get_order( $order_id );
if ($order->status == 'on-hold') {
return 'processing';
}
return $order_status;
}
Как мне этого добиться?
Благодарю.
Вот функция, на которую вы смотрите woocommerce_thankyou
крюк:
add_action( 'woocommerce_thankyou', 'cheque_payment_method_order_status_to_processing', 10, 1 );
function cheque_payment_method_order_status_to_processing( $order_id ) {
if ( ! $order_id )
return;
$order = wc_get_order( $order_id );
// Updating order status to processing for orders delivered with Cheque payment methods.
if ( get_post_meta($order->id, '_payment_method', true) == 'cheque' )
$order->update_status( 'processing' );
}
Этот код находится в файле function.php вашей активной дочерней темы (или темы), а также в любом файле плагина.
Это проверено и работает.
Связанная тема: WooCommerce: автоматическое заполнение оплаченных заказов (в зависимости от способов оплаты)
Других решений пока нет …