在注册时更新用户配置文件

时间:2014-02-09 作者:user12920

当用户注册时,我很难让WP更新自定义配置文件字段。添加字段效果很好。当用户注册时,不会在depositAddress配置文件字段中插入任何内容。

// add profile fields

function coinFields($profileFields) {

// Add new fields
$profileFields[\'depositAddress\']     = \'Deposit Address\';
$profileFields[\'accountBalance\']     = \'Account Balance\';
$profileFields[\'totalWinnings\']      = \'Total Winnings\';
$profileFields[\'totalLosses\']        = \'Total Losses\';

return $profileFields;
}

add_filter(\'user_contactmethods\', \'coinFields\');

// update deposit address

function coinDeposit() {
$current_user   = wp_get_current_user();
$ID = $current_user->ID;

// coin
$coin       =   new jsonRPCClient(\'http://user:[email protected]:14022/\');
$account    =   $coin->getaccountaddress($ID);

update_user_meta( $ID, \'depositAddress\', $account);

}

add_action(\'user_register\', \'coinDeposit\');

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

尝试转储数据,您应该会发现问题:

function coinDeposit() {
  $current_user   = wp_get_current_user();

  var_dump($current_user); die;
  update_user_meta( $ID, \'depositAddress\', $account);

}
用户对象为空。这是因为新创建的用户不会自动登录。有一个电子邮件确认步骤,然后登录。在登录之前,wp_current_user() 不会给你一个用户对象。

幸运地user_register 由Core传递用户ID。只要使用它:

function coinDeposit($ID) {
  $coin       =   new jsonRPCClient(\'http://user:[email protected]:14022/\');
  $account    =   $coin->getaccountaddress($ID);
  update_user_meta( $ID, \'depositAddress\', $account);
}

add_action(\'user_register\', \'coinDeposit\');

结束

相关推荐

缺少WordPress Apply_Filters()参数

我正在定制Woocommerce Wordpress网站。在Woocommerce产品类别中(class-wc-product.php) 这个get_price 函数应用筛选器,如下所示:function get_price() { return apply_filters(\'woocommerce_get_price\', $this->price, $this); } 在我的功能中。php我想添加一个过滤器,如下所示:add_filter(\'woocomme