基本上我想检查wordpress中的元数据中是否存在一行。如果该用户的元密钥表不存在,则应创建一个。
我现在正在使用此代码,它可以工作,但似乎有问题。我最近注意到一些用户现在有2到5个metaskey,它们的信用值为0。是否有更好的方法来检查该用户是否已经存在meta_key?

<?php
global $current_user;
global $wpdb;



$useridvip=$current_user->ID;
$credits=$current_user->credits;

if (empty($credits)) {

$wpdb->insert( "wp_usermeta", array( 'umeta_id' => null, 'user_id' => $useridvip, 'meta_key' => credits, 'meta_value' => 0 ) );
$credits="0";
}

else { echo "all good"; }

最佳答案

还没有测试过,但我要做的第一件事就是确保它包装在is_user_logged_in()中

if(is_user_logged_in()) {

//then put your check/update code here

}


在其中,您可以尝试...

global $current_user;

$useridvip=$current_user->ID;
$credits = get_user_meta($useridvip, 'credits', true);

if($credits == '') {

add_user_meta( $useridvip, 'credits', 0, true );

}


一般来说,您应尽可能尝试使用get_user_meta和add_user_meta。

09-25 17:21