是否可以在管理通知电子邮件中包含注册表单中的值

时间:2018-04-05 13:36:52

标签: wordpress woocommerce

当新的WooCommerce客户注册时,我正在使用此代码向管理员发送电子邮件通知他们:

add_action('woocommerce_created_customer', 'admin_email_on_registration', 10 , 1);
function admin_email_on_registration( $customer_id) {
    wp_new_user_notification( $customer_id );
}

我还发现此代码可以自定义电子邮件:

add_filter( 'wp_new_user_notification_email_admin', 'custom_wp_new_user_notification_email', 10, 3 );

function custom_wp_new_user_notification_email( $wp_new_user_notification_email, $user, $blogname ) {

$wp_new_user_notification_email['subject'] = sprintf( '[%s] New user %s registered.', $blogname, $user->user_login );
$wp_new_user_notification_email['message'] = sprintf( "%s ( %s ) has registerd to your website %s.", $user->user_login, $user->user_email, $blogname );

return $wp_new_user_notification_email;
}

是否可以将注册表中的所有值添加到此?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

  

是否可以将注册表中的所有值添加到此?

根据以上所述,注册字段应该是名字,姓氏,昵称等,所以假设所有上述数据存储在wordpress的user-meta表中,所以你需要得到用户元。 这就是你如何获得, 9 用户ID

<?php
  $all_meta_for_user = get_user_meta( 9 );
  print_r( $all_meta_for_user );
?>

结果就像

Array ( 
    [first_name] => Array ( [0] => Tom ) 
    [last_name] => Array ( [0] => Auger) 
    [nickname] => Array ( [0] => tomauger ) 
    [description] => etc.... 
)

所以在你的函数中你需要添加2行以上并使用first name作为返回数组的索引从数组中逐个读取值

更新了功能。

function custom_wp_new_user_notification_email( $wp_new_user_notification_email, $user, $blogname ) {

    $all_meta_for_user = get_user_meta( $user->ID );
    // print_r( $all_meta_for_user ); // remove '//' for debug.

    $wp_new_user_notification_email['subject'] = sprintf( '[%s] New user %s registered.', $blogname, $user->user_login );
    $wp_new_user_notification_email['message'] = sprintf( "%s ( %s ) has registerd to your website %s.", $user->user_login, $user->user_email, $blogname );
    // getting value from $all_meta_for_user
    $wp_new_user_notification_email['firtname'] = sprintf( "%s", $all_meta_for_user['firt name'] );

    return $wp_new_user_notification_email;
}
相关问题