Intereting Posts
Автоматический скрипт обновления php / mysql с использованием XML / CSV / FTP возможные символы base64 url ​​safe function Laravel, получите последний идентификатор вставки, используя Eloquent MAMP / Symfony: MAMP переопределяет параметр date.timezone от php.ini, Symfony не работает JavaScript-эквивалент PHP in_array () Как я могу обнаружить незападных персонажей? Обновление данных без удаления старых файлов с кодом CodeIgniter Установка RabbitMQ PHP: Неустранимая ошибка: Class 'AMQPConnection' не найден Предотвращать отправку HTML-данных в текстовые поля формы PHP для поиска внутри 30 000 текстовых файлов Laravel разделяет параметры $ _GET PHP PDO проверяет, существует ли таблица с определенным именем в базе данных mySQL PHP: Как добавить начальные нули / нулевые дополнения для float через sprintf ()? Как загрузить шаблон из полного пути в движок шаблонов TWIG Неустранимая ошибка: вызов неопределенной функции: imagecreate ()

Woocommerce добавить в корзину кнопку перенаправить на проверку

Я создал электронную коммерцию, используя плагин woocommerce. Я продаю только подписку, поэтому страница «/ cart /» бесполезна. Я пытаюсь избавиться от него, чтобы, когда мой клиент нажал кнопку «Добавить в корзину», он попадает на страницу проверки.

вы можете использовать фильтр в functions.php:

add_filter ('add_to_cart_redirect', 'redirect_to_checkout'); function redirect_to_checkout() { global $woocommerce; $checkout_url = $woocommerce->cart->get_checkout_url(); return $checkout_url; } 

он, похоже, не работает с ajax, но он работает с отдельными страницами продукта, и я думаю, что вы используете

В последних версиях WooCommerce (> = 2.1) функцию можно упростить как:

 function redirect_to_checkout() { return WC()->cart->get_checkout_url(); } 

В настройках WooCommerce есть опция, позволяющая включить эту функцию:

Возможность перенаправления посетителей на страницу корзины

Просто войдите в свою панель администрирования WP> WooCommerce> Catalog и выберите опцию. Надеюсь, это поможет!

Я нашел простое решение, которое работает как магия.

  1. Как уже упоминалось @Ewout, установите флажок «Переадресация на страницу с корзиной после успешной добавки».
  2. Woocommerce> Настройки> Оформить заказ (вкладка) – там, где вы должны выбрать страницы для корзины и выписки, выберите страницу проверки как страницу корзины (изображение прилагается).

Вот и все. работает на меня. введите описание изображения здесь

@RemiCorson опубликовал это краткое, но полезное руководство:

http://www.remicorson.com/woocommerce-skip-product-cart-pages/

Он упоминает тот же фильтр, что и @Ewout выше,

 add_filter ('add_to_cart_redirect', 'redirect_to_checkout'); function redirect_to_checkout() { global $woocommerce; $checkout_url = $woocommerce->cart->get_checkout_url(); return $checkout_url; 

}

но одна строка кода выделяется и имеет большое значение для моего текущего проекта woocommerce:

Существует прямая связь, которую пользователь может использовать для автоматического обхода страницы продукта. http://your-site.com/?add-to-cart=37

«37» будет заменен вашим идентификатором продукта.

Это было полезно для меня, чтобы устранить ненужные шаги и напрямую подключить пользователей к проверке с домашней страницы и других страниц или сообщений, не связанных с woocommerce.

Фильтр add_to_cart_redirect устарел в WooCommerce 2.6. Вместо этого используйте woocommerce_add_to_cart_redirect .

Добавьте это в свои функции. Php:

 add_filter ('woocommerce_add_to_cart_redirect', function() { return WC()->cart->get_checkout_url(); } ); 

На странице магазина, если вы хотите использовать ajax и перенаправить toghether. Второй метод, только когда есть какое-то условие, вы можете использовать этот фильтр и оставить параметр Woocommerce включенным ajax:

 add_filter('woocommerce_loop_add_to_cart_link', array( $this, 'add_quantity_input' ), 4, 2); 

удалить атрибут класса ajax_add_to_cart и изменить значение href на страницу URL- ajax_add_to_cart для проверки;

В моем случае шаблона:

 public function add_quantity_input($text = null, $product = null) { global $product, $woocommerce; if ( $text != null and $product != null ) { if(ismycondition($product->id)) { $s = explode('class="', $text); $s[2]=str_replace('ajax_add_to_cart', '', $s[2]); $text = implode('class="', $s); $text = preg_replace('/<a(.*)href="([^"]*)"(.*)>/','<a$1href="'.$woocommerce->cart->get_checkout_url().'"$3>', $text); } } return $text; } 

Надеюсь, что эта помощь.

Ни одно из решений, на самом деле не разработанных для меня, фильтр add_to_cart_redirect запускался на каждой странице, а не только на тележке. Я сделал некоторые изменения в предлагаемом ответе.

 add_filter ('add_to_cart_redirect', 'redirect_to_checkout'); function redirect_to_checkout() { if(is_cart()){ $checkout_url = WC()->cart->get_checkout_url(); ?> <script> location = '<?=$checkout_url?>'; </script> <?php } }