// Slugs.
                    add_filter( 'pre_term_slug', 'sanitize_title' );
                    add_filter( 'wp_insert_post_data', '_wp_customize_changeset_filter_insert_post_data', 10, 2 );
                    
                    // Mime types.
                    add_filter( 'pre_post_mime_type', 'sanitize_mime_type' );
                    add_filter( 'post_mime_type', 'sanitize_mime_type' );
                    
                    // Meta.
                    add_filter( 'register_meta_args', '_wp_register_meta_args_allowed_list', 10, 2 );
                    
                    // Counts.
                    add_action( 'admin_init', 'wp_schedule_update_user_counts' );
                    add_action( 'wp_update_user_counts', 'wp_schedule_update_user_counts', 10, 0 );
                    foreach ( array( 'user_register', 'deleted_user' ) as $action ) {
                        add_action( $action, 'wp_maybe_update_user_counts', 10, 0 );
                    }

                    // Comment meta.
                    add_action( 'added_comment_meta', 'wp_cache_set_comments_last_changed' );
                    add_action( 'updated_comment_meta', 'wp_cache_set_comments_last_changed' );
                    add_action( 'deleted_comment_meta', 'wp_cache_set_comments_last_changed' );
                    
                    // Post meta.
                    add_action( 'added_post_meta', 'wp_cache_set_posts_last_changed' );
                    add_action( 'updated_post_meta', 'wp_cache_set_posts_last_changed' );
                    add_action( 'deleted_post_meta', 'wp_cache_set_posts_last_changed' );

                    $script_handle = $metadata[ $field_name ];
                    if ( is_array( $script_handle ) ) {
                        if ( empty( $script_handle[ $index ] ) ) {
                            return false;
                        }
                        $script_handle = $script_handle[ $index ];
                    }
                
                    $script_path = remove_block_asset_path_prefix( $script_handle );
                    if ( $script_handle === $script_path ) {
                        return $script_handle;
                    }
                
                    $script_handle     = generate_block_asset_handle( $metadata['name'], $field_name, $index );
                    $script_asset_path = wp_normalize_path(
                        realpath(
                            dirname( $metadata['file'] ) . '/' .
                            substr_replace( $script_path, '.asset.php', - strlen( '.js' ) )
                        )
                    );
                    
                    // Term meta.
                    add_action( 'added_term_meta', 'wp_cache_set_terms_last_changed' );
                    add_action( 'updated_term_meta', 'wp_cache_set_terms_last_changed' );
                    add_action( 'deleted_term_meta', 'wp_cache_set_terms_last_changed' );
                    add_filter( 'get_term_metadata', 'wp_check_term_meta_support_prefilter' );
                    add_filter( 'add_term_metadata', 'wp_check_term_meta_support_prefilter' );
                    add_filter( 'update_term_metadata', 'wp_check_term_meta_support_prefilter' );
                    add_filter( 'delete_term_metadata', 'wp_check_term_meta_support_prefilter' );
                    add_filter( 'get_term_metadata_by_mid', 'wp_check_term_meta_support_prefilter' );
                    add_filter( 'update_term_metadata_by_mid', 'wp_check_term_meta_support_prefilter' );
                    add_filter( 'delete_term_metadata_by_mid', 'wp_check_term_meta_support_prefilter' );
                    add_filter( 'update_term_metadata_cache', 'wp_check_term_meta_support_prefilter' );

                    foreach ( $property_mappings as $key => $mapped_key ) {
                        if ( isset( $metadata[ $key ] ) ) {
                            $settings[ $mapped_key ] = $metadata[ $key ];
                            if ( $textdomain && isset( $i18n_schema->$key ) ) {
                                $settings[ $mapped_key ] = translate_settings_using_i18n_schema( $i18n_schema->$key );
                            }
                        }
                    }
            

Аутсорсинг разработки
на WordPress

Реализуем WordPress-проект, на который у вас не хватает ресурсов, времени или инхаус-экспертизы. Работаем как с целыми проектами, так и с отдельными задачами.

Наши клиенты

Среди компаний и агентств, которые нам доверили воплощение своих ИТ-проектов,
есть как средний бизнес, так и международные бренды.

Наша экспертиза

Успешно и профессионально работаем с наиболее востребованными плагинами WordPress,
которые чаще всего фигурируют в технических заданиях проектов.

Advanced Custom Fields

Реализация сложных моделей данных для вашего проекта. Геоданные, репитеры, файлы, изображения, связи и т.д.

WPML

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

Custom Post Type: UI

Создание кастомных типов записей и таксономий. Неограниченная вложенность, сложная логика. Связь с существующими типами.

Yoast

Реализация комплексных SEO-задач — динамические шаблоны заголовков, метаданных, Schema.org и JSON-LD.

WooCommerce

Создание и развитие ecommerce-проектов. Интеграция платежных методов, доставок. Импорт и экспорт товаров, цен и склада.

WP All Import

Импорт любых данных. Как разовый, так и по расписанию. Форматы CSV, JSON, XML, XLS. Сложные логика и фильтры. 1С.

BuddyPress

Создание и развитие проектов для сообществ, социальных сетей или интранета. Личные кабинеты. Авторизация через соцсети.

W3 Total Cache

