Я использую Visual Composer (теперь WPBakery) для разработки собственных блоков / шорткодов и рендеринга их с помощью шаблона Mustache
.
Я передаю параметры в шаблон, а затем отображаю шаблон на основе этих параметров (устанавливается в Visual Composer).
У меня есть служба подписки, и я хотел бы иметь возможность переключать содержимое на странице в зависимости от того, вошел ли пользователь в систему или нет, и имеет ли пользователь активную подписку.
Итак, у меня есть раскрывающийся список, в котором вы можете выбрать, для каких пользователей показывать блок:
- Показать для всех пользователей
- Войти в систему + активный подчиненный
- Вход в систему + неактивный суб
- Выход из системы / не зарегистрирован
Это text-block-template.php
, в котором я выбираю параметры:
//returns true/false
$is_active_sub = call_to_sub_api($sessionID);
//Selected in dropdown of which users to show element for
switch ($show_element):
case 'all':
$user_group = 'all_users';
case 'subs':
$user_group = 'subscribers';
case 'logged_out'
$user_group = 'inactive';
//Mustache render function (takes a template + variables & renders the template)
render_mustache_func('text-template.mustache', array(
'text_content' => $text,
'user_group' => $user_group,
'subscriber' => $is_active_sub
))
Такв Visual Composer у меня было бы два разных блока - каждый установлен либо на подписчика, либо на выход из системы.
«Добро пожаловать назад» - будет отображаться для вошедших в систему пользователей
«Зарегистрироваться или войти сейчас» - будет отображаться для вышедших из системы пользователей
Однако, если операторы, кажется, не в состоянии проверить строковые значения, я делаю это неправильно?
Кроме того, это очень избыточно, чтобы писать тот же элемент HTMLмногократно.Вы бы предложили другое решение?
{{#user_group=all_users}}
<p class="text">{{text_content}}</p>
{{/user_group=all_users}}
{{#user_group=subscribers}}
{{#subscriber}}
<p class="text">{{text_content}}</p>
{{/subscriber}}
{{/user_group=subscribers}}
{{#user_group=inactive}}
<p class="text">{{text_content}}</p>
{{/user_group=inactive}}
Любой вклад будет принят с благодарностью.