2017-12-21 9 views
0

Ich habe einen Benutzer Metaschlüssel prize, die ein Array enthält prize type und prize date. Das Datum im Unix-Zeitstempel. Wie kann ich das Benutzermeta nur durch Angabe des Preistermins löschen?Löschen Benutzer Meta basierend auf Schlüsselwert, der ein Array ist

Beispielcode:

delete_user_meta($userID, 'prize', $meta_value); 
$meta_value = array(
    'prize' => array(
     // Add something here like prize date = 1506556467 
    ) , 
); 

Schlüsselwert in der Datenbank wie folgt aussehen:

a:2:{i:0;s:17:"prize name";i:1;i:1506556467;} 
+0

Was wollen Sie löschen? Sie haben Daten angegeben, z. "1506556467", und Sie möchten Benutzer-Meta löschen, wo Preisdaten = 1506556467? Oder was? Bitte klären Sie Ihren Punkt mit weiteren Details –

+0

Ja, das was ich will. Ich sagte in der Frage "Wie kann ich den Benutzer Meta löschen, indem Sie nur das Preisdatum angeben?". Das Kriterium ist das Preisdatum. – Yamona

Antwort

0

Da es als serialisierte Daten gespeichert werden Sie es nicht mit einem einzigen delete_user_meta bekommen und löschen können () Funktion.

Sie können es mit MYSQL Abfrage stattdessen tun:

global $wpdb; 
$userID=1; 
$specified_date='1506556467'; 
$wpdb->query($wpdb->prepare("DELETE from $wpdb->usermeta 
where user_id= %d 
and meta_key='prize' 
and meta_value like %s",$userID,'%'.$specified_date.'%')); 
Verwandte Themen