Автор: Neil Lock

  • Как добавить пользовательские шорткоды в Page Builder Sandwich

    Как добавить пользовательские шорткоды в Page Builder Sandwich

    From the word itself, the word shortcode means exactly that: A short code; a shortcut code.

    Шорткоды позволяют добавлять различные элементы на ваш сайт (например, виджеты) без необходимости вставлять огромные фрагменты кода, как это обычно делают разработчики.

    Например, обычный фрагмент кода по своей длине выглядел бы примерно так:

    <html>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    
    Etiam id aliquam turpis. Vivamus quis arcu tincidunt, finibus urna eget, placerat risus.
    
    Aliquam arcu massa, finibus et lacinia sed, scelerisque nec augue. Quisque eu viverra sapien, vel consequat lorem. Integer vel erat tortor.
    
    Phasellus condimentum magna eget congue venenatis. Suspendisse blandit vehicula consectetur.
    
    Nullam sodales eleifend massa, in bibendum purus fermentum id.
    
    Morbi et turpis feugiat, malesuada ipsum sit amet, interdum nulla. In non ante nec nisl mattis gravida sit amet id lectus.
    
    </html>​

    Для этого примера давайте представим, что приведенный выше фрагмент кода позволяет добавить целый абзац текста-рыбы Lorem Ipsum.

    Now, a shortcode with the same exact function as the code above will look something like this, in contrast:

    [lorem ipsum dolor estat]Lorem Ipsum[/lorem]​

    You can see how they’re miles different from each other in terms of length.

    А теперь представьте, что оба фрагмента кода — исходный, длинный фрагмент и шорткод, содержащий только слово «lorem», — делают абсолютно одно и то же: добавляют текст Lorem Ipsum.

    This is what shortcodes do. They make adding widgets, functions, and a bunch of other cool stuff easier for both ordinary WordPress users and developers alike.

    Where can I find shortcodes?

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

    Shortcodes Ultimate, for example, will let you choose from hundreds of shortcodes that you can use on Page Builder Sandwich (or anywhere, actually) by simply grabbing the shortcode of your choice from Shortcode Ultimate’s repository or documentation page.

    Adding Custom Shortcodes on PBS

    В Page Builder Sandwich вы можете добавлять шорткоды прямо на страницу, просто введя или вставив их в область контента.

    Ниже мы сделали это с помощью шорткода из Shortcodes Ultimate, добавив блок с контентом на демо-страницу Page Builder Sandwich:

    Another thing you’ll find handy when using Page Builder Sandwich is our Shortcode Mapping feature.

    В одной из наших предыдущих статей о маппинге шорткодов определение звучало следующим образом:

    Shortcode mapping is like letting Page Builder Sandwich memorize all the shortcodes available on your site: their names, descriptions, their attributes, and what each of these attributes do.

    Отчасти это означает, что вам больше не придется вручную искать нужные шорткоды в соответствующей документации или репозиториях.

    Пока плагин, содержащий шорткод, установлен на вашем сайте WordPress, он будет легко доступен для использования в Page Builder Sandwich.

    So for example, if I wanted to add a WooCommerce shortcode on my page, all I have to do is make sure that it’s installed on my WordPress site, like so:

    And then, to actually add the shortcode, I’ll just go to my page, and drag and drop the Shortcode Element:

    Because we already have WooCommerce installed on our WordPress site, you can see that all of the shortcodes that are available on the WooCommerce plugin are already available on Page Builder Sandwich. This is what Shortcode Mapping is.

    You can also see on the upper left corner that the ACF (Advanced Custom Fields) and MailChimp shortcodes are available— because we have those instlled on our WordPress site, too.

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

    Here are some other helpful plugins that you can use to create your own custom shortcodes:

  • Создайте потрясающий сайт на WordPress с этими скидками Черной пятницы 2017

    Create WordPress Website With Black Friday Sale 2017 Deals Black Friday and Cyber Monday are coming in a couple of days (5 to be exact), but you’ll find that a bunch of websites have already started announcing their discount deals every which way. WordPress tools and plugins are definitely no exception.

    Поэтому, пока еще (относительно) рано, мы составили список лучших предложений к Черной пятнице WordPress 2017 года со всем необходимым для создания сайта на WordPress — и все это в рамках вашего бюджета.

    Без лишних слов представляем вам 5 инструментов и плагинов с щедрыми скидками, которые понадобятся вам для создания вашего первого простого сайта на WordPress.

    Cloudways

    Cloudways is a managed cloud hosting platform that’s quick to start, easy to manage, and made to scale. It’s feature-rich, plus it lets you choose your server resources, allowing you to get your site up and running within minutes.

    Enter the coupon code HOLIDAY25 upon checkout to get a 25% discount on Cloudways for 3 months, valid until 28th November 2017.

    Получите купон от Cloudways

    Yoast SEO

    Yoast SEO is one of the most popular (if not most trusted) search optimization plugin for WordPress, and for good reason too. With over 7 million installs, it’s probably the most comprehensive SEO tool in the digital market, and their millions of users (ourselves included) can attest: you simply can’t go wrong with a plugin as functional as Yoast.

    While they haven’t announced this year’s Black Friday coupons yet, they’ve made an announcement in one of their articles that they’ll definitely having a sale on November 24 and 25.

    Оцените Yoast SEO прямо сейчас!

    WP Rocket Cache

    WP Rocket offers a good range of caching functions, giving your site the performance boost that it needs. It’s a breeze to configure as well, so it’s great for beginners as it only requires minimal effort for setup.

    This year, they’re having their biggest sale yet: 35% off on ALL their licenses.

    Получить купон на WP Rocket

    Theme Discounts from WeDevs.com

    WeDevs — это коллекция отличных плагинов и расширений для WordPress. У них довольно солидное сообщество, и они существуют с 2008 года. К Черной пятнице 2017 года (и последующим праздникам в этом году) они собрали список праздничных предложений для WordPress, включая массу скидок и купонов на потрясающие темы для WP.

    Получить купоны на темы

    BONUS RESOURCE: First Site Guide

    First Site Guide is a resource site and tool that contains easily accessible knowledge on how to create your first website, both on WordPress and off of it. It also has great infographics that guide you through the basics of blogging, design, and marketing as well. And best of all, you get this good share of site-building knowledge for free.

    Вскоре мы также опубликуем статью с инструкцией по созданию целевых страниц с полезными материалами от First Site Guide, так что следите за обновлениями в ближайшие недели!

    Перейти на First Site Guide

    (And last but not least) Page Builder Sandwich!

    We definitely don’t want to miss out on all the fun. So this 2017, we’re giving you guys 33%-off on any license. Just use the promo code CYBERMONDAY33 upon checkout to start building your site today!

    Premium Single Site

    $39 $26.79

    Купить сейчас

    Apply CYBERMONDAY33 upon checkout to save $13.20

    Premium Unlimited Sites

    $89 $60.29

    Купить сейчас

    Apply CYBERMONDAY33 upon checkout to save $29.70

    So what are you waiting for? Grab these kick-ass WordPress deals now. After all, Black Friday only happens once a year. ?

  • Чем Page Builder Sandwich отличается от остальных

    How-Page-Builder-Sandwich-Is-Different-from-the-RestСуществуют десятки конструкторов страниц, и вы, вероятно, задаетесь вопросом: что особенного в Page Builder Sandwich? Зачем утруждать себя его использованием, если у вас уже есть подходящий инструмент?

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

    1. Вы не просто видите визуальное представление контента — вы видите и редактируете сам контент

    В других конструкторах страниц вы видите области, которые лишь схематично отображают контент. Вы в основном верстаете страницу блоками и прямоугольными фигурами, и результат больше напоминает каркас того, как ваш контент в итоге будет выглядеть на странице. Из-за этого приходится постоянно нажимать кнопку предварительного просмотра, чтобы просто увидеть результат.

    С Page Builder Sandwich все редактирование происходит прямо во фронтенде вашего сайта, и вы редактируете контент напрямую, получая настоящий опыт «что видишь, то и получаешь».

    2. Быстрое и простое прямое редактирование без надоедливых всплывающих окон

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

    Мы поставили перед собой цель свести к минимуму использование всплывающих окон во всем Page Builder Sandwich. Благодаря отказу от них редактирование любого контента стало проще и удобнее, чем когда-либо.

    Редактирование выполняется максимально просто: кликните по тексту, чтобы поставить курсор, и сразу начинайте печатать. Вам больше не нужно ждать всплывающего окна с редактором TinyMCE, чтобы приступить к правкам. Самое приятное — вы по-прежнему можете перетаскивать контент мышью.

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

    Reused functionality

    3. Повторное использование функциональности WordPress

    Еще одна вещь, которую мы заметили в других конструкторах страниц: они часто изобретают колесо заново. Некоторые реализуют собственные инструменты выбора цвета, загрузчики изображений, создатели галерей и различные другие инструменты. В этом самом по себе нет ничего плохого, но WordPress — это настоящая сокровищница готового кода, так почему бы не использовать его?

    WordPress — огромная и прекрасная платформа, содержащая множество отличных инструментов, созданных огромным числом замечательных разработчиков сообщества. Page Builder Sandwich максимально использует функциональность, уже встроенную в WordPress.

    Вместо собственного инструмента выбора цвета мы используем палитру Iris. Вместо собственного загрузчика изображений мы используем медиабиблиотеку. Кроме того, есть backbonejs, underscorejs, wp.hooks и wp.shortcode — и это лишь некоторые из полезных скриптов. Мы используем все это, что облегчило нам жизнь и сделало кодовую базу более стабильной.

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

    4. Навигация с клавиатуры и горячие клавиши

    В других конструкторах страниц ваш главный инструмент — мышь. С ее помощью вы перетаскиваете элементы и дважды щелкаете по ним для редактирования. А вот клавиатурой часто пренебрегают.

    Например, в некоторых конструкторах нельзя просто так перейти к редактированию текста абзацем или разделом выше, потому что для этого придется закрыть всплывающее окно и открыть новое. В Page Builder Sandwich вы можете перемещаться с помощью клавиатуры. Нажимайте клавиши со стрелками для перемещения по контенту — это работает, даже если другой элемент спрятан внутри другой строки или колонки.

    Еще одна важная функция — горячие клавиши для отмены и повтора действий. На первый взгляд это может показаться мелочью, но представьте: что, если вы случайно перетащили элемент не туда? В некоторых конструкторах вам придется вручную тащить его обратно на исходное место. В Page Builder Sandwich работают и отмена, и повтор. Поэтому, хотите ли вы исправить напечатанный текст или вернуть перетащенный элемент (или сразу несколько элементов) на прежнее место, просто нажмите отмену или повтор действия. Отмена и повтор работают для перетаскиваемых элементов и даже для изменений свойств, таких как размер шрифта и отступы строк. Это делает их мощными инструментами в вашем арсенале редактирования.

    Relaxing experience

    5. Настоящий фронтенд-конструктор страниц — более спокойный и комфортный процесс редактирования

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

    В целом, для меня главное отличие Page Builder Sandwich заключается в том, что мы создавали его с целью стать «настоящим» фронтенд-конструктором страниц — переосмыслением того, каким должно быть редактирование на сайте.

  • Frontly API: Делаем Frontly Builder более удобным для разработчиков

    Отличные новости для разработчиков: в предстоящем релизе Frontly мы наконец-то запустим Frontly API.

    В настоящее время он все еще находится в разработке, но вы наконец-то сможете создавать дополнения и расширения для Frontly. Конечно, мы также запустим документацию по API, чтобы сделать работу более плавной и функциональной.

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

    Here’s a short list of some of the APIs we have so far:

    1. Text Formatting Bar API

    С помощью Text Formatting Bar API разработчики могут расширить функциональность панели форматирования текста Frontly. С его помощью вы сможете добавлять новые кнопки/опции на панель форматирования текста.

    2. Add Element API

    Этот API позволит вам создавать новые элементы, добавляя их к списку уже существующих в разделе «Элементы» в левой части редактора контента.

    3. Inspector API

    Inspector API позволит вам создавать, добавлять или удалять настройки в инспекторе свойств (Properties Inspector) каждого элемента.

    4. Text API

    Text API позволит вам вносить изменения в стили текста, а именно: изменять форматы текста, менять цвет фона текста и многое другое.

    Developers! It’d be great if you could send over some suggestions

    These are just some of the basic APIs we have in store for you. We’re in the middle of creating more, but if you have any other ideas of APIs we can add to our console, just leave a comment below, or hit us up at [email protected]. We might just feature your suggestions in the upcoming Frontly release ?

  • Как использовать email-маркетинг с помощью Page Builder Sandwich

    Как использовать email-маркетинг с помощью Page Builder Sandwich

    Да, можете.

    The more important question, though, is how and why do you need to do it?

    My business is small. Can’t I just wing it?

    Email marketing has an average ROI of 3,800 percent. For every dollar invested, the average return is $38, according to Salesforce.

    In other words, it’s definitely something worth investing your time in.

    Because while there are tons of ways to market your products and capture leads– you can still try to make use of the less-popular cold call, for example– the most sure-fire way to connect and communicate with your target audience in the 21st century is through e-mail marketing.

    So if you’re running a business –any kind of business, whether small, big, online or otherwise– digital and e-mail marketing is an absolute must.

    Aside from cutting on costs (e-mail is free, after all), businesses rely on it not just because it’s been proven to be successful, but also because it yields results that are both measurable and flexible; you can track your audience’s responses to your e-mails, for example, or note how many clicks and opens your e-mail marketing campaigns get.

    How you can do it with Page Builder Sandwich

    There are lots of available software you can use to help you market your products and content digitally, like Hubspot’s E-mail Marketing Software, or Mailchimp, which gives you a management system that helps you create, organize, and analyze your newsletters.

    But did you know that using Sandwich, you can actually integrate some of the popular software mentioned via the Newsletter Element?

    The Newsletter Element (and how it works)

    You can find the Newsletter Element by hovering over to the Elements Inspector over to the left side of the screen, and selecting Newsletter from the bottom area.

    Using the Properties Inspector, you can also choose which newsletter integration you’d like to use with the Newsletter Element. For this exmple, we’re going to use MailChimp (highlighted in blue in the dropdown below).

    And, using the Input Field button, you can try to play around with the Newsletter Element’s settings as well, so you can change colors, customize success message options, and other settings, like so:

    By trying your hand at the different available settings for the Newsletter Element’s options, you can end up with something like this:

    Plus, with the help of our Pre-Designed Sections and other design tips, you can actually do a whole lot more.

    Other useful resources for e-mail marketing beginners

    • 11 Types of Marketing E-mails That Actually Generate a Response

    Conclusion

    While other noteworthy marketing trends still exist today, one thing’s for sure: E-mail marketing is definitely here to stay, and it’s important that you utilize it when you can. Who knows? Through e-mail marketing, your business could just get that big break it’s been looking for.

    Design in less time!

    Get access to Sandwich’s Pre-Designed Sections, Templates, and a whole lot more.

    Try Live Preview
  • Мобильная адаптивность в PBS версии 4.0

    Сделать сайт по-настоящему адаптивным для мобильных устройств бывает очень непросто, и если допустить ошибку, результаты обычно оказываются плачевными. На самом деле, если вы еще не слышали, в апреле 2015 года Google даже начал пессимизировать сайты, не оптимизированные для мобильных устройств. Короче говоря, мобильная адаптивность — это очень важная вещь.

    Так что же такое мобильная адаптивность?

    Сайт считается адаптивным, когда его содержимое способно подстраиваться под различные размеры и ориентацию экрана при просмотре на любых устройствах, кроме настольных ПК. Проще говоря, если вы обновились до PBS v4 и хотите оформить или создать страницу, у вас не должно возникнуть проблем с ее просмотром независимо от того, используете ли вы компьютер, мобильный телефон или планшет.

    Адаптивность в версии 4.0

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

    Теперь все заголовки автоматически подстраиваются под размер экрана, чтобы вы не сталкивались с огромными буквами при просмотре сайта или страницы, созданной в PBS, на мобильных телефонах. Чтобы продемонстрировать это более наглядно:

    Просмотр вашего сайта на экранах разных размеров

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

    Более того, теперь вы также можете настраивать отступы элементов специально для планшетов и мобильных телефонов.

    Итак, что вы думаете? За или против? Есть ли какие-то другие функции по мобильной адаптивности, которые мы могли бы улучшить? Поделитесь своим мнением в комментариях ниже!

  • Обновление о ребрендинге Frontly №1: копирование и вставка абзацев

    Over our past blog posts, we mentioned that PBS will be rebranding as Frontly, and that we’ll be changing and improving a lot of aspects for the better. One of these aspects is being able to use Frontly to experience a smoother, more intuitive page building experience that’s even better than PBS.

    Пока мы доводим Frontly до совершенства для вас, мы решили опубликовать серию постов, чтобы рассказать, что именно вы получите, как только Frontly появится на рынке.

    Copy-paste blocks of text on Frontly

    Мы разработали PBS таким образом, что каждый абзац является отдельным элементом. Копирование и вставка длинных текстов разбивает выделенный фрагмент на отдельные текстовые блоки.

    What do we mean by this? Here’s an example to illustrate.

    В текущей версии PBS (которой вы пользуетесь сейчас) вставка нескольких строк разбивается на несколько текстовых элементов, что усложняет перемещение фрагментов текста. Из-за этого редактировать текст становится трудно.

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

    This is something we’re definitely addressing with Frontly.

    This is a small test page Benjamin made for Frontly. Here, you’ll see that we copy-pasted the same paragraph we tried to copy-paste on PBS. Only this time, everything is retained in a single area that you can drag around and place wherever you want to.

    Это означает, что вы сможете добавлять и редактировать текст более плавно, получая максимальное удобство при наборе текста (и создании страниц).

    Retain full text formatting with Frontly

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

    Copy-pasting with PBS vs copy-pasting with Frontly

    Во Frontly (справа) вы увидите, что всё форматирование текста сохранилось из исходного источника. Всё, что выделено полужирным шрифтом, курсивом, подчеркиванием или оформлено заголовком другого размера, остается неизменным при вставке в область Frontly (в отличие от PBS, где сохранялись только эмодзи).

    What else do we have in store for you?

    Как мы уже упоминали, это только первая из серии публикаций о том, почему Frontly будет на световые годы опережать PBS. Мы не можем дождаться, когда покажем вам всё остальное, так что следите за обновлениями в нашем следующем посте в блоге!

    Есть предложения или комментарии? Свяжитесь с нами и оставьте ответ ниже!

  • Секрет качественной поддержки клиентов

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

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

    Так вот, у этого бариста есть аналог в сообществе онлайн-поддержки.

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

    Хорошее обслуживание клиентов — ключ к росту вашего бизнеса, это так. Но просто поддержки недостаточно.

    Вы должны предоставлять хороший (если не превосходный) сервис, который дает клиентам почувствовать свою значимость, ведь они действительно важны. В конце концов, именно ради них и существует ваш бизнес.

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

    На самом деле, даже если наличие службы поддержки в компаниях воспринимается как должное, свежая статистика показывает, что 68% клиентов уходят из компании, потому что считают, что до них никому нет дела (хотя должно быть).

    Но что на самом деле делает клиентскую поддержку хорошей и как поддерживать ее на должном уровне?

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

    1. Используйте негативные отзывы с пользой

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

    И к этому нужно быть готовыми.

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

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

    Обратите на них внимание.

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

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

    Если за месяц вы уже в третий раз получаете жалобу на низкую производительность продукта, то, вероятно, стоит собраться всей командой и расставить приоритеты в решении этой проблемы с производительностью.

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

    2. Дайте понять, что вы человек

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

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

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

    Для поддержки один на один по электронной почте мой совет: никогда не говорите клиенту того, чего вы не сказали бы в реальной жизни. Это значит, что пора отказаться от фраз вроде «Приветствуем вас!» или «Приносим наши глубочайшие извинения за задержку с ответом».

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

    А это абсолютно недопустимо.

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

    3. Никогда не оставляйте клиентов в подвешенном состоянии

    Это, пожалуй, само собой разумеется.

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

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

    Что вы ответите?

    «Извините, у нас нет этой функции. До свидания.

    С уважением,
    Поддержка»

    Что ж… так дело не пойдет.

    Если нужно предложить небольшие альтернативные варианты — сделайте это. Если клиент просит что-то в розовом цвете, а у вас сейчас есть только в красном, скажите честно, но также подскажите, что можно сделать на данный момент.

    «Мы снова свяжемся с вами, как только появятся другие цвета!» — и обязательно выполните обещание.

    4. Быстрые ответы важны, но не менее важна их эффективность

    Да, отвечать клиентам как можно быстрее — важно. Но просто отправить ответ недостаточно.

    Ваши ответы должны содержать суть и предлагать клиенту решение или альтернативу для возникшей проблемы (см. п. 3). Одно без другого не работает.

    Да, клиенты спешат, но дать им ответ «на отцепись» ничуть не лучше, чем не ответить вовсе (и, возможно, даже хуже, ведь после нажатия кнопки «Отправить» пути назад уже нет).

    5. Избегайте невыполнимых обещаний

    «Не волнуйтесь. Мы исправим это для вас в течение часа!»

    Если вам потребуется больше времени, и вашей репутации, и репутации компании придет конец.

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

    Если вы знаете, что на исправление уйдут сутки, будьте честны и скажите об этом прямо. Клиенты будут куда более довольны работающим продуктом, на который ушло время, чем сделанным на скорую руку и едва функционирующим.

    Заключение

    Итак, в чем секрет хорошей поддержки клиентов? Никогда ее не недооценивайте.

    Ваши клиенты — ваша главная движущая сила и наивысшая ценность.

    Относитесь к ним соответственно.

    И в следующий раз, когда вы задумаетесь об инвестициях в качественную клиентскую поддержку, вспомните эти слова Нила Пателя:

    «Умные владельцы бизнеса знают, что потеря каждого клиента — из-за ухода к конкуренту или по иной причине — обходится им в среднем в 289 долларов каждый год.

    И если вы думаете, что сможете просто компенсировать эти потери новыми клиентами, подумайте еще раз. Оказывается, привлечение нового клиента обходится в шесть-семь раз дороже, чем удержание существующего».

  • Как мы повысили производительность нашего плагина на 200%

    2 февраля 2017 года Энн Тейлор опубликовала на CodeInWP статью 12 Things We Need to See From WordPress Page Builders in 2017 + Who Already Gets It Right («12 вещей, которые мы хотим видеть в конструкторах страниц WordPress в 2017 году + кто уже делает все правильно»). Мы непрерывно улучшали Page Builder Sandwich больше года: проводили исследования, прислушивались к клиентам, поэтому были уверены, что Page Builder Sandwich попадет в раздел «Кто уже делает все правильно» на CodeInWP. Однако мы туда не попали из-за производительности. ?

    Мы спросили Энн об этом, и она ответила:

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

    Итак, по ее словам, у Page Builder Sandwich есть проблемы с производительностью. И поскольку мы всегда прислушиваемся к отзывам, мы решили разобраться.

    Тестирование производительности

    Нам нужен был способ проверить производительность PBS; поскольку PBS в основном работает в браузере с помощью Javascript, подходящим инструментом стал профилировщик Timeline в Chrome. Профилировщик Timeline может определять и измерять процессы, происходящие на веб-странице во время выполнения, что идеально подходит для поиска узких мест производительности.

    Мы решили, что сначала нужно протестировать самые простые действия — перемещение курсора мыши по нескольким элементам и строкам. Просто, правда? Мы были уверены, что не столкнемся с проблемами производительности при чем-то настолько простом. К сожалению, мы ошибались.

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

    И что бы вы думали? Она под завязку забита узкими местами производительности!

    На графике происходит очень много всего, но самая очевидная проблема заключается в обилии фиолетовых областей (которых быть не должно). Кроме того, эти фиолетовые области заметно широкие и, кажется, все достигают пика графика. Вы также заметите, что график постоянно заполнен, а фиолетовые области почти никогда не опускаются до нуля. Создается впечатление, что браузер постоянно чем-то занят и почти никогда не отдыхает.

    Но что же на самом деле означают все эти фиолетовые области?

    Профилировщик любезно подсказал нам, что они называются reflow (перекомпоновка). Вот определение того, что такое reflow, с сайта Google Developers:

    Reflow — это название процесса веб-браузера по перерасчету позиций и геометрии элементов в документе… reflow — это блокирующая пользователя операция в браузере.

    Это означает, что перемещение мыши в PBS вызывает кучу reflow. Хуже того, каждый reflow на мгновение приостанавливает работу браузера, чтобы он мог завершить свои вычисления. Больше reflow означает больше пауз браузера, а интерфейс становится еще более дерганым (janky). Проще говоря, много фиолетовых областей = плохо.

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

    Устранение проблемы с Reflow / рывками

    Прежде всего, нам нужно было провести небольшое исследование, чтобы выяснить, что вообще вызывает этот reflow. Мы выяснили, что, оказывается, множество привычных вещей в Javascript могут провоцировать браузер на выполнение reflow.

    Практически любая функция, которую вы можете использовать для получения ширины, высоты или положения DOM-элемента, способна вызвать reflow. Пол Айриш составил подробный список всех свойств и функций в Javascript, приводящих к этому. Плохая новость заключается в том, что Page Builder Sandwich использует множество этих свойств и функций, и все они вызывают reflow:

    • elem.getBoundingClientRect()
    • window.getComputedStyle()
    • window.scrollY
    • и многое другое…

    Решение №1: Кэширование ресурсоемких процессов Reflow

    Самое очевидное решение — НЕ использовать эти свойства и функции. Однако PBS в значительной степени полагается на них, и мы не можем обойтись без них.

    Единственное оставшееся решение — максимально сократить количество вызовов этих функций. Сложность заключалась в том, что мы использовали эти свойства и функции многократно в разных частях PBS, и в большинстве случаев обращались к одному и тому же DOM-элементу несколько раз. Чтобы исправить это, мы создали собственный механизм кэширования для каждого проблемного свойства/функции.

    Например, функция getBoundingClientRect  возвращает текущие размеры и координаты DOM-элемента в пикселях: top, left, width, height, right и bottom. Мы постоянно используем эту функцию для расчета координат при отрисовке контуров элементов в PBS. Вот функция кэширования, которую мы создали для этого:

    // Cache: Our client rects are kept here, we can use this to clear them later.
    var elemsWithBoundingRects = [];
    
    window.pbsGetBoundingClientRect = function( element ) {
    
    	// Check if we already got the client rect before.
    	if ( ! element._boundingClientRect ) {
    
    		// If not, get it then store it for future use.
    		element._boundingClientRect = element.getBoundingClientRect();
    		elemsWithBoundingRects.push( element );
    	}
    	return element._boundingClientRect;
    };
    ​

    Вместо прямого вызова getBoundingClientRect  мы теперь используем pbsGetBoundingClientRect . Теперь каждый раз при запросе client rect мы сохраняем это значение для последующего использования, тем самым ограничивая количество триггеров reflow.

    Нам также понадобился способ очистки кэша при инвалидации сохраненных значений client rect. Значения сохраненных client rect изменяются, когда пользователь прокручивает страницу или добавляет/изменяет/удаляет элементы на экране. Поэтому мы создали функцию сброса кэша, которую можно вызывать всякий раз, когда требуются актуальные значения client rect:

    var clearClientRects = function() {
    	var i;
    	for ( i = 0; i < elemsWithBoundingRects.length; i++ ) {
    		if ( elemsWithBoundingRects[ i ] ) {
    			elemsWithBoundingRects[ i ]._boundingClientRect = null;
    		}
    	}
    	elemsWithBoundingRects = [];
    };​

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

    Решение №2: Группировка операций чтения и записи с помощью FastDom

    Внедрение решения №1 повысило производительность PBS, но этого было недостаточно.

    Поискав в Google, мы наткнулись на статью Уилсона Пейджа о предотвращении «layout thrashing». Уилсон говорит:

    Layout Thrashing (reflow) возникает, когда JavaScript хаотично записывает, а затем считывает данные из DOM множество раз подряд, вызывая множественные перекомпоновки документа.

    Судя по всему, недостаточно просто ограничить вызовы определенных свойств и функций, вызывающих reflow. Выполнение нескольких последовательных операций чтения («read») и записи («write») в DOM также провоцирует reflow браузера. Вот типичный сценарий прямо с сайта Уилсона:

    // Read
    var h1 = element1.clientHeight;
    
    // Write (invalidates layout)
    element1.style.height = (h1 * 2) + 'px';
    
    // Read (triggers reflow)
    var h2 = element2.clientHeight;
    
    // Write (invalidates layout)
    element2.style.height = (h2 * 2) + 'px';
    
    // Read (triggers reflow)
    var h3 = element3.clientHeight;
    
    // Write (invalidates layout)
    element3.style.height = (h3 * 2) + 'px';
    
    // Document reflows at end of frame​

    Приведенный выше пример вызывает 3 reflow, поскольку размеры всей страницы инвалидируются после каждой записи. Предлагаемое решение — изменить порядок кода, чтобы объединить все операции чтения и записи вместе, благодаря чему вся цепочка вызовет только 1 reflow браузера:

    // Read
    var h1 = element1.clientHeight;
    var h2 = element2.clientHeight;
    var h3 = element3.clientHeight;
    
    // Write (invalidates layout)
    element1.style.height = (h1 * 2) + 'px';
    element2.style.height = (h2 * 2) + 'px';
    element3.style.height = (h3 * 2) + 'px';
    
    // Document reflows at end of frame​

    Фрагмент выше создает впечатление, что решить проблему легко. Но на практике в PBS чтение и запись данных, вызывающих reflow, происходят во множестве разных мест и в разное время жизненного цикла приложения. Переписать тысячи строк кода Javascript просто нереально.

    К счастью для нас, Уилсон также предложил решение в своей статье. Он создал небольшую вспомогательную библиотеку для пакетной обработки таких операций чтения и записи под названием FastDom.

    Вот фрагмент кода из Page Builder Sandwich, использующий FastDom и включающий наше Решение №1:

    // Bunch together the reads from other threads.
    fastdom.measure( function() {
    
    	// Use our cached client rect.
    	var rect = window.pbsGetBoundingClientRect( elem );
    
    	// Bunch together the writes from other threads.
    	fastdom.mutate( function() {
    		elem.style.top = ( rect.top + window.pbsScrollY() ) + 'px';
    		elem.style.height = rect.height + 'px';
    		elem.style.left = rect.left + 'px';
    		elem.style.width = rect.width + 'px';
    	}.bind( this ) );
    }.bind( this ) );​

    FastDom объединяет все вызовы fastdom.measure  и все вызовы fastdom.mutate  вместе и выполняет их асинхронно, эффективно группируя все операции чтения и записи, чтобы сократить количество reflow в браузере.

    Решение №3: Обращение к объектам стилей обходится дорого

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

    В PBS нам часто требуется получать текущее значение определенного стиля элемента. Например, обычно мы использовали следующее для получения верхнего отступа (margin-top):

    var styles = window.getComputedStyle( elem );
    var marginTop = styles.marginTop;​

    Однако мы обнаружили, что следующий подход работает гораздо быстрее:

    var marginTop = elem.style.marginTop;​

    Тем не менее, elem.style.marginTop  и getComputedStyle  очень сильно различаются. Первый вариант возвращает только инлайновые стили элемента и не учитывает таблицы стилей, а второй вариант учитывает как инлайновые стили, так и внешние таблицы стилей.

    Более того, даже когда результат getComputedStyle  был закэширован, он все равно работал очень медленно. Как выяснилось, сам процесс обращения к объекту стиля является медленным.

    К счастью для нас, PBS добавляет инлайновые стили к элементам, а так как инлайновые стили (в большинстве случаев) имеют приоритет над таблицами стилей, возникнут ситуации, когда получения значения инлайнового стиля будет вполне достаточно. Объединив оба метода, мы получили значительно более быстро работающий код:

    var marginTop = elem.style.marginTop;
    if ( ! marginTop ) {
    	var styles = window.getComputedStyle( elem );
    	marginTop = styles.marginTop;
    }​

    Результаты оптимизации кода

    Наши три вышеуказанных решения потребовали серьезных исследований, тестирования и практической реализации (из-за чего пришлось отложить выпуск функции работы со шрифтами), но в конечном итоге результат того стоил.

    Возвращаясь к нашему первоначальному тесту с перемещением курсора мыши по экрану в течение 2 секунд. Вот старая неприглядная временная шкала с рывками:

    А вот как выглядит наша новая шкала после улучшений производительности:

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

    Если сравнить количество высоких/широких фиолетовых областей на старом и новом графиках, перед нами колоссальный прирост производительности в 200%! Мы также наблюдаем общее увеличение быстродействия во всех аспектах. Совсем неплохо!

    Выводы и усвоенные уроки

    Честно говоря, мы не предполагали, что у PBS есть проблемы с производительностью, пока об этом не упомянула Энн. Главным образом потому, что мы работали на мощных компьютерах для разработки, и узкие места были не так заметны. Оглядываясь назад, проверка производительности должна была стать одной из приоритетных задач. Но, по крайней мере, начиная с версии 4.3 этот вопрос решен. ?

    Для тех, кто хочет повысить производительность своего плагина для WordPress, особенно если вы активно используете Javascript, вот мои основные выводы из этого опыта:

    1. Ограничивайте/кэшируйте обращения к свойствам и функциям, вызывающим reflow. Используйте в качестве руководства список: What forces layout/reflow. The comprehensive list.
    2. Группируйте операции чтения («read») и записи («write») для стилей DOM. Используйте FastDom, чтобы автоматизировать это.
    3. Используйте профилировщик Timeline в Chrome и следите за тем, чтобы у вас было как можно меньше reflow (фиолетовых зон).
  • Почему мы перешли с EDD на Freemius

    Почему мы перешли с EDD на Freemius

    When Page Builder Sandwich was launched in 2016, we were using Easy Digital Downloads. In 2017, we moved to Freemius. Here’s why we switched:

    Что такое EDD и почему мы выбрали именно его?

    Easy Digital Downloads (EDD) — это популярная self-hosted альтернатива eCommerce / WooCommerce для WordPress. «Из коробки» продавать продукты для WordPress с помощью EDD не очень удобно, но его расширение Software Licensing делает его идеальным решением для продажи плагинов. Это расширение также отвечало за создание и проверку лицензионных ключей.

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

    Since it worked well, and since we’re a big fan of Pippin Williamson, this was Sandwich’s first option.

    Как это работает по сравнению с Freemius и когда мы перешли?

    В 2016 году Вова Фельдман (Vova Feldman), ведущий разработчик и сооснователь Freemius, прислал нам по электронной почте обзор Freemius, объяснив, что это больше, чем просто решение для электронной коммерции — платформа предоставляет такие функции, как решение для аналитики и инсайтов, инструмент автоматизации маркетинга и встроенный инструмент поддержки, благодаря которому клиенты могут связываться с вами прямо из консоли WordPress.

    Изначально мы использовали только ‘Freemius Insights’ — одну из функций Freemius — из любопытства к аналитике. Это действительно помогло нам понять распространенные причины, по которым люди удаляли наш плагин в то время.

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

    В ходе этого мы выяснили, что пользователи удаляли плагин просто потому, что не знали, что делать после активации. Мы просто добавили экран приветствия и обучающее видео, чтобы снизить процент удалений. Проще простого.

    Если не считать аналитику, платформа Freemius была создана так, чтобы вы могли легко использовать ее для более эффективных продаж своих продуктов для WordPress!

    Взвесив все за и против, в январе 2017 года мы перешли на Freemius. И вот почему:

    Freemius позволяет клиентам покупать ваш продукт прямо в консоли WordPress

    Instead of being redirected to an external website, Freemius allows customers to purchase straight from their WordPress Dashboard. This made huge impact on sales of course! Generally, the fewer things the user has to do to purchase something, the more likely it is that they actually make the purchase.

    С EDD пользователям, заинтересовавшимся Sandwich, приходилось прерывать процесс создания страниц и переходить на внешний сайт для покупки лицензионного ключа. Им приходилось делать несколько кликов — и отвлекаться на лишние действия — прежде чем они могли наконец совершить покупку.

    Напротив, с Freemius клиенты совершают покупку прямо из своей консоли WordPress, пока пробуют Sandwich в деле — нет никакой необходимости переходить на другой сайт для оформления заказа.

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

    Разработчики также заинтересованы в вашем успехе

    Продажа продуктов через Freemius не бесплатна. С каждой продажи они берут небольшую долю вашего дохода, которая идет на комиссию за обработку платежей. Такова их бизнес-модель.

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

    Вова и его команда всегда готовы помочь. Они делились с нами собственными советами и рекомендациями о том, как увеличить доход, улучшить наш плагин и использовать Freemius с максимальной пользой. Их щедрость в предоставлении информации внесла большой вклад в развитие Sandwich.

    Заключение: если вы автор продуктов для WordPress и хотите монетизировать их, Freemius — это то, что вам нужно.

    Page Builder Sandwich стремится сделать процесс создания страниц максимально интуитивным и удобным для пользователей. Freemius делает то же самое: он значительно упрощает взаимодействие как для покупателей, так и для продавцов.

    С момента перехода на Freemius в 2017 году наши клиенты стали более довольными, показатель удалений снизился, а продажи в целом выросли. Если вы хотите монетизировать свои плагины или темы для WordPress, Freemius определенно стоит выбрать.

    Его возможности превосходят конкурентов. Он помог нам принимать более взвешенные решения по улучшению продукта. Команда Freemius обеспечивает непревзойденную поддержку. Если вы разрабатываете продукты для WordPress, надеемся, вы ощутите такой же положительный эффект от работы с Freemius, как и мы.