it-swarm.com.de

Benutzerdefinierte Löschoption in den Plugin-Einstellungen

Ich möchte die Schaltfläche Delete neben meiner Option Upload in meinen Plugin-Einstellungen hinzufügen.

Im Moment benutze ich die Einstellungs-API mit dem unten stehenden Formular.

<form method="post" action="options.php" enctype="multipart/form-data">
    <?php
        settings_fields("mw_options");
        do_settings_sections("mw_options");      
        submit_button(); 
    ?>          
</form>

Es funktioniert prima, ich habe ungefähr 10 Felder im Formular, eines davon ist das Hochladen von Dateien, die Anhänge zu Woocommerce-E-Mails hinzufügen. Alles funktioniert prima, aber ich möchte die Schaltfläche Delete neben der Schaltfläche Upload in meinem Formular einfügen, damit ich den Haken updated_option oder delete_option oder etwas passenderes verwenden kann.

Ich kann nicht herausfinden, wie das geht.

Jetzt verwende ich meine eigene Datei delete_attachment.php und formaction auf der Schaltfläche, um den Job zu erledigen, aber ich würde gerne später mehr davon machen und ich denke, dass es einen besseren Weg gibt.

function mw_options_wc_order_attachement_1()
{
    ?>
        <input type="file" name="mw_options_wc_order_attachement_1" id="mw_options_wc_order_attachement_1" value="<?php echo get_option('mw_options_wc_order_attachement_1'); ?>" />
        <?php echo get_option("mw_options_wc_order_attachement_1"); ?>
        <input type="submit" name="mw_options_wc_order_attachement_1" formaction="<?php echo plugins_url( 'delete_attachment.php' , __FILE__ );?>" formmethod="post" value="Delete">
    <?php
}

Wie kann ich im Bereich der Hauptoption eine weitere Schaltfläche erstellen, mit der ich ein Löschskript ausführen kann?

1
Mike

Ich habe auf diese Weise die Schaltfläche zum Löschen hinzugefügt. Sie kann auch zum Hinzufügen einer zusätzlichen Schaltfläche zum Senden verwendet werden.

Erstellen Sie eine Senden-Schaltfläche mit dem Namen und dem Array-Attribut:

function mw_options_wc_order_attachement_1()
{
    ?>
        <input type="file" name="mw_options_wc_order_attachement_1" id="mw_options_wc_order_attachement_1" value="<?php echo get_option('mw_options_wc_order_attachement_1'); ?>" />
        <?php echo get_option("mw_options_wc_order_attachement_1"); ?>
        <input type="submit" name="submit[delete_attachment_1]" class="button button-primary" value="Delete" />
    <?php
}

Registereinstellung mit Rückruffunktion, mw_options_wc_order_attachement_1_handle ist in meinem Fall der Name der Funktion.

register_setting("mw_options", "mw_options_wc_order_attachement_1", "mw_options_wc_order_attachement_1_handle");

Stellen Sie die Rückruffunktion so ein:

function mw_options_wc_order_attachement_1_handle($options)
{

    if (isset($_POST["submit"]))
    {
        $submit_button = $_POST["submit"];

        if (isset($submit_button["delete_attachment_1"])) 
        {
            // delete file
            wp_delete_file('YOUR-FILE-SERVER-PATH');
            return ''; // returns empty option value to settings
        }
    }

 }
1
Mike