TopdiR
@TopdiR
PHP/WordPress developer

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

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

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

Подойдет любое решение: плагин или функция.
  • Вопрос задан
  • 14147 просмотров
Пригласить эксперта
Ответы на вопрос 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»
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы