admin管理员组

文章数量:1289583

Basically I'm looking for something like this:

<?php if ( is_page( array( 'home' ) ) ): ?>
        
update_user_meta( $user_id, 'pagehome', '1' );
        
<?php else: ?>
            
update_user_meta( $user_id, 'pagehome', '0' );

<?php endif; ?>

I want to change usermeta data for current user depending on which page they visited.

So I need to find a simple code to fire update_user_meta( $user_id, 'pagehome', '1' ); and record into database.

Any help would be appreciated.

Basically I'm looking for something like this:

<?php if ( is_page( array( 'home' ) ) ): ?>
        
update_user_meta( $user_id, 'pagehome', '1' );
        
<?php else: ?>
            
update_user_meta( $user_id, 'pagehome', '0' );

<?php endif; ?>

I want to change usermeta data for current user depending on which page they visited.

So I need to find a simple code to fire update_user_meta( $user_id, 'pagehome', '1' ); and record into database.

Any help would be appreciated.

Share Improve this question asked Jul 14, 2021 at 11:23 robert0robert0 2032 silver badges11 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 2

There are lots of actions you can hook into to do this, I think the best once to use would be wp or template_redirect.

Using either of those actions the code would be like this, this code goes into the functions.php

add_action('wp', 'bt_update_user_homepage_meta');
function bt_update_user_homepage_meta () {
    // get user id, if user is not logged in then it will be 0
    $user_id = get_current_user_id();

    // now we check if we are in front page or not and we update the user meta accordingly
    // if user is not logged in this code will try to update the meta for user 0,
    // because this user doesn't exist, nothing will happen
    if (is_front_page()) update_user_meta($user_id, 'pagehome', '1');
    else update_user_meta($user_id, 'pagehome', '0');
}

本文标签: phpHow to update and save user metadata on page visits