Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Облака: ожидание vs реальность
Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
RomanFink

Роман Финк

WordPress developer
  • 13
    вклад
  • 0
    вопросов
  • 18
    ответов
  • 56%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как сделать отправку запроса после формирования товара Woocommerce?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    add_action( 'woocommerce_new_order', 'your_function', 1, 1 ); //Хук создания нового заказа
    function your_function( $order_id ) {
        // Ваш код здесь
    }
    Ответ написан 29 дек. 2020
    3 комментария
    Нравится 3 комментария
  • Какой есть плагин с пошаговым выбором и выводом с учетом выбранного?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    Стало интересно, нашел вот это:
    https://docs.woocommerce.com/document/composite-pr...
    https://www.studiowombat.com/blog/how-to-create-mu...
    Multistep Product Configurator for WooCommerce
    Ответ написан 23 дек. 2020
    Комментировать
    Нравится 1 Комментировать
  • Woocoommerce, применить купон через php?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    Используйте WC()->cart->apply_coupon('КУПОН');
    Есть статья, может поможет: Автоматическое применение купона в корзине
    Ответ написан 21 дек. 2020
    Комментировать
    Нравится 1 Комментировать
  • Как в выводе суммы всех товаров в корзине, сделать разделитель тысяч?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    https://www.php.net/manual/ru/function.number-form...
    Ответ написан 19 дек. 2020
    2 комментария
    Нравится 1 2 комментария
  • Как переместить краткое описание товара?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    В файле variable.php данные вариации выводятся функцией woocommerce_single_variation через хук woocommerce_single_variation, с приоритетом 10. Следом выводится форма с кнопкой с приоритетом 20. Просто поменяйте приоритет, и описание выведется после кнопки.
    remove_action('woocommerce_single_variation','woocommerce_single_variation',10);
    add_action('woocommerce_single_variation','woocommerce_single_variation',30);
    Ответ написан 18 дек. 2020
    3 комментария
    Нравится 2 3 комментария
  • Как отправить клиенту ссылку на информацию о заказе woocomerce?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    Так можно добавить ссылку на страницу с информацией о заказе в письмо клиенту. Чтобы просмотреть эту страницу, клиент должен быть авторизирован на сайте магазина.

    add_action( 'woocommerce_email_before_order_table', 'fink_link_to_order', 25, 4);
    function fink_link_to_order( $order, $sent_to_admin, $plain_text, $email ) {
        if( false === $sent_to_admin ) {
    
            echo '<a href="' . $order->get_view_order_url() . '">Ваш заказ №'. $order->get_order_number() .' на сайте</a>';
    
        }
    
    }


    5fd22852adb19806988450.png
    Ответ написан 10 дек. 2020
    Комментировать
    Нравится 1 Комментировать
  • Как сделать простой форум на wordpress?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    https://bbpress.org/
    Ответ написан 08 дек. 2020
    1 комментарий
    Нравится 1 комментарий
  • Как добавить кастомное поле на страницу checkout wordpress?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    https://docs.woocommerce.com/document/tutorial-cus...
    Ответ написан 08 дек. 2020
    2 комментария
    Нравится 2 комментария
  • Как в Wordpress для всех страниц добавить дочерние страницы с одинаковым URL?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    Указываете в атрибутах страницы страницу родитель (page-1, page-2 и т.п.). В url страницы указываете details. И будут у вас страницы отображаться так, как вы хотите (site.ru/page-1/details, site.ru/page-2/details и т.д.)
    Ответ написан 07 дек. 2020
    2 комментария
    Нравится 1 2 комментария
  • Как кнопку "Добавить в корзину" отсоединить от кнопки с выбором количества товаров?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    Как вариант можно сделать так:
    1. Скрыть поле кол-ва через css

    .single-product .quantity .qty {
        display: none;
    }


    2. Убрать вывод кнопки добавления по дефолту и через хук вывести в нужном месте страницы

    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
    add_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 45 ); //В сторфронт выводим после мета описания


    3. Добавить через хук новое поле кол-ва куда нужно и через js менять скрытое поле кол-ва рядом с кнопкой добавления в корзину

    add_action('woocommerce_single_product_summary', 'fink_new_qty_add_to_cart', 30 ); //Добавляем новое поле кол-ва туда где была кнопка добавления в корзину
    function fink_new_qty_add_to_cart() {
    
        echo '<input type="number" class="new_qty" value="1">';
    
        ?>
    
        <script>
        jQuery(document).ready(function($) {
    
            $('.new_qty').on('change', function(e) {
                var qty = $(this);
                $('.quantity .qty').val(qty.val());
            });
    
        });
        </script>
    
        <?php
    }
    Ответ написан 07 дек. 2020
    1 комментарий
    Нравится 1 1 комментарий
  • Как изменить расположение товаров в Woocommerce в индивидуальном порядке?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    В товарах есть сортировка 5fc5f49f8ce03467444915.png
    Ответ написан 01 дек. 2020
    Комментировать
    Нравится 1 Комментировать
  • Как в WooCommerce, когда покупатель оформил заказ в теме письма был указан город, область?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    Добавьте свой placeholder для письма и укажите их в теме письма в настройках WooCommerce.

    add_filter( 'woocommerce_email_format_string', 'fink_add_email_placeholders', 10, 2 );
    function fink_add_email_placeholders( $string, $email ) {
        $order = $email->object;
        
        $placeholders = array(
            '{order_city}'      => $order->get_billing_city(), // Город заказа
            '{order_state}'   => $order->get_billing_state(), //Область заказа
        );
    
        return str_replace( array_keys( $placeholders ), array_values( $placeholders ), $string );
    }
    Ответ написан 30 нояб. 2020
    3 комментария
    Нравится 3 комментария
  • WordPress. WooCommerce. Вывод количество позиций товаров в корзине?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    Была похожая задача, кол-во уникальных товаров в корзине можно посчитать например так: count( WC()->cart->get_cart() );
    В теме storefront кол-во товаров отображается в мини корзине в шапке, код лежит в функции storefront_cart_link в файле storefront-woocommerce-functions.php
    Поищите где в шаблоне выводится кол-во товаров в корзине через WC()->cart->get_cart_contents_count и замените на count( WC()->cart->get_cart() )
    Ответ написан 28 нояб. 2020
    1 комментарий
    Нравится 1 комментарий
  • Как вывести изображение товара на странице каталога?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    Изображение товара в цикле вывода каталога выводится экшеном woocommerce_template_loop_product_thumbnail, который висит на хуке woocommerce_before_shop_loop_item_title. Вы можете заменить функцию вывода изображения своей и вывести что угодно.

    Например так:

    remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10 );
    add_action( 'woocommerce_before_shop_loop_item_title', 'fink_template_loop_product_thumbnail', 10 );
    
    function fink_template_loop_product_thumbnail() {
        global $product;
    
        $image_size = apply_filters( 'single_product_archive_thumbnail_size', $size );
        $product_id = $product->get_id();
    
        $image = get_the_post_thumbnail_url( $product_id, $image_size ); //Получаем url картинки
    
        if ( $image ) {
            $image = str_replace( ' ', '%20', $image );
            $image_webp = str_replace( ['.png', '.jpg', '.jpeg', '.gif'], '.webp', $image );
            echo '<div class="product__catalog-img"><picture><source srcset="' . esc_url($image_webp) . '" type="image/webp"><img src="' . esc_url($image) . '" alt="' . esc_attr( $product->get_name() ) . '"></picture></div>';
        }
    
    }
    Ответ написан 26 нояб. 2020
    2 комментария
    Нравится 1 2 комментария
  • Как выводить поля Woocomerce в любом месте сайта?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    Например так:
    $args = array(
        'product_cat' => 'product_category', //Указываем категорию
        'post_type' => 'product',
        'posts_per_page' => -1,
        'orderby' => 'menu_order',
        'order' => 'ASC',
    );
    
    $products = new WP_Query( $args );
    
    while ( $products->have_posts() ) : $products->the_post();
        global $product;
        echo $product->get_id();
    endwhile;


    Ну и здесь все остальное:
    https://www.businessbloomer.com/woocommerce-easily...
    Ответ написан 25 нояб. 2020
    Комментировать
    Нравится 1 Комментировать
  • Как получить список товаров с одинаковым атрибутом?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    Например так:
    $args = array(
        'post_type'      => array('product'),
        'post_status'    => 'publish',
        'posts_per_page' => -1,
        'order' => 'ASC',
        'tax_query'      => array( array(
            'taxonomy'        => 'pa_color', // ID атрибута
            'field'           => 'slug',
            'terms'           =>  array('blue'), // Значение(я) атрибута
            'operator'        => 'IN',
        ) )
    );
    Ответ написан 25 нояб. 2020
    Комментировать
    Нравится Комментировать
  • Как по аналогии вывести атрибуты вариативного товара?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    В этом array и есть эти атрибуты. Просто переберите их, и выведите. Чтобы получить атрибуты вариативного товара, нужно использовать $product->get_variation_attributes();
    Например это код выведет все атрибуты и их значения у вариативного товара.
    global $product;
    
    $attributes = $product->get_variation_attributes();
    
    foreach ($attributes as $attribute => $values) {
    
        echo $attribute; //Id атрибута
        echo wc_attribute_label( $attribute, $product ); //Label атрибута
            
        foreach ($values as $value) { //Выводим возможные значения этого атрибута
            
            echo $value; //Значение атрибута
        
        }
    
    }
    Ответ написан 24 нояб. 2020
    1 комментарий
    Нравится 1 комментарий
  • Здравствуйте, как можно добавить к цене товара /шт и /м в woocommerce wordpress?

    RomanFink
    Роман Финк @RomanFink
    WordPress developer
    Вы можете использовать для этого фильтр woocommerce_get_price_html.
    Примерно так: (код нужно разместить в файле functions.php вашей темы, а лучше дочерней темы).
    add_filter( 'woocommerce_get_price_html', 'fink_add_label_to_price', 10, 2 );
    
    function fink_add_label_to_price( $price, $product ) {
    
        $price = $price.' /шт.';
        return $price;
    
    }
    Ответ написан 24 нояб. 2020
    Комментировать
    Нравится Комментировать
Оценили как «Нравится»
Самые активные сегодня
  • Sanes
    Sanes
    • 13 ответов
    • 0 вопросов
  • Василий Банников
    • 11 ответов
    • 0 вопросов
  • MEDIOFF
    • 10 ответов
    • 0 вопросов
  • EPIDEMIASH
    Владимир Юрченков
    • 7 ответов
    • 1 вопрос
  • sergey-gornostaev
    Сергей Горностаев
    • 6 ответов
    • 0 вопросов
  • opium
    Пума Тайланд
    • 6 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации