首页 > 解决方案 > 如何在电子邮件中显示 WordPress 的当前和旧信息

问题描述

我目前正在编写一个发送电子邮件的服务,当用户更新他/她的个人资料时。此信息将显示为 Discord 消息(通过 Zapier 集成)。我的问题,我当前的设置只显示旧信息,我怎样才能得到最新和旧版本被发送出去?如果我在我的个人资料页面上应用相同的代码,我会得到“最新”版本。

所以我目前遇到的问题是:$discord_username是以前的数据,而不是最新的变体。是空的$user_info_old / $user_info_old->discord_id,如果我print_r($olduserdata)那么我就得到一个1回。

我如何获取当前信息$user_info->discord_id和以前的数据$user_info->discord_id?这是我目前的设置。不是最好的,但它可以完成 90% 的工作。

function user_profile_update( $user_id, $olduserdata ) {
    $site_url = get_bloginfo('wpurl');
    $active_memberships = wc_memberships_get_user_memberships( $user_info, $args );
    $user_info = get_userdata( $user_id );
    $user_info_old = get_userdata( $olduserdata );
    $discord_username = $user_info->discord_id;
    
    if ($active_memberships && $discord_username) {
      $namemembership = $active_memberships[0]->plan->name;
      $user_regdate = date( 'm/d/Y h:s', strtotime( $user_info->user_registered ) );
      $to = 'xxxxx@zapiermail.com'; 
      $subject = $user_info->discord_id;
      $message = "**Name: **".$user_info->user_firstname." ".$user_info->user_lastname. "\n**Email Address: **" .$user_info->user_email. "\n**Membership: **".$namemembership."\n**Registered: **".$user_regdate." UTC\n".$user_info_old->discord_id."Please make sure to add correct permission and remove verified tag. \nDiscord ID:```".$user_info->discord_id."\n```".$user_info_old->discord_id."```";
      wp_mail( $to, $subject, $message);
    } 
    clean_user_cache( $user_info );
}

更新 我尝试了各种缓存方法,但目前还没有。+ 作为奖励:消息往往显示两次。这个函数/钩子是否被正常调用两次?

标签: phpwordpressdiscordprofilezapier

解决方案


推荐阅读