Это похоже на веб-крючок для пользовательского платежного шлюза WooCommerce. В этом случае вам, вероятно, не нужен _wc_
в функции add_action
.
Пример:
$this->id = 'paymentplugin';
add_action( 'woocommerce_api_' . $this->id , array( $this, 'webhook' ) );
function webhook() {
header( 'HTTP/1.1 200 OK' );
echo "callback";
die();
}
Вам также не нужно заканчивать выполнение , потому что это делает WooCommerce, следовательно, вы, вероятно, захотите удалить функцию die()
:
$this->id = 'paymentplugin';
add_action( 'woocommerce_api_' . $this->id , array( $this, 'webhook' ) );
function webhook() {
header( 'HTTP/1.1 200 OK' );
echo "callback";
}
Еще одна вещь, которую следует учитывать, это заголовки . Я не знаю, нужно ли их отправлять, но я недавно создал собственный шлюз, в котором есть только этот код в webhook, и он отлично работает:
function webhook() {
$order_id = isset($_GET['order_id']) ? $_GET['order_id'] : null;
$order = wc_get_order( $order_id );
$order->payment_complete();
wc_reduce_stock_levels($order_id);
}
Поставщик платежа в основном отправляет IPN, содержащий идентификатор заказа, который я ранее отправил, поэтому я могу подтвердить, что заказ был оплачен.
Вот ссылка на пользовательский шлюз, который я недавно создал, надеюсь, он поможет:
https://github.com/usainicola/weldpay-woocommerce