How correctly remove wpml plugin

This artickles will help with it:
wpml.org/documentation/getting-started-guide/language-setup/deleting-languages-and-plugin-data-by-doing-a-wpml-reset-on-your-site/
If you have time out after attempt to delete language, read this:
wpml.org/forums/topic/how-to-delete-language-content-from-database/
sql queries works quickly.

Ошибка 550-5.7.1 при отправке почты на gmail

Из сообщения об ошибке, которое вы получили от Gmail, ясно, что отправляемое
письмо было заблокировано из-за низкой репутации домена отправителя.

Да, использование шифрования почтового домена играет важную роль в повышении
валидности вашей почты.

Gmail использует строгие почтовые фильтры и не редко возникают проблемы при
доставке писем на их почтовые серверы, в случае, если почтовый домен не имеет
достаточный уровень валидности.

Так же стоит обратить внимание, что часто письма могут не доходить до серверов
Gmail из-за отсутствия DKIM подписи, SPF записи для домена, а так же PTR для IP
адреса.

Вы можете протестировать отправку писем с ваших ящиков и проверить, что именно
в вашем случае может снижать легитимность письма. Для этого можете
воспользоваться специальным сервисом:

mail-tester.com/

Если тест показывает хороший результат и правила соблюдены, то можно попробовать пройти https://support.google.com/mail/troubleshooter/2696779?hl=ru&sjid=8537909192587310172-EU&visit_id=638411521223163401-3038626329&rd=2 после этого отправляется запрос в гугл.

Также для информации можно добавить домен в https://postmaster.google.com/

Временные метки wp

Если страницы сайта долго загружаются, то причина может быть в теме оформления wp.
Для анализа скорости работы темы оформления можно добавлять код, который будет логировать временные метки.
И на основе анализа этих меток можно будет оценить время выполнения php с момента вызова functions.php до момента вызова последней строки в footer.php

Файл лога будет доступен в админке в табе логов woocommerce.
В коде добавлен адрес конкретной страницы и условие авторизации пользователя, чтобы другие посетители не попадали в лог.

Disable download .htpasswd file

If you need to disable download .htpasswd file on nginx web server this solution will help.

If you need to disable download all hidden files:

Обновление мини корзины после ajax добавления в корзину

Скрипт ajax_add_to_cart.js  имеет объект response(можно вывести в console.log() для понимания что приходит в ответ), который возвращается после запроса.

При успешном добавлении в нем будет html из шаблона mini-cart.php обернутый в класс widget_shopping_cart_content. Если в шаблоне такой обертки нет, то html миникарт не будет обновляться и будет хранить данные, полученные при загрузке страницы.

При этом в настройках woocommerce должна стоять галочка «Enable ajax on archive, shop pages»

ACF for product tag page

If you need to set custom field for product tag page, this code will help you.

In this example code changing title meta tag for product tag page.

Show regular price in minicart

This code for showing regular price for each product in minicart and subtotal sum. Work with simple and variable products. For bundle products — need corrections.