发送带有管理员通知电子邮件的计费公司。

4
我正在尝试将计费公司附加到管理员电子邮件。我正在使用以下脚本:
    add_action( 'user_register', array( $this, 'user_register' ) );
    function user_register( $user_id ) {
       // using this function to send the email
       $this->send_notification( 'admin-user', $user_id );
     }

     public function send_notification( $setting, $id ) {
     $user_company = get_user_meta($id, 'billing_company');
      wp_mail( $email, $subj, $msg.$user_company[0], $headers );
     }

问题在于,get_user_meta返回空值,因为根据WordPress文档,在使用'user_register'操作时,并未存储所有用户元数据。所以基本上当用户注册时,usermeta表仍然为空,因为我尝试放置一个现有的用户ID,它可以正常工作。 https://codex.wordpress.org/Plugin_API/Action_Reference/user_register
有人能建议一种方法,在管理通知电子邮件中发送公司名称吗?

1
“billing_company”是用户必须填写的表单字段吗?我认为在这个阶段你仍然可以访问$_POST,因此可以根据它来填写$user_company - Richard Parnaby-King
1个回答

1
如果您正在使用自定义注册表单,则可以在更新数据库之前发送电子邮件。
 add_action( 'user_register', array( $this, 'user_register' ) );
    function user_register( $user_id ) {
       $billing_company = $_POST['billing_company'];
       wp_mail( $email, $subj, $billing_company, $headers );
    }

或者,您可以使用sleep延迟函数的执行:

add_action( 'user_register', array( $this, 'user_register' ) );
function user_register( $user_id ) {
  sleep(5);
  $this->send_notification( 'admin-user', $user_id );
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接