Владелец сайта может предоставить вам доступ к одному из своих сайтов (но не к своему аккаунту, не к биллингу и не к другим сайтам), и вы сможете работать с ним, используя собственную учетную запись Zinn Digital® и бесплатную утилиту командной строки Zinnector®. Данное руководство охватывает обе стороны этого процесса: что делает владелец и что делаете вы.
Если вы ранее не пользовались Zinnector®, в статье Начало работы с Zinnector® описана установка, которая займет около двух минут. Для выполнения инструкций из этого руководства покупать хостинг не требуется.
Для владельца сайта: предоставление доступа к одному сайту
- Откройте сайт в своей панели управления и перейдите в раздел Безопасность.
- В блоке Кто еще может получить доступ к этому сайту выберите Предоставить доступ к этому сайту.
- Введите адрес электронной почты разработчика. Ему еще не обязательно иметь аккаунт: если он никогда не входил в систему, то получит приглашение, и доступ активируется в тот момент, когда он его примет.
- Выберите роль:
- Просмотр — позволяет только просматривать сайт без возможности вносить изменения.
- Редактор — роль, которая обычно необходима разработчику. Позволяет изменять файлы сайта, использовать wp-admin, а также скачивать архив сайта для локальной работы. Этот архив включает базу данных.
- Менеджер — все возможности роли редактора плюс восстановление резервной копии.
- Укажите причину и, если у работы есть срок окончания, дату истечения срока. Доступ просто перестанет действовать в указанную дату; вам не придется вручную отменять его.
- Сохраните изменения.
Какой бы уровень доступа вы ни выбрали, соавтор никогда не сможет удалить сайт, просматривать ваш биллинг или получить доступ к любым другим вашим сайтам.
Что означает «архив включает базу данных»
Редактор или менеджер может скопировать сайт для локальной работы, а копия сайта представляет собой его файлы и базу данных. База данных WordPress хранит все данные, которые ваши посетители оставляли на сайте: имена и адреса электронной почты комментаторов, учетные записи клиентов, заказы и адреса доставки WooCommerce, а также отправленные формы.
Как правило, это именно то, что нужно разработчику: без этих данных он будет тестировать свою тему на пустом сайте. Об этом стоит знать, поскольку речь идет о реальных персональных данных, и их владельцы — это ваши клиенты, а не наши.
Из этого следуют два обстоятельства, и платформа учитывает оба:
- Каждый экспорт фиксируется в вашем журнале аудита. Откройте Журнал аудита и найдите запись
site.backup.exported. В каждой строке указано, кто выполнил экспорт, когда именно и содержал ли этот архив базу данных. Вам не нужно ни о чем спрашивать.
- Вы можете прекратить доступ в любой момент. Отзыв прав происходит мгновенно — см. ниже.
Если вы предпочитаете, чтобы разработчик работал без базы данных, попросите его добавить флаг --no-database при выполнении команды вытягивания (pull); это одна строчка, а остальной процесс работает так же.
Для разработчика: перенос сайта на ваш компьютер
1. Установите Zinnector®
npm install -g zinnector
zinnector --version
Требуется Node.js версии 24 или новее. Команда node --version должна выводить v24 или выше.
2. Войдите в систему под своей учетной записью
zinnector login
Эта команда открывает браузер и выполняет вход с использованием вашей собственной учетной записи Zinn Digital® — той, на которую было отправлено приглашение. Вам никогда не понадобятся пароль владельца, а ему — передавать его вам.
Проверьте доступные вам сайты:
zinnector sites
Вы увидите только те сайты, к которым вам был предоставлен доступ, и ничего больше. Если список пуст, приглашение еще не принято, либо доступ был отозван или его срок истек.
3. Выгрузите сайт локально
zinnector clone client-domain.com
cd client-domain.com
Команда clone создает локальный проект на основе размещенного на хостинге сайта. Она копирует:
wp-content — темы, плагины, му-плагины, языковые файлы и медиафайлы, составляющие собственную разработку сайта;
- базу данных, которая записывается в файл
database.sql внутри проекта.
Ядро WordPress намеренно не копируется (ваша локальная среда выполнения предоставляет нужную версию), как и файл wp-config.php (он содержит пароль к базе данных рабочего сайта), а также любые медиафайлы, вынесенные в объектное хранилище.
При каждом запуске выводится точный отчет о скопированных и пропущенных элементах с указанием их количества. Если вам нужны только файлы, добавьте флаг --no-database.
Проект уже у вас есть и требуется только самая свежая версия? Запустите команду zinnector pull внутри папки проекта.
4. Запустите сайт локально с реальным содержимым
zinnector dev --runtime docker
В среде выполнения Docker эта команда импортирует файл database.sql, изменяет URL сайта на ваш локальный адрес и открывает сайт, содержащий реальные данные клиента. Для входа используйте учетные записи WordPress самого сайта.
Среда выполнения по умолчанию — WordPress Playground, которая не требует Docker — запускается быстрее и не импортирует базу данных; система предупредит об этом, вместо того чтобы тихо запустить пустой сайт. Используйте ее, когда вы работаете над кодом и вам не нужно содержимое сайта.
5. Позаботьтесь о полученной копии
Файл database.sql — это база данных работающего сайта. Zinnector® добавляет его в файл .gitignore вашего проекта сразу при создании, поэтому рассеянная команда git add -A не сможет случайно опубликовать чужих клиентов в репозитории. Не удаляйте эту строку и удалите сам файл, когда работа будет завершена.
Возможности и ограничения для соавторов
| | Просмотр | Редактор | Менеджер | |---|---|---|---| | Просмотр сайта и его настроек | ✔ | ✔ | ✔ | | Изменение файлов, использование wp-admin, деплой | | ✔ | ✔ | | Вытягивание сайта, включая базу данных | | ✔ | ✔ | | Восстановление резервной копии поверх рабочего сайта | | | ✔ | | Удаление сайта | | | | | Просмотр биллинга или счетов | | | | | Доступ к другим сайтам владельца | | | |
Последние три строки не содержат отметок ни для одной из ролей. Это не настройка.
Прекращение доступа
Владелец сайта открывает раздел Безопасность сайта и выбирает пункт Отозвать рядом с именем пользователя. Изменения вступают в силу немедленно: следующая команда Zinnector®, запущенная этим разработчиком, не сможет обнаружить сайт, как и любые другие имеющиеся у него данные.
Истечение срока выполняет то же самое в определенную дату, и никому не нужно помнить об этом. Если вы установили срок при предоставлении доступа, значит, все уже настроено.
Что делать, если что-то не работает
- Команда
zinnector sites ничего не показывает. Приглашение не было принято, либо доступ был отозван или его срок истек. Попросите владельца проверить раздел «Безопасность» сайта — там отображается ожидающее приглашение.
- Команда
zinnector pull сообщает, что у сайта нет свежих резервных копий. Операция вытягивания создает новую копию, если это позволяет тарифный план, предварительно запрашивая подтверждение. Если тарифный план не включает создание резервных копий по требованию, увеличьте значение --max-age, чтобы разрешить использование более старой копии.
- Команда
zinnector dev запускает пустую версию WordPress. Вы используете среду выполнения Playground, которая не выполняет импорт базы данных. Запустите zinnector dev --runtime docker.
- Локальный сайт продолжает перенаправлять на адрес рабочего домена. Процесс импорта обновляет URL сайта; если этот шаг завершился с ошибкой, команда сообщит об этом и выведет строку
wp search-replace, которую необходимо выполнить.
Дополнительные ошибки и способы их устранения: Устранение неполадок с Zinnector®.