Отображение кнопки "Добавить в корзину" для каждого товара на странице категории?

30 авг. 2018 г., 11:45:48
Просмотры: 59.2K
Голосов: 1

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

Как я могу это сделать? Ссылка на страницу oma-fintess.com.ua

0
Все ответы на вопрос 4
0

Вы можете использовать хук WooCommerce woocommerce_after_add_to_cart_button. Этот хук добавит контент после кнопки "Добавить в корзину".

Если покупатель нажмет на эту кнопку, товар будет добавлен в корзину, и покупатель будет перенаправлен на страницу оформления заказа.

Добавьте следующий код в файл functions.php вашей дочерней темы:

/* Создаем кнопку "Купить сейчас" динамически после кнопки "Добавить в корзину" */
    function add_content_after_addtocart() {
    
        // получаем ID текущего товара/записи
        $current_product_id = get_the_ID();
    
        // получаем товар по ID
        $product = wc_get_product( $current_product_id );
    
        // получаем URL страницы оформления заказа
        $checkout_url = WC()->cart->get_checkout_url();
    
        // выполняем только для простых товаров
        if( $product->is_type( 'simple' ) ){
            echo '<a href="'.$checkout_url.'?add-to-cart='.$current_product_id.'" class="buy-now button">Купить сейчас</a>';
            //echo '<a href="'.$checkout_url.'" class="buy-now button">Купить сейчас</a>';
        }
    }
    add_action( 'woocommerce_after_add_to_cart_button', 'add_content_after_addtocart' );
27 сент. 2020 г. 15:27:54
2
<a href="<?php the_permalink(); ?>" class="more">Подробнее</a><?php
if($available){?><a href="<?php
                $add_to_cart = do_shortcode('[add_to_cart_url id="'.$post->ID.'"]');
                echo $add_to_cart;
?>" class="more">Купить сейчас</a>
                    <?php 
                }

Этот код решает мою проблему так, как ожидалось.

Ссылка на документацию WooCommerce

30 авг. 2018 г. 18:37:52
Комментарии

Можете объяснить, куда именно нужно вставить этот код?

bokan bokan
25 июн. 2020 г. 23:35:48

Насколько я помню, этот код нужно разместить в шаблоне страницы товара.

Twissell Twissell
27 июн. 2020 г. 15:27:25
2

Вот простое решение для этого.

$product_object = wc_get_product( $product_id );
echo '<a href="' . esc_url( $product_object->add_to_cart_url() ) . '" class="buy-now button">' . esc_html__( 'Купить сейчас', 'text-domain' ) . '</a>';
22 мар. 2021 г. 12:11:03
Комментарии

Должен быть принятым ответом.

Loosie94 Loosie94
16 июн. 2021 г. 15:40:09

Спасибо @Loosie94

Өлзийбат Нансалцог Өлзийбат Нансалцог
19 июн. 2021 г. 11:41:43
4

Убедитесь, что опция "Включить AJAX кнопки добавления в корзину в архивах" включена в разделе WooCommerce > Настройки > Товары > Отображение.

Также проверьте, что следующий код добавлен в файл функций вашей темы.

add_action( ‘woocommerce_after_shop_loop_item’, ‘woocommerce_template_loop_add_to_cart’, 10 );
30 авг. 2018 г. 13:07:33
Комментарии

@pratik-pratel Нет, у меня это вообще не работает в моём случае. Возможно, вы упустили какую-то часть кода при вставке? Я предполагаю, что мне следует использовать <?php echo do_shortcode('[add_to_cart id="'.$post->ID.'"]'); ?> но как я могу применить стиль кнопки к этому шорткоду?

Twissell Twissell
30 авг. 2018 г. 13:28:28

Попробуйте так: [add_to_cart id="27" style="border-right:1px solid #ccc"]

Pratik Patel Pratik Patel
30 авг. 2018 г. 13:37:38

Если вы переопределяете существующие стили, вам нужно написать: .woocommerce .product .add_to_cart_button.button{ background-color: #333333; color: #FFFFFF; }

Pratik Patel Pratik Patel
30 авг. 2018 г. 13:41:39

@pratik-pratel Могу предположить, что вы скопировали и немного изменили ваш совет из https://jonathanbossenger.com/adding-the-cart-button-to-your-divi-shop-pages/, не так ли?

Twissell Twissell
30 авг. 2018 г. 16:25:36