• Как отобразить категории с картинками на wordpress?

    wfantastic
    @wfantastic
    увлечен wordpress
    добавьте картинки к категориям, потом используйте этот код:
    <?php
    $cats = get_categories();
    foreach($cats as $cat) { 
        $cat_thumb_id = get_term_meta( $cat->term_id, 'thumbnail_id', true );
        $cat_thumb = wp_get_attachment_image_url( $cat_thumb_id, 'full' );
        echo '<a href="' . get_category_link( $cat->term_id ) . '"><img src="'.$cat_thumb.'" alt="'.esc_html( $cat->name ).'"></a>';
    }
    ?>
    Ответ написан
    Комментировать
  • Можно ли сделать форму поиска товара по атрибутам и категориям?

    wfantastic
    @wfantastic
    увлечен wordpress
    Есть плагин который решает все эти задачи, но выглядит как одно поле и в нем можно выбрать некоторые параметры. плагин Ajax Search Pro
    Ответ написан
  • Как изменить цены на товары в зависимости от категории (добавить цену со скидкой)?

    wfantastic
    @wfantastic
    увлечен wordpress
    Привет, лучше использовать плагин, иначе все эти условия придется прописывать в функции, что сложнее контролировать. В яндексе если поискать, можно найти как получить про версию с большой скидкой.
    Ответ написан
    3 комментария
  • Как создать и редактировать woocommerce.css в дочерней теме?

    wfantastic
    @wfantastic
    увлечен wordpress
    Чтобы создать файл woocommerce.css в дочерней теме, вам нужно выполнить следующие шаги:

    Создайте новый файл с именем woocommerce.css в папке вашей дочерней темы.

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

    add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
    function my_theme_enqueue_styles() {
        wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
        wp_enqueue_style( 'woocommerce-style', get_stylesheet_directory_uri() . '/woocommerce.css', array('parent-style') );
    }


    Теперь вы можете внести изменения в woocommerce.css без применения !important, и они должны применяться к вашим страницам WooCommerce.
    .single_add_to_cart_button {
        background-color: #ff0000;
    }
    Ответ написан
    Комментировать
  • Есть ли способ добавить data-атрибут инпуту на странице оформления заказа в Woocommerce?

    wfantastic
    @wfantastic
    увлечен wordpress
    Да, вы можете добавить data-атрибуты в инпут на странице оформления заказа в Woocommerce, используя фильтр "woocommerce_checkout_fields". Этот фильтр позволяет вам изменять поля на странице оформления заказа и добавлять к ним атрибуты.

    Пример кода для добавления data-атрибута в инпут с именем "billing_first_name":
    add_filter( 'woocommerce_checkout_fields', 'add_data_attribute_to_checkout_field', 10, 1 );
    function add_data_attribute_to_checkout_field( $fields ) {
        $fields['billing']['billing_first_name']['custom_data_attribute'] = 'custom_value';
        return $fields;
    }
    Ответ написан
  • Как отобрать у всех пользователей разрешения на установку и удаление плагинов?

    wfantastic
    @wfantastic
    увлечен wordpress
    Добрый день!
    function disable_plugin_management_for_all_users( $allcaps, $caps, $args ) {
        if ( isset( $caps[0] ) ) {
            if ( $caps[0] === 'install_plugins' || $caps[0] === 'activate_plugins' || $caps[0] === 'delete_plugins' ) {
                $allcaps[$caps[0]] = false;
            }
        }
        return $allcaps;
    }
    add_filter( 'user_has_cap', 'disable_plugin_management_for_all_users', 10, 3 );
    Ответ написан
    2 комментария
  • Как лучше хранить данные в БД WordPress и выполнять экспорт/импорт в файл?

    wfantastic
    @wfantastic
    увлечен wordpress
    Для вашего случая, я бы рекомендовал использовать свою таблицу базы данных, созданную через $wpdb. Это позволит вам более гибко управлять структурой таблицы и производительностью.

    Как хранить данные

    Я бы рекомендовал создать две таблицы: одну для хранения кодов, а другую для хранения связанных с ними данных. В таблице кодов вы можете хранить только уникальный код, а в таблице данных вы можете хранить все связанные с ним данные, включая дату и другие фиксированные значения. Это упростит поиск и фильтрацию данных в будущем.

    Как делать экспорт/импорт в файл:

    Для экспорта и импорта данных в файл вы можете использовать стандартные функции экспорта и импорта WordPress, такие как export_wp() и import_wp(). Они позволяют экспортировать и импортировать содержимое WordPress, включая пользовательские типы записей и метаданные. Если вы используете свою таблицу, вы можете создать свои собственные функции экспорта и импорта, которые будут работать с вашей таблицей.

    Что касается того, как делать экспорт/импорт в файл раз в день, вы можете использовать планировщик задач WordPress, чтобы запускать скрипты экспорта и импорта в определенное время. Например, вы можете использовать функцию wp_schedule_event() для установки периодического запуска задач.

    Контроль размера таблицы:

    Чтобы контролировать размер таблицы, вы можете создать функцию удаления старых записей, которая будет удалять записи, которые старше заданного периода. Эту функцию можно запускать периодически через планировщик задач. Например, вы можете использовать функцию $wpdb->query() для удаления записей старше года.
    Ответ написан
    1 комментарий
  • Как получить отдельно цену и цену скидки у вариацианного товара WooCommerce?

    wfantastic
    @wfantastic
    увлечен wordpress
    В WooCommerce для вывода отдельно обычной цены и цены распродажи вариаций товара можно использовать следующий код:

    <?php
    // получаем объект продукта
    $product = wc_get_product( $product_id );
     
    // проверяем, является ли продукт вариативным
    if ( $product->is_type( 'variable' ) ) {
        // получаем вариации продукта
        $variations = $product->get_available_variations();
     
        // выводим цены для каждой вариации
        foreach ( $variations as $variation ) {
            // получаем объект вариации
            $variation_obj = wc_get_product( $variation['variation_id'] );
     
            // выводим обычную цену и цену распродажи
            echo 'Обычная цена: ' . $variation_obj->get_regular_price() . '<br/>';
            echo 'Цена распродажи: ' . $variation_obj->get_sale_price() . '<br/>';
        }
    }
    ?>

    Данный код получает объект продукта, проверяет, является ли он вариативным, затем получает вариации продукта и выводит обычную цену и цену распродажи для каждой вариации.
    Ответ написан
    Комментировать
  • Как изменить разметку атрибут товара?

    wfantastic
    @wfantastic
    увлечен wordpress
    Для этого надо установить плагин дизайна атрибутов. Их полно, посмотрите на ru.wordpress.com
    В стандартном woocoommerce этого нет.
    Ответ написан
    Комментировать
  • Как сделать единицы измерения товара woocommerce?

    wfantastic
    @wfantastic
    увлечен wordpress
    есть же плагин единица измерения
    https://wordpress.org/plugins/woocommerce-unit-of-...

    Инструкция, которую вы написали предполагает, что у каждого товара должны быть созданы варианты. Это обычный вариативный товар, но вместо цвета или размера используется атрибут единицы измерения.
    Ответ написан
    Комментировать
  • Как проверить в какой категории находится товар на странице checkout?

    wfantastic
    @wfantastic
    увлечен wordpress
    Для проверки категории товара в корзине, можно использовать метод get_cart() класса WC_Cart, который вернет массив всех товаров в корзине.
    Чтобы получить идентификаторы категорий для каждого товара в корзине, можно использовать метод get_category_ids() объекта WC_Product для каждого товара в корзине. Этот метод вернет массив идентификаторов всех категорий, к которым относится товар.

    Пример кода для проверки наличия товара в категории "Мастерклаcсы" (id=31) и отображения соответствующих полей на странице оформления заказа:
    <?php
    // Получаем содержимое корзины
    $cart_items = WC()->cart->get_cart();
    
    // Флаг, показывающий наличие товара в категории "Мастерклаcсы"
    $has_workshop_product = false;
    
    // Перебираем все товары в корзине
    foreach ( $cart_items as $cart_item ) {
        // Получаем объект товара
        $product = $cart_item['data'];
    
        // Получаем идентификаторы категорий товара
        $category_ids = $product->get_category_ids();
    
        // Проверяем наличие товара в категории "Мастерклаcсы"
        if ( in_array( 31, $category_ids ) ) {
            $has_workshop_product = true;
            break;
        }
    }
    
    // Отображаем соответствующие поля на странице оформления заказа
    if ( $has_workshop_product ) {
        // Поля для товаров в категории "Мастерклаcсы"
        // ...
    } else {
        // Стандартные поля для других товаров
        // ...
    }
    ?>


    В этом примере мы получаем содержимое корзины с помощью метода get_cart(), а затем перебираем все товары в корзине. Для каждого товара мы получаем идентификаторы его категорий с помощью метода get_category_ids() и проверяем, содержится ли идентификатор категории "Майстеркласы" в этом списке. Если такой товар найден, мы устанавливаем флаг $has_workshop_product в true.

    Затем мы проверяем значение флага $has_workshop_product и отображаем соответствующие поля на странице оформления заказа. Вместо комментариев // ... вы должны указать соответствующий код для отображения полей.
    Ответ написан
  • Как отоброзить 2 изображения в карточке товаров?

    wfantastic
    @wfantastic
    увлечен wordpress
    В этом коде мы используем функцию wp_get_attachment_image_src для получения массива данных об изображении. Мы берем первый элемент массива (URL изображения) и используем его дважды для вывода двух изображений. Если переменные $product_image_url_1 и $product_image_url_2 содержат значения, то выводятся два изображения.

    function fink_template_loop_product_thumbnail() {
        global $product;
    
        $product_image_urls = wp_get_attachment_image_src(get_post_thumbnail_id($product->get_id()), "large");
        $product_image_url_1 = $product_image_urls[0];
        $product_image_url_2 = $product_image_urls[0];
    
        if ($product_image_url_1 && $product_image_url_2) { ?>
            <img src="<?php echo $product_image_url_1; ?>" />
            <img src="<?php echo $product_image_url_2; ?>" />
        <?php
        }
    }
    Ответ написан
  • Как добавить отзывы с товара на все товары того же атрибута?

    wfantastic
    @wfantastic
    увлечен wordpress
    Для добавления отзыва о продукте в WooCommerce, который будет продублирован во все продукты с одинаковым атрибутом, можно воспользоваться плагином "WooCommerce Product Reviews Pro".

    Следуйте этим шагам:

    Установите и активируйте плагин "WooCommerce Product Reviews Pro".

    Откройте страницу настроек плагина "WooCommerce Product Reviews Pro" в разделе "WooCommerce" -> "Settings" -> "Product Reviews Pro".

    На странице настроек плагина вы найдете раздел "Product Reviews Pro Duplicate Reviews". Включите опцию "Enable Duplicate Reviews".

    Далее, укажите атрибут продукта, по которому вы хотите дублировать отзывы, выбрав соответствующее значение в поле "Attribute to duplicate reviews".

    Нажмите кнопку "Save changes".

    Теперь, когда пользователь оставит отзыв на продукте, соответствующему выбранному атрибуту, отзыв будет автоматически дублироваться на все другие продукты с этим же атрибутом.

    У Saphali тоже есть для этого дела плагин, который учитывает Вашу ситуацию, стоит 1500 руб. Поищите
    Ответ написан
    Комментировать
  • Как добавить электронную карту скидок (qr code, barcode) в ЛК пользователя Woocommerce?

    wfantastic
    @wfantastic
    увлечен wordpress
    Заказать у программиста.
    Это надо делать через купоны в woocommerce в формате EAN13 (штрихкод),
    Вы можете заранее сгенерировать номеров скидочных карт, присваивать их зарегистрированным покупателям или напечатать на картах и вы давать карту, которую покупатель тоже регистрирует.
    Нужно сделать плагин, который свяжет этот номер с аккаунтом.
    Изначально лучше занести все эти номера в 1c и потом уже работать с ними в woocommerce или сделать синхронизацию.
    Я видел подобное решение, но не могу вспомнить, это платный плагин был.
    Ответ написан
  • Как убрать редирект на страницу «спасибо» на сайте wordpress?

    wfantastic
    @wfantastic
    увлечен wordpress
    Проверьте файл .htaccess в папке сайта, возможно редирект прописан там.
    Можете его удалить и заново пересоздать.
    Если не помогает. проверьте файл functions.php в теме вашего сайта, возможно там записана функция переадресации.
    Отключите плагин формы, удалите страницы спасибо, в разделе Страницы.
    Можете попробовать отключить все плагины и включить только основные, поочерёдно, чтоб понять какой плагин переадресовывает, если ничего из прошлого не помогло.
    Ответ написан
    Комментировать
  • Как вывести описание категории товаров woocommerce?

    wfantastic
    @wfantastic
    увлечен wordpress
    Вы используете Elementor или WpBakery? Для этого надо зайти в шаблон страницы категории и добавить виджет описания. Так и называется, описание.
    Ответ написан
    Комментировать
  • Как исправить ошибку "Mixed Content"?

    wfantastic
    @wfantastic
    увлечен wordpress
    вручную перенести сайт, не через плагины. Удалить весь кеш и почистить свой браузер тоже. Перегенерировать все изображения на сайте, проверить права доступа на файлы. Других советов вам никто не даст без доступа к сайту и самому коду, а это платные услуги.
    Ответ написан
    Комментировать
  • Как изменить content в archive products widget, если перенаправляет на appereance-customize? В чем проблема?

    wfantastic
    @wfantastic
    увлечен wordpress
    Потому, что количество отображаемых элементов в сетке в архивах настраивается в настройках wordpress.
    Если вы хотите что-то индивидуальное, нужно создавать функцию для этого.
    Ответ написан
  • Как направить пользователя с кнопки "Add to cart" на страницу "Product Single Page", вместо корзины в woocommerce?

    wfantastic
    @wfantastic
    увлечен wordpress
    Так вроде и так при добавлении товара в корзину на корзину не переадресовывает в настройках woocommerce это есть.
    или используйте функцию
    add_filter( 'woocommerce_add_to_cart_redirect', 'redirect_to_product_page' );
    function redirect_to_product_page() {
        global $woocommerce;
        $product_url = get_permalink( get_the_ID() );
        return $product_url;
    }
    Ответ написан
    Комментировать
  • Как перехватить количество товара из корзины Woocommerce и вывести в уведомление?

    wfantastic
    @wfantastic
    увлечен wordpress
    jQuery(function($) {
        // Цепляемся за событие adding_to_cart
        $(document.body).on('adding_to_cart', function(event, button) {
            // Выцепляем инициатора события (ссылка/кнопка)
            var $btn = $(button[0]);
    
            // Пытаемся найти в вёрстке название товара и количество
            var product_title = $btn.parents('li.product').find('.woocommerce-loop-product__title').text();
            var product_qty = $btn.parents('li.product').find('.input-text.qty.text').val();
    
            if (product_title && product_qty) {
                // Формируем шаблон попапа
                var tpl = '';
                tpl += '<p>' + product_qty + ' шт. товара "' + product_title + '" добавлено в корзину</p>';
                tpl += '<div>';
                tpl += '<a class="button" onclick="jQuery.unblockUI();">Продолжить</a>';
                tpl += '<a href="/shop/cart/" class="button alt">Оформить</a>';
                tpl += '</div>';
    
                // Выводим шаблон в модальное окно.
                // Используем blockUI из WooCommerce
                $.blockUI({
                    message: tpl,
                    timeout: 4000,
                    css: {
                        width: '300px',
                        border: 0,
                        padding: 30
                    }
                });
            }
        });
    });
    Ответ написан