WooCommerce оплаты полный крюк

После долгих поисков я нашел этот пост:

Хук WooCommerce для действий «после оплаты завершен»

в котором говорится о создании веб-хуков в woocommerce для уведомления сценария о том, что ... что-то ... не имеет большого значения, что.

Я также прочитал все, что могу найти в документации по woocommerce.

но мне нужна какая-то документация или руководство по написанию обработчика на другом конце.

Моя цель - получить уведомление о завершении платежа, а затем переместить пользователя в другой список (список клиентов, а не список потенциальных клиентов) после покупки - я использую PHPlist в качестве менеджера списка. Я уверен, что смогу разобраться с этой частью, если смогу просто заставить слушателя работать ...

Но .. Я не знаю, что отправляет веб-ловушка, как заставить ее отправлять нужные мне данные и что делать со слушателем.

Я тоже нашел это:

https://wordpress.org/support/topic/plugin-woocommerce-excelling-ecommerce-order-id-for-payment-notification-to-external-webservice?replies=4 р >

что - МОЖЕТ быть полезным? я до сих пор не уверен, с чего начать со слушателя, или этот пост еще действителен, учитывая, что ему пару лет ...

Спасибо!

- Аарон

12 голосов | спросил Aaron Trumm 20 52015vEurope/Moscow11bEurope/MoscowFri, 20 Nov 2015 02:45:37 +0300 2015, 02:45:37

3 ответа


0

woocommerce_payment_complete ловушка запускается, когда платеж завершен. Единственная передаваемая переменная - это идентификатор заказа, хотя из него можно получить объект заказа и, в конечном итоге, пользователя.

add_action( 'woocommerce_payment_complete', 'so_payment_complete' );
function so_payment_complete( $order_id ){
    $order = wc_get_order( $order_id );
    $user = $order->get_user();
    if( $user ){
        // do something with the user
    }
}
ответил helgatheviking 20 52015vEurope/Moscow11bEurope/MoscowFri, 20 Nov 2015 10:42:07 +0300 2015, 10:42:07
0

с помощью @helgatheviking и @Scriptonomy я остановился на этом коде, и в woocommerce-> gt; settings-> gi-; api-> webhooks НИКАКОЙ не включен webhook:

add_action( 'woocommerce_payment_complete', 'so_payment_complete' );
function so_payment_complete( $order_id ){  
  $order = wc_get_order( $order_id );
  $billingEmail = $order->billing_email;
  $products = $order->get_items();

foreach($products as $prod){
  $items[$prod['product_id']] = $prod['name'];
}

$url = 'http://requestb.in/15gbo981';
// post to the request somehow
wp_remote_post( $url, array(
 'method' => 'POST',
 'timeout' => 45,
 'redirection' => 5,
 'httpversion' => '1.0',
 'blocking' => true,
 'headers' => array(),
 'body' => array( 'billingemail' => $billingEmail, 'items' => $items ),
 'cookies' => array()
 )
);

Теперь мне просто нужно написать слушателю :) Это тело запроса, который отправляется (который я вижу на requestb.in):

billingemail=%22aaron-buyer%40thirdoptionmusic.com%22&items%5B78%5D=Cult+Of+Nice&items%5B126%5D=Still&items%5B125%5D=The+Monkey+Set
ответил Aaron Trumm 21 62015vEurope/Moscow11bEurope/MoscowSat, 21 Nov 2015 20:53:43 +0300 2015, 20:53:43
0

Если вы хотите проверить структуру запроса веб-перехватчика, я предлагаю вам перейти на сайт requestb.in и настроить корзину. Это позволяет вам проверить запрос и сформулировать обработчик действий.

Подсказка: запрос webhook отправляет относительную информацию в теле запроса в виде данных в формате JSON. После того как вы расшифруете тело, его легко обойти и извлечь необходимую информацию.

В другом ответе я указываю на ответ @helgatheviking и использую хук woocommerce_payment_complete. Оказавшись в ловушке, запустите POST-запрос curl и вставьте в тело любые зависимости обработчика запросов. Вы извлечете эти зависимости из $order_id.

ответил Scriptonomy 20 52015vEurope/Moscow11bEurope/MoscowFri, 20 Nov 2015 19:40:32 +0300 2015, 19:40:32

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132