Дополнительный продукт Woocommerce Add To Cart, который перенаправляет к оформлению заказа. - PullRequest
0 голосов
/ 25 февраля 2019

Мне нужно, чтобы клиент мог выбирать между добавлением в корзину, продолжением покупки, добавлением в корзину и перенаправлением к оформлению заказа.Другими словами, я добавляю дополнительную кнопку на страницу продукта.

Будучи новичком в WooCommerce, я изо всех сил пытаюсь заставить вводить кол-во функций.Это работает нормально, если вы покупаете только один, но не при добавлении более одного (кол-во).

Кроме того, я не понимаю, как добавить поддержку переменных продуктов, но это может быть отдельный вопрос?(извините, если так).

Вот код, который я использую:

add_action( 'woocommerce_after_add_to_cart_button', 'add_content_after_addtocart' );
function add_content_after_addtocart() {
    $current_product_id = get_the_ID();
    $product = wc_get_product( $current_product_id );
    $checkout_url = WC()->cart->get_checkout_url();
    if( $product->is_type( 'simple' )) { ?>
        <script>
        jQuery(function($) {
            $(".custom-checkout-btn").on("click", function() {
                $(this).attr("href", function() {
                    return this.href + '&quantity=' + $('input.qty').val();
                });
            });
        });
        </script>
        <?php
        echo '<a href="'.$checkout_url.'?add-to-cart='.$current_product_id.'" class="single_add_to_cart_button button alt">Buy &amp; Checkout</a>';
    } 
}

Есть какие-либо данные о том, где я ошибаюсь?Вся помощь, которую я могу получить, ценится.

1 Ответ

0 голосов
/ 25 февраля 2019

В вашем коде есть некоторые ошибки ... Попробуйте следующее:

add_action( 'woocommerce_after_add_to_cart_button', 'add_custom_addtocart_and_checkout' );
function add_custom_addtocart_and_checkout() {
    global $product;

    $addtocart_url = wc_get_checkout_url().'?add-to-cart='.$product->get_id();
    $button_class  = 'single_add_to_cart_button button alt custom-checkout-btn';
    $button_text   = __("Buy &amp; Checkout", "woocommerce");

    if( $product->is_type( 'simple' )) :
    ?>
    <script>
    jQuery(function($) {
        var url    = '<?php echo $addtocart_url; ?>',
            qty    = 'input.qty',
            button = 'a.custom-checkout-btn';

        // On input/change quantity event
        $(qty).on('input change', function() {
            $(button).attr('href', url + '&quantity=' + $(this).val() );
        });
    });
    </script>
    <?php
    echo '<a href="'.$addtocart_url.'" class="'.$button_class.'">'.$button_text.'</a>';
    endif;
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы).Должно работать.

...