Здравствуйте, суть вопроса вот в чем. Мне нужно сделать возможность сделать заказ из кастомной формы, где только телефон и имя. И после заполнения этой формы и выбора товара в селекте, сразу отправлять в шлюз. В общем и целом фишка работает, но как оказалось потому что я был залогинен. В случае обычного пользователя, редирект идёт в пустую корзину по ссылке checkout. Подскажите куда копать? Код использую следующий:
$variant_id = $_POST['count'];
$address = array(
'first_name' => $_POST['name'],
'phone' => $_POST['phone'],
);
$order = wc_create_order();
$order->add_product(wc_get_product( $variant_id ), 1 );
$order->set_address( $address, 'billing' );
$order->set_address( $address, 'shipping' );
$order->calculate_totals();
update_post_meta( $order->get_id(), '_payment_method', 'rbspayment' );
update_post_meta( $order->get_id(), '_payment_method_title', 'Альфабанк' );
WC()->session->order_awaiting_payment = $order->get_id();
$available_gateways = WC()->payment_gateways->get_available_payment_gateways();
$result = $available_gateways[ 'rbspayment' ]->process_payment( $order->get_id() );
if ( $result['result'] == 'success' ) {
echo $result['redirect'];
exit;
}
exit;
Форму отправляю Аяксом, и если я авторизован кидает в гейт, если нет в пустую корзину, с дополнительным сообщением мол ваша корзина пуста оплачивать нечего.