2017-11-07 22 views
-1

私はユーザー通知メールテンプレートをカスタマイズしたいですが、wp_new_user_notificationを上書きすることはできません。私はすでにthis answerを試して、/plugins/フォルダに入れましたが、それでもまだうまくいきませんでした。マークされた答えがうまくいきません。また、私は既に別のプラグインを使用しましたが、デフォルトの電子メールテンプレート機能を使用し続けます。ワードプレスのwp_new_user_notificationを無効にすることはできません

+1

関連するコードがリンクにのみ含まれているため、この質問を将来の訪問者に役に立たなくするため、この質問をトピックとして閉じることにしました。 –

+0

他の何かがそれを差し込んでいますか?おそらく別のプラグインですか?または、プラグインが正しく起動されていないか、実行中ですか? –

+0

すべてのプラグインを無効にして、新しく作成した通知プラグインをアクティブにして再試行してください。 –

答えて

0

このテクニックはテーマコードでは機能しません。プラグインが最初にロードされ、次にpluggable.php、そして最後にテーマがロードされます。あなたの関数オーバーライドがあなたのテーマにある場合、あなたはデフォルトの関数と衝突します。プラグインを作成してそこにコードを配置する必要があります。 custom_new_user_email.phpという名前のファイルを作成し、プラグインのフォルダに配置します。次のコードで、新しいボディコンテンツを調整します。

<?php 
/* 
Plugin Name: Custom New User Email 
Plugin URI: http://localhost 
Description: Changes the copy in the email sent out to new users 
Version: 1.0.0 
Author: Your Name 
Author URI: http://locahost 
Text Domain: new-user-email 
*/ 

// Redefine user notification function 
// Override new user notification function 
if (!function_exists('wp_new_user_notification')) { 
    function wp_new_user_notification($user_id, $plaintext_pass = '') { 
     if ($deprecated !== null) { 
      _deprecated_argument(__FUNCTION__, '4.3.1'); 
     } 

     global $wpdb, $wp_hasher; 
     $user = get_userdata($user_id); 

     // The blogname option is escaped with esc_html on the way into the database in sanitize_option 
     // we want to reverse this for the plain text arena of emails. 
     $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES); 

     if ('user' !== $notify) { 
      $switched_locale = switch_to_locale(get_locale()); 
      $message = sprintf(__('There\'s a new user registration on your site %s:'), $blogname) . "\r\n\r\n"; 
      $message .= sprintf(__('Username: %s'), $user->user_login) . "\r\n\r\n"; 
      $message .= sprintf(__('Email: %s'), $user->user_email) . "\r\n"; 

      @wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), $blogname), $message); 

      if ($switched_locale) { 
       restore_previous_locale(); 
      } 
     } 

     // `$deprecated was pre-4.3 `$plaintext_pass`. An empty `$plaintext_pass` didn't sent a user notification. 
     if ('admin' === $notify || (empty($deprecated) && empty($notify))) { 
      return; 
     } 

     // Generate something random for a password reset key. 
     $key = wp_generate_password(20, false); 

     /** This action is documented in wp-login.php */ 
     do_action('retrieve_password_key', $user->user_login, $key); 

     // Now insert the key, hashed, into the DB. 
     if (empty($wp_hasher)) { 
      require_once ABSPATH . WPINC . '/class-phpass.php'; 
      $wp_hasher = new PasswordHash(8, true); 
     } 
     $hashed = time() . ':' . $wp_hasher->HashPassword($key); 
     $wpdb->update($wpdb->users, array('user_activation_key' => $hashed), array('user_login' => $user->user_login)); 

     $switched_locale = switch_to_locale(get_user_locale($user)); 

     $message = sprintf(__('Username: %s'), $user->user_login) . "\r\n\r\n"; 
     $message .= __('To set your password, visit the following address:') . "\r\n\r\n"; 
     $message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), 'login') . ">\r\n\r\n"; 

     $message .= wp_login_url() . "\r\n"; 

     wp_mail($user->user_email, sprintf(__('[%s] Your username and password info'), $blogname), $message); 

     if ($switched_locale) { 
      restore_previous_locale(); 
     } 

    } 
} 

?> 
+0

すでに私が提供したリンクに見られるように、これを行いました。私はプラグインとして作成しようとしましたが、まだ動作しませんでした。 – leonardeveloper

+0

私はちょうどそれをテストし、それが働いているのであなたはどこかでミスを犯しました。私の指示とコードに従えばうまくいく。変更されたメッセージのスクリーンショットです。 http://imageshack.com/a/img922/9913/8zaQzx.png –

+0

[他人のコード]を大量にコピーする場合は(https://sltaylor.co.uk/blog/customizing-new-user- email-pluggable-function /)、少なくともそれらにクレジットを与えるべきです。コードはリンク先のOpに非常に似ていますが、答えには間違いが含まれています: '$ message = __( 'Hi there、')。 "rnrn"; '(' rnrn'はスラッシュがありません。誰か他の人がランダムにGPLv2ライセンスを割り当てることはできません(https://stackoverflow.com/posts/47148681/revisions) –

関連する問題