Ответы пользователя по тегу WordPress
  • Как новый тип записи в WordPress вывести при поиске?

    Vagrant0610
    @Vagrant0610 Автор вопроса
    PHP разработчик
    Проблема решена! Большое спасибо Василий Пупкин за его ответ в комментариях к вопросу. Направил в нужную сторону. Теперь подробнее о том с чем была связана проблема. В моём случае, в файле functions.php использовался фильтр (так же, есть хук) 'pre_get_posts'. Он срабатывает перед каждым обращением в базу данных с использование класса WP_Query. И изменял тип поста среди которых происходил поиск.
    Код в котором и была проблема
    function excludePages($query)
    {
    	if($query->is_search)
    	{
    		$query->set('post_type', 'post');
    	}
    	return $query;
    }
    add_filter('pre_get_posts','excludePages');

    Решение довольно простое. Необходимо установить проверку на нахождение в админ панели.
    Исправленный код
    function excludePages($query)
    {
    	if($query->is_search) // Если запрос в БД отправляется в результате поиска по сайту
    	{
    		if(!is_admin()) $query->set('post_type', 'post'); // Если пользователь не находится в панели администратора
    	}
    	return $query;
    }
    add_filter('pre_get_posts','excludePages');

    Возможно кому-то поможет мой ответ в будущем.
    Ответ написан
    Комментировать
  • Как исправить ошибку PHP "Cannot modify header information - headers already sent by"?

    Vagrant0610
    @Vagrant0610 Автор вопроса
    PHP разработчик
    Проблема решена! Была она в плагине WP Super Cache. На время доработки сайта я отключил функцию кеширования в плагине. В следствии чего у меня появлялась такая ошибка. При отключении плагина, ошибка не пропадала. Выяснилось это самым грубым образом. Я сделал копию сайта до того как начал заниматься доработками, в копии всё работало. После чего, когда надежда была потеряна, последним рывком было просто взять и грубо заменить все файлы в wp-content файлами копии. В числе этих файлов, вне папки плагинов и тем был файл под названием wp-cache-config.php. В нём находятся генерированные настройки плагина WP Super Cache. И после замены всех файлов в папке wp-content, всё заработало. Ну а далее методом исключения я выяснил что вышеуказанный файл с настройками, содержал в себе как раз отключённую настройку кеширования. Которую я благополучно отключил в середине разработки, что бы она не мешала. После включения этой настройки, всё снова заработало но уже с моими файлами и папками. Надеюсь мой опыт пригодится кому-то, так как потратил на это я почти месяц) занимался даже на работе, дома до 4 утра, на выходных, под коньяк) в общем, дай Бог всем терпения)
    P.S.: Появилась мысль написать небольшой плагин для логирования действий с сайтом, что бы не забывать такие мелочи, но уверен уже что-то такое есть)
    Ответ написан
    Комментировать
  • Как узнать переменную в woprdpress+woocomerce?

    Vagrant0610
    @Vagrant0610
    PHP разработчик
    Если опишете задачу, возможно вам посоветуют как реализовать её наилучшим образом.

    В шаблоне письма впишите следующее:
    // Запишите в $order_id ID заказа.
    $order_id = 86;
    $order = new WC_Order($order_id);
    $address1 = $order->get_shipping_address_1();

    Подробнее о классе WC_Order и о том как получать данные заказа (начиная с метода get_data()).
    Ответ написан
    2 комментария
  • Как настроить передачу цены вариативного товара WooCommerce?

    Vagrant0610
    @Vagrant0610
    PHP разработчик
    Судя по всему у вас изменены настройки вывода в шаблоне или файле function.php. Когда я хочу разобраться в чём проблема, я копирую допустим вот так: <p class="price">, далее открываю notepad++ и включаю поиск в файлах, указываю папку: "\wp-content\plugins\woocommerce" или папку темы, допустим: "\wp-content\themes\shapely". Если соответствий не находится, ищу другие классы или определяющие признаки того места на странице которую хочу настроить. Если учесть что по умолчанию цена выводится в теге <span> а у вас выводится один товар в <p> а другой в <span> то следует по искать именно так как я написал выше: <p class="price"> и первым делом я советовал бы вам поискать в файле function.php в папке темы. А потом уже искать по файлам. Если найдете, смотрите при каких условиях выводится и меняйте на свои.
    Ответ написан
    Комментировать
  • Не приходят письма при новом заказе в WooCommerce, что можно сделать?

    Vagrant0610
    @Vagrant0610 Автор вопроса
    PHP разработчик
    Вопрос решён. Настроил отправку писем через плагин WP Mail SMTP.
    Сделал следующим образом:
    1. Выбрал в настройках "Other SMTP".
    2. Вписал параметры (нашёл на сайте mail.ru) для почтовых программ:
    SMTP Host smtp.mail.ru
    SMTP Port 465
    Encryption None (Выбрать - SSL) TLS
    Auto TLS ON
    Authentication ON
    SMTP Username Knife@mail.ru
    SMTP Password *******************
    3. Очень важный момент! Что у mail, что у yandex и возможно у других почтовых сервисов, отправитель проверсяется на соответствие. По этому в самом верху на странице настроек плагина обязательно укажите тот же самый адрес почты что и в "SMTP Username".
    From Email Knife@mail.ru
    4. Преимущества такой настройки в том что при отправлении писем через такие сервисы, письма имеют безопасные подписи, по этому все письма которые приходят клиентам и вам, не попадают в папку "спам".

    На этом всё. После этого заработала почта в магазине.
    Ответ написан
    3 комментария
  • Почему в WooCommerce не отображаются способы оплаты?

    Vagrant0610
    @Vagrant0610 Автор вопроса
    PHP разработчик
    Вопрос решён. При добавлении товара в корзину со стоимостью 0 рублей, способы оплаты не выводятся :)
    Ответ написан
    Комментировать