我正在使用 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 中,我将有两个不同的块——每个块都设置为订阅者或注销。
'Welcome back' - 将显示给登录的用户
“立即注册或登录”——将显示给已注销的用户
但是,if 语句似乎无法检查字符串值,我做错了吗?
此外,多次编写同一个 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}}
任何投入将不胜感激。