Я использую платежный шлюз woocommerce для продажи виртуального продукта, но после успешной оплаты статус изменится на Завершено!
Как изменить статус на Обработка не завершена?
- Я пытался изменить код оплаты, но не работает.
if($queryInfo['StatusCode'] == 10001)
{
$order->update_status('completed');
if (!$this->is_order_complete($order)) {
$this->confirm_order($order, $payment_result_comments);
$oPayment->ConfirmOrder();
}
}
Изменить на:
$order->update_status('processing');
Я изменяю update_status на обработку, все еще не работает:
- Я добавляю код к функциям, все еще не работает.
(1) Первая попытка:
add_action( 'woocommerce_order_status_changed', 'change_order_status_conditionally', 10, 4 );
function change_order_status_conditionally( $order_id, $status_from, $status_to, $order ) {
if( $order->get_payment_method() === 'onepaid' && $status_from === 'completed' ) {
$order->update_status( 'processing' );
}
}
(2) Добавьте этот код к функциям, которые все еще не работают:
add_action( 'woocommerce_payment_complete_order_status', 'custom_woocommerce_auto_complete_order' );
function custom_woocommerce_auto_complete_order( $order_id ) {
if ( ! $order_id ) {
return;
}
$order = wc_get_order( $order_id );
$order->update_status( 'processing' );
}
(3) Добавьте этот код к функциям, которые все еще не работают:
add_action( 'woocommerce_payment_complete', 'custom_woocommerce_auto_complete_order' );
function custom_woocommerce_auto_complete_order( $order_id ) {
if ( ! $order_id ) {
return;
}
$order = wc_get_order( $order_id );
if( $order->has_status( 'completed' ) )
{
$order->update_status( 'processing' );
}
$order = wc_get_order( $order_id );
$order->update_status( 'processing' );
}
Завершите заказ и добавьте комментарии
function confirm_order($order, $comments) {
$order->add_order_note($comments, true);
$order->payment_complete();
}
После оплаты обратного вызова статус изменится на обработку, а не завершен.
Редактировать
Я использую Плагин OnePaid
Его можно загрузить с этой страницы на китайском языке , где вы можете нажать в разделе Wordpress на кнопке загрузки.