Активируйте пользовательскую кнопку, как только продукт будет добавлен в корзину на странице одного продукта Woocommerce. - PullRequest
0 голосов
/ 13 ноября 2018

На страницах отдельных продуктов Woocommerce я добавил пользовательскую кнопку, используя хук woocommerce_after_add_to_cart.При нажатии / нажатии кнопки кнопка перенаправляет клиента к оформлению заказа.

Но чтобы клиент не нажимал кнопку до добавления товара в корзину, я добавил следующее: if ( WC()->cart->get_cart_contents_count() != 0 ) { кfunction.

У меня такой вопрос: как сделать так, чтобы эта кнопка была всегда доступна, но неактивна, пока товар не будет добавлен в корзину?Как сделать его «серым» (не активным), пока в корзине нет товара?

Вот мой полный код:

add_action('woocommerce_after_add_to_cart_button, 'instant_checkout');
function instant_checkout() {
$checkout_url = WC()->cart->get_checkout_url();
if ( WC()->cart->get_cart_contents_count() != 0 ) {
echo '<a href="'.$checkout_url.'" class="single_add_to_cart_button button alt">Instant Checkout</a>'; } }

Спасибо за любую помощь по этому вопросу.

1 Ответ

0 голосов
/ 13 ноября 2018

Далее будет отображаться пользовательская отключенная кнопка после добавления в корзину… Когда продукт будет добавлен в корзину, он будет включен и связан со страницей оформления заказа:

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

    $href = ''; // Initializing
    $class = ' disabled'; // Initializing

    // Continue only if cart is not empty
    if ( ! WC()->cart->is_empty() ) {
        // Loop through cart items
        foreach( WC()->cart->get_cart() as $item ) {
            // When product is in cart
            if( $item['product_id'] == $product->get_id() ){
                $href  = ' href="'.wc_get_checkout_url().'"'; // Add the link to the button
                $class = ''; // Remove "disabled" class
                break; // Stop the loop
            }
        }
    }
    // Button output
    echo '<a'.$href.' class="single_add_to_cart_button button alt'.$class.'">'.__("Instant Checkout").'</a>';
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...