TopdiR
@TopdiR
PHP/WordPress developer

WooCommerce: как добавить кнопку «Купить сейчас» в дополнение к кнопке «Добавить в корзину»?

Здравствуйте уважаемые знатоки!

Появилась задача добавить на страницу товара кнопку "Купить сейчас" для быстрого перехода на страницу оплаты в дополнение к кнопке "Добавить в корзину". После длительного гугления обнаружил только пару материалов, где предлагается переделать кнопку "Добавить в корзину" в "Купить сейчас".

Подойдет любое решение: плагин или функция.
  • Вопрос задан
  • 14090 просмотров
Пригласить эксперта
Ответы на вопрос 5
mirusck
@mirusck
Вот код для того, что бы все кнопки "Добавить в корзину" переадресовывали на страницу оплаты. К сожалению, не работает с ajax-based кнопками (их можно отключить в Woocommerce --> Settings --> Catalog --> Enable AJAX add to cart buttons on archives):

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


Это так, навскидку. Подумаю на досуге, как сделать параллельно две кнопки. Пока мне видится вариант примерно такой:
1. Во всех темплейтах добавить кастомные кнопки
2. В зависимости от того, на какой странице: каталога или одного продукта, кнопки должны быть то ли урлами (example.com/?add-to-cart=486&buy_now), то ли сабмит баттонами <input type="submit" name="buy_now" ..... />
3. Кастомный обработчик $_POST и $_GET, который вручную, используя классы типа WC_Cart, WC_Product и тд, добавляет товар в корзину и редиректит на чекаут

add_action('init', 'add_to_cart_redirect');
function add_to_cart_redirect() {
    if ( isset($_GET['buy_now']) && ....  || isset($_POST['buy_now'] ) {
        // тут добавление в корзину и тд
        // .....
        // .....

        wp_safe_redirect( $woocommerce->cart->get_cart_url() );
        exit;
    }
}


Тут, опять же, будет спорна обработка аяксовых запросов, для нее нужно будет дописывать отдельный обработчик.
Ответ написан
Комментировать
sergeyrudnev
@sergeyrudnev
Жмакаешь «купить сейчас» и сразу попадаешь в корзину, где лежит, скажем, один товар? Если да, то можно скопировать функционал кнопки «добавить в корзину» и ссылки формировать так, чтобы при нажатии сразу переходило к оплате, например.
Ответ написан
Комментировать
TopdiR
@TopdiR Автор вопроса
PHP/WordPress developer
@sergeyrudnev там у них не все так просто. Код кнопки не содержит в себе ссылку в чистом виде.
Ответ написан
Комментировать
@Macsimus
Сделайте с помощью конактной формы в PopUp окне
Можно использовать 2 плагина: form-lightbox и contact-form-7
Вставляете шоткод от contact-form-7 в form-lightbox, а шоткод генерируемый form-lightbox вставляете в то место где хотите видеть кнопку - купить сейчас. Шоткод в PHP вставляется через <?php echo do_shortcode('ШОТКОД'); ?>

Если код будет на страничке товара, то можно вытянуть и URL товара чтоб видно было какой товар заказывается.
Ответ написан
Комментировать
попробуйте плагин «Buy one click WooCommerce»
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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