You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

登录状态下如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 21:41:03