登录状态下如何在Elementor编辑页查看自定义注册表单模板?
WordPress注册插件Elementor编辑时显示表单的解决方案
问题描述
我正在开发WordPress注册插件,短代码插入Elementor页面后,登录状态下页面显示“You are already signed in.”提示,退出登录才能正常查看表单。希望在Elementor编辑页面时能显示表单预览修改效果,不知道要在if-else分支加什么条件。
原代码:
function render_signup_form(){ if ( is_user_logged_in() ) { return __( 'You are already signed in.' ); } else { $template = require( plugin_dir_path( __FILE__ ) . 'templates/signup-form.php' ); } }
解决方案
你只需要在判断条件中加入Elementor编辑模式的检测,让编辑器状态下跳过登录判断,直接渲染表单。修改后的代码如下:
function render_signup_form(){ // 检查是否处于Elementor编辑模式 $is_elementor_editing = false; if ( class_exists('\Elementor\Plugin') ) { $is_elementor_editing = \Elementor\Plugin::instance()->editor->is_edit_mode(); } // 如果用户已登录且不在Elementor编辑模式,返回提示 if ( is_user_logged_in() && !$is_elementor_editing ) { return __( 'You are already signed in.' ); } else { // 渲染注册表单 require( plugin_dir_path( __FILE__ ) . 'templates/signup-form.php' ); } }
逻辑说明
- 先检测Elementor插件是否激活,避免因类不存在引发错误
\Elementor\Plugin::instance()->editor->is_edit_mode()用于判断当前是否处于Elementor页面编辑状态- 调整判断逻辑:仅当用户登录且不在Elementor编辑模式时,显示已登录提示;其他场景(未登录、登录但在编辑模式)均渲染表单
修改后,你在Elementor编辑页面时无需退出登录就能预览表单效果,普通访问者登录后仍会看到正常提示,不影响插件原有功能。
内容的提问来源于stack exchange,提问作者GorillaDev
相关产品推荐
相关产品推荐

