Хук и отправка данных Woocommerce после нажатия кнопки "Разместить заказ"
Я ищу способ добавить хук на страницу оформления заказа WooCommerce (http://localhost/checkout). Я хочу отправлять товары корзины, адрес доставки и информацию о пользователе на другую страницу, например http://localhost/hooking, после нажатия кнопки "Разместить заказ" для дальнейших целей. Возможно ли это и как это сделать?

Для этих трех возможностей:
Если вы действительно хотите сделать это при оформлении заказа, вам нужно использовать хук:
Однако я рекомендую использовать хук:
woocommerce_order_status_completed
Это гарантирует, что заказ будет завершен перед отправкой информации.
Чтобы получить информацию перед оформлением платежа, вы всегда можете использовать:
woocommerce_before_checkout_billing_form
Если это все еще не работает, вы можете проверить список хуков:
https://docs.woocommerce.com/wc-apidocs/hook-docs.html
Тогда у вас будет что-то вроде:
add_action( 'woocommerce_order_status_completed', 'wc_send_order_to_mypage' );
function wc_send_order_to_mypage( $order_id ) {
$shipping_add = [
"firstname" => $order->shipping_first_name,
"lastname" => $order->shipping_last_name,
"address1" => $order->shipping_address_1,
"address2" => $order->shipping_address_2,
"city" => $order->shipping_city,
"zipcode" => $order->shipping_postcode,
"phone" => $order->shipping_phone,
"state_name" => $order->shipping_state,
"country" => $order->shipping_country
];
//из объекта $order вы можете получить всю информацию о товарах и т.д.
//выше приведен простой пример работы
//ваш код для отправки данных
}
Поскольку конечная цель - иметь собственную платежную систему, я рекомендую ознакомиться с этим руководством, которое объясняет, как интегрировать собственный платежный шлюз:
https://www.skyverge.com/blog/how-to-create-a-simple-woocommerce-payment-gateway/

Как насчет использования этого хука: woocommerce_review_order_after_submit. Проблема в том, что моя страница http://localhost/hooking — это php-страница. Я пробовал добавить код типа global $woocommerce;
$items = $woocommerce->cart->get_cart();
function process_payment($order_id) {
$order = new WC_Order($order_id);
return array('result' => 'success', 'redirect' => $order->get_checkout_payment_url( true ));
}
но, кажется, это не работает

Код, который я вам дал, должен быть в плагине или в functions.php вашей темы, и в этой функции wc_send_order_to_mypage
вы делаете POST-запрос на свою php-страницу, например

Спасибо, но как я могу получить список товаров и передать его на mypage
?

Если вы не знаете, как сделать редирект в php, вам не стоит кодить что-то подобное. Посмотрите вот это: https://www.skyverge.com/blog/how-to-create-a-simple-woocommerce-payment-gateway/
