• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Код кнопки добавить в корзину

Image CMS

cfcs

Новичок
#1
Подскажите как вставить код кнопки прямо на странице товара, в описание товара.
Сверху огромное поле с кнопкой я убил, и как вариант хочу вставлять прямо в текст товара код с добавлением товара.
Может есть какой плагин который добавляет красивую кнопку купить?
Или есть плагин который даст возможность координально поменять дизайн страницы товара, может есть готовые?
И еще нельзя ли как-то добавлять картинки к товару и управлять где и как их отображать? А то по дефолту можно добавить миниатюру, а все остальное уже в описание товара.
 

Stork.71

Гуру
Местный
#2
Я сам нуб и особо ни на что не претендую. Но все же...
Есть такая штука, как шорткоды - небольшие куски, которые можно вставить в любое описание товара, статью, страницу и т.д. При редактировании описания помимо основных кнопок форматирования (жирность, списки, цитаты, и т.д.) появляется 2 кнопки с этими шорткодами (синенькая и фиолетовая, с надписью "woo"). Синяя - для шорткодов магазина, фиолетовая - для обычных заманух форматирования, типа модных списков, табов, таблиц, разделителей и др.
Скорее всего, вам подойдут варианты из фиолетовой кнопки "Цена товара\кнопка корзины" или "Продукт по артикулу\ID"
В тексте появится приблизительно такая запись (не забудьте вписать в кавычках после id= нужный id нужного товара) :
Код:
[add_to_cart id="82" sku=""]
[product id="82" sku=""]
На странице товара это будет выглядеть красивенько.
Под синенькой кнопкой есть еще возможность вставлять разные-разные красивые кнопки, но под них можно подключить только ссылку, а вот прописать под нее чтобы она работала на добавление в корзину, а не просто пересылала куда-то - я не знаю.

Подробнее о шорткодах - http://docs.woothemes.com/document/woocommerce-shortcodes/
 

D&B

Администратор
Команда форума
Местный
#3
Фиолетовая это шорткоды плагина WooCommerce, а вот синенькая это у Вас видимо тема Wootique стоит. От неё и шорткоды. Если тему сменить будут другие или вообще не будет в зависимости от темы или отдельного плагина для шорткодов.
 

Stork.71

Гуру
Местный
#5
подозреваю, что синяя будет как минимум во всех официальных WOO-шных темах, или нет?
 

cfcs

Новичок
#6
у меня синей нет, но я тему артистиром делал

еще бы html код кнопки, чтоб в слайдер вставить один раз, а не на каждую картинку
 
Последнее редактирование модератором:

alter

Новичок
#8
Скажите пожалуйста как в обычном тексте описания товара сделать ссылку добавления товара что бы она имела вид например (Добавить) и при ее нажатии товар находящийся на по этой ссылке добавился?
Покажите пример.
 

Stork.71

Гуру
Местный
#9
Описано здесь, ищите "Add to cart".
Быстро (не вручную) - в панели редактора WYSIWYG должна (не всегда) быть кнопка Woocommerce shortcodes, там это есть.
 
#10
Всем привет. Вопрос по теме. После обновления темы и Woocommerce - отображение кнопки add to cart - изменилось.

1. Появилась серая рамка вокруг цены (убрал ее в файле class-wc-shortcodes.php) - 'style' => 'border:4px solid #ccc; padding: 12px;', меняем на 'style' => 'border:0px solid #ccc; padding: 12px;',
2. Отображение цены и кнопки - стало в 2 рядка, что делает таблицы массивными. Сайт по колесем для тележек - если кто подскажет, как задать принудительное отобржение в 1 ряд - буду благодарен.
 

Вложения

Labunsky

Специалист
Местный
#11
как задать принудительное отобржение в 1 ряд
...а если поставить цену за товар на кнопку? Допустим взять шорт-код:
Код:
[button text="999 грн." link="http://###/cart/?add-to-cart=0000&buy_now" style="default" size="normal" target="_blank" display="inline" icon="cart"]
* ### - название сайта
* 0000 - ID товара
!!! оформление шорт-кода зависит от темы магазина.
 
#12
...а если поставить цену за товар на кнопку? Допустим взять шорт-код:
Код:
[button text="999 грн." link="http://###/cart/?add-to-cart=0000&buy_now" style="default" size="normal" target="_blank" display="inline" icon="cart"]
* ### - название сайта
* 0000 - ID товара
!!! оформление шорт-кода зависит от темы магазина.
Тогда в любом варианте прийдеться цены ставить вручную. Тут более 1000 товаров. Раньше, до обновления - было все впорядке.

Спасибо за вариант!


Код:
 * Display a single product price + cart button.
     *
     * @param array $atts Attributes.
     * @return string
     */
    public static function product_add_to_cart( $atts ) {
        global $post;

        if ( empty( $atts ) ) {
            return '';
        }

        $atts = shortcode_atts( array(
            'id'         => '',
            'class'      => '',
            'quantity'   => '1',
            'sku'        => '',
            'style'      => 'border:0px solid #ccc; padding: 12px;',
            'show_price' => 'true',
        ), $atts, 'product_add_to_cart' );

        if ( ! empty( $atts['id'] ) ) {
            $product_data = get_post( $atts['id'] );
        } elseif ( ! empty( $atts['sku'] ) ) {
            $product_id   = wc_get_product_id_by_sku( $atts['sku'] );
            $product_data = get_post( $product_id );
        } else {
            return '';
        }

        $product = is_object( $product_data ) && in_array( $product_data->post_type, array( 'product', 'product_variation' ), true ) ? wc_setup_product_data( $product_data ) : false;

        if ( ! $product ) {
            return '';
        }

        ob_start();

        echo '<p class="product woocommerce add_to_cart_inline ' . esc_attr( $atts['class'] ) . '" style="' . ( empty( $atts['style'] ) ? '' : esc_attr( $atts['style'] ) ) . '">';

        if ( wc_string_to_bool( $atts['show_price'] ) ) {
            // @codingStandardsIgnoreStart
            echo $product->get_price_html();
            // @codingStandardsIgnoreEnd
        }

        woocommerce_template_loop_add_to_cart( array(
            'quantity' => $atts['quantity'],
        ) );

        echo '</p>';

        // Restore Product global in case this is shown inside a product post.
        wc_setup_product_data( $post );

        return ob_get_clean();
    }
 
Сверху Снизу