Оптимизация скорости загрузки, запросов к базе данных, полное и избирательное кэширование. Минификация CSS, JS, HTML-кода.

...а так же их альтернативы и сотни других популярных плагинов.

Кроме того, если это диктуют требования безопасности проекта, мы готовы работать вообще без сторонних плагинов!

Что мы умеем делать

За годы работы мы накопили компетенции для успешного решения
большинства типичных задач — как простых, так и сложных.

Разработка шаблонов (тем)

Превратим в полноценный шаблон ваш дизайн из Figma или Photoshop. Доработаем существующий шаблон.

Разработка плагинов

Разработаем с нуля плагин, решающий ваши конкретные задачи.

Разработка фильтров и хендлеров

Создадим фильтры и обработчики, для тонкой модификации WP Loop или событий на сайте.

Разработка шорткодов

Создадим шорткоды для вызова в контенте записей сложных функций.

Локализация шаблонов (тем)

Настройка string translation и модификация WP Loop под языковые версии.

Локализация плагинов

Сделаем ваши плагины совместимыми с WPML или другими инструментами мультиязычности.

Локализация интерфейсов в панели администратора

Настройка мультиязычности для тех элементов панели управления, где она не предусмотрена.

Настройка локализаций ACF

Настройка мультиязычности для моделей данных, созданных с помощью Advanced Custom Fields.

Повышение скорости загрузки

Ускорим загрузку сайта. Настроим lazy loading, CDN, скорость ответа сервера, браузерный и серверный кэши.

Оптимизация результатов теста Google Page Speed

Доведем ваш сайт до "зеленой зоны" результатов теста. Поможем с оптимизацией под мобильные устройства.

Оптимизация кода и запросов к БД

Поможем выявить "бутылочное горлышко" в вашем коде и переработаем его в сторону улушчения быстродействия.

Настройка бэкапов (Disaster Recovery Strategy)

Настроим бэкапы в "облако" или на удаленный сервер. Отладим процессы быстрого восстановления после аварии.

Шаблоны заголовков

Динамические заголовки, зависящие от сложных условий. Использование переменных в метаданных и заголовках.

Гео-домены

Настроим конфигурацию WordPress для работы с поддоменами по городам, странам или языкам.

Настройка SEO для мультиязычных сайтов

Метаданные, hreflang, редиректы для мультиязычных сайтов (как в "папках", так и на разных доменах).

Разметка schema.org и JSON-LD

Подготовим и внедрим разметку для товаров и каталогов, страниц, "хлебных крошек", документов и изображений.

Подключение методов оплаты

Подключим к вашему интернет-магазину новые методы оплаты, в том числе и международные системы.

Подключение способов доставки

Интегрируем магазин с API транспортных компаний. Настроим калькуляторы расчета стоимости доставки.

Подключение к маркетплейсам

Настроим автоматическую выгрузку ваших товаров в маркетплейсы. Настроим сбор и работу с заказами.

1С: импорт данных и экспорт заказов

Настроим обмен данными с 1С — выгрузка заказов из магазина, импорт товарной номенклатуры, цен и склада.

Доработка REST API

Доработаем существующий встроенный WordPress REST API под ваши задачи.

Разработка мобильного API

Создадим RESTful API для взаимодействия WordPress и вашего мобильного приложения.

Интеграция с CRM или маркетинговыми платформами

Интегрируем формы на сайте с Битрикс24, amoCRM, retailCRM, Salesforce, Hubspot и др.

Веб-аналитика

Настроим передачу данных в ваши аналитические системы: Яндекс.Метрику, Google Analytics, Roistat и др.

Ценовая политика

Стоимость часа сотрудника: от 1500 руб.

Готовы работать как по модели Fixed Price, так и по Time & Material.

Есть скидки в зависимости от объема часов.

Почему с нами удобно агентствам

Выполняем задачи точно и в срок. Всегда на связи.

Умеем работать с крупными проектами.

Разговорный английский. Готовы работать с международными командами.

Соблюдаем NDA и можем работать White Label.

Контактные данные

ООО "АВРОРА ИНТЕРНЕТ"

410012, г.Саратов, ул.Большая Казачья, д.49/65, оф.505

[email protected]

+7 (8452) 40-20-80

Давайте обсудим проект

Примеры проектов

Несколько примеров WordPress-проектов, успешно реализованных нами.
Предпочтение отдано сложным проектам или крупным заказчикам.

О нас

Наша компания объединяет опытных WordPress-инженеров
из России, Беларуси, Украины и Казахстана.

15 лет работаем на рынке
14 лет опыта с WordPress
26 человек в штате
200+ проектов успешно реализовано

Подробнее о нашем стэке

Backend

PHP, Laravel, Symphony, MySQL, MariaDB, Redis

Frontend

HTML, CSS, Javascript, Typescript, jQuery, Vue, Ionic

Server

nginx, Apache, LiteSpeed, Zabbix

QA

Manual, PHPUnit, JMeter, Selenium, Browserstack

API & Integrations

Postman, REST API, SOAP, XML, Json

CI/CD

Github, Github Actions, Docker, Docker Compose, WP CLI

Cloud & Serverless

AWS, Яндекс.Облако, GCP, Digital Ocean, CloudFlare