Elementor Dynamic Tag: Visitor's First Name
Adds a dynamic tag that shows the logged-in visitor's first name (or a fallback word like "there"), for greetings such as "Welcome back, Anna".
Opens WPIDE on
Code
add_action( 'elementor/dynamic_tags/register', function ( $dynamic_tags ) {
if ( ! class_exists( '\Elementor\Core\DynamicTags\Tag' ) || ! class_exists( '\Elementor\Modules\DynamicTags\Module' ) ) {
return;
}
if ( ! class_exists( 'WPIDE_Elementor_First_Name_Tag' ) ) {
class WPIDE_Elementor_First_Name_Tag extends \Elementor\Core\DynamicTags\Tag {
public function get_name() {
return 'wpide-first-name';
}
public function get_title() {
return 'Visitor First Name';
}
public function get_group() {
return 'wpide-visitor';
}
public function get_categories() {
return array( \Elementor\Modules\DynamicTags\Module::TEXT_CATEGORY );
}
protected function register_controls() {
$this->add_control( 'fallback_name', array(
'label' => 'Fallback for guests',
'type' => \Elementor\Controls_Manager::TEXT,
'default' => 'there',
) );
}
public function render() {
$user = wp_get_current_user();
$name = $user->exists() ? ( $user->first_name ? $user->first_name : $user->display_name ) : $this->get_settings( 'fallback_name' );
echo esc_html( $name );
}
}
}
$dynamic_tags->register_group( 'wpide-visitor', array( 'title' => 'Visitor' ) );
$dynamic_tags->register( new WPIDE_Elementor_First_Name_Tag() );
} );
Notes
Needs Elementor Pro. Pages using it should not be served from a full-page cache to logged-in users.
How to add this snippet
- Install WPIDE on your WordPress site (it is free) and open Code Snippets.
- Use snippet above adds it from the library in one click. Or copy the code into a new snippet with the same code type.
- It is added inactive: review the code and settings, then switch it on.