Make WordPress Core

Opened 9 years ago

Last modified 4 years ago

#29505 new defect (bug)

Both update_user_option and update_user_meta returning false

Reported by: miqdadk's profile miqdadk Owned by:
Milestone: Priority: normal
Severity: normal Version: 4.0
Component: Users Keywords: close
Focuses: Cc:

Description

if(update_user_meta( $user->ID, 'wp-lock-bg', serialize($bgs))){
    echo "true";
}
else{
    echo "False";
}
if(update_user_option( $user->ID, 'wp-lock-bg', serialize($bgs))){
    echo "true";
}
else{
    echo "False";
}

Both code snippet returning false. I am getting correct user id, and option value. I have tested wp4.0 rc1 . Tested and working fine with 3.9.2

Change History (9)

#1 @miqdadk
9 years ago

Detail explanation

register_activation_hook( __FILE__, 'plugin_activated');
function plugin_activated(){
    $bgs = 'a:1:{i:0;s:93:"http://192.168.1.175/delta/wp4.0rc/wp-content/plugins/lock-it-up/templates/img/bg/default.jpg";}';
    $user = new stdClass();
    $user->ID = 1;
   delete_user_option( $user->ID, 'wp-lock-bg-solid');  //deleting one user option
   if(update_user_meta( $user->ID, 'wp-lock-bg', serialize($bgs))){ //adding another user option
       echo "true";
   }
   else{
       echo "False";
   }
}

always returning false. Tried with update_user_option too. same

Last edited 9 years ago by miqdadk (previous) (diff)

#2 @SergeyBiryukov
9 years ago

What are $user->ID and $bgs values in plugin_activated()? Are they defined?

#3 @miqdadk
9 years ago

Yes, and code is working perfect with 3.9.2

$bgs = 'a:1:{i:0;s:93:"http://192.168.1.175/delta/wp4.0rc/wp-content/plugins/lock-it-up/templates/img/bg/default.jpg";}';

$user->ID = 1;

#4 @shooper
9 years ago

I just tried this on the trunk (post 4.0 release), and it worked OK in the init action. Will try and duplicate it on the plugin activation action next.

add_action('init', 'test_29505');
function test_29505() {
	global $current_user;
	if (is_user_logged_in()) {
		var_dump(update_user_option($current_user->ID, 'test', 1)); // returned int
		var_dump(update_user_meta($current_user->ID, 'test', 1)); // returned int 
	}
	die();
}

#5 @shooper
9 years ago

Getting same behaviour as OP, but also getting same behaviour in 3.9.2.
(Slightly modified code, my 3.9.2 test site doesn't have a user ID # 1)

/*
Plugin Name: Test Trac Bug # 29505
Plugin URI: https://core.trac.wordpress.org/ticket/29505
*/

function plugin_activated(){
	$bgs = 'a:1:{i:0;s:93:"http://192.168.1.175/delta/wp4.0rc/wp-content/plugins/lock-it-up/templates/img/bg/default.jpg";}';
	global $current_user;
	delete_user_option( $current_user->ID, 'wp-lock-bg-solid');  //deleting one user option
	var_dump(update_user_meta( $current_user->ID, 'wp-lock-bg-solid', 'test'));
	die();
}
register_activation_hook( __FILE__, 'plugin_activated');

#6 @miqdadk
9 years ago

Its working fine in 3.9.2. Here is actual code

class test_plugin{
    function __construct(){
        register_activation_hook( __FILE__, array( $this, 'plugin_activated'));
    }
    
    function plugin_activated(){
        $bgs = 'a:1:{i:0;s:93:"http://192.168.1.175/delta/wp4.0rc/wp-content/plugins/lock-it- up/templates/img/bg/default.jpg";}';
        $users = get_users( array( 'fields' => array( 'ID' ) ) );
        foreach($users as $user){
            delete_user_option($user->ID, 'wp-lock-bg-solid');
            update_user_option( $user->ID, 'wp-lock-bg', serialize($bgs));
        }
    }
}

new test_plugin;
Version 1, edited 9 years ago by miqdadk (previous) (next) (diff)

#7 @miqdadk
9 years ago

Still no update :(

#8 @chriscct7
8 years ago

  • Keywords needs-patch added

#9 @donmhico
4 years ago

  • Keywords close added; needs-patch removed

Hello @miqdadk,

Sorry if this ticket wasn't able to get much attention. I no longer able to reproduce the error in the latest trunk 5.3-alpha-45282-src.

This is the code i'm using.

<?php
/**
 * Plugin Name: Test Trac Bug # 29505
 * Plugin URI: https://core.trac.wordpress.org/ticket/29505
 */
class test_plugin {
    function __construct(){
        register_activation_hook( __FILE__, array( $this, 'plugin_activated'));
    }
    
    function plugin_activated(){
        $bgs = 'a:1:{i:0;s:93:"http://192.168.1.175/delta/wp4.0rc/wp-content/plugins/lock-it- up/templates/img/bg/default.jpg";}';
        $users = get_users( array( 'fields' => array( 'ID' ) ) );
        foreach( $users as $user ){
            $a = delete_user_meta( $user->ID, 'wp-lock-bg');
            $b = update_user_meta( $user->ID, 'wp-lock-bg', $bgs);

            if ( $a ) {
                error_log( 'a TRUE' );
            }
            else {
                error_log( 'a FALSE' );
            }

            if ( $b ) {
                error_log( 'b TRUE' );
            }
            else {
                error_log( 'b FALSE' );
            }
        }
    }
}

new test_plugin;

I used both delete_user_option and delete_user_meta, as well as update_user_meta and update_user_option. The functions are behaving as intended.

Unfortunately, I can't find the ChangeSet that might have resolved this issue. Seeing that this ticket didn't have any interaction for the past 5 years, I'll be marking this as close.

Feel free to reopen if the issue still persist in your side.

Note: See TracTickets for help on using tickets.