it-swarm.com.de

wp_login Aktions-Hook mit bedingtem Tag

ich habe versucht, eine einfache Funktion zum Empfangen einer E-Mail zu erstellen, wenn ein bestimmter Benutzer angemeldet ist. Ich habe es mit $ current_user-> ID und auch mit wp_get_current_user () versucht, aber es funktioniert nicht. Das ist mein Code:

function InvioMail() {
     global $current_user;
   $ID = $current_user->ID;
    $user = wp_get_current_user();
  $name = $user->user_login;

    if ($name == 'piero') {

        $to = '[email protected]';
        $subject = 'test su action hook wp_login';
        $body = 'test su action hook pwp_login';
        $headers = array('Content-Type: text/html; charset=UTF-8','From: My Site Name <[email protected]');

        wp_mail( $to, $subject, $body, $headers );
    }
}

add_action( 'wp_login', 'InvioMail');

Ohne wenn Bedingung Arbeitseigenschaft aber wenn ich mit WENN nichts versuche.

Wo liege ich falsch?

1

Dies sollte für Sie funktionieren. Stellen Sie sicher, dass der user_login oder user_id mit der Zeichenfolge übereinstimmt, die Sie in der Bedingung verwenden. Versuche eine var_dump($user_login); zu machen

Und für die Funktion, die Sie verwenden, müssen Sie weder die global noch get_current_user(); aufrufen, da die aufgerufene Aktion bereits zwei Parameter an Ihre Funktion übergibt. Der erste ist eine string mit dem $user_login und der zweite ist a WP_User object der aktuell angemeldete Benutzer.

Um es zu benutzen, ändern Sie einfach Ihren Code in diesen:

function InvioMail($user_login, $user) {

  if ($user_login == 'piero') {

    $to = '[email protected]';
    $subject = 'test su action hook wp_login';
    $body = 'test su action hook pwp_login';
    $headers = array('Content-Type: text/html; charset=UTF-8','From: My Site Name <[email protected]');

    wp_mail( $to, $subject, $body, $headers );
  }
}

add_action( 'wp_login', 'InvioMail', 10, 2);

Weitere Informationen zu diesem Hook finden Sie in den Dokumenten .

Probieren Sie den folgenden Code aus.

function InvioMail() {
  global $current_user;

  if ($current_user->ID == 1){ // change id 1 to your user id 

    $to = '[email protected]';
    $subject = 'test su action hook wp_login';
    $body = 'test su action hook pwp_login';
    $headers = array('Content-Type: text/html; charset=UTF-8','From: My 
    Site Name <[email protected]');

    wp_mail( $to, $subject, $body, $headers );
   }
}

add_action( 'wp_login', 'InvioMail');
0
Nuno Sarmento