我正在尝试将结算公司附加到管理员电子邮件中.我正在使用这个脚本
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返回空,因为当您使用’user_register’动作时,根据wordpress doc,并非所有用户元数据都已存储.所以基本上当用户注册usermeta表仍然是空的,因为我试图把现有的用户ID,它工作正常.
https://codex.wordpress.org/Plugin_API/Action_Reference/user_register.
任何人都可以建议在管理通知电子邮件中发送公司名称的方法吗?
最佳答案 如果您使用自定义注册表单,则可以在更新数据库之前发送电子邮件.
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 );
}