基本上我想检查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。