在同一操作中保持2个wp_user(在更新User_Email时更新BILLING_Email)

时间:2014-01-21 作者:hazem

iam正在尝试更新woocommerce billing\\u email在更新user\\u email时,问题是如何在同一个操作中保存来自wp\\u user的两个对象,在此代码中

add_action(\'profile_update\', \'sync_woocommerce_email\', 10, 2) ;

function sync_woocommerce_email( $user_id, $old_user_data ) {
$current_user = wp_get_current_user();

    echo $current_user->user_email;
    echo $old_user_data->user_email."   ";

if ($current_user->user_email != $old_user_data->user_email) {
    wp_update_user( array ( \'ID\' => $current_user->ID, \'billing_email\' => $current_user->user_email ) ) ;
  }
}
当我做这两次回显时,我两次发现同一封电子邮件,但当我删除

 $current_user = wp_get_current_user();
$old\\u user\\u数据

回显旧电子邮件,这意味着当前的\\u user对象覆盖了$old\\u user\\u数据对象,如何解决这个问题?

1 个回复
SO网友:MikeNGarrett

我对WordPress中的同样事情感到沮丧。查看我的未回答问题:Content hooks vs User hooks

最后,我通过匹配用户id和更新所有用户字段来绕过它,而不管它们是否已更新。

在WordPress将用户的钩子视为帖子的钩子之前,我认为我们一直都在使用较低的进程。

结束

相关推荐

private functions in plugins

我开发了两个插件,其中一个功能相同(相同的名称,相同的功能)。当试图激活两个插件时,Wordpress会抛出一个错误,因为它不允许我以相同的名称定义函数两次。有没有一种方法可以使这个函数只对插件私有,而不使用面向对象编程,也不简单地重命名函数?我不想使用OOP,因为我首先要学习它。此外,我不想重命名该函数,因为我可能也想在其他插件中使用它,而重命名感觉不太合适。