Woocommerce Gateway Integration Платежный статус не обновляется

Я установил пользовательский шлюз Woocommerce для внешних платежей, связь с моего сайта к шлюзу работает нормально. Пользователь перенаправляется на шлюз и после оплаты возвращается на (по Woocommerce) определенный URL-адрес возврата.

В документации API шлюза говорится, что платежный шлюз добавит переменную строки запроса к возвращаемому URL. Эта переменная может иметь следующие значения:

response=approved
response=declined
response=error

В документации это пример:
Если backURL = http://www.test.com/return.asp
Тогда ответ будет http://www.test.com/return.asp?response=approved

Для обработки заказа я создал код ниже (сначала только для состояния response=approved)
Однако, статус заказа не обновляется, когда я проверяю его. Я надеюсь, что кто-то может указать мне правильное направление, чтобы найти ошибку.

На вершине шлюза я расширил query_vars:

function add_query_vars_filter( $vars ){
$vars[] = "response";
return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );

После отправки пользователя в шлюз у меня есть эта функция для обработки и обработки строки запроса в обратном URL:

function check_example_response(){

global $woocommerce;

$transaction_id = get_query_var( 'response' );

$order          = new WC_Order( $order_id );

// check if payment was successful
if ($transaction_id == 'approved') {

//Update order status
$order->update_status( 'processing', 'Payment received, your order is currently being processed.' );

//Add admin order noote
$order->add_order_note('Payment Via Example Gateway<br />Transaction ID: '.$order);

//Add customer order note
$order->add_order_note('Payment Received.<br />Your order is currently being processed.<br />We will be shipping your order to you soon.<br />Transaction ID: '.$order, 1);

$message = 'Thank you for shopping with us.<br />Your transaction was successful, payment was received.<br />Your order is currently being processed.';
$message_type = 'success';
}

// Reduce stock levels
$order->reduce_order_stock();

// Empty cart
WC()->cart->empty_cart();
}}

Я также зарегистрировал эту функцию с:

add_action( 'woocommerce_api_wc_example', array( $this, 'check_example_response' ) );

WordPress также не дает никаких подсказок в режиме отладки, так что я сейчас очень расстроен и надеюсь, что кто-нибудь может мне помочь.

Спасибо!

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]