Drupal ::Bestellen Sie den kompletten Hook und aktualisieren Sie die Benutzerberechtigungen/-rollen

StackOverflow https://stackoverflow.com/questions/3270059

  •  17-09-2020
  •  | 
  •  

Frage

Ich möchte die Benutzerberechtigung aktualisieren können, nachdem der Bestellstatus als abgeschlossen angezeigt wird.

Ich habe herausgefunden, dass ich den Hook „hook_order“ verwenden sollte, um das zu erreichen.Aber wie erfahre ich, welcher Benutzer diese Bestellung erstellt hat und wie aktualisiere ich die Berechtigungen und stelle die Ablaufzeit für diese Rolle automatisch ein?

Ich möchte, dass dieser Haken aufgerufen wird, sobald die Zahlung erfolgt und die Bestellung abgeschlossen ist.

Alle Hinweise werden wertvoll sein.

War es hilfreich?

Lösung

Im hook_order, 3 Parameter werden übergeben.Der dritte Parameter hängt vom ersten ab.Wenn der erste Parameter „Aktualisieren“ lautet, ist der dritte Parameter der Status, in den die Bestellung geht.

hook_order($op, &$order, $arg2){
    switch($op){
        case 'update':
            if($arg2 === 'completed'){
                // This order got marked completed
            }
    }
}

$order->uid wird Ihnen der Benutzer angezeigt, der die Bestellung erstellt hat.Sie können etwa Folgendes tun

$user = user_load(array('uid' => $order->uid));
// update the roles assigned to user
user_save($user);

Für den Ablauf der Rolle müssen Sie ein Modul schreiben, das die Dauer verfolgt und nach Ablauf der Zeit etwas wie oben ausführt.Oder Sie können verwenden role_expire Modul und sehen Sie, ob das hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top