@Valery23

Как сделать редирект с кнопки “Buy now” на страницу оформления заказа woocommerce?

Есть сайт на wordpress с плагином woocommerce. Делаю функционал кнопки "Купить сейчас", который при нажатии кнопки, должен отправлять товар в корзину и автоматически переходить на страницу "Оформить заказ". Приведу получившийся код.
Рядом с кнопкой "Добавить в корзину" я разместил кнопку:

<button type="submit" name="add-to-cart" value="<?php echo esc_attr($product->get_id()); ?>" class="single_add_to_cart_button button alt" id="buy_now_button">
<?php echo esc_html('Buy Now'); ?>
</button>
<input type="hidden" name="is_buy_now" id="is_buy_now" value="0" />


В файл functions.php я вставил следующее:

function buy_now_submit_form() {
 ?>
  <script>
      jQuery(document).ready(function(){
          // listen if someone clicks 'Buy Now' button
          jQuery('#buy_now_button').click(function(){
              // set value to 1
              jQuery('#is_buy_now').val('1');
              //submit the form
              jQuery('form.cart').submit();
          });
      });
  </script>
 <?php
}
add_action('woocommerce_after_add_to_cart_form', 'buy_now_submit_form');


add_filter('woocommerce_add_to_cart_redirect', 'redirect_to_checkout');
function redirect_to_checkout($redirect_url) {
  if (isset($_REQUEST['is_buy_now']) && $_REQUEST['is_buy_now']) {
     global $woocommerce;
     $redirect_url = wc_get_checkout_url();
  }
  return $redirect_url;
}


В итоге, в корзину добавляется, но редиректа на страницу оформления заказа нет. Лишь перезагружается товар (если находимся внутри товара), либо отправляет внутрь товара (если находимся на категории товара). Подскажите, что нужно исправить или модернизировать?
  • Вопрос задан
  • 389 просмотров
Пригласить эксперта
Ответы на вопрос 1
@maksam07
С этим компонентом не работал, но случайно не будет ли работать код, типа такого:
<?php
function buy_now_submit_form() {
?>
<script>
	jQuery(document).ready(function(){
		// listen if someone clicks 'Buy Now' button
		jQuery('#buy_now_button').click(function(){
			// set value to 1
			jQuery('#is_buy_now').val('1');
			//submit the form
			//jQuery('form.cart').submit();
			location.href = <?php echo wc_get_checkout_url(); ?>
		});
	});
</script>
<?php
}
add_action('woocommerce_after_add_to_cart_form', 'buy_now_submit_form');
?>

Скорее всего не будет, но вдруг такой пример натолкнет еще на какие-то мысли
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы