Aktion im Kommentar gemäß IP beschränken

Ich habe versucht, etwas einzurichten, das wirklich einfach sein könnte (aber ich musste das nie zuvor tun):

add_filter('pre_comment_user_ip', 'limit_commentator'); function limit_commentator( $comment ) { $comment_field_value = get_comment_meta( $comment->comment_ID, 'some_custom_field', true ); //my code } 

Ich denke, das ist der richtige Haken, aber wie kann ich die Möglichkeit für Kommentatoren einschränken, Kommentare mit diesem benutzerdefinierten Feld zu schreiben? Eigentlich möchte ich nur einen Wert pro IP.

Noch eine Frage: Ist es wirklich wert, per IP zu limitieren? Ich habe täglich über ein Limit nachgedacht. Was denkst du darüber?

Solutions Collecting From Web of "Aktion im Kommentar gemäß IP beschränken"

Dieser Haken wird es nicht tun. Es ist ein Filter. Sie können die IP-Daten ändern, aber wenn Sie nicht bereit sind zu töten ( die; oder exit; oder wp_die() ) das ganze Skript, können Sie die Kommentarbuchung nicht stoppen. Ich habe mit hooking return false; getestet return false; zum Filter. Nichts.

Sie können die Eingabe von Kommentaren abbrechen, indem Sie return false; eingeben return false; zu pre_comment_approved though, und Sie haben die IP-Daten im zweiten Parameter.

 add_filter('pre_comment_approved', 'limit_commentator', 1, 2); function limit_commentator( $approved, $commentdata ) { var_dump($approved,$commentdata); die; } 

Sie können die $wpdb->comments für diese IP (in der Spalte comment_author_IP überprüfen und false zurückgeben, wenn Sie eine Übereinstimmung erhalten. Es sollte einfach sein, aber ich würde es nicht tun. Viele private Internetverbindungen teilen dieselbe externe IP. Wenn Sie nach IP begrenzen, können Sie die Kommentare auf einen pro Nachbarschaft beschränken. Plus, Wohn-IPs ändern sich. Dies ist nicht zuverlässig.

Die Begrenzung der Rate (pro Tag / pro Stunde) basierend auf IP ist eine viel bessere Idee, nur weil die Chancen zu Ihren Gunsten sind, und die Implementierung wäre ziemlich ähnlich.