Как в магазине woocommerce добавить страницу с проверкой введенных данных между корзиной и оплатой?

173
02 февраля 2020, 00:50

Есть магазин на woocommerce.

Хочу сделать функционал в котором объединить страницы корзины cart и оформления заказа ckechout (товар + поля адреса + выбор метода оплаты), чтобы покупатель затрачивал минимально усилий для оплаты товара.

А затем он попадал на промежуточную страницу подтверждения заказа по принципу как реализовано в данном плагине WooCommerce Review Order

Работаю по визуальному гайду Для реализации данной задачи перенес из страницы checkout в cart поля адреса клиента вот так

<form name="checkout" method="post" class="checkout woocommerce-checkout" action="<?php echo esc_url( wc_get_checkout_url() ); ?>" enctype="multipart/form-data">
<?php $fields = WC()->checkout()->get_checkout_fields( 'billing' );
foreach ( $fields as $key => $field ) {
    woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );
}
$fields = WC()->checkout()->get_checkout_fields( 'shipping' );
foreach ( $fields as $key => $field ) {
    woocommerce_form_field( $key, $field, $checkout->get_value( $key ) );
} ?>
</form>

И метода оплаты вот так:

<div id="order_review" class="woocommerce-checkout-review-order">
    <?php do_action( 'woocommerce_checkout_order_review' ); ?>
</div>

Работает, но перебрасывает сразу на thank you page. Если оставить метод оплаты на странице checkout, то будет показывать ошибку заполнения данных адресных полей покупателя. Метод оплаты из checkout_order_review можно исключить таким способом:

remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );

Но, на какой хук тогда повесить? Здесь у меня глобальный затык в каком направлении двигаться. Сможете помочь?

READ ALSO
PHP замена тега другим тегом

PHP замена тега другим тегом

Подскажите, допустим у меня есть такая структура в html:

141
Почему при отправке XML в cdek, выдает ошибку 400?

Почему при отправке XML в cdek, выдает ошибку 400?

Пытаю отправить XML POST запросом по API в CDEK выдает ошибку: 400 Bad Request, служба поддержки помочь не захотела, сказали только что xml составлен правильно`

142
Как передать значение GET через header(Location)?

Как передать значение GET через header(Location)?

Столкнулся с такой проблемой: Если пользователь находится на странице, у которой есть параметр GET, как напримерphp?article=51 и хочет авторизоваться...

151