1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Löschen Plugin mit Datenbanken und Optionen

Dieses Thema im Forum "Plugins und Widgets" wurde erstellt von Sportverein, 21. August 2018.

  1. Sportverein

    Sportverein Well-Known Member

    Registriert seit:
    18. Mai 2018
    Beiträge:
    49
    Zustimmungen:
    1
    Guten Morgen an alle,

    ich habe ein Plugin, das erstellt in der Tabelle "optionen" verschiedenen Einträge und erzeugt verschieden Tabellen.

    Jetzt möchte ich das Plugin löschen. Alle Tabellen und Optionen sollen auch gelöscht werden.

    Dafür habe ich wzei Functionen.

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Mit der Funkion "register_uninstall_hook"

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Die Datenbank wird gelöscht aber die Optionen nicht.

    Kann mir jemand einen Tipp geben?

    Vielen Dank.


    maxe Edit: Code-Button
     
    #1 Sportverein, 21. August 2018
    Zuletzt von einem Moderator bearbeitet: 21. August 2018
  2. maxe

    maxe Well-Known Member
    Ehrenmitglied

    Registriert seit:
    1. Mai 2008
    Beiträge:
    19.581
    Zustimmungen:
    277
    warum setzt du in das Plugin keine uninstall.php mit den delete_option() ?
     
  3. Sportverein

    Sportverein Well-Known Member

    Registriert seit:
    18. Mai 2018
    Beiträge:
    49
    Zustimmungen:
    1
    Danke für Deine Antwort.

    Das habe ich schon probiert. Ich habe in das VZ eine uninstall.php erstellt. Diese habe ich mit require_once( dirname( __FILE__) . '/uninstall.php')
    eingebunden.

    Der Aufruf erfolgt mit:

    if( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
    die;
    }


    $option_name = 'fb_meta_field';
    delete_option($option_name);

    global $wpdb;

    $wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}test");

    Es kommt aber dann zu Fehler. Diese sind nicht "definiert" :(
     
  4. maxe

    maxe Well-Known Member
    Ehrenmitglied

    Registriert seit:
    1. Mai 2008
    Beiträge:
    19.581
    Zustimmungen:
    277
    einfach im Plugin eine uninstall.php mit folgendem Inhalt anlegen:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
    #4 maxe, 21. August 2018
    Zuletzt bearbeitet: 22. August 2018
  5. Sportverein

    Sportverein Well-Known Member

    Registriert seit:
    18. Mai 2018
    Beiträge:
    49
    Zustimmungen:
    1
    Danke.

    delete_option funktioniert.

    Kann ich auch die angelegte Tabelle löschen?

    global $wpdb;
    $table_name = $wpdb->prefix . 'test';
    $sql = "DROP TABLE IF EXISTS $table_name";
    $wpdb->query($sql);
    //delete_option($jal_db_version);
     
  6. maxe

    maxe Well-Known Member
    Ehrenmitglied

    Registriert seit:
    1. Mai 2008
    Beiträge:
    19.581
    Zustimmungen:
    277
    Ich dachte das würde schon längst funktionieren ??

    Ich tät's mal so probieren:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
    #6 maxe, 21. August 2018
    Zuletzt bearbeitet: 21. August 2018
  7. Sportverein

    Sportverein Well-Known Member

    Registriert seit:
    18. Mai 2018
    Beiträge:
    49
    Zustimmungen:
    1
    Moin,

    leider nicht. Auch mit Deiner Anleitung nicht.

    Die verschiedenen Einträge in der Tabelle optionen werden gelöscht. Aber die Tabelle "Test" nicht. Als wenn die Funktion nicht angesprochen wird.

    Muss ich die Funktion noch in der übergeordneten Datei aufrufen?

    In der Datei simple.php steht:

    require_once( dirname( __FILE__) . '/install.php');
    require_once( dirname( __FILE__) . '/uninstall.php');

    register_activation_hook (__FILE__, 'simple_install');
    register_activation_hook (__FILE__, 'simple_install_data');

    Danke für Deine Hilfe.

    Ich habe schon verschiedene Vorschläge ausprobiert, doch leider ohne Erfolg. :(
     
  8. maxe

    maxe Well-Known Member
    Ehrenmitglied

    Registriert seit:
    1. Mai 2008
    Beiträge:
    19.581
    Zustimmungen:
    277
    heißt die Tabelle denn wirklich nur "Test" (richtige Schreibweise?)? Dann versuch es so:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Wenn der Hook trotzdem nicht will, versuch es direkt in der uninstall.php
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  9. Sportverein

    Sportverein Well-Known Member

    Registriert seit:
    18. Mai 2018
    Beiträge:
    49
    Zustimmungen:
    1
    Hallo Maxe,

    wenn ich das so mache, dann wird die Tabelle Test nicht angelegt. Mache ich das wieder mit der function delete_test_table()
    dann wird die Tabelle angelgt, aber nicht gelöscht.

    Vielen Dank für Deine Hilfe.
     
  10. maxe

    maxe Well-Known Member
    Ehrenmitglied

    Registriert seit:
    1. Mai 2008
    Beiträge:
    19.581
    Zustimmungen:
    277
    hmm, die uninstall.php sollte nix mit dem anlegen der Tabelle zu tun haben.
     
  11. Sportverein

    Sportverein Well-Known Member

    Registriert seit:
    18. Mai 2018
    Beiträge:
    49
    Zustimmungen:
    1
    Guten Morgen Maxe,

    wir kommen hier nicht weiter. Danke für Deine Hilfe.
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden