Die Funktion wp_delete_user zum Löschen des Benutzers aus dem Frontend funktioniert nicht

Lesezeit: 2 Minuten

Ich arbeite an einer WordPress-Site. Wenn sich ein Benutzer auf der Website anmeldet, wird er zur Seite mit den Allgemeinen Geschäftsbedingungen weitergeleitet. Wenn er also die Allgemeinen Geschäftsbedingungen akzeptiert, darf er Dienste nutzen, und wenn er die Allgemeinen Geschäftsbedingungen nicht akzeptiert, wird sein Konto gekündigt. Jetzt habe ich die Funktion wp_delete_user verwendet, um sein Konto zu kündigen, aber es funktioniert nicht. Hier ist mein Code

add_action('init', 'function_init_terms');

function function_init_terms()
{
    if(isset($_POST['terms_submit']))
    {
        if($_POST['terms_agree'] == 'yes')
        {
            wp_redirect( get_permalink(215)); exit;
        }
        if($_POST['terms_agree'] != 'yes')
        {

            $user_ID = get_current_user_id();

             wp_delete_user($user_ID);
                echo html_entity_decode( wp_logout_url(home_url()) );




        }
    }
}

Der erste Teil des Codes funktioniert einwandfrei, dh wenn er mit den Bedingungen einverstanden ist, wird er erfolgreich auf die Seiten-ID 215 umgeleitet. Aber der andere Teil funktioniert nicht. Hier ist mein html

<form method="POST" action="<?php bloginfo('url') ?>/">
 <input type="checkbox" name="terms_agree" id="terms_agree" value="yes"/>Agree<br>
 <input type="submit" name="terms_submit" id="terms_submit" value="Continue" />
 </form>

  • Was meinst du mit “der andere Teil funktioniert nicht”? Erhalten Sie einen Fehler?

    – andreivictor

    29. März 2014 um 18:28 Uhr

  • denn wenn der Benutzer die Allgemeinen Geschäftsbedingungen nicht akzeptiert, sollte sein Konto gekündigt werden, aber es wird auf die Startseite umgeleitet und der Benutzer ist immer noch angemeldet und sein Konto wird nicht gelöscht.

    – Riz

    29. März 2014 um 18:31 Uhr

  • habe es erledigt. verwendete globale Variable $wpdb. vielen Dank für Ihre Zeit

    – Riz

    29. März 2014 um 18:44 Uhr

  • Es kann damit gemacht werden wp_delete_user. Sie müssen die enthalten ./wp-admin/includes/user.php Datei vor der wp_delete_user() Funktionsaufruf, andernfalls wird a ausgelöst call to undefined function Error. Beispiel hier: codex.wordpress.org/Function_Reference/wp_delete_user#Examples

    – andreivictor

    29. März 2014 um 18:46 Uhr

Benutzeravatar von ejazz
ejazz

Um diesen Beitrag für Googler lesbarer zu machen, die Antwort von Adreivictor:

Um die Backend-Funktion zu verwenden wp_delete_user()du musst require_once(ABSPATH.'wp-admin/includes/user.php' );

Beispiel aus WordPress:

if(is_user_logged_in() && !empty($_GET['DeleteMyAccount'])) {
    add_action('init', 'remove_logged_in_user');
}

function remove_logged_in_user() {
    require_once(ABSPATH.'wp-admin/includes/user.php' );
    $current_user = wp_get_current_user();
    wp_delete_user( $current_user->ID );
}

https://codex.wordpress.org/Function_Reference/wp_delete_user#Examples

1437870cookie-checkDie Funktion wp_delete_user zum Löschen des Benutzers aus dem Frontend funktioniert nicht

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